|
CbmRoot
|
Functions to encode or decode the address field of MVD data. More...
#include <CbmMvdAddress.h>
Static Public Member Functions | |
| static uint32_t | GetAddress (int32_t station=0, int32_t sideUD=0, int32_t sideLR=0, int32_t sideTB=0, int32_t ladder=0, int32_t sensor=0, int32_t sensorY=0, int32_t sensorX=0) |
| static uint32_t | GetAddress (int32_t *elementIds) |
| static int32_t | GetNofLevels () |
| static int32_t | GetNofBits (int32_t level) |
| static int32_t | GetElementId (uint32_t address, int32_t level) |
| static int32_t | GetSystemIndex (uint32_t address) |
| static int32_t | GetStationIndex (uint32_t address) |
| static int32_t | GetSideUDIndex (uint32_t address) |
| static int32_t | GetSideLRIndex (uint32_t address) |
| static int32_t | GetSideTBIndex (uint32_t address) |
| static int32_t | GetLadderIndex (uint32_t address) |
| static int32_t | GetSensorIndex (uint32_t address) |
| static int32_t | GetSensorYIndex (uint32_t address) |
| static int32_t | GetSensorXIndex (uint32_t address) |
| static uint32_t | GetDetectorId (uint32_t address) |
| Provides a unit sensor address, masking information on the pixels (bits 13-31) | |
| static uint32_t | GetAddressFromSensorNrAndPixelXY (int32_t sensorNr, int32_t sensorY, int32_t sensorX) |
| static int32_t | GetSensorNrFromAddress (uint32_t address) |
| static int32_t | GetElementAddress (int32_t address, int32_t level) |
| static void | Print () |
| static uint32_t | SetElementId (uint32_t address, int32_t level, int32_t newId) |
| static int32_t | GetNofSystemBits () |
| static int32_t | GetSystemId (uint32_t address) |
Static Protected Attributes | |
| static const int32_t | fgkSystemBits = 4 |
Private Member Functions | |
| ClassDef (CbmMvdAddress, 1) | |
Static Private Attributes | |
| static constexpr int32_t | fgkBits [kMvdNofLevels] |
| static const int32_t | fgkShift [kMvdNofLevels] |
| static const int32_t | fgkMask [kMvdNofLevels] |
| static constexpr int32_t | fgkBitsSensorNr |
| static const int32_t | fgkShiftSensorNr = fgkShift[kMvdStation] |
| static const int32_t | fgkMaskSensorNr = (1 << fgkBitsSensorNr) - 1 |
Functions to encode or decode the address field of MVD data.
Namespace CbmMvdAddress
The current definition (version 1) of the address bit field for the MVD is:
Level Bits Max. Elements Bit Position System (kMVD) 4 16 0 - 3 // for system id Station 2 4 4 - 5 // for station id SideUD 1 2 6 // for upstream/downstream SideLR 1 2 7 // for left right SideTB 1 2 8 // for top bottom Ladder 2 4 9 - 10 // Ladder no Sensor 2 4 11 - 12 // sensor id SensorY 9 512 13 - 21 // Sensor Y (column) SensorX 10 1024 22 - 31 // sensor X (row)
07/2025: As a way to support legacy conventions in simulation code using CbmMvdDigi, an MVD-system wide consecutive SensorNr can be used instead of the combination of Station + SideUD + SideLR + SideTB + Ladder + Sensor => This has exactly the same bit-width of 9 bits! Level Bits Max. Elements Bit Position System (kMVD) 4 16 0 - 3 // for system id SensorNr 9 512 4 - 12 // for sensor nr (wrongly named in some places station id) SensorY 9 512 13 - 21 // Sensor Y (column) SensorX 10 1024 22 - 31 // sensor X (row)
Interface class to unique address for the MVD
Definition at line 68 of file CbmMvdAddress.h.
|
private |
|
static |
Definition at line 86 of file CbmMvdAddress.cxx.
References fgkBits, fgkShift, kMvd, kMvdNofLevels, kMvdSystem, and ToIntegralType().
|
static |
Construct address
Definition at line 44 of file CbmMvdAddress.cxx.
References fgkBits, fgkShift, kMvd, kMvdLadder, kMvdSensor, kMvdSensorX, kMvdSensorY, kMvdSideLR, kMvdSideTB, kMvdSideUD, kMvdStation, kMvdSystem, and ToIntegralType().
Referenced by CbmMvdRawDigi::CbmMvdRawDigi(), cbm::algo::mvd::UnpackMS::ProcessData(), and CbmMvdRawDigi::SetAddress().
|
static |
Definition at line 100 of file CbmMvdAddress.cxx.
References fgkBits, fgkBitsSensorNr, fgkShift, fgkShiftSensorNr, kMvd, kMvdSensorX, kMvdSensorY, kMvdSystem, and ToIntegralType().
Referenced by CbmMvdDetector::AddSensor(), and CbmMvdSensorHitfinderTask::CreateHit().
|
inlinestatic |
Provides a unit sensor address, masking information on the pixels (bits 13-31)
| address | An MVD address |
Definition at line 107 of file CbmMvdAddress.h.
References fgkBits, fgkBitsSensorNr, and kMvdSystem.
Referenced by CbmMvdCluster::GetDetectorId(), and CbmMvdDigi::GetDetectorId().
|
inlinestatic |
Returns the raw sub-address up to (and including) the given level
Definition at line 121 of file CbmMvdAddress.h.
|
inlinestatic |
Definition at line 85 of file CbmMvdAddress.h.
References fgkMask, fgkShift, and kMvdNofLevels.
Referenced by GetLadderIndex(), GetSensorIndex(), GetSensorXIndex(), GetSensorYIndex(), GetSideLRIndex(), GetSideTBIndex(), GetSideUDIndex(), GetStationIndex(), and GetSystemIndex().
|
inlinestatic |
Definition at line 97 of file CbmMvdAddress.h.
References GetElementId(), and kMvdLadder.
Referenced by CbmMvdRawDigi::GetLadder().
|
inlinestatic |
Definition at line 79 of file CbmMvdAddress.h.
References fgkBits, and kMvdNofLevels.
|
inlinestatic |
Definition at line 77 of file CbmMvdAddress.h.
References kMvdNofLevels.
|
inlinestaticinherited |
Number of bits for system Id in the address field
Definition at line 40 of file CbmAddress.h.
References fgkSystemBits.
Referenced by TEST().
|
inlinestatic |
Definition at line 98 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSensor.
Referenced by CbmMvdRawDigi::GetSensor().
|
inlinestatic |
Definition at line 114 of file CbmMvdAddress.h.
References fgkMaskSensorNr, and fgkShiftSensorNr.
Referenced by CbmMvdCluster::GetSensorNr(), CbmMvdPoint::GetSensorNr(), CbmMvdDigi::GetStationNr(), and cbm::algo::mvd::RecoSetupUnit::ImplGetTrackingStationId().
|
inlinestatic |
Definition at line 100 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSensorX.
Referenced by CbmMvdHit::GetIndexCentralX(), CbmMvdDigi::GetPixelX(), and CbmMvdRawDigi::GetSensorX().
|
inlinestatic |
Definition at line 99 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSensorY.
Referenced by CbmMvdHit::GetIndexCentralY(), CbmMvdDigi::GetPixelY(), and CbmMvdRawDigi::GetSensorY().
|
inlinestatic |
Definition at line 95 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSideLR.
Referenced by CbmMvdRawDigi::GetSideLR().
|
inlinestatic |
Definition at line 96 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSideTB.
Referenced by CbmMvdRawDigi::GetSideTB().
|
inlinestatic |
Definition at line 94 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSideUD.
Referenced by CbmMvdRawDigi::GetSideUD().
|
inlinestatic |
Definition at line 93 of file CbmMvdAddress.h.
References GetElementId(), and kMvdStation.
Referenced by CbmMvdRawDigi::GetStation().
|
inlinestaticinherited |
Get the system Id from the address
| address | Unique address |
Definition at line 47 of file CbmAddress.h.
References fgkSystemBits.
Referenced by cbm::GeoNodeMap::ApplyMask(), cbm::GeoNodeMap::GetVolumeProperties(), CbmRecoSts::ProcessData(), CbmRecoStsPixel::ProcessData(), cbm::GeoNodeMap::ReadGeoVolume(), and TEST().
|
inlinestatic |
Definition at line 92 of file CbmMvdAddress.h.
References GetElementId(), and kMvdSystem.
Referenced by CbmMvdPoint::GetSystemId().
|
static |
Definition at line 119 of file CbmMvdAddress.cxx.
References fgkBits, fgkMask, and kMvdNofLevels.
|
static |
Definition at line 128 of file CbmMvdAddress.cxx.
References fgkBits, fgkMask, fgkShift, and kMvdNofLevels.
|
staticconstexprprivate |
Definition at line 132 of file CbmMvdAddress.h.
Referenced by GetAddress(), GetAddress(), GetAddressFromSensorNrAndPixelXY(), GetDetectorId(), GetElementAddress(), GetNofBits(), Print(), and SetElementId().
|
staticconstexprprivate |
Definition at line 149 of file CbmMvdAddress.h.
Referenced by GetAddressFromSensorNrAndPixelXY(), and GetDetectorId().
|
staticprivate |
Definition at line 28 of file CbmMvdAddress.h.
Referenced by GetElementId(), Print(), and SetElementId().
|
staticprivate |
Definition at line 152 of file CbmMvdAddress.h.
Referenced by GetSensorNrFromAddress().
|
staticprivate |
Definition at line 14 of file CbmMvdAddress.h.
Referenced by GetAddress(), GetAddress(), GetAddressFromSensorNrAndPixelXY(), GetElementAddress(), GetElementId(), and SetElementId().
|
staticprivate |
Definition at line 151 of file CbmMvdAddress.h.
Referenced by GetAddressFromSensorNrAndPixelXY(), and GetSensorNrFromAddress().
|
staticprotectedinherited |
Number of bits for system Id in the address field
Definition at line 52 of file CbmAddress.h.
Referenced by GetNofSystemBits(), GetSystemId(), and CbmTofAddress::GetUniqueAddress().