BmnRoot
Loading...
Searching...
No Matches
BmnSsdPhysics.h
Go to the documentation of this file.
1
7#ifndef BMNSSDPHYSICS_H
8#define BMNSSDPHYSICS_H 1
9
10
11#include "Rtypes.h"
12#include "TObject.h"
13#include <iostream>
14#include <map>
15
20class BmnSsdPhysics : public TObject {
21
22 public:
23
25 virtual ~BmnSsdPhysics();
26
27
28
43 static Double_t DiffusionWidth(Double_t z, Double_t d, Double_t vBias,
44 Double_t vFd, Double_t temperature,
45 Int_t chargeType);
46
47
55 static Double_t ElectricField(Double_t vBias, Double_t vFd,
56 Double_t dZ, Double_t z);
57
58
69 Double_t EnergyLoss(Double_t dz, Double_t mass,
70 Double_t eKin, Double_t dedx) const;
71
72
76 static Double_t GetSiCharge() { return fgkSiCharge; }
77
78
82 static BmnSsdPhysics* Instance();
83
84
90 Double_t LandauWidth(Double_t mostProbableCharge);
91
92
94 static Double_t PairCreationEnergy() { return 3.57142e-9; }
95
96
105 static Double_t ParticleCharge(Int_t pid);
106
107
116 static Double_t ParticleMass(Int_t pid);
117
118
119
129 Double_t StoppingPower(Double_t eKin, Int_t pid);
130
131
143 Double_t StoppingPower(Double_t energy, Double_t mass,
144 Double_t charge, Bool_t isElectron);
145
146
147
148 private:
149
152
154 BmnSsdPhysics(const BmnSsdPhysics&) = delete;
155
157 BmnSsdPhysics operator=(const BmnSsdPhysics&) = delete;
158
160 static BmnSsdPhysics* fgInstance;
161
162 // --- Physical constants
163 static const Double_t fgkSiCharge;
164 static const Double_t fgkSiDensity;
165 static const Double_t fgkProtonMass;
166
167 // --- Parameters for the Urban model
168 Double_t fUrbanI;
169 Double_t fUrbanE1;
170 Double_t fUrbanE2;
171 Double_t fUrbanF1;
172 Double_t fUrbanF2;
173 Double_t fUrbanEmax;
174 Double_t fUrbanR;
175
176 // --- Data tables for stopping power
177 std::map<Double_t, Double_t> fStoppingElectron;
178 std::map<Double_t, Double_t> fStoppingProton ;
179
180 // --- Data tables for width of Landau distribution
181 std::map<Double_t, Double_t> fLandauWidth;
182
191 Double_t InterpolateDataTable(Double_t eKin, std::map<Double_t, Double_t>& table);
192
194 void ReadDataTablesStoppingPower();
195
197 void ReadDataTablesLandauWidth();
198
199
205 void SetUrbanParameters(Double_t z);
206
207
208 ClassDef(BmnSsdPhysics,1);
209
210};
211
212#endif /* BMNSSDPHYSICS_H */
const Float_t d
Z-ccordinate of the first GEM-station.
Definition BmnMwpcHit.cxx:7
Auxiliary class for simulating physics processes in Silicon.
static Double_t ParticleMass(Int_t pid)
static Double_t ParticleCharge(Int_t pid)
Double_t StoppingPower(Double_t eKin, Int_t pid)
virtual ~BmnSsdPhysics()
static Double_t DiffusionWidth(Double_t z, Double_t d, Double_t vBias, Double_t vFd, Double_t temperature, Int_t chargeType)
static Double_t ElectricField(Double_t vBias, Double_t vFd, Double_t dZ, Double_t z)
Double_t EnergyLoss(Double_t dz, Double_t mass, Double_t eKin, Double_t dedx) const
static Double_t PairCreationEnergy()
Double_t LandauWidth(Double_t mostProbableCharge)
static Double_t GetSiCharge()
static BmnSsdPhysics * Instance()