CbmRoot
|
Interface class to unique address for the MUCH. More...
#include <CbmMuchAddress.h>
Static Public Member Functions | |
static UInt_t | GetAddress (Int_t station=0, Int_t layer=0, Int_t side=0, Int_t module=0, Int_t sector=0, Int_t channel=0) |
static UInt_t | GetAddress (Int_t *elementIds) |
static Int_t | GetNofLevels () |
static Int_t | GetNofBits (Int_t level) |
static Int_t | GetElementId (UInt_t address, Int_t level) |
static Int_t | GetSystemIndex (Int_t address) |
static Int_t | GetStationIndex (Int_t address) |
static Int_t | GetLayerIndex (Int_t address) |
static Int_t | GetLayerSideIndex (Int_t address) |
static Int_t | GetModuleIndex (Int_t address) |
static Int_t | GetSectorIndex (Int_t address) |
static Int_t | GetChannelIndex (Int_t address) |
static Int_t | GetElementAddress (Int_t address, Int_t level) |
static void | Print () |
static UInt_t | SetElementId (UInt_t address, Int_t level, Int_t newId) |
static Int_t | GetNofSystemBits () |
static Int_t | GetSystemId (UInt_t address) |
Static Protected Attributes | |
static const Int_t | fgkSystemBits = 4 |
Private Member Functions | |
ClassDef (CbmMuchAddress, 1) | |
Static Private Attributes | |
static const Int_t | fgkBits [kMuchNofLevels] |
static const Int_t | fgkShift [kMuchNofLevels] |
static const Int_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 49 of file CbmMuchAddress.h.
|
private |
|
static |
Definition at line 92 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 43 of file CbmMuchAddress.cxx.
References fgkBits, fgkShift, kMuch, kMuchChannel, kMuchLayer, kMuchLayerSide, kMuchModule, kMuchSector, kMuchStation, kMuchSystem, and ToIntegralType().
Referenced by CbmMcbm2018UnpackerAlgoMuch::CreateMuchDigi(), CbmMuchFindHitsGem::FindClusters(), and CbmMuch::GetDetId().
|
inlinestatic |
Definition at line 118 of file CbmMuchAddress.h.
References GetElementId(), and kMuchChannel.
Referenced by CbmMuchModuleGem::GetPad(), and CbmMuchDigitizeGem::ReadAndRegister().
|
inlinestatic |
Definition at line 122 of file CbmMuchAddress.h.
References fgkBits, and fgkShift.
Referenced by CbmMuchClustering::ClearDigiCharges(), CbmMuchClustering::ClusteringA1(), CbmMuchClustering::ClusteringSL(), CbmMuchFindHitsGem::CreateHits(), CbmMuchDigi::GetDetectorId(), CbmMuchFindVectors::GetHits(), CbmMuchFindVectorsGem::GetHits(), CbmMuchClustering::SetDigiCharges(), CbmClusteringGeometry::SetMuchModuleGeometryRadial(), and CbmClusteringGeometry::SetMuchModuleGeometryRadialFast().
|
inlinestatic |
Get the index of an element
address | Unique element address |
level | Hierarchy level |
Definition at line 94 of file CbmMuchAddress.h.
References fgkMask, fgkShift, and kMuchNofLevels.
Referenced by CbmMuchPad::GetChannelIndex(), GetChannelIndex(), CbmMuchGeoScheme::GetLayerIndex(), GetLayerIndex(), CbmMuchGeoScheme::GetLayerSideIndex(), GetLayerSideIndex(), GetModuleIndex(), CbmMuchPad::GetSectorIndex(), GetSectorIndex(), CbmMuchGeoScheme::GetStationIndex(), GetStationIndex(), and GetSystemIndex().
|
inlinestatic |
Definition at line 106 of file CbmMuchAddress.h.
References GetElementId(), and kMuchLayer.
Referenced by CbmMuchLayer::CbmMuchLayer(), CbmMuchDigitizeGem::ConvertSignalToDigi(), CbmMuchHitFinderQa::DigitizerQa(), CbmMuchDigitizerQa::DigitizerQa(), CbmMuchHitFinderQa::Exec(), CbmMuchSegmentAuto::Exec(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchFindVectors::GetHits(), CbmMuchFindVectorsGem::GetHits(), CbmMuchGeoScheme::GetLayerByDetId(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchGeoScheme::InitModules(), CbmMuchDigitizerQa::PrintFrontLayerDigis(), CbmMuchDigitizerQa::PrintFrontLayerPoints(), CbmMuch::ProcessHits(), CbmMuchHitFinderQa::PullsQa(), CbmMuchSegmentSector::SegmentModule(), and CbmMuchSegmentAuto::SegmentSector().
|
inlinestatic |
Definition at line 109 of file CbmMuchAddress.h.
References GetElementId(), and kMuchLayerSide.
Referenced by CbmMuchDigitizeGem::ConvertSignalToDigi(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchFindVectors::GetHits(), CbmMuchFindVectorsGem::GetHits(), CbmMuchGeoScheme::GetLayerSideByDetId(), CbmMuchGeoScheme::InitModules(), CbmMuch::ProcessHits(), CbmMuchSegmentSector::SegmentModule(), and CbmMuchSegmentAuto::SegmentSector().
|
inlinestatic |
Definition at line 112 of file CbmMuchAddress.h.
References GetElementId(), and kMuchModule.
Referenced by CbmMuchFindVectorsGem::CheckParams(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchFindVectorsGem::GetHits(), CbmMuchGeoScheme::GetModuleByDetId(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchGeoScheme::InitModules(), CbmMuchFindVectorsGem::MakeVectors(), 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 83 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 76 of file CbmMuchAddress.h.
References kMuchNofLevels.
|
inlinestaticinherited |
Number of bits for system Id in the address field
Definition at line 36 of file CbmAddress.h.
References CbmAddress::fgkSystemBits.
Referenced by TEST().
|
inlinestatic |
Definition at line 115 of file CbmMuchAddress.h.
References GetElementId(), and kMuchSector.
Referenced by CbmMuchSector::GetPadByChannelIndex(), CbmMuchModuleGem::GetSector(), CbmMuchSector::GetSectorIndex(), and CbmMuchDigitizeGem::ReadAndRegister().
|
inlinestatic |
Definition at line 103 of file CbmMuchAddress.h.
References GetElementId(), and kMuchStation.
Referenced by CbmMuchLayer::CbmMuchLayer(), CbmMuchDigitizeGem::ConvertSignalToDigi(), CbmMuchHitFinderQa::DigitizerQa(), CbmMuchDigitizerQa::DigitizerQa(), CbmMuchHitFinderQa::Exec(), CbmMuchSegmentAuto::Exec(), CbmMuchTransportQa::Exec(), CbmMuchDigitizerQa::FillTotalPadsHistos(), CbmMuchFindHitsGem::FindClusters(), CbmMuch::GetDetId(), CbmMuchGeoScheme::GetGemModules(), CbmMuchFindVectors::GetHits(), CbmMuchFindVectorsGem::GetHits(), CbmMuchGeoScheme::GetModules(), CbmMuchSector::GetPadByChannelIndex(), CbmMuchSegmentManual::GetPadMaxSize(), CbmMuchSegmentManual::GetRegionIndex(), CbmMuchSegmentManual::GetSectorMaxSize(), CbmMuchGeoScheme::GetStationByDetId(), CbmMuchHitFinderQa::Init(), CbmMuchMergeVectorsQA::Init(), CbmMuchFindVectorsQA::Init(), CbmMuchMergeVectors::Init(), CbmMuchFindVectors::Init(), CbmMuchFindVectorsGem::Init(), CbmMuchGeoScheme::InitModules(), CbmMuchSegmentManual::IsIncompleteSector(), CbmMuchHitFinderQa::OccupancyQa(), CbmMuchDigitizerQa::OccupancyQa(), CbmMuchDigitizerQa::PrintFrontLayerDigis(), CbmMuchDigitizerQa::PrintFrontLayerPoints(), CbmMuch::ProcessHits(), CbmMuchHitFinderQa::PullsQa(), CbmMuchSegmentSector::SegmentModule(), CbmMuchSegmentManual::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 43 of file CbmAddress.h.
References CbmAddress::fgkSystemBits.
Referenced by CbmRecoSts::ProcessData(), and TEST().
|
inlinestatic |
Derivatives
Definition at line 100 of file CbmMuchAddress.h.
References GetElementId(), and kMuchSystem.
Referenced by CbmMuch::ProcessHits().
|
static |
Print information on the bit field
Definition at line 110 of file CbmMuchAddress.cxx.
References fgkBits, fgkMask, and kMuchNofLevels.
|
inlinestatic |
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 140 of file CbmMuchAddress.h.
References fgkBits, fgkMask, fgkShift, and kMuchNofLevels.
Referenced by CbmMuchSectorRadial::AddPads(), and CbmMuchSectorRectangular::AddPads().
|
staticprivate |
Number of bits for the different levels
Definition at line 153 of file CbmMuchAddress.h.
Referenced by GetAddress(), GetElementAddress(), GetNofBits(), Print(), and SetElementId().
|
staticprivate |
Bit masks for the different levels
Definition at line 159 of file CbmMuchAddress.h.
Referenced by GetElementId(), Print(), and SetElementId().
|
staticprivate |
Bit shifts for the different levels
Definition at line 156 of file CbmMuchAddress.h.
Referenced by GetAddress(), GetElementAddress(), GetElementId(), and SetElementId().
|
staticprotectedinherited |
Number of bits for system Id in the address field
Definition at line 50 of file CbmAddress.h.
Referenced by CbmAddress::GetNofSystemBits(), CbmAddress::GetSystemId(), and CbmTofAddress::GetUniqueAddress().