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
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
45
46
47class CbmMvdGeoHandler : public TObject {
48public:
53
58
59 void Init(Bool_t isSimulation = kFALSE);
60
64 Int_t GetSensorAddress();
65
69 Int_t GetSensorAddress(const TString& path);
70
71 Double_t GetSizeX(const TString& path);
72 Double_t GetSizeY(const TString& path);
73 Double_t GetSizeZ(const TString& path);
74 Double_t GetX(const TString& path);
75 Double_t GetY(const TString& path);
76 Double_t GetZ(const TString& path);
77 Int_t GetStation(const TString& path);
78 void Fill();
79 std::map<Int_t, Int_t> GetMap() { return fStationMap; };
80 void PrintGeoParameter();
81 Int_t GetIDfromPath(TString path);
82
84
85
86private:
87 void NavigateTo(const TString& sensor);
88 void GetPipe();
89 void GetGeometryTyp();
90 void FillParameter();
91 void FillDetector();
92 void FillStationMap();
93
94
96
99
100 std::map<Int_t, Int_t> fStationMap;
101
103
105 TGeoVolume* fCurrentVolume;
106 TGeoBBox* fVolumeShape;
107 Double_t fGlobal[3];
108 TGeoHMatrix* fGlobalMatrix;
109 Int_t fLayerId;
110 Int_t fModuleId;
112 Int_t fStation;
113 TString fMother;
115 Int_t fVolId;
117
118 Double_t fWidth;
119 Double_t fHeight;
121 Double_t fBeamwidth;
122 Double_t fBeamheight;
123 Double_t fZThickness;
124 Double_t fXres;
125 Double_t fYres;
126
129 TString fSectorName;
132 TString fSensorName;
133 TString fnodeName;
134
137
138 ClassDef(CbmMvdGeoHandler, 5)
139};
140
141#endif //CbmMvdGeoHandler_H
CbmMvdGeoTyp
@ scripted
@ ThreeStation
@ TwoStation
@ Default
@ FourStationShift
@ MiniCbm
@ beamtest
@ FourStation
CbmMvdSensorTyp
Definition CbmMvdHelper.h:8
CbmMvdGeoHandler operator=(const CbmMvdGeoHandler &)
~CbmMvdGeoHandler()
Destructor.
CbmMvdGeoHandler()
Constructor.
void Init(Bool_t isSimulation=kFALSE)
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