CbmRoot
CbmMuchStation.h
Go to the documentation of this file.
1 
12 #ifndef CBMMUCHSTATION_H
13 #define CBMMUCHSTATION_H 1
14 
15 #include <Rtypes.h> // for THashConsistencyHolder, ClassDef
16 #include <RtypesCore.h> // for Double_t, Int_t, Bool_t, Double32_t
17 #include <TObjArray.h> // for TObjArray
18 #include <TObject.h> // for TObject
19 
20 #include "CbmMuchLayer.h" // for CbmMuchLayer
21 
22 class CbmMuchStation : public TObject {
23 public:
26 
27 
32  CbmMuchStation(Int_t iStation, Double_t z);
33 
34 
36  virtual ~CbmMuchStation();
37 
39  void SetRmin(Double_t rMin) { fRmin = rMin; }
40  void SetRmax(Double_t rMax) { fRmax = rMax; }
41  void SetModuleDesign(Bool_t on) { fModuleDesign = on; }
42  void SetTubeRmin(Double_t rMin) { fTubeRmin = rMin; }
43  void SetTubeRmax(Double_t rMax) { fTubeRmax = rMax; }
44  void SetTubeZ(Double_t z) { fTubeZ = z; }
45 
46 
48  Int_t GetDetectorId() const { return fDetectorId; }
49  Double_t GetZ() const { return fZ; }
50  Int_t GetNLayers() const { return fLayers.GetEntriesFast(); }
51  Double_t GetRmin() const { return fRmin; }
52  Double_t GetRmax() const { return fRmax; }
53  Double_t GetTubeRmin() const { return fTubeRmin; }
54  Double_t GetTubeRmax() const { return fTubeRmax; }
55  Double_t GetTubeZ() const { return fTubeZ; }
56  Bool_t IsModuleDesign() const { return fModuleDesign; }
57 
58  CbmMuchLayer* GetLayer(Int_t iLayer) const {
59  return (CbmMuchLayer*) fLayers.At(iLayer);
60  }
61 
63  void AddLayer(CbmMuchLayer* layer);
64 
65  /*
66  * Automatic calculation of the half-thickness of the layer as
67  * a maximum distance to layer module edges
68  */
69  Double_t GetTubeDz() const;
70 
71 protected:
72  Int_t fDetectorId; // Unique detector ID
73  Double32_t fZ; // z position of station center (midplane) [cm] in global cs
74  TObjArray fLayers; // Array of CbmMuchLayers
75  Double_t fRmin; // Minimum radius of the station acceptance [cm]
76  Double_t fRmax; // Maximum radius of the station acceptance [cm]
77  Bool_t
78  fModuleDesign; // 1 - detailed module design, 0 - simple 1-module design
79  Double_t fTubeRmin; // Station tube Rmin
80  Double_t fTubeRmax; // Station tube Rmax
81  Double_t fTubeZ; // Station tube z position relative to much cave
83 };
84 #endif
CbmMuchStation::GetTubeZ
Double_t GetTubeZ() const
Definition: CbmMuchStation.h:55
CbmMuchStation::SetModuleDesign
void SetModuleDesign(Bool_t on)
Definition: CbmMuchStation.h:41
CbmMuchStation::GetLayer
CbmMuchLayer * GetLayer(Int_t iLayer) const
Definition: CbmMuchStation.h:58
CbmMuchStation
Definition: CbmMuchStation.h:22
CbmMuchStation::fModuleDesign
Bool_t fModuleDesign
Definition: CbmMuchStation.h:78
CbmMuchStation::GetTubeRmax
Double_t GetTubeRmax() const
Definition: CbmMuchStation.h:54
CbmMuchStation::SetTubeRmax
void SetTubeRmax(Double_t rMax)
Definition: CbmMuchStation.h:43
CbmMuchStation::SetTubeZ
void SetTubeZ(Double_t z)
Definition: CbmMuchStation.h:44
CbmMuchStation::SetRmin
void SetRmin(Double_t rMin)
Definition: CbmMuchStation.h:39
CbmMuchStation::ClassDef
ClassDef(CbmMuchStation, 1)
CbmMuchStation::fTubeRmin
Double_t fTubeRmin
Definition: CbmMuchStation.h:79
CbmMuchStation::SetTubeRmin
void SetTubeRmin(Double_t rMin)
Definition: CbmMuchStation.h:42
CbmMuchStation::GetRmax
Double_t GetRmax() const
Definition: CbmMuchStation.h:52
CbmMuchStation::fRmax
Double_t fRmax
Definition: CbmMuchStation.h:76
CbmMuchStation::GetTubeDz
Double_t GetTubeDz() const
Definition: CbmMuchStation.cxx:55
CbmMuchStation::fTubeRmax
Double_t fTubeRmax
Definition: CbmMuchStation.h:80
CbmMuchStation::fRmin
Double_t fRmin
Definition: CbmMuchStation.h:75
CbmMuchStation::fTubeZ
Double_t fTubeZ
Definition: CbmMuchStation.h:81
CbmMuchStation::GetDetectorId
Int_t GetDetectorId() const
Definition: CbmMuchStation.h:48
CbmMuchStation::GetZ
Double_t GetZ() const
Definition: CbmMuchStation.h:49
CbmMuchLayer.h
CbmMuchStation::GetTubeRmin
Double_t GetTubeRmin() const
Definition: CbmMuchStation.h:53
CbmMuchStation::~CbmMuchStation
virtual ~CbmMuchStation()
Definition: CbmMuchStation.cxx:46
CbmMuchStation::CbmMuchStation
CbmMuchStation()
Definition: CbmMuchStation.cxx:18
CbmMuchStation::SetRmax
void SetRmax(Double_t rMax)
Definition: CbmMuchStation.h:40
CbmMuchStation::GetNLayers
Int_t GetNLayers() const
Definition: CbmMuchStation.h:50
CbmMuchStation::IsModuleDesign
Bool_t IsModuleDesign() const
Definition: CbmMuchStation.h:56
CbmMuchStation::fDetectorId
Int_t fDetectorId
Definition: CbmMuchStation.h:72
CbmMuchLayer
Definition: CbmMuchLayer.h:21
CbmMuchStation::fZ
Double32_t fZ
Definition: CbmMuchStation.h:73
CbmMuchStation::AddLayer
void AddLayer(CbmMuchLayer *layer)
Definition: CbmMuchStation.cxx:50
CbmMuchStation::GetRmin
Double_t GetRmin() const
Definition: CbmMuchStation.h:51
CbmMuchStation::fLayers
TObjArray fLayers
Definition: CbmMuchStation.h:74