CbmRoot
CbmMuchStation.cxx
Go to the documentation of this file.
1 
9 #include "CbmMuchStation.h"
10 
11 #include "CbmMuchAddress.h" // for CbmMuchAddress
12 #include "CbmMuchLayer.h" // for CbmMuchLayer
13 
14 #include <TMathBase.h> // for Abs
15 #include <TObjArray.h> // for TObjArray
16 
17 // ----- Default constructor -------------------------------------------
19  : TObject()
20  , fDetectorId(0)
21  , fZ(0.)
22  , fLayers()
23  , fRmin(0.)
24  , fRmax(0.)
25  , fModuleDesign(kFALSE)
26  , fTubeRmin(0.)
27  , fTubeRmax(0.)
28  , fTubeZ(0.) {}
29 // -------------------------------------------------------------------------
30 
31 // ----- Standard constructor ------------------------------------------
32 CbmMuchStation::CbmMuchStation(Int_t iStation, Double_t z)
33  : TObject()
34  , fDetectorId(CbmMuchAddress::GetAddress(iStation))
35  , fZ(z)
36  , fLayers()
37  , fRmin(0.)
38  , fRmax(0.)
39  , fModuleDesign(kFALSE)
40  , fTubeRmin(0.)
41  , fTubeRmax(0.)
42  , fTubeZ(0.) {}
43 // -------------------------------------------------------------------------
44 
45 // ----- Destructor ----------------------------------------------------
47 // -------------------------------------------------------------------------
48 
49 // ----- Public method AddSector ---------------------------------------
50 void CbmMuchStation::AddLayer(CbmMuchLayer* layer) { fLayers.Add(layer); }
51 // -------------------------------------------------------------------------
52 
53 
54 // -------------------------------------------------------------------------
55 Double_t CbmMuchStation::GetTubeDz() const {
56  Double_t dzmax = 0;
57 
58  for (Int_t l = 0; l < GetNLayers(); l++) {
59  CbmMuchLayer* layer = GetLayer(l);
60  Double_t ldz = layer->GetDz();
61  Double_t z = layer->GetZ();
62  Double_t dz = TMath::Abs(z - fZ) + ldz;
63  if (dz > dzmax) dzmax = dz;
64  }
65 
66  return dzmax;
67 }
68 // -------------------------------------------------------------------------
69 
CbmMuchAddress
Interface class to unique address for the MUCH.
Definition: CbmMuchAddress.h:49
CbmMuchStation::GetLayer
CbmMuchLayer * GetLayer(Int_t iLayer) const
Definition: CbmMuchStation.h:58
CbmMuchStation
Definition: CbmMuchStation.h:22
CbmStsAddress::GetAddress
Int_t GetAddress(UInt_t unit=0, UInt_t ladder=0, UInt_t halfladder=0, UInt_t module=0, UInt_t sensor=0, UInt_t side=0, UInt_t version=kCurrentVersion)
Construct address.
Definition: CbmStsAddress.cxx:90
CbmMuchLayer::GetDz
Double_t GetDz()
Definition: CbmMuchLayer.cxx:77
CbmMuchStation::GetTubeDz
Double_t GetTubeDz() const
Definition: CbmMuchStation.cxx:55
ClassImp
ClassImp(CbmConverterManager) InitStatus CbmConverterManager
Definition: CbmConverterManager.cxx:12
CbmMuchLayer.h
CbmMuchStation::~CbmMuchStation
virtual ~CbmMuchStation()
Definition: CbmMuchStation.cxx:46
CbmMuchAddress.h
CbmMuchStation::CbmMuchStation
CbmMuchStation()
Definition: CbmMuchStation.cxx:18
CbmMuchStation::GetNLayers
Int_t GetNLayers() const
Definition: CbmMuchStation.h:50
CbmMuchLayer::GetZ
Double_t GetZ() const
Definition: CbmMuchLayer.h:56
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.h
CbmMuchStation::fLayers
TObjArray fLayers
Definition: CbmMuchStation.h:74