CbmRoot
Loading...
Searching...
No Matches
CbmMuchStation.h
Go to the documentation of this file.
1/* Copyright (C) 2007-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer], Mikhail Ryzhinskiy, Evgeny Kryshen */
4
16#ifndef CBMMUCHSTATION_H
17#define CBMMUCHSTATION_H 1
18
19#include "CbmMuchLayer.h" // for CbmMuchLayer
20
21#include <Rtypes.h> // for THashConsistencyHolder, ClassDef
22#include <RtypesCore.h> // for Double_t, Int_t, Bool_t, Double32_t
23#include <TObjArray.h> // for TObjArray
24#include <TObject.h> // for TObject
25
26class CbmMuchStation : public TObject {
27public:
30
31
36 CbmMuchStation(Int_t iStation, Double_t z);
37
38
40 virtual ~CbmMuchStation();
41
43 void SetRmin(Double_t rMin) { fRmin = rMin; }
44 void SetRmax(Double_t rMax) { fRmax = rMax; }
45 void SetModuleDesign(Bool_t on) { fModuleDesign = on; }
46 void SetTubeRmin(Double_t rMin) { fTubeRmin = rMin; }
47 void SetTubeRmax(Double_t rMax) { fTubeRmax = rMax; }
48 void SetTubeZ(Double_t z) { fTubeZ = z; }
49
50
52 Int_t GetDetectorId() const { return fDetectorId; }
53 Double_t GetZ() const { return fZ; }
54 Int_t GetNLayers() const { return fLayers.GetEntriesFast(); }
55 Double_t GetRmin() const { return fRmin; }
56 Double_t GetRmax() const { return fRmax; }
57 Double_t GetTubeRmin() const { return fTubeRmin; }
58 Double_t GetTubeRmax() const { return fTubeRmax; }
59 Double_t GetTubeZ() const { return fTubeZ; }
60 Bool_t IsModuleDesign() const { return fModuleDesign; }
61
62 CbmMuchLayer* GetLayer(Int_t iLayer) const { return (CbmMuchLayer*) fLayers.At(iLayer); }
63
65 void AddLayer(CbmMuchLayer* layer);
66
67 /*
68 * Automatic calculation of the half-thickness of the layer as
69 * a maximum distance to layer module edges
70 */
71 Double_t GetTubeDz() const;
72
73protected:
74 Int_t fDetectorId; // Unique detector ID
75 Double32_t fZ; // z position of station center (midplane) [cm] in global cs
76 TObjArray fLayers; // Array of CbmMuchLayers
77 Double_t fRmin; // Minimum radius of the station acceptance [cm]
78 Double_t fRmax; // Maximum radius of the station acceptance [cm]
79 Bool_t fModuleDesign; // 1 - detailed module design, 0 - simple 1-module design
80 Double_t fTubeRmin; // Station tube Rmin
81 Double_t fTubeRmax; // Station tube Rmax
82 Double_t fTubeZ; // Station tube z position relative to much cave
84};
85#endif
void SetRmin(Double_t rMin)
TObjArray fLayers
Double_t GetRmin() const
CbmMuchLayer * GetLayer(Int_t iLayer) const
void SetTubeRmin(Double_t rMin)
Double_t GetTubeRmax() const
Double_t GetRmax() const
void AddLayer(CbmMuchLayer *layer)
void SetTubeRmax(Double_t rMax)
Bool_t IsModuleDesign() const
void SetModuleDesign(Bool_t on)
Double_t GetTubeRmin() const
Double_t GetZ() const
void SetTubeZ(Double_t z)
Double_t GetTubeZ() const
virtual ~CbmMuchStation()
ClassDef(CbmMuchStation, 1)
void SetRmax(Double_t rMax)
Int_t GetNLayers() const
Double_t GetTubeDz() const
Int_t GetDetectorId() const