Belle II Software  release-05-01-25
EnergyLossForExtrapolator.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2011 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leo Piilonen *
7  * Derived from: EnergyLossForExtrapolator.hh *
8  * (use geant4e-specific particles; include pions & kaons) *
9  * *
10  * This software is provided "as is" without any warranty. *
11  **************************************************************************/
12 
13 #ifndef ENERGYLOSSFOREXTRAPOLATOR_H_
14 #define ENERGYLOSSFOREXTRAPOLATOR_H_
15 
16 #include <CLHEP/Units/SystemOfUnits.h>
17 
18 #include <globals.hh>
19 #include <G4PhysicsTable.hh>
20 #include <G4DataVector.hh>
21 #include <vector>
22 
23 class G4ParticleDefinition;
24 class G4Material;
25 class G4MaterialCutsCouple;
26 class G4ProductionCuts;
27 
28 namespace Belle2 {
34  namespace Simulation {
35 
38 
39  public:
40 
43 
46 
48  G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition*);
49 
51  G4double ComputeRange(G4double kinEnergy, const G4ParticleDefinition*);
52 
54  G4double ComputeEnergy(G4double range, const G4ParticleDefinition*);
55 
57  G4double EnergyAfterStep(G4double kinEnergy, G4double step,
58  const G4Material*, const G4ParticleDefinition*);
59 
61  G4double EnergyBeforeStep(G4double kinEnergy, G4double step,
62  const G4Material*, const G4ParticleDefinition*);
63 
65  G4double TrueStepLength(G4double kinEnergy, G4double step,
66  const G4Material*, const G4ParticleDefinition* part);
67 
69  //- inline G4double EnergyAfterStep(G4double kinEnergy, G4double step,
70  //- const G4Material*, const G4String& particleName);
71 
73  //- inline G4double EnergyBeforeStep(G4double kinEnergy, G4double step,
74  //- const G4Material*, const G4String& particleName);
75 
77  inline G4double AverageScatteringAngle(G4double kinEnergy, G4double step,
78  const G4Material*,
79  const G4ParticleDefinition* part);
80 
82  //- inline G4double AverageScatteringAngle(G4double kinEnergy, G4double step,
83  //- const G4Material*,
84  //- const G4String& particleName);
85 
87  inline G4double ComputeTrueStep(const G4Material*, const G4ParticleDefinition* part,
88  G4double kinEnergy, G4double stepLength);
89 
91  //- inline G4double EnergyDispersion(G4double kinEnergy, G4double step,
92  //- const G4Material*, const G4ParticleDefinition*);
93 
95  //- inline G4double EnergyDispersion(G4double kinEnergy, G4double step,
96  //- const G4Material*, const G4String& particleName);
97 
99  //- inline void SetVerbose(G4int val);
100 
102  inline void SetMinKinEnergy(G4double);
103 
105  inline void SetMaxKinEnergy(G4double);
106 
108  inline void SetMaxEnergyTransfer(G4double);
109 
110  private:
111 
114  void Initialisation();
115 
117  G4bool SetupKinematics(const G4ParticleDefinition*, const G4Material*,
118  G4double kinEnergy);
119 
121  G4PhysicsTable* PrepareTable();
122 
124  const G4ParticleDefinition* FindParticle(const G4String& name);
125 
127  void ComputeElectronDEDX(const G4ParticleDefinition* part, G4PhysicsTable* table);
128 
130  void ComputeMuonDEDX(const G4ParticleDefinition* part, G4PhysicsTable* table);
131 
133  void ComputeHadronDEDX(const G4ParticleDefinition* part, G4PhysicsTable* table);
134 
136  void ComputeTransportXS(const G4ParticleDefinition* part, G4PhysicsTable* table);
137 
139  inline G4double ComputeValue(G4double x, const G4PhysicsTable* table);
140 
143 
146 
148  const G4ParticleDefinition* m_Particle;
149 
151  const G4ParticleDefinition* m_Electron;
152 
154  const G4ParticleDefinition* m_Positron;
155 
157  const G4ParticleDefinition* m_MuonPlus;
158 
160  const G4ParticleDefinition* m_MuonMinus;
161 
163  const G4ParticleDefinition* m_PionPlus;
164 
166  const G4ParticleDefinition* m_PionMinus;
167 
169  const G4ParticleDefinition* m_KaonPlus;
170 
172  const G4ParticleDefinition* m_KaonMinus;
173 
175  const G4ParticleDefinition* m_Proton;
176 
178  const G4ParticleDefinition* m_AntiProton;
179 
181  const G4ParticleDefinition* m_Deuteron;
182 
184  const G4ParticleDefinition* m_AntiDeuteron;
185 
187  G4DataVector m_Cuts;
188 
190  G4ProductionCuts* m_ProductionCuts;
191 
193  std::vector<const G4MaterialCutsCouple*> m_Couples;
194 
196  G4PhysicsTable* m_DedxElectron;
197 
199  G4PhysicsTable* m_DedxPositron;
200 
202  G4PhysicsTable* m_DedxMuon;
203 
205  G4PhysicsTable* m_DedxPion;
206 
208  G4PhysicsTable* m_DedxKaon;
209 
211  G4PhysicsTable* m_DedxProton;
212 
214  G4PhysicsTable* m_DedxDeuteron;
215 
217  G4PhysicsTable* m_RangeElectron;
218 
220  G4PhysicsTable* m_RangePositron;
221 
223  G4PhysicsTable* m_RangeMuon;
224 
226  G4PhysicsTable* m_RangePion;
227 
229  G4PhysicsTable* m_RangeKaon;
230 
232  G4PhysicsTable* m_RangeProton;
233 
235  G4PhysicsTable* m_RangeDeuteron;
236 
238  G4PhysicsTable* m_InvRangeElectron;
239 
241  G4PhysicsTable* m_InvRangePositron;
242 
244  G4PhysicsTable* m_InvRangeMuon;
245 
247  G4PhysicsTable* m_InvRangePion;
248 
250  G4PhysicsTable* m_InvRangeKaon;
251 
253  G4PhysicsTable* m_InvRangeProton;
254 
256  G4PhysicsTable* m_InvRangeDeuteron;
257 
259  G4PhysicsTable* m_MscatElectron;
260 
262  const G4Material* m_Material;
263 
266 
269 
271  G4double m_RadLength;
272 
274  G4double m_Mass;
275 
277  G4double m_ChargeSq;
278 
280  G4double m_KineticEnergy;
281 
283  G4double m_Gamma;
284 
286  G4double m_BetaGammaSq;
287 
289  G4double m_BetaSq;
290 
292  G4double m_Tmax;
293 
295  G4double m_LinLossLimit;
296 
298  G4double m_UserTmin;
299 
301  G4double m_UserTmax;
302 
305 
307  G4int m_Nbins;
308 
311 
314  };
315 
316  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
317 
318  //- inline G4double EnergyLossForExtrapolator::EnergyAfterStep(G4double kinEnergy,
319  //- G4double step,
320  //- const G4Material* mat,
321  //- const G4String& name)
322  //- {
323  //- return EnergyAfterStep(kinEnergy, step, mat, FindParticle(name));
324  //- }
325 
326  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
327 
328  //- inline G4double EnergyLossForExtrapolator::EnergyBeforeStep(G4double kinEnergy,
329  //- G4double step,
330  //- const G4Material* mat,
331  //- const G4String& name)
332  //- {
333  //- return EnergyBeforeStep(kinEnergy, step, mat, FindParticle(name));
334  //- }
335 
336  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
337 
338  //- inline G4double EnergyLossForExtrapolator::AverageScatteringAngle(G4double kinEnergy,
339  //- G4double step,
340  //- const G4Material* mat,
341  //- const G4String& name)
342  //- {
343  //- return AverageScatteringAngle(kinEnergy, step, mat, FindParticle(name));
344  //- }
345  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
346 
347  //- inline G4double
348  //- EnergyLossForExtrapolator::EnergyDispersion(G4double kinEnergy,
349  //- G4double step,
350  //- const G4Material* mat,
351  //- const G4String& name)
352  //- {
353  //- return EnergyDispersion(kinEnergy, step, mat, FindParticle(name));
354  //- }
355 
356  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
357 
358  inline G4double
360  G4double stepLength,
361  const G4Material* mat,
362  const G4ParticleDefinition* part)
363  {
364  G4double theta = 0.0;
365  if (SetupKinematics(part, mat, kinEnergy)) {
366  G4double t = stepLength / m_RadLength;
367  G4double y = std::max(0.001, t);
368  theta = 19.23 * CLHEP::MeV * std::sqrt(m_ChargeSq * t) * (1.0 + 0.038 * std::log(y)) / (m_BetaSq * m_Gamma * m_Mass);
369  }
370  return theta;
371  }
372 
373  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
374 
375  inline G4double
377  const G4ParticleDefinition* part,
378  G4double kinEnergy,
379  G4double stepLength)
380  {
381  G4double theta = AverageScatteringAngle(kinEnergy, stepLength, mat, part);
382  return stepLength * std::sqrt(1.0 + 0.625 * theta * theta);
383  }
384 
385  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
386 
387  //- inline
388  //- G4double EnergyLossForExtrapolator::EnergyDispersion(G4double kinEnergy,
389  //- G4double stepLength,
390  //- const G4Material* mat,
391  //- const G4ParticleDefinition* part)
392  //- {
393  //- G4double sig2 = 0.0;
394  //- if (SetupKinematics(part, mat, kinEnergy)) {
395  //- G4double step = ComputeTrueStep(mat, part, kinEnergy, stepLength);
396  //- sig2 = (1.0 / beta2 - 0.5) * CLHEP::twopi_mc2_rcl2 * tmax * step * electronDensity * charge2;
397  //- }
398  //- return sig2;
399  //- }
400 
401  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
402 
403  inline G4double EnergyLossForExtrapolator::ComputeValue(G4double x,
404  const G4PhysicsTable* table)
405  {
406  G4double res = 0.0;
407  G4bool b;
408  if (table) res = ((*table)[m_MaterialIndex])->GetValue(x, b);
409  return res;
410  }
411 
412  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
413 
414  //- inline void EnergyLossForExtrapolator::SetVerbose(G4int val)
415  //- {
416  //- verbose = val;
417  //- }
418 
419  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
420 
422  {
423  m_UserTmin = val;
424  }
425 
426  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
427 
429  {
430  m_UserTmax = val;
431  }
432 
433  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
434 
436  {
438  }
439 
440  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
441 
442  } //end namespace Simulation
443 
445 } //end Belle2 namespace
446 
447 #endif /* ENERGYLOSSFOREXTRAPOLATOR_H_ */
Belle2::Simulation::EnergyLossForExtrapolator::m_LinLossLimit
G4double m_LinLossLimit
Step-length limit in units of range (0.01); not modifiable by user.
Definition: EnergyLossForExtrapolator.h:295
Belle2::Simulation::EnergyLossForExtrapolator::m_KaonPlus
const G4ParticleDefinition * m_KaonPlus
Pointer to definition of the positive kaon.
Definition: EnergyLossForExtrapolator.h:169
Belle2::Simulation::EnergyLossForExtrapolator::ComputeTransportXS
void ComputeTransportXS(const G4ParticleDefinition *part, G4PhysicsTable *table)
Fill the table with the multiple-scattering cross section of a particle.
Definition: EnergyLossForExtrapolator.cc:587
Belle2::Simulation::EnergyLossForExtrapolator::ComputeMuonDEDX
void ComputeMuonDEDX(const G4ParticleDefinition *part, G4PhysicsTable *table)
Fill the table with the specific ionization energy loss of a muon.
Definition: EnergyLossForExtrapolator.cc:496
Belle2::Simulation::EnergyLossForExtrapolator::m_Particle
const G4ParticleDefinition * m_Particle
Pointer to definition of the currently cached particle.
Definition: EnergyLossForExtrapolator.h:148
Belle2::Simulation::EnergyLossForExtrapolator::ComputeDEDX
G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition *)
Get specific ionization energy loss for the given kinetic energy and particle.
Definition: EnergyLossForExtrapolator.cc:368
Belle2::Simulation::EnergyLossForExtrapolator::SetMaxEnergyTransfer
void SetMaxEnergyTransfer(G4double)
Change the maximum energy loss or gain for this class (default is infinity)
Definition: EnergyLossForExtrapolator.h:435
Belle2::Simulation::EnergyLossForExtrapolator::EnergyLossForExtrapolator
EnergyLossForExtrapolator()
Constructor (WITHOUT GEANT4 verbosity flag)
Definition: EnergyLossForExtrapolator.cc:47
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxMuon
G4PhysicsTable * m_DedxMuon
Pointer to the muon's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:202
Belle2::Simulation::EnergyLossForExtrapolator::m_Mass
G4double m_Mass
Cached particle mass.
Definition: EnergyLossForExtrapolator.h:274
Belle2::Simulation::EnergyLossForExtrapolator::m_KineticEnergy
G4double m_KineticEnergy
Cached particle kinetic energy.
Definition: EnergyLossForExtrapolator.h:280
Belle2::Simulation::EnergyLossForExtrapolator::SetMaxKinEnergy
void SetMaxKinEnergy(G4double)
Change the maximum particle kinetic energy for this class (default is 10 TeV)
Definition: EnergyLossForExtrapolator.h:428
Belle2::Simulation::EnergyLossForExtrapolator::EnergyBeforeStep
G4double EnergyBeforeStep(G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *)
Get kinetic energy before a step in given material by given particle.
Definition: EnergyLossForExtrapolator.cc:163
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxKaon
G4PhysicsTable * m_DedxKaon
Pointer to the kaon's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:208
Belle2::Simulation::EnergyLossForExtrapolator::ComputeRange
G4double ComputeRange(G4double kinEnergy, const G4ParticleDefinition *)
Get range for the given kinetic energy and particle.
Definition: EnergyLossForExtrapolator.cc:394
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxDeuteron
G4PhysicsTable * m_DedxDeuteron
Pointer to the deuteron's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:214
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxProton
G4PhysicsTable * m_DedxProton
Pointer to the proton's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:211
Belle2::Simulation::EnergyLossForExtrapolator::m_UserTmax
G4double m_UserTmax
User's maximum kinetic energy for particles (default 10 TeV)
Definition: EnergyLossForExtrapolator.h:301
Belle2::Simulation::EnergyLossForExtrapolator::m_MscatElectron
G4PhysicsTable * m_MscatElectron
Pointer to the electron's multiple-scattering cross section vs KE table.
Definition: EnergyLossForExtrapolator.h:259
Belle2::Simulation::EnergyLossForExtrapolator::m_RangeKaon
G4PhysicsTable * m_RangeKaon
Pointer to the kaon's range vs KE table.
Definition: EnergyLossForExtrapolator.h:229
Belle2::Simulation::EnergyLossForExtrapolator::PrepareTable
G4PhysicsTable * PrepareTable()
Create a new table to store one type of kinematics data for a particle.
Definition: EnergyLossForExtrapolator.cc:353
Belle2::Simulation::EnergyLossForExtrapolator::m_Gamma
G4double m_Gamma
Cached particle's gamma value.
Definition: EnergyLossForExtrapolator.h:283
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangeProton
G4PhysicsTable * m_InvRangeProton
Pointer to the proton's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:253
Belle2::Simulation::EnergyLossForExtrapolator::m_ProductionCuts
G4ProductionCuts * m_ProductionCuts
Pointer to the internal cache of default G4ProductionCuts.
Definition: EnergyLossForExtrapolator.h:190
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangeKaon
G4PhysicsTable * m_InvRangeKaon
Pointer to the kaon's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:250
Belle2::Simulation::EnergyLossForExtrapolator
Calculate energy loss, fluctuation, and multiple-scattering angle for extrapolator.
Definition: EnergyLossForExtrapolator.h:37
Belle2::Simulation::EnergyLossForExtrapolator::m_AntiDeuteron
const G4ParticleDefinition * m_AntiDeuteron
Pointer to definition of the antideuteron.
Definition: EnergyLossForExtrapolator.h:184
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangePositron
G4PhysicsTable * m_InvRangePositron
Pointer to the positron's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:241
Belle2::Simulation::EnergyLossForExtrapolator::m_RangeElectron
G4PhysicsTable * m_RangeElectron
Pointer to the electron's range vs KE table.
Definition: EnergyLossForExtrapolator.h:217
Belle2::Simulation::EnergyLossForExtrapolator::m_UserMaxEnergyTransfer
G4double m_UserMaxEnergyTransfer
User's upper limit on maximum kinetic-energy loss (default infinity)
Definition: EnergyLossForExtrapolator.h:304
Belle2::Simulation::EnergyLossForExtrapolator::m_AntiProton
const G4ParticleDefinition * m_AntiProton
Pointer to definition of the antiproton.
Definition: EnergyLossForExtrapolator.h:178
Belle2::Simulation::EnergyLossForExtrapolator::m_Deuteron
const G4ParticleDefinition * m_Deuteron
Pointer to definition of the deuteron.
Definition: EnergyLossForExtrapolator.h:181
Belle2::Simulation::EnergyLossForExtrapolator::ComputeValue
G4double ComputeValue(G4double x, const G4PhysicsTable *table)
Get the tabulated energy-loss, fluctuation, or scattering value for the given input.
Definition: EnergyLossForExtrapolator.h:403
Belle2::Simulation::EnergyLossForExtrapolator::m_KaonMinus
const G4ParticleDefinition * m_KaonMinus
Pointer to definition of the negative kaon.
Definition: EnergyLossForExtrapolator.h:172
Belle2::Simulation::EnergyLossForExtrapolator::m_MaterialIndex
G4int m_MaterialIndex
Cached material index.
Definition: EnergyLossForExtrapolator.h:265
Belle2::Simulation::EnergyLossForExtrapolator::~EnergyLossForExtrapolator
~EnergyLossForExtrapolator()
Destructor.
Definition: EnergyLossForExtrapolator.cc:108
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxPositron
G4PhysicsTable * m_DedxPositron
Pointer to the positron's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:199
Belle2::Simulation::EnergyLossForExtrapolator::m_RadLength
G4double m_RadLength
Cached material radiation length.
Definition: EnergyLossForExtrapolator.h:271
Belle2::Simulation::EnergyLossForExtrapolator::m_BetaGammaSq
G4double m_BetaGammaSq
Cached particle's beta*gamma squared.
Definition: EnergyLossForExtrapolator.h:286
Belle2::Simulation::EnergyLossForExtrapolator::Initialisation
void Initialisation()
Initialize tables used to calculate energy loss, fluctuation, and scattering for electrons,...
Definition: EnergyLossForExtrapolator.cc:256
Belle2::Simulation::EnergyLossForExtrapolator::ComputeHadronDEDX
void ComputeHadronDEDX(const G4ParticleDefinition *part, G4PhysicsTable *table)
Fill the table with the specific ionization energy loss of a hadron.
Definition: EnergyLossForExtrapolator.cc:548
Belle2::Simulation::EnergyLossForExtrapolator::m_UserTmin
G4double m_UserTmin
User's minimum kinetic energy for particles (default 1 MeV)
Definition: EnergyLossForExtrapolator.h:298
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangeElectron
G4PhysicsTable * m_InvRangeElectron
Pointer to the electron's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:238
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxElectron
G4PhysicsTable * m_DedxElectron
Pointer to the electron's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:196
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Simulation::EnergyLossForExtrapolator::m_RangeProton
G4PhysicsTable * m_RangeProton
Pointer to the proton's range vs KE table.
Definition: EnergyLossForExtrapolator.h:232
Belle2::Simulation::EnergyLossForExtrapolator::m_MuonPlus
const G4ParticleDefinition * m_MuonPlus
Pointer to definition of the positive muon.
Definition: EnergyLossForExtrapolator.h:157
Belle2::Simulation::EnergyLossForExtrapolator::m_NMaterials
G4int m_NMaterials
Number of materials in current geometry.
Definition: EnergyLossForExtrapolator.h:310
Belle2::Simulation::EnergyLossForExtrapolator::m_PionMinus
const G4ParticleDefinition * m_PionMinus
Pointer to definition of the negative pion.
Definition: EnergyLossForExtrapolator.h:166
Belle2::Simulation::EnergyLossForExtrapolator::m_Material
const G4Material * m_Material
Pointer to internally cached material.
Definition: EnergyLossForExtrapolator.h:262
Belle2::Simulation::EnergyLossForExtrapolator::m_RangeDeuteron
G4PhysicsTable * m_RangeDeuteron
Pointer to the deuteron's range vs KE table.
Definition: EnergyLossForExtrapolator.h:235
Belle2::Simulation::EnergyLossForExtrapolator::ComputeTrueStep
G4double ComputeTrueStep(const G4Material *, const G4ParticleDefinition *part, G4double kinEnergy, G4double stepLength)
Get average scattering angle after a step in given material by given particle.
Definition: EnergyLossForExtrapolator.h:376
Belle2::Simulation::EnergyLossForExtrapolator::m_RangePion
G4PhysicsTable * m_RangePion
Pointer to the pion's range vs KE table.
Definition: EnergyLossForExtrapolator.h:226
Belle2::Simulation::EnergyLossForExtrapolator::m_PionPlus
const G4ParticleDefinition * m_PionPlus
Pointer to definition of the positive pion.
Definition: EnergyLossForExtrapolator.h:163
Belle2::Simulation::EnergyLossForExtrapolator::ComputeElectronDEDX
void ComputeElectronDEDX(const G4ParticleDefinition *part, G4PhysicsTable *table)
Fill the table with the specific ionization energy loss of an electron.
Definition: EnergyLossForExtrapolator.cc:446
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangePion
G4PhysicsTable * m_InvRangePion
Pointer to the pion's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:247
Belle2::Simulation::EnergyLossForExtrapolator::m_Positron
const G4ParticleDefinition * m_Positron
Pointer to definition of the positron.
Definition: EnergyLossForExtrapolator.h:154
Belle2::Simulation::EnergyLossForExtrapolator::EnergyAfterStep
G4double EnergyAfterStep(G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *)
Get kinetic energy after a step in given material by given particle.
Definition: EnergyLossForExtrapolator.cc:139
Belle2::Simulation::EnergyLossForExtrapolator::ComputeEnergy
G4double ComputeEnergy(G4double range, const G4ParticleDefinition *)
Get kinetic energy corresponding to the given range and particle.
Definition: EnergyLossForExtrapolator.cc:420
Belle2::Simulation::EnergyLossForExtrapolator::operator=
EnergyLossForExtrapolator & operator=(const EnergyLossForExtrapolator &right)
Hide assignment operator.
Belle2::Simulation::EnergyLossForExtrapolator::m_RangeMuon
G4PhysicsTable * m_RangeMuon
Pointer to the muon's range vs KE table.
Definition: EnergyLossForExtrapolator.h:223
Belle2::Simulation::EnergyLossForExtrapolator::m_ChargeSq
G4double m_ChargeSq
Cached charge-squared (in units of e)
Definition: EnergyLossForExtrapolator.h:277
Belle2::Simulation::EnergyLossForExtrapolator::m_Couples
std::vector< const G4MaterialCutsCouple * > m_Couples
List of material-cuts pairings.
Definition: EnergyLossForExtrapolator.h:193
Belle2::Simulation::EnergyLossForExtrapolator::FindParticle
const G4ParticleDefinition * FindParticle(const G4String &name)
Get the particle definition of the named particle.
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangeMuon
G4PhysicsTable * m_InvRangeMuon
Pointer to the muon's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:244
Belle2::Simulation::EnergyLossForExtrapolator::m_InvRangeDeuteron
G4PhysicsTable * m_InvRangeDeuteron
Pointer to the deuteron's inverse-range vs KE table.
Definition: EnergyLossForExtrapolator.h:256
Belle2::Simulation::EnergyLossForExtrapolator::m_RangePositron
G4PhysicsTable * m_RangePositron
Pointer to the positron's range vs KE table.
Definition: EnergyLossForExtrapolator.h:220
Belle2::Simulation::EnergyLossForExtrapolator::m_ElectronDensity
G4double m_ElectronDensity
Cached material electron density.
Definition: EnergyLossForExtrapolator.h:268
Belle2::Simulation::EnergyLossForExtrapolator::m_BetaSq
G4double m_BetaSq
Cached particle's beta squared.
Definition: EnergyLossForExtrapolator.h:289
Belle2::Simulation::EnergyLossForExtrapolator::m_Electron
const G4ParticleDefinition * m_Electron
Pointer to definition of the electron.
Definition: EnergyLossForExtrapolator.h:151
Belle2::Simulation::EnergyLossForExtrapolator::SetupKinematics
G4bool SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kinEnergy)
Save current particle properties, kinetic energy and material in internal cached state.
Definition: EnergyLossForExtrapolator.cc:210
Belle2::Simulation::EnergyLossForExtrapolator::TrueStepLength
G4double TrueStepLength(G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *part)
Get true step length for given particle and kinetic energy.
Definition: EnergyLossForExtrapolator.cc:187
Belle2::Simulation::EnergyLossForExtrapolator::m_Proton
const G4ParticleDefinition * m_Proton
Pointer to definition of the proton.
Definition: EnergyLossForExtrapolator.h:175
Belle2::Simulation::EnergyLossForExtrapolator::m_Nbins
G4int m_Nbins
Number of bins in each energy loss, fluctuation, and multiple-scattering table (70,...
Definition: EnergyLossForExtrapolator.h:307
Belle2::Simulation::EnergyLossForExtrapolator::SetMinKinEnergy
void SetMinKinEnergy(G4double)
Get energy dispersion for a step in given material by given particle.
Definition: EnergyLossForExtrapolator.h:421
Belle2::Simulation::EnergyLossForExtrapolator::m_Cuts
G4DataVector m_Cuts
Vector of particle cuts.
Definition: EnergyLossForExtrapolator.h:187
Belle2::Simulation::EnergyLossForExtrapolator::m_MuonMinus
const G4ParticleDefinition * m_MuonMinus
Pointer to definition of the negative muon.
Definition: EnergyLossForExtrapolator.h:160
Belle2::Simulation::EnergyLossForExtrapolator::m_Tmax
G4double m_Tmax
Cached particle's maximum kinetic-energy loss.
Definition: EnergyLossForExtrapolator.h:292
Belle2::Simulation::EnergyLossForExtrapolator::AverageScatteringAngle
G4double AverageScatteringAngle(G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *part)
Get kinetic energy after a step in given material by given particle.
Definition: EnergyLossForExtrapolator.h:359
Belle2::Simulation::EnergyLossForExtrapolator::m_Initialised
G4bool m_Initialised
UNUSED Flag to indicate that Initialisation() method has been called.
Definition: EnergyLossForExtrapolator.h:313
Belle2::Simulation::EnergyLossForExtrapolator::m_DedxPion
G4PhysicsTable * m_DedxPion
Pointer to the pion's specific ionization energy loss vs KE table.
Definition: EnergyLossForExtrapolator.h:205