CbmRoot
CbmTrdRadiator.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- CbmTrdRadiator header file -----
3 // ----- Created 10/11/04 by M.Kalisky -----
4 // -------------------------------------------------------------------------
5 
13 #ifndef CBMTRDRADIATOR_H
14 #define CBMTRDRADIATOR_H
15 
16 #include <Rtypes.h> // for THashConsistencyHolder, ClassDef
17 #include <RtypesCore.h> // for Float_t, Int_t, Bool_t, Double_t
18 #include <TString.h> // for TString
19 #include <TVector3.h> // for TVector3
20 
21 class CbmTrdPoint;
22 class TH1D;
23 
25 
26 public:
29 
31  CbmTrdRadiator(Bool_t SimpleTR,
32  Int_t Nfoils,
33  Float_t FoilThick,
34  Float_t GapThick);
35 
37  CbmTrdRadiator(Bool_t SimpleTR,
38  Int_t Nfoils,
39  Float_t FoilThick,
40  Float_t GapThick,
41  TString material,
42  TString prototype);
43 
45  CbmTrdRadiator(Bool_t SimpleTR, TString prototype);
46  /* // implemented prototypes are:
47  "A" ALICE like 7xfiber layer + 2x8mm Rohacell layer
48  "Bshort" POKALON 24µm, 0.7mm gap, 100 foils
49  "B" POKALON 24µm, 0.7mm gap, 250 foils
50  "B++" POKALON 24µm, 0.7mm gap, 350 foils
51  "C" PE 15µm, 0.7mm gap, 200 foils
52  "D" PE 15µm, 0.5mm gap, 100 foils
53  "E" PE 20µm, 0.5mm gap, 120 foils
54  "F" PE 20µm, 0.25mm gap, 220 foils
55  "G30" 30xfiber layer
56  "H" 125x2mm PE foam foil layer
57  "H++" 177x2mm PE foam foil layer
58  "Kshort" POKALON 24µm, 0.7mm gap, 100 foils micro-structured
59  "K" POKALON 24µm, 0.7mm gap, 250 foils micro-structured
60  "K++" POKALON 24µm, 0.7mm gap, 350 foils micro-structured
61  */
62 
64  virtual ~CbmTrdRadiator();
65 
67  void CreateHistograms();
68 
70  void Init(Bool_t SimpleTR,
71  Int_t Nfoils,
72  Float_t FoilThick,
73  Float_t GapTick,
74  TString material);
76  void Init(Bool_t SimpleTR, Int_t Nfoils, Float_t FoilThick, Float_t GapThick);
78  void Init();
79 
80  // void SetRadPrototype(TString prototype);
81 
83  void ProduceSpectra();
84 
86  Int_t ELoss(Int_t index);
87 
89  void ProcessTR();
90 
92  Int_t TRspectrum();
93 
95  Int_t WinTRspectrum();
96 
98  Int_t DetTRspectrum();
99 
101  Float_t GammaF();
102 
104  Float_t Sigma(Float_t energykeV);
105 
107  Float_t SigmaWin(Float_t energykeV);
108 
110  Float_t SigmaDet(Float_t energykeV);
111 
112  TString fWindowFoil;
113 
115  Float_t GetMuAl(Float_t energyMeV);
116  Float_t GetMuPo(Float_t energyMeV);
117  Float_t GetMuPok(Float_t energyMeV);
118  Float_t GetMuKa(Float_t energyMeV);
119  Float_t GetMuAir(Float_t energyMeV);
120  Float_t GetMuXe(Float_t energyMeV);
121  Float_t GetMuCO2(Float_t energyMeV);
122  Float_t GetMuMy(Float_t energyMeV);
123 
125  Float_t GetTR(TVector3 mom);
126 
128  Float_t Interpolate(Float_t energyMeV, Float_t* en, Float_t* mu, Int_t n);
129 
131  Int_t Locate(Float_t* xv, Int_t n, Float_t xval, Int_t& kl, Float_t& dx);
132 
133 
135  void SetNFoils(Int_t n) { fNFoils = n; }
136  void SetFoilThick(Float_t t) { fFoilThick = t; }
137  void SetGapThick(Float_t t) { fGapThick = t; }
138  void SetSigma(Int_t SigmaT);
139 
140  Bool_t LatticeHit(const CbmTrdPoint* point);
141 
142 private:
145 
146  /* Input parameters to be set */
147  TString fRadType;
148  Int_t fDetType; // 0: GSI 1: Muenster-Bucarest
149  Bool_t fFirstPass; // used for MB-Chamber with two gas gaps
150  Bool_t fSimpleTR; // mode of the TR production
151  Int_t fNFoils; // Number of foils in the radiator stack
152  Float_t fFoilThick; // Thickness of the foils (cm)
153  Float_t fGapThick; // Thickness of gaps between the foils (cm)
154  TString fFoilMaterial;
155  Float_t fGasThick; // Thickness of hte active gas volume.
156 
157 
158  /* Parameters fixed in Init() */
159 
160  Float_t fFoilDens; // Density of the radiator foils (g/cm^3)
161  Float_t fGapDens; // Dens. of gas in the radiator gaps (g/cm^3)
162  Float_t fFoilOmega; // Plasma frequency of the radiator foils
163  Float_t fGapOmega; // Plasma freq. of gas
164  Float_t fnPhotonCorr; // Correction of number of photon production efficiency
165 
166  /* Parameters after correction of the angle of the particle */
167 
168  Float_t fFoilThickCorr;
169  Float_t fGapThickCorr;
170  Float_t fGasThickCorr;
171 
172 
173  Float_t fnTRprod; // <nTR> produced
174  // Int_t fSigmaT; // set the absorption material
175 
176  Float_t fWinDens;
177  Float_t fWinThick;
178 
179  Float_t fCom1; // first component of the gas
180  Float_t fCom2; // second component of the gas
181 
182  static const Int_t fSpNBins = 100; // Number of Bins for histos
183  static const Int_t fSpRange = 50; // Maximum (keV) of eloss spectrum
184  Float_t fSpBinWidth; // Bin width=fSpNBins/fSpRange
185 
186  Float_t*
188  Float_t*
190  Float_t* fSigmaDet;
191 
192  TH1D* fSpectrum;
193  TH1D* fWinSpectrum;
195  TH1D* fDetSpectrum;
196 
197  static const Int_t fNMom = 14; // number of momentum spectra
198  Double_t* fTrackMomentum;
199  // are available
200 
201  TH1D* fFinal[fNMom];
202  Float_t fnTRabs[fNMom]; // <nTR> absorbed for differnt momenta
203  Float_t fnTRab; // <nTR> absorbed
204 
205  Float_t fELoss; // The real result - in GeV
206 
207  TVector3 fMom; // momentum of the electron
208 
209  ClassDef(CbmTrdRadiator, 1)
210 };
211 
212 #endif
CbmTrdRadiator::fnTRprod
Float_t fnTRprod
Definition: CbmTrdRadiator.h:173
CbmTrdRadiator::DetTRspectrum
Int_t DetTRspectrum()
Definition: CbmTrdRadiator.cxx:981
CbmTrdRadiator::fFoilThick
Float_t fFoilThick
Definition: CbmTrdRadiator.h:152
CbmTrdRadiator::GetMuCO2
Float_t GetMuCO2(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1329
CbmTrdRadiator::fGasThick
Float_t fGasThick
Definition: CbmTrdRadiator.h:155
CbmTrdRadiator::fSpRange
static const Int_t fSpRange
Definition: CbmTrdRadiator.h:183
CbmTrdRadiator::CbmTrdRadiator
CbmTrdRadiator()
Definition: CbmTrdRadiator.cxx:29
CbmTrdRadiator::SetFoilThick
void SetFoilThick(Float_t t)
Definition: CbmTrdRadiator.h:136
CbmTrdRadiator::fDetSpectrum
TH1D * fDetSpectrum
TR absorbed in Detector.
Definition: CbmTrdRadiator.h:195
CbmTrdRadiator::fSimpleTR
Bool_t fSimpleTR
Definition: CbmTrdRadiator.h:150
CbmTrdRadiator::SetNFoils
void SetNFoils(Int_t n)
Definition: CbmTrdRadiator.h:135
CbmTrdRadiator::~CbmTrdRadiator
virtual ~CbmTrdRadiator()
Definition: CbmTrdRadiator.cxx:143
CbmTrdRadiator::SigmaDet
Float_t SigmaDet(Float_t energykeV)
Definition: CbmTrdRadiator.cxx:1130
CbmTrdRadiator::fDetType
Int_t fDetType
Definition: CbmTrdRadiator.h:148
CbmTrdRadiator::ProduceSpectra
void ProduceSpectra()
Definition: CbmTrdRadiator.cxx:698
CbmTrdRadiator::GammaF
Float_t GammaF()
Definition: CbmTrdRadiator.cxx:1022
CbmTrdRadiator::fSigmaWin
Float_t * fSigmaWin
[fSpNBins] Array of sigma values for the foil of the radiator
Definition: CbmTrdRadiator.h:189
CbmTrdRadiator::Interpolate
Float_t Interpolate(Float_t energyMeV, Float_t *en, Float_t *mu, Int_t n)
Definition: CbmTrdRadiator.cxx:1391
CbmTrdRadiator::fGapDens
Float_t fGapDens
Definition: CbmTrdRadiator.h:161
CbmTrdRadiator::Sigma
Float_t Sigma(Float_t energykeV)
Definition: CbmTrdRadiator.cxx:1071
CbmTrdRadiator::operator=
CbmTrdRadiator & operator=(const CbmTrdRadiator &)
CbmTrdRadiator::fWinThick
Float_t fWinThick
Definition: CbmTrdRadiator.h:177
CbmTrdRadiator::GetMuMy
Float_t GetMuMy(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1361
CbmTrdRadiator::fFoilMaterial
TString fFoilMaterial
Definition: CbmTrdRadiator.h:154
CbmTrdRadiator::ELoss
Int_t ELoss(Int_t index)
Definition: CbmTrdRadiator.cxx:813
CbmTrdRadiator::LatticeHit
Bool_t LatticeHit(const CbmTrdPoint *point)
Definition: CbmTrdRadiator.cxx:618
CbmTrdRadiator::fGapThick
Float_t fGapThick
Definition: CbmTrdRadiator.h:153
CbmTrdRadiator::fSpBinWidth
Float_t fSpBinWidth
Definition: CbmTrdRadiator.h:184
CbmTrdRadiator::fWindowFoil
TString fWindowFoil
Definition: CbmTrdRadiator.h:112
CbmTrdRadiator::fNFoils
Int_t fNFoils
Definition: CbmTrdRadiator.h:151
CbmTrdRadiator::fWinSpectrum
TH1D * fWinSpectrum
TR photon energy spectrum.
Definition: CbmTrdRadiator.h:193
CbmTrdRadiator::fnPhotonCorr
Float_t fnPhotonCorr
Definition: CbmTrdRadiator.h:164
CbmTrdRadiator::fFoilOmega
Float_t fFoilOmega
Definition: CbmTrdRadiator.h:162
CbmTrdRadiator::fnTRabs
Float_t fnTRabs[fNMom]
Absorption spectra for different momenta.
Definition: CbmTrdRadiator.h:202
CbmTrdRadiator::SetSigma
void SetSigma(Int_t SigmaT)
Definition: CbmTrdRadiator.cxx:1035
CbmTrdRadiator::fTrackMomentum
Double_t * fTrackMomentum
Definition: CbmTrdRadiator.h:198
CbmTrdRadiator::CbmTrdRadiator
CbmTrdRadiator(const CbmTrdRadiator &)
CbmTrdRadiator::fGapThickCorr
Float_t fGapThickCorr
Definition: CbmTrdRadiator.h:169
CbmTrdRadiator::fSigmaDet
Float_t * fSigmaDet
[fSpNBins] Array of sigma values for the entrance window of detector
Definition: CbmTrdRadiator.h:190
CbmTrdRadiator::fGapOmega
Float_t fGapOmega
Definition: CbmTrdRadiator.h:163
CbmTrdRadiator::fFirstPass
Bool_t fFirstPass
Definition: CbmTrdRadiator.h:149
CbmTrdRadiator::GetMuXe
Float_t GetMuXe(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1296
CbmTrdRadiator::Locate
Int_t Locate(Float_t *xv, Int_t n, Float_t xval, Int_t &kl, Float_t &dx)
Definition: CbmTrdRadiator.cxx:1415
CbmTrdRadiator::SetGapThick
void SetGapThick(Float_t t)
Definition: CbmTrdRadiator.h:137
CbmTrdRadiator::fDetSpectrumA
TH1D * fDetSpectrumA
TR spectra in gas-window foil.
Definition: CbmTrdRadiator.h:194
CbmTrdRadiator::GetMuAl
Float_t GetMuAl(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1204
CbmTrdRadiator::fNMom
static const Int_t fNMom
TR passed through Detector.
Definition: CbmTrdRadiator.h:197
CbmTrdRadiator::fFoilThickCorr
Float_t fFoilThickCorr
Definition: CbmTrdRadiator.h:168
CbmTrdRadiator::ProcessTR
void ProcessTR()
Definition: CbmTrdRadiator.cxx:771
CbmTrdRadiator
Definition: CbmTrdRadiator.h:24
CbmTrdRadiator::SigmaWin
Float_t SigmaWin(Float_t energykeV)
Definition: CbmTrdRadiator.cxx:1104
CbmTrdPoint
Definition: CbmTrdPoint.h:23
CbmTrdRadiator::GetMuPo
Float_t GetMuPo(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1235
CbmTrdRadiator::Init
void Init()
Definition: CbmTrdRadiator.cxx:405
CbmTrdRadiator::TRspectrum
Int_t TRspectrum()
Definition: CbmTrdRadiator.cxx:862
CbmTrdRadiator::fnTRab
Float_t fnTRab
Definition: CbmTrdRadiator.h:203
CbmTrdRadiator::fFinal
TH1D * fFinal[fNMom]
[fNMom] Track momenta for which spectra
Definition: CbmTrdRadiator.h:201
CbmTrdRadiator::fWinDens
Float_t fWinDens
Definition: CbmTrdRadiator.h:176
CbmTrdRadiator::GetTR
Float_t GetTR(TVector3 mom)
Definition: CbmTrdRadiator.cxx:732
CbmTrdRadiator::fCom2
Float_t fCom2
Definition: CbmTrdRadiator.h:180
CbmTrdRadiator::WinTRspectrum
Int_t WinTRspectrum()
Definition: CbmTrdRadiator.cxx:944
CbmTrdRadiator::fMom
TVector3 fMom
Definition: CbmTrdRadiator.h:207
CbmTrdRadiator::GetMuKa
Float_t GetMuKa(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1178
CbmTrdRadiator::fGasThickCorr
Float_t fGasThickCorr
Definition: CbmTrdRadiator.h:170
CbmTrdRadiator::fSigma
Float_t * fSigma
Definition: CbmTrdRadiator.h:187
CbmTrdRadiator::GetMuPok
Float_t GetMuPok(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1153
CbmTrdRadiator::fCom1
Float_t fCom1
Definition: CbmTrdRadiator.h:179
CbmTrdRadiator::fSpNBins
static const Int_t fSpNBins
Definition: CbmTrdRadiator.h:182
CbmTrdRadiator::fSpectrum
TH1D * fSpectrum
[fSpNBins] Array of sigma values for the active gas
Definition: CbmTrdRadiator.h:192
CbmTrdRadiator::CreateHistograms
void CreateHistograms()
Definition: CbmTrdRadiator.cxx:160
CbmTrdRadiator::fRadType
TString fRadType
Definition: CbmTrdRadiator.h:147
CbmTrdRadiator::fELoss
Float_t fELoss
Definition: CbmTrdRadiator.h:205
CbmTrdRadiator::GetMuAir
Float_t GetMuAir(Float_t energyMeV)
Definition: CbmTrdRadiator.cxx:1263
CbmTrdRadiator::fFoilDens
Float_t fFoilDens
Definition: CbmTrdRadiator.h:160