CbmRoot
|
Interface class to unique address for the MUCH. More...
#include <CbmMuchAddress.h>
Static Public Member Functions | |
static uint32_t | GetAddress (int32_t station=0, int32_t layer=0, int32_t side=0, int32_t module=0, int32_t sector=0, int32_t channel=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 (int32_t address) |
static int32_t | GetStationIndex (int32_t address) |
static int32_t | GetLayerIndex (int32_t address) |
static int32_t | GetLayerSideIndex (int32_t address) |
static int32_t | GetModuleIndex (int32_t address) |
static int32_t | GetSectorIndex (int32_t address) |
static int32_t | GetChannelIndex (int32_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 (CbmMuchAddress, 1) | |
Static Private Attributes | |
static const int32_t | fgkBits [kMuchNofLevels] |
static const int32_t | fgkShift [kMuchNofLevels] |
static const int32_t | fgkMask [kMuchNofLevels] |
Interface class to unique address for the MUCH.
Created as modification of CbmStsAddress class
The CbmMuchAddress interprets and modifies the unique address for the MUCH by the proper bit operation on the address bit field.
The current definition of the bit field for the MUCH is:
3 2 1
Level Bits Max. Elements Shift 10987654321098765432109876543210
System (kMUCH) 4 16 0 0000000000000000000000000000xxxx
Station 3 8 4 0000000000000000000000000xxx0000
Layer 2 4 7 00000000000000000000000xx0000000
LayerSide 1 2 9 0000000000000000000000x000000000
Module 5 32 10 00000000000000000xxxxx0000000000
Sector 8 256 15 000000000xxxxxxxx000000000000000
Channel 9 512 23 xxxxxxxxx00000000000000000000000
Definition at line 55 of file CbmMuchAddress.h.
|
private |
|
static |
Definition at line 82 of file CbmMuchAddress.cxx.
References fgkBits, fgkShift, kMuch, kMuchNofLevels, kMuchSystem, and ToIntegralType().
|
static |
Construct address
station | Station index |
layer | Layer index in station |
side | Side index in layer |
module | Module index within layerside |
sector | Sector index within module |
channel | Channel number |
Definition at line 44 of file CbmMuchAddress.cxx.
References fgkBits, fgkShift, kMuch, kMuchChannel, kMuchLayer, kMuchLayerSide, kMuchModule, kMuchSector, kMuchStation, kMuchSystem, and ToIntegralType().
Referenced by cbm::algo::much::ReadoutConfig::CreateMuchAddress(), CbmMuchUnpackAlgo::CreateMuchAddress(), CbmMcbm2018UnpackerAlgoMuch::CreateMuchDigi(), CbmMuchFindHitsGem::FindClusters(), and CbmMuch::GetDetId().
|
inlinestatic |
Definition at line 110 of file CbmMuchAddress.h.
References GetElementId(), and kMuchChannel.
Referenced by CbmMuchFindHitsGem::FindClusters(), CbmMuchModuleGem::GetPad(), and CbmMuchDigitizeGem::ReadAndRegister().
|
inlinestatic |
Definition at line 112 of file CbmMuchAddress.h.
References fgkBits, and fgkShift.
Referenced by CbmMuchClustering::ClearDigiCharges(), CbmMuchClustering::ClusteringA1(), CbmMuchClustering::ClusteringSL(), CbmMuchFindHitsGem::CreateHits(), CbmMuchDigi::GetDetectorId(), CbmMuchClustering::SetDigiCharges(), CbmClusteringGeometry::SetMuchModuleGeometryRadial(), and CbmClusteringGeometry::SetMuchModuleGeometryRadialFast().
|
inlinestatic |
Get the index of an element
address | Unique element address |
level | Hierarchy level |
Definition at line 97 of file CbmMuchAddress.h.
References fgkMask, fgkShift, and kMuchNofLevels.
Referenced by GetChannelIndex(), CbmMuchPad::GetChannelIndex(), GetLayerIndex(), CbmMuchGeoScheme::GetLayerIndex(), GetLayerSideIndex(), CbmMuchGeoScheme::GetLayerSideIndex(), GetModuleIndex(), GetSectorIndex(), CbmMuchPad::GetSectorIndex(), GetStationIndex(), CbmMuchGeoScheme::GetStationIndex(), and GetSystemIndex().
|
inlinestatic |
Definition at line 106 of file CbmMuchAddress.h.
References GetElementId(), and kMuchLayer.
Referenced by CbmMuchLayer::CbmMuchLayer(), CbmMuchDigitizeGem::ConvertSignalToDigi(), CbmMuchSegmentAuto::Exec(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchGeoScheme::GetLayerByDetId(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchGeoScheme::InitModules(), CbmMuchDigitizerQa::PrintFrontLayerDigis(), CbmMuchDigitizerQa::PrintFrontLayerPoints(), CbmMuch::ProcessHits(), CbmMuchHitFinderQa::PullsQa(), CbmMuchSegmentSector::SegmentModule(), and CbmMuchSegmentAuto::SegmentSector().
|
inlinestatic |
Definition at line 107 of file CbmMuchAddress.h.
References GetElementId(), and kMuchLayerSide.
Referenced by CbmMuchDigitizeGem::ConvertSignalToDigi(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchGeoScheme::GetLayerSideByDetId(), CbmMuchGeoScheme::InitModules(), CbmMuch::ProcessHits(), CbmMuchSegmentSector::SegmentModule(), and CbmMuchSegmentAuto::SegmentSector().
|
inlinestatic |
Definition at line 108 of file CbmMuchAddress.h.
References GetElementId(), and kMuchModule.
Referenced by CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchGeoScheme::GetModuleByDetId(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchGeoScheme::InitModules(), CbmMuch::ProcessHits(), CbmMuchSegmentSector::SegmentModule(), and CbmMuchSegmentAuto::SegmentSector().
|
inlinestatic |
Get the number of bits for a given hierarchy level
level | Requested element level |
Definition at line 85 of file CbmMuchAddress.h.
References fgkBits, and kMuchNofLevels.
|
inlinestatic |
Get the number of hierarchy levels For use in macros which do not include this header file.
Definition at line 78 of file CbmMuchAddress.h.
References kMuchNofLevels.
|
inlinestaticinherited |
Number of bits for system Id in the address field
Definition at line 40 of file CbmAddress.h.
References CbmAddress::fgkSystemBits.
Referenced by TEST().
|
inlinestatic |
Definition at line 109 of file CbmMuchAddress.h.
References GetElementId(), and kMuchSector.
Referenced by CbmMuchFindHitsGem::FindClusters(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchModuleGem::GetSector(), CbmMuchSector::GetSectorIndex(), and CbmMuchDigitizeGem::ReadAndRegister().
|
inlinestatic |
Definition at line 105 of file CbmMuchAddress.h.
References GetElementId(), and kMuchStation.
Referenced by CbmMuchLayer::CbmMuchLayer(), CbmMuchDigitizerQa::CheckConsistency(), CbmMuchDigitizeGem::ConvertSignalToDigi(), CbmMuchSegmentAuto::Exec(), CbmMuchTransportQa::Exec(), CbmMuchDigitizerQa::FillTotalPadsHistos(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchGeoScheme::GetGemModules(), CbmMuchGeoScheme::GetModules(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchSegmentManual::GetPadMaxSize(), CbmMuchSegmentManual::GetRegionIndex(), CbmMuchSegmentManual::GetSectorMaxSize(), CbmMuchGeoScheme::GetStationByDetId(), CbmMuchGeoScheme::InitModules(), CbmMuchSegmentManual::IsIncompleteSector(), CbmMuchDigitizerQa::OccupancyQa(), CbmMuchDigitizerQa::PrintFrontLayerDigis(), CbmMuchDigitizerQa::PrintFrontLayerPoints(), CbmMuch::ProcessHits(), CbmMuchDigitizerQa::ProcessMCPoints(), CbmMuchHitFinderQa::PullsQa(), CbmMuchSegmentManual::SegmentModule(), CbmMuchSegmentSector::SegmentModule(), CbmMuchSegmentAuto::SegmentSector(), CbmMuchSegmentManual::SegmentSector(), CbmMuchSegmentManual::ShouldSegment(), CbmMuchSegmentAuto::ShouldSegmentByX(), CbmMuchSegmentAuto::ShouldSegmentByY(), and CbmMuchHitFinderQa::StatisticsQa().
|
inlinestaticinherited |
Get the system Id from the address
address | Unique address |
Definition at line 47 of file CbmAddress.h.
References CbmAddress::fgkSystemBits.
Referenced by CbmRecoSts::ProcessData(), CbmRecoStsPixel::ProcessData(), and TEST().
|
inlinestatic |
Derivatives
Definition at line 104 of file CbmMuchAddress.h.
References GetElementId(), and kMuchSystem.
Referenced by CbmMuch::ProcessHits().
|
static |
Print information on the bit field
Definition at line 101 of file CbmMuchAddress.cxx.
References fgkBits, fgkMask, and kMuchNofLevels.
|
static |
Set the index of an element leaving the other element levels untouched
address | Unique element address |
level | Hierarchy level |
newId | New element index |
Definition at line 112 of file CbmMuchAddress.cxx.
References fgkBits, fgkMask, fgkShift, and kMuchNofLevels.
Referenced by CbmMuchSectorRadial::AddPads(), CbmMuchSectorRectangular::AddPads(), cbm::algo::much::ReadoutConfig::CreateMuchAddress(), and CbmMuchUnpackAlgo::CreateMuchAddress().
|
staticprivate |
Number of bits for the different levels
Definition at line 16 of file CbmMuchAddress.h.
Referenced by GetAddress(), GetAddress(), GetElementAddress(), GetNofBits(), Print(), and SetElementId().
|
staticprivate |
Bit masks for the different levels
Definition at line 37 of file CbmMuchAddress.h.
Referenced by GetElementId(), Print(), and SetElementId().
|
staticprivate |
Bit shifts for the different levels
Definition at line 26 of file CbmMuchAddress.h.
Referenced by GetAddress(), GetAddress(), GetElementAddress(), GetElementId(), and SetElementId().
|
staticprotectedinherited |
Number of bits for system Id in the address field
Definition at line 52 of file CbmAddress.h.
Referenced by CbmAddress::GetNofSystemBits(), CbmAddress::GetSystemId(), and CbmTofAddress::GetUniqueAddress().