|
CbmRoot
|
#include <CbmMvdDigi.h>
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 |
Definition at line 24 of file CbmMvdDigi.h.
| 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::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::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().
|
default |
charge : of each fired pixel in electrons PixelSize : in cm Destructor
|
private |
References CbmMvdDigi().
|
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().
| 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().
|
inline |
|
inlinestatic |
Definition at line 70 of file CbmMvdDigi.h.
Referenced by SimSource::SimSource().
|
inline |
Accessors
Definition at line 73 of file CbmMvdDigi.h.
References fCharge.
Referenced by CbmMvdSensorFindHitTask::AddNoiseToDigis(), compareMvdDigiDataMembers(), compareMvdDigis(), CbmMvdSensorFindHitTask::ComputeCenterOfGravity(), CbmMvdSensorDigiToHitTask::Exec(), CbmMvdSensorFindHitTask::Exec(), CbmMvdSensorClusterfinderTask::ExecFrame(), and CbmMvdSensorFindHitTask::UpdateDebugHistos().
|
inlinestatic |
Definition at line 68 of file CbmMvdDigi.h.
Referenced by TEST().
|
inline |
Definition at line 101 of file CbmMvdDigi.h.
|
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().
|
inline |
Definition at line 98 of file CbmMvdDigi.h.
|
inline |
Definition at line 99 of file CbmMvdDigi.h.
|
inline |
Definition at line 79 of file CbmMvdDigi.h.
References fDigiFlag.
Referenced by compareMvdDigiDataMembers(), and compareMvdDigis().
|
inline |
Absolute time [ns]
Definition at line 90 of file CbmMvdDigi.h.
References fFrameNumber.
Referenced by compareMvdDigiDataMembers(), compareMvdDigis(), ConvertToRawDigi(), CbmMvdSensorClusterfinderTask::Exec(), and CbmMvdSensorClusterfinderTask::ExecFrame().
|
inline |
Definition at line 76 of file CbmMvdDigi.h.
References fPixelSizeX.
Referenced by compareMvdDigiDataMembers(), compareMvdDigis(), CbmMvdSensorFindHitTask::ComputeCenterOfGravity(), and CbmMvdClusterAna::Exec().
|
inline |
Definition at line 77 of file CbmMvdDigi.h.
References fPixelSizeY.
Referenced by compareMvdDigiDataMembers(), compareMvdDigis(), CbmMvdSensorFindHitTask::ComputeCenterOfGravity(), and CbmMvdClusterAna::Exec().
|
inline |
Definition at line 74 of file CbmMvdDigi.h.
References fAddress, and CbmMvdAddress::GetSensorXIndex().
Referenced by CbmMvdSensorClusterfinderTask::CheckForNeighbours(), CbmMvdSensorFindHitTask::CheckForNeighbours(), compareMvdDigiDataMembers(), compareMvdDigis(), CbmMvdSensorFindHitTask::ComputeCenterOfGravity(), CbmMvdClusterAna::Exec(), CbmMvdSensorDigiToHitTask::Exec(), CbmMvdSensorFindHitTask::Exec(), CbmMvdSensorReadoutTask::Exec(), CbmMvdQa::ExecDigiQa(), CbmMvdSensorClusterfinderTask::ExecFrame(), and CbmMvdSensorFindHitTask::UpdateDebugHistos().
|
inline |
Definition at line 75 of file CbmMvdDigi.h.
References fAddress, and CbmMvdAddress::GetSensorYIndex().
Referenced by CbmMvdSensorClusterfinderTask::CheckForNeighbours(), CbmMvdSensorFindHitTask::CheckForNeighbours(), compareMvdDigiDataMembers(), compareMvdDigis(), CbmMvdSensorFindHitTask::ComputeCenterOfGravity(), CbmMvdClusterAna::Exec(), CbmMvdSensorDigiToHitTask::Exec(), CbmMvdSensorFindHitTask::Exec(), CbmMvdQa::ExecDigiQa(), CbmMvdSensorClusterfinderTask::ExecFrame(), and CbmMvdSensorFindHitTask::UpdateDebugHistos().
|
inline |
Definition at line 102 of file CbmMvdDigi.h.
|
inline |
Definition at line 93 of file CbmMvdDigi.h.
References fRefId.
Referenced by compareMvdDigiDataMembers(), compareMvdDigis(), CbmMvdSensorFindHitTask::CreateHit(), CbmMvdSensorDigiToHitTask::Exec(), CbmMvdSensorFindHitTask::Exec(), and CbmMvdSensorClusterfinderTask::ExecFrame().
|
inline |
Definition at line 80 of file CbmMvdDigi.h.
References fAddress, and CbmMvdAddress::GetSensorNrFromAddress().
Referenced by compareMvdDigiDataMembers(), and compareMvdDigis().
|
inlinestatic |
Definition at line 69 of file CbmMvdDigi.h.
References kMvd.
|
inline |
Unique channel address
Definition at line 89 of file CbmMvdDigi.h.
References fDigiTime.
Referenced by compareMvdDigiDataMembers(), compareMvdDigis(), ConvertToRawDigi(), CbmMvdDigitizer::Exec(), and CbmMvdDigitizer::Finish().
|
inline |
Definition at line 100 of file CbmMvdDigi.h.
|
inline |
|
inline |
Modifiers
Definition at line 107 of file CbmMvdDigi.h.
References fCharge.
Referenced by CbmMvdSensorFindHitTask::AddNoiseToDigis(), TEST(), and TEST().
|
inline |
|
inline |
|
inline |
Definition at line 112 of file CbmMvdDigi.h.
References fRefId.
Referenced by CbmMvdReadout::Exec(), CbmMvdClusterfinder::ProcessData(), and TEST().
|
inline |
|
inline |
Definition at line 95 of file CbmMvdDigi.h.
Referenced by TEST().
|
private |
Definition at line 125 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetAddress(), GetDetectorId(), GetPixelX(), GetPixelY(), GetStationNr(), and SetAddress().
|
private |
Definition at line 122 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), and CbmMvdDigi().
|
private |
Definition at line 117 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetAdcCharge(), GetCharge(), and SetCharge().
|
private |
Definition at line 127 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetFlag(), and SetFlag().
|
private |
Definition at line 116 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetTime(), and SetTime().
|
private |
Definition at line 123 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetFrameNumber(), and SetFrameNr().
|
private |
Definition at line 120 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), and GetPixelSizeX().
|
private |
Definition at line 121 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), and GetPixelSizeY().
|
private |
Definition at line 124 of file CbmMvdDigi.h.
Referenced by CbmMvdDigi(), CbmMvdDigi(), CbmMvdDigi(), GetRefId(), and SetRefId().