CbmRoot
Loading...
Searching...
No Matches
CbmMvdDigi Class Reference

#include <CbmMvdDigi.h>

Inheritance diagram for CbmMvdDigi:
[legend]
Collaboration diagram for CbmMvdDigi:
[legend]

Public Member Functions

 CbmMvdDigi ()
 
 CbmMvdDigi (int32_t sensorNr, int32_t iChannelNrX, int32_t iChannelNrY, float charge, float pixelSizeX, float pixelSizeY, double time=0.0, int32_t frame=0)
 
 CbmMvdDigi (const CbmMvdRawDigi &rhs, float pixelSizeX=0.003024, float pixelSizeY=0.002688)
 
 ~CbmMvdDigi ()=default
 
double GetCharge () const
 
int32_t GetPixelX () const
 
int32_t GetPixelY () const
 
double GetPixelSizeX () const
 
double GetPixelSizeY () const
 
int32_t GetAdcCharge (int32_t adcDynamic, int32_t adcOffset, int32_t adcBits) const
 
int32_t GetFlag () const
 
int32_t GetStationNr () const
 
int32_t GetDetectorId () const
 Returns a unique address of an MVD sensor (without information on pixels)
 
int32_t GetAddress () const
 
double GetTime () const
 
int32_t GetFrameNumber () const
 
int32_t GetRefId () const
 
std::string ToString () const
 
int32_t GetDominatorX ()
 
int32_t GetDominatorY ()
 
int32_t GetTrackID ()
 
int32_t GetContributors ()
 
int32_t GetPointID ()
 
void SetCharge (float charge)
 
void SetAddress (uint32_t address)
 
void SetFlag (int32_t flag)
 
void SetFrameNr (int32_t frame)
 
void SetRefId (int32_t refId)
 
void SetTime (double time)
 

Static Public Member Functions

static CbmMvdRawDigi ConvertToRawDigi (const CbmMvdDigi &rhs)
 
static const char * GetClassName ()
 
static ECbmModuleId GetSystem ()
 
static const char * GetBranchName ()
 

Private Member Functions

 ClassDef (CbmMvdDigi, 4)
 

Private Attributes

double fDigiTime
 
float fCharge
 
float fPixelSizeX
 
float fPixelSizeY
 
int32_t fChannelNr
 
int32_t fFrameNumber
 
int32_t fRefId
 
uint32_t fAddress
 
int32_t fDigiFlag
 

Detailed Description

Definition at line 24 of file CbmMvdDigi.h.

Constructor & Destructor Documentation

◆ CbmMvdDigi() [1/3]

CbmMvdDigi::CbmMvdDigi ( )

Default constructor

Definition at line 20 of file CbmMvdDigi.cxx.

References fAddress, fChannelNr, fCharge, fDigiFlag, fDigiTime, fFrameNumber, fPixelSizeX, fPixelSizeY, and fRefId.

Referenced by ClassDef(), and ConvertToRawDigi().

◆ CbmMvdDigi() [2/3]

CbmMvdDigi::CbmMvdDigi ( int32_t sensorNr,
int32_t iChannelNrX,
int32_t iChannelNrY,
float charge,
float pixelSizeX,
float pixelSizeY,
double time = 0.0,
int32_t frame = 0 )

Constructor with all variables

Definition at line 76 of file CbmMvdDigi.cxx.

References fAddress, fChannelNr, fCharge, fDigiFlag, fDigiTime, fFrameNumber, fPixelSizeX, fPixelSizeY, and fRefId.

◆ CbmMvdDigi() [3/3]

CbmMvdDigi::CbmMvdDigi ( const CbmMvdRawDigi & rhs,
float pixelSizeX = 0.003024,
float pixelSizeY = 0.002688 )

Conversion Constructor from CbmMvdRawDigi Three limitations make the conversion not 1:1 in all cases: 1) No charge field in MvdRawDigi => Hard-set to 10000 to avoid threshold effect later 2) Potential loss of precision in time conversion from uint64_t to double 3) Narrowing for the frame number field from uint64 to signed int32 => Max value 2147483647 (caught by Fatal)

Default values for pixel sizes taken from core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.cxx Reasoning: 1) Sensor type selected only in CbmMvdGeoHandler.h, for each geometry 2) Type initialized to CbmMvdSensorTyp::MIMOSA26 for CbmMvdGeoHandler in constructor 3) Type static and initialized to CbmMvdSensorTyp::MIMOSIS in beginning of CbmMvdDetector implementation file 4) THEN CbmMvdGeoHandler type FORCED to CbmMvdDetector one in CbmMvdDetector::Instance => If I undertood call sequence right, right now SensorDataSheets instances can only be Mimosis type (PAL, 17/07/2025)

Definition at line 97 of file CbmMvdDigi.cxx.

References fAddress, fChannelNr, fCharge, fDigiFlag, fDigiTime, fFrameNumber, fPixelSizeX, fPixelSizeY, fRefId, CbmMvdRawDigi::GetAddress(), CbmMvdRawDigi::GetFrame(), and CbmMvdRawDigi::GetTime().

◆ ~CbmMvdDigi()

CbmMvdDigi::~CbmMvdDigi ( )
default

charge : of each fired pixel in electrons PixelSize : in cm Destructor

Member Function Documentation

◆ ClassDef()

CbmMvdDigi::ClassDef ( CbmMvdDigi ,
4  )
private

References CbmMvdDigi().

◆ ConvertToRawDigi()

CbmMvdRawDigi CbmMvdDigi::ConvertToRawDigi ( const CbmMvdDigi & rhs)
static

Conversion to CbmMvdRawDigi Three limitations make the conversion not 1:1 in all cases: 1) No charge field in MvdRawDigi => Information lost 2) Potential loss of precision in time conversion from double to uint64_t 3) Narrowing for the frame number field from uint64 to signed int32 => Max value 2147483647 (caught by Fatal)

Protect a bit the conversion back and forth double <=> uint32_t for the time variable Upper limit probably from double side around 53b for worst OSes (cpp std for double) Tested up to 98765432142 ns > 98 s => should be OK for any TS length storage limits to 4294967295 ns > 4.294 s => should be OK for any reasonnable TS length but users may go for it!

Observed in setup_sis100_electron.C with MVD geometry v20d_tr: (by adding a printout in the CbmMvdSensor constructor) "sensor ID" numbers up to 287 for station_S3_1/quadrant_S3_3/sensor_27 => Should be less or similar order of magnitude in all other geometries (especially CFV) => Need to map this into 9 bits => CbmMvdAddress: 9 bits size for combination of Station + SideUD + SideLR + SideTB + Ladder + Sensor

Definition at line 118 of file CbmMvdDigi.cxx.

References CbmMvdDigi(), GetAddress(), GetFrameNumber(), and GetTime().

Referenced by SimSource::do_get(), CbmTaskBuildEvents::FillTimeSlice(), TEST(), and TEST().

◆ GetAdcCharge()

int32_t CbmMvdDigi::GetAdcCharge ( int32_t adcDynamic,
int32_t adcOffset,
int32_t adcBits ) const

adcOffset is the minimum value of the analogue signal adcDynamic is the difference between the max and min values of the full scale measurement range adcBits is the number of bits used to encode the analogue signal

Exemple: If full scale measurement range is from 15 to 20 Volts adcDynamic is the difference 20 - 15 = 5 adcOffset = 15

Definition at line 143 of file CbmMvdDigi.cxx.

References fCharge.

Referenced by CbmMvdSensorFindHitTask::ComputeCenterOfGravity().

◆ GetAddress()

int32_t CbmMvdDigi::GetAddress ( ) const
inline

Definition at line 88 of file CbmMvdDigi.h.

References fAddress.

Referenced by ConvertToRawDigi().

◆ GetBranchName()

static const char * CbmMvdDigi::GetBranchName ( )
inlinestatic

Definition at line 70 of file CbmMvdDigi.h.

Referenced by SimSource::SimSource().

◆ GetCharge()

◆ GetClassName()

static const char * CbmMvdDigi::GetClassName ( )
inlinestatic

Definition at line 68 of file CbmMvdDigi.h.

Referenced by TEST().

◆ GetContributors()

int32_t CbmMvdDigi::GetContributors ( )
inline

Definition at line 101 of file CbmMvdDigi.h.

◆ GetDetectorId()

int32_t CbmMvdDigi::GetDetectorId ( ) const
inline

Returns a unique address of an MVD sensor (without information on pixels)

Definition at line 87 of file CbmMvdDigi.h.

References fAddress, and CbmMvdAddress::GetDetectorId().

Referenced by CbmMvdReadout::Exec(), CbmMvdQa::ExecDigiQa(), and CbmMvdClusterfinder::ProcessData().

◆ GetDominatorX()

int32_t CbmMvdDigi::GetDominatorX ( )
inline

Definition at line 98 of file CbmMvdDigi.h.

◆ GetDominatorY()

int32_t CbmMvdDigi::GetDominatorY ( )
inline

Definition at line 99 of file CbmMvdDigi.h.

◆ GetFlag()

int32_t CbmMvdDigi::GetFlag ( ) const
inline

Definition at line 79 of file CbmMvdDigi.h.

References fDigiFlag.

Referenced by compareMvdDigiDataMembers(), and compareMvdDigis().

◆ GetFrameNumber()

int32_t CbmMvdDigi::GetFrameNumber ( ) const
inline

◆ GetPixelSizeX()

double CbmMvdDigi::GetPixelSizeX ( ) const
inline

◆ GetPixelSizeY()

double CbmMvdDigi::GetPixelSizeY ( ) const
inline

◆ GetPixelX()

◆ GetPixelY()

◆ GetPointID()

int32_t CbmMvdDigi::GetPointID ( )
inline

Definition at line 102 of file CbmMvdDigi.h.

◆ GetRefId()

◆ GetStationNr()

int32_t CbmMvdDigi::GetStationNr ( ) const
inline

Definition at line 80 of file CbmMvdDigi.h.

References fAddress, and CbmMvdAddress::GetSensorNrFromAddress().

Referenced by compareMvdDigiDataMembers(), and compareMvdDigis().

◆ GetSystem()

static ECbmModuleId CbmMvdDigi::GetSystem ( )
inlinestatic

Definition at line 69 of file CbmMvdDigi.h.

References kMvd.

◆ GetTime()

double CbmMvdDigi::GetTime ( ) const
inline

Unique channel address

Definition at line 89 of file CbmMvdDigi.h.

References fDigiTime.

Referenced by compareMvdDigiDataMembers(), compareMvdDigis(), ConvertToRawDigi(), CbmMvdDigitizer::Exec(), and CbmMvdDigitizer::Finish().

◆ GetTrackID()

int32_t CbmMvdDigi::GetTrackID ( )
inline

Definition at line 100 of file CbmMvdDigi.h.

◆ SetAddress()

void CbmMvdDigi::SetAddress ( uint32_t address)
inline

Definition at line 108 of file CbmMvdDigi.h.

References fAddress.

Referenced by TEST().

◆ SetCharge()

void CbmMvdDigi::SetCharge ( float charge)
inline

Modifiers

Definition at line 107 of file CbmMvdDigi.h.

References fCharge.

Referenced by CbmMvdSensorFindHitTask::AddNoiseToDigis(), TEST(), and TEST().

◆ SetFlag()

void CbmMvdDigi::SetFlag ( int32_t flag)
inline

Definition at line 110 of file CbmMvdDigi.h.

References fDigiFlag.

Referenced by TEST().

◆ SetFrameNr()

void CbmMvdDigi::SetFrameNr ( int32_t frame)
inline

Definition at line 111 of file CbmMvdDigi.h.

References fFrameNumber.

Referenced by TEST().

◆ SetRefId()

void CbmMvdDigi::SetRefId ( int32_t refId)
inline

Definition at line 112 of file CbmMvdDigi.h.

References fRefId.

Referenced by CbmMvdReadout::Exec(), CbmMvdClusterfinder::ProcessData(), and TEST().

◆ SetTime()

void CbmMvdDigi::SetTime ( double time)
inline

Definition at line 113 of file CbmMvdDigi.h.

References fDigiTime.

Referenced by TEST().

◆ ToString()

std::string CbmMvdDigi::ToString ( ) const
inline

Definition at line 95 of file CbmMvdDigi.h.

Referenced by TEST().

Member Data Documentation

◆ fAddress

uint32_t CbmMvdDigi::fAddress
private

◆ fChannelNr

int32_t CbmMvdDigi::fChannelNr
private

Definition at line 122 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), and CbmMvdDigi().

◆ fCharge

float CbmMvdDigi::fCharge
private

Definition at line 117 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetAdcCharge(), GetCharge(), and SetCharge().

◆ fDigiFlag

int32_t CbmMvdDigi::fDigiFlag
private

Definition at line 127 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetFlag(), and SetFlag().

◆ fDigiTime

double CbmMvdDigi::fDigiTime
private

Definition at line 116 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetTime(), and SetTime().

◆ fFrameNumber

int32_t CbmMvdDigi::fFrameNumber
private

Definition at line 123 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetFrameNumber(), and SetFrameNr().

◆ fPixelSizeX

float CbmMvdDigi::fPixelSizeX
private

Definition at line 120 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), and GetPixelSizeX().

◆ fPixelSizeY

float CbmMvdDigi::fPixelSizeY
private

Definition at line 121 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), and GetPixelSizeY().

◆ fRefId

int32_t CbmMvdDigi::fRefId
private

Definition at line 124 of file CbmMvdDigi.h.

Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetRefId(), and SetRefId().


The documentation for this class was generated from the following files: