CbmRoot
Loading...
Searching...
No Matches
CbmMvdGeoHandler.h
Go to the documentation of this file.
1/* Copyright (C) 2014-2017 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt, Frankfurt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Philipp Sitzmann [committer] */
4
12
13#ifndef CbmMvdGeoHandler_H_
14#define CbmMvdGeoHandler_H_ 1
15
16#include <Rtypes.h> // for ClassDef
17#include <RtypesCore.h> // for Int_t, Double_t, Bool_t, kFALSE, UInt_t
18#include <TObject.h> // for TObject
19#include <TString.h> // for TString
20
21class CbmMvdDetector;
23class TBuffer;
24class TClass;
25class TGeoBBox;
26class TGeoHMatrix;
27class TGeoVolume;
28class TMemberInspector;
29
30enum class CbmMvdSensorTyp;
31
32#include <map> // for map
33
46
47
48class CbmMvdGeoHandler : public TObject {
49public:
54
59
60 void Init(Bool_t isSimulation = kFALSE, Int_t mcbmFlag = 0);
61
66
70 Int_t GetSensorAddress(const TString& path);
71
72 Double_t GetSizeX(const TString& path);
73 Double_t GetSizeY(const TString& path);
74 Double_t GetSizeZ(const TString& path);
75 Double_t GetX(const TString& path);
76 Double_t GetY(const TString& path);
77 Double_t GetZ(const TString& path);
78 Int_t GetStation(const TString& path);
79 void Fill();
80 std::map<Int_t, Int_t> GetMap() { return fStationMap; };
81 void PrintGeoParameter();
82 Int_t GetIDfromPath(TString path);
83
85
86
87private:
88 void NavigateTo(const TString& sensor);
89 void GetMother();
90 //void GetMother(Int_t mcbmFlag);
91 void GetGeometryTyp();
92 void FillParameter();
93 void FillDetector();
94 void FillStationMap();
95
96
98
101
102 std::map<Int_t, Int_t> fStationMap; // maps: fVolId (Geom) -> global sensorNr
103
105
107 TGeoVolume* fCurrentVolume;
108 TGeoBBox* fVolumeShape;
109 Double_t fGlobal[3];
110 TGeoHMatrix* fGlobalMatrix;
115 TString fMother;
119
120 Double_t fWidth;
121 Double_t fHeight;
123 Double_t fBeamwidth;
124 Double_t fBeamheight;
125 Double_t fZThickness;
126 Double_t fXres;
127 Double_t fYres;
128
131 TString fSectorName;
134 TString fSensorName;
135 TString fnodeName;
136
139
140 ClassDef(CbmMvdGeoHandler, 5)
141};
142
143#endif //CbmMvdGeoHandler_H
CbmMvdGeoTyp
@ scripted
@ ThreeStation
@ TwoStation
@ Default
@ FourStationShift
@ MiniCbm
@ beamtest
@ FourStation
@ v25a_mcbm
CbmMvdSensorTyp
Definition CbmMvdHelper.h:8
int Int_t
bool Bool_t
void Init(Bool_t isSimulation=kFALSE, Int_t mcbmFlag=0)
CbmMvdGeoHandler operator=(const CbmMvdGeoHandler &)
~CbmMvdGeoHandler()
Destructor.
CbmMvdGeoHandler()
Constructor.
CbmMvdGeoHandler(const CbmMvdGeoHandler &)
TGeoHMatrix * fGlobalMatrix
Global center of volume.
std::map< Int_t, Int_t > fStationMap
Double_t GetZ(const TString &path)
Double_t GetSizeZ(const TString &path)
TString fMother
StationTypeID, 1..3.
Int_t GetIDfromPath(TString path)
Double_t GetSizeY(const TString &path)
void SetSensorTyp(CbmMvdSensorTyp typ)
std::map< Int_t, Int_t > GetMap()
Int_t GetStation(const TString &path)
CbmMvdSensorTyp fSensorTyp
Double_t GetSizeX(const TString &path)
Int_t GetSensorAddress()
Return module address calculated based on the current node in the TGeoManager.
Double_t GetY(const TString &path)
void NavigateTo(const TString &sensor)
CbmMvdDetector * fDetector
Double_t GetX(const TString &path)
TGeoVolume * fCurrentVolume
CbmMvdStationPar * fStationPar