18#ifndef CbmMuchGeoScheme_H
19#define CbmMuchGeoScheme_H 1
24#include <RtypesCore.h>
93 Double_t
GetSizeX(
const TString& path);
94 Double_t
GetSizeY(
const TString& path);
95 Double_t
GetSizeZ(
const TString& path);
96 Double_t
GetX(
const TString& path);
97 Double_t
GetY(
const TString& path);
98 Double_t
GetZ(
const TString& path);
120 void Init(TObjArray* stations, Int_t flag);
121 void Init(TString digiFileName, Int_t flag);
128 std::vector<CbmMuchModule*>
GetModules()
const;
130 std::vector<CbmMuchModule*>
GetModules(Int_t iStation)
const;
131 std::vector<CbmMuchLayerSide*>
GetLayerSides(Int_t iStation)
const;
135 void StationNode(TGeoNode* MuchObjNode, TString MuchObjPath);
136 void LayerNode(TGeoNode* StNode, Int_t iStation, TString StPath);
137 void ModuleNode(TGeoNode* layerNode, Int_t iStation, Int_t iLayer, TString layerPath);
138 void ActiveModuleNode(TGeoNode* moduleNode, Int_t iStation, Int_t iLayer, Int_t iModule, TString modulePath);
146 Int_t
Intersect(Float_t
x, Float_t
y, Float_t dx, Float_t dy, Float_t r);
167 std::vector<std::vector<CbmMuchLayerSide*>>
fSides;
@ kMuchLayerSide
LayerSide.
static int32_t GetElementId(uint32_t address, int32_t level)
Int_t GetLayerSideNr(Int_t detId) const
std::vector< CbmMuchLayerSide * > GetLayerSides(Int_t iStation) const
Int_t fLayer
StationTypeID, 1..3.
std::vector< CbmMuchModuleGem * > GetGemModules() const
Double_t GetModuleY(const TString &path)
void ExtractGeoParameter(TGeoNode *muchNode, const char *volumeName)
Double_t GetSpacerLy() const
Int_t fActive
LayerID within station, 1..4.
CbmMuchLayer * GetLayerByDetId(Int_t detId) const
Double_t GetSpacerLx() const
Double_t GetZ(const TString &path)
Double_t GetActiveLx() const
TGeoHMatrix * fGlobalMatrix
Global center of volume.
Int_t GetNAbsorbers() const
std::map< Int_t, Int_t > fMapSides
Double_t GetModuleBl1(const TString &path)
Double_t GetModuleH1(const TString &path)
std::vector< std::vector< CbmMuchModule * > > fModules
void StationNode(TGeoNode *MuchObjNode, TString MuchObjPath)
CbmMuchStation * GetStationByDetId(Int_t detId) const
std::vector< std::vector< CbmMuchLayerSide * > > fSides
void ActiveModuleNode(TGeoNode *moduleNode, Int_t iStation, Int_t iLayer, Int_t iModule, TString modulePath)
Double_t GetSizeY(const TString &path)
Double_t GetLayersDz(Int_t st) const
Double_t GetModuleTl1(const TString &path)
CbmMuchStation * GetStation(Int_t iStation) const
std::vector< CbmMuchModule * > GetModules() const
void CreateClusterArrays()
Double_t GetSpacerPhi() const
static CbmMuchGeoScheme * Instance()
void Init(TObjArray *stations, Int_t flag)
static CbmMuchGeoScheme * fInstance
TGeoVolume * fCurrentVolume
Double_t GetActiveLz() const
static Int_t GetLayerSideIndex(Int_t address)
Double_t GetSpacerR() const
void NavigateModule(const TString &path)
Double_t GetY(const TString &path)
Double_t GetModulePhi(const TString &path)
Char_t GetAbsorberMat(Int_t i) const
static Int_t GetStationIndex(Int_t address)
TObjArray * GetStations() const
void ModuleNode(TGeoNode *layerNode, Int_t iStation, Int_t iLayer, TString layerPath)
static Bool_t fModulesInitialized
void ClearClusterArrays()
CbmMuchLayerSide * GetLayerSideByDetId(Int_t detId) const
Double_t GetMuchCaveZ0() const
CbmMuchLayerSide * GetLayerSide(Int_t iStation, Int_t iLayer, Bool_t iSide) const
CbmMuchLayer * GetLayer(Int_t iStation, Int_t iLayer) const
Double_t GetModuleX(const TString &path)
Double_t fAcceptanceTanMin
TGeoCone * GetMuchCave() const
Double_t GetSizeX(const TString &path)
Int_t GetNStations() const
TArrayI fNSectorsPerLayer
void NavigateTo(const TString &path)
CbmMuchLayerSide * muchLySd
CbmMuchGeoScheme(const CbmMuchGeoScheme &)
Double_t GetModuleDZ(const TString &path)
static Bool_t fInitialized
CbmMuchGeoScheme & operator=(const CbmMuchGeoScheme &)
Double_t GetX(const TString &path)
Int_t fGeoID
ModuleCopyID with module type.
CbmMuchModule * GetModuleByDetId(Int_t detId) const
Double_t GetSizeZ(const TString &path)
Double_t fAcceptanceTanMax
CbmMuchModule * GetModule(Int_t iStation, Int_t iLayer, Bool_t iSide, Int_t iModule) const
TGeoBBox * fVolumeBoxShape
static Int_t GetLayerIndex(Int_t address)
void LayerNode(TGeoNode *StNode, Int_t iStation, TString StPath)
Double_t GetAbsorberZ0(Int_t i)
Double_t GetModuleZ(const TString &path)
ClassDef(CbmMuchGeoScheme, 1)
TGeoTrap * fVolumeTrapShape
TObjArray * GetAbsorbers() const
Int_t Intersect(Float_t x, Float_t y, Float_t dx, Float_t dy, Float_t r)
Double_t GetActiveLy() const