Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TRTTransitionRadiation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRTTRANSITIONRADIATION_H
6 #define TRTTRANSITIONRADIATION_H
7 
10 #include "G4VDiscreteProcess.hh"
11 
12 #include <vector>
13 class G4Material;
14 class G4Step;
15 class G4Track;
16 
17 
18 class TRRegionXMLHandler;
19 
20 class TRTTransitionRadiation : public G4VDiscreteProcess, public AthMessaging {
21 
22 public:
23 
25  // Public Methods //
27 
28  TRTTransitionRadiation(const G4String& processName="TransitionRadiation", const std::string & xmlfilename="TRgeomodelgeometry.xml");
29  virtual ~TRTTransitionRadiation();
30 
31  void Initialize();
32  G4bool IsApplicable(const G4ParticleDefinition&);
33  G4double GetMeanFreePath(const G4Track& aTrack, G4double, G4ForceCondition *);
34  G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
35 
37 
38 private:
39 
43  // Private Helper Methods //
45 
46  G4double ComputePhotoAbsCof( const G4Material* Material, const G4double & GammaEnergy ) const;
47 
48  G4double XEmitanNevski( const G4double & PhotonEnergy,
49  const G4double & Gamma,
50  const G4double & GasThickness,
51  const G4double & FoilThickness) const;
52 
53  G4double XEmitanArtru( const G4double & PhotonEnergy,
54  const G4double & Gamma,
55  const G4double &GasThickness,
56  const G4double &FoilThickness) const;
57 
58  G4double NeffNevski( const G4double & sigGas,
59  const G4double & sigFoil,
60  const G4double & GasThickness,
61  const G4double & FoilThickness,
62  const G4int & FoilsTraversed ) const;
63 
64  G4double NeffArtru( const G4double & sigGas,
65  const G4double & sigFoil,
66  const G4double & GasThickness,
67  const G4double & FoilThickness,
68  const G4int & FoilsTraversed ) const;
69 
70  G4double XFinter( const G4double & X, const G4double* A, const G4double* F ) const;
71  G4double XInteg( const G4double* yy, G4double* ss ) const;
72 
74  // Member Data //
76 
77  //protected:
78 
80  const std::string m_xmlfilename;
81  std::vector<TRTRadiatorParameters> m_radiators;
82 
83  G4double m_MinEnergyTR; // min TR energy in material
84  G4double m_MaxEnergyTR; // max TR energy in material
85  G4int m_NumBins; // number of bins in log scale
86 
87  G4double m_WplasmaGas; // plasma energy of foil and air.
88  G4double m_WplasmaFoil;
89 
90  G4double m_GammaMin; // Minimum value of Lorentz gamma for TR radiation
91  G4double m_EkinMin; // Corresponding KineticEnergy for electrons
92 
93  G4double* m_Ey;
94  G4double* m_Sr;
95  G4double* m_om;
96  G4double* m_Omg;
97  G4double* m_sigmaGas;
98  G4double* m_sigmaFoil;
99 };
100 
101 #endif
TRTTransitionRadiation::XEmitanArtru
G4double XEmitanArtru(const G4double &PhotonEnergy, const G4double &Gamma, const G4double &GasThickness, const G4double &FoilThickness) const
Definition: TRTTransitionRadiation.cxx:543
TRTTransitionRadiation::TRTTransitionRadiation
TRTTransitionRadiation(const TRTTransitionRadiation &)
TRTTransitionRadiation::AddRadiatorParameters
void AddRadiatorParameters(const TRTRadiatorParameters &p)
Definition: TRTTransitionRadiation.cxx:81
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
PlotCalibFromCool.yy
yy
Definition: PlotCalibFromCool.py:714
TRTTransitionRadiation
Definition: TRTTransitionRadiation.h:20
TRTTransitionRadiation::operator=
TRTTransitionRadiation & operator=(const TRTTransitionRadiation &)
TRTTransitionRadiation::m_NumBins
G4int m_NumBins
Definition: TRTTransitionRadiation.h:85
TRTTransitionRadiation::m_MaxEnergyTR
G4double m_MaxEnergyTR
Definition: TRTTransitionRadiation.h:84
TRTTransitionRadiation::GetMeanFreePath
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *)
Definition: TRTTransitionRadiation.cxx:246
VP1PartSpect::Gamma
@ Gamma
Definition: VP1PartSpectFlags.h:22
TRTTransitionRadiation::m_XMLhandler
TRRegionXMLHandler * m_XMLhandler
Definition: TRTTransitionRadiation.h:79
TRTTransitionRadiation::XInteg
G4double XInteg(const G4double *yy, G4double *ss) const
Definition: TRTTransitionRadiation.cxx:614
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
A
TRTTransitionRadiation::ComputePhotoAbsCof
G4double ComputePhotoAbsCof(const G4Material *Material, const G4double &GammaEnergy) const
Definition: TRTTransitionRadiation.cxx:658
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
TRTTransitionRadiation::m_EkinMin
G4double m_EkinMin
Definition: TRTTransitionRadiation.h:91
TRTTransitionRadiation::m_GammaMin
G4double m_GammaMin
Definition: TRTTransitionRadiation.h:90
TRTTransitionRadiation::m_Omg
G4double * m_Omg
Definition: TRTTransitionRadiation.h:96
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
TRTTransitionRadiation::IsApplicable
G4bool IsApplicable(const G4ParticleDefinition &)
Definition: TRTTransitionRadiation.cxx:236
TRTTransitionRadiation::Initialize
void Initialize()
Definition: TRTTransitionRadiation.cxx:94
TRTTransitionRadiation::XEmitanNevski
G4double XEmitanNevski(const G4double &PhotonEnergy, const G4double &Gamma, const G4double &GasThickness, const G4double &FoilThickness) const
Definition: TRTTransitionRadiation.cxx:487
TRRegionXMLHandler
Definition: TRRegionXMLHandler.h:14
TRTRadiatorParameters.h
TRTTransitionRadiation::m_sigmaGas
G4double * m_sigmaGas
Definition: TRTTransitionRadiation.h:97
TRTTransitionRadiation::NeffArtru
G4double NeffArtru(const G4double &sigGas, const G4double &sigFoil, const G4double &GasThickness, const G4double &FoilThickness, const G4int &FoilsTraversed) const
Definition: TRTTransitionRadiation.cxx:468
TRTRadiatorParameters
Definition: TRTRadiatorParameters.h:12
TRTTransitionRadiation::m_WplasmaFoil
G4double m_WplasmaFoil
Definition: TRTTransitionRadiation.h:88
TRTTransitionRadiation::m_WplasmaGas
G4double m_WplasmaGas
Definition: TRTTransitionRadiation.h:87
F
#define F(x, y, z)
Definition: MD5.cxx:112
AthMessaging.h
TRTTransitionRadiation::PostStepDoIt
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
Definition: TRTTransitionRadiation.cxx:262
TRTTransitionRadiation::m_sigmaFoil
G4double * m_sigmaFoil
Definition: TRTTransitionRadiation.h:98
TRTTransitionRadiation::m_xmlfilename
const std::string m_xmlfilename
Definition: TRTTransitionRadiation.h:80
TRTTransitionRadiation::NeffNevski
G4double NeffNevski(const G4double &sigGas, const G4double &sigFoil, const G4double &GasThickness, const G4double &FoilThickness, const G4int &FoilsTraversed) const
Definition: TRTTransitionRadiation.cxx:451
TRTTransitionRadiation::m_Sr
G4double * m_Sr
Definition: TRTTransitionRadiation.h:94
TRTTransitionRadiation::~TRTTransitionRadiation
virtual ~TRTTransitionRadiation()
Definition: TRTTransitionRadiation.cxx:71
TRTTransitionRadiation::TRTTransitionRadiation
TRTTransitionRadiation(const G4String &processName="TransitionRadiation", const std::string &xmlfilename="TRgeomodelgeometry.xml")
Definition: TRTTransitionRadiation.cxx:48
TRTTransitionRadiation::m_om
G4double * m_om
Definition: TRTTransitionRadiation.h:95
TRTTransitionRadiation::m_Ey
G4double * m_Ey
Definition: TRTTransitionRadiation.h:93
Material
@ Material
Definition: MaterialTypes.h:8
TRTTransitionRadiation::m_radiators
std::vector< TRTRadiatorParameters > m_radiators
Definition: TRTTransitionRadiation.h:81
TRTTransitionRadiation::m_MinEnergyTR
G4double m_MinEnergyTR
Definition: TRTTransitionRadiation.h:83
TRTTransitionRadiation::XFinter
G4double XFinter(const G4double &X, const G4double *A, const G4double *F) const
Definition: TRTTransitionRadiation.cxx:630