ATLAS Offline Software
TRTTransitionRadiation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRTTRANSITIONRADIATION_H
6 #define TRTTRANSITIONRADIATION_H
7 
9 
10 #include "G4VDiscreteProcess.hh"
11 #include "G4LogicalVolume.hh"
12 #include "G4Material.hh"
13 #include "G4PhysicsLogVector.hh"
14 #include "G4Step.hh"
15 #include "G4Track.hh"
16 
18 
19 #include <vector>
20 
21 
22 class TRRegionXMLHandler;
23 
24 class TRTTransitionRadiation : public G4VDiscreteProcess, public AthMessaging {
25 
26 public:
27 
29  // Public Methods //
31 
32  TRTTransitionRadiation(const G4String& processName="TransitionRadiation", const std::string & xmlfilename="TRgeomodelgeometry.xml");
33  virtual ~TRTTransitionRadiation();
34 
35  void Initialize();
36  G4bool IsApplicable(const G4ParticleDefinition&);
37  G4double GetMeanFreePath(const G4Track& aTrack, G4double, G4ForceCondition *);
38  G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
39 
41 
42 private:
43 
47  // Private Helper Methods //
49 
50  G4double ComputePhotoAbsCof( const G4Material* Material, const G4double & GammaEnergy ) const;
51 
52  G4double XEmitanNevski( const G4double & PhotonEnergy,
53  const G4double & Gamma,
54  const G4double & GasThickness,
55  const G4double & FoilThickness) const;
56 
57  G4double XEmitanArtru( const G4double & PhotonEnergy,
58  const G4double & Gamma,
59  const G4double &GasThickness,
60  const G4double &FoilThickness) const;
61 
62  G4double NeffNevski( const G4double & sigGas,
63  const G4double & sigFoil,
64  const G4double & GasThickness,
65  const G4double & FoilThickness,
66  const G4int & FoilsTraversed ) const;
67 
68  G4double NeffArtru( const G4double & sigGas,
69  const G4double & sigFoil,
70  const G4double & GasThickness,
71  const G4double & FoilThickness,
72  const G4int & FoilsTraversed ) const;
73 
74  G4double XFinter( const G4double & X, const G4double* A, const G4double* F ) const;
75  G4double XInteg( const G4double* yy, G4double* ss ) const;
76 
78  // Member Data //
80 
81  //protected:
82 
84  const std::string m_xmlfilename;
85  std::vector<TRTRadiatorParameters> m_radiators;
86 
87  G4double m_MinEnergyTR; // min TR energy in material
88  G4double m_MaxEnergyTR; // max TR energy in material
89  G4int m_NumBins; // number of bins in log scale
90 
91  G4double m_WplasmaGas; // plasma energy of foil and air.
92  G4double m_WplasmaFoil;
93 
94  G4double m_GammaMin; // Minimum value of Lorentz gamma for TR radiation
95  G4double m_EkinMin; // Corresponding KineticEnergy for electrons
96 
97  G4double* m_Ey;
98  G4double* m_Sr;
99  G4double* m_om;
100  G4double* m_Omg;
101  G4double* m_sigmaGas;
102  G4double* m_sigmaFoil;
103 };
104 
105 #endif
TRTTransitionRadiation::XEmitanArtru
G4double XEmitanArtru(const G4double &PhotonEnergy, const G4double &Gamma, const G4double &GasThickness, const G4double &FoilThickness) const
Definition: TRTTransitionRadiation.cxx:542
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:24
TRTTransitionRadiation::operator=
TRTTransitionRadiation & operator=(const TRTTransitionRadiation &)
TRTTransitionRadiation::m_NumBins
G4int m_NumBins
Definition: TRTTransitionRadiation.h:89
TRTTransitionRadiation::m_MaxEnergyTR
G4double m_MaxEnergyTR
Definition: TRTTransitionRadiation.h:88
TRTTransitionRadiation::GetMeanFreePath
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *)
Definition: TRTTransitionRadiation.cxx:245
VP1PartSpect::Gamma
@ Gamma
Definition: VP1PartSpectFlags.h:22
TRTTransitionRadiation::m_XMLhandler
TRRegionXMLHandler * m_XMLhandler
Definition: TRTTransitionRadiation.h:83
TRTTransitionRadiation::XInteg
G4double XInteg(const G4double *yy, G4double *ss) const
Definition: TRTTransitionRadiation.cxx:613
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
A
TRTTransitionRadiation::ComputePhotoAbsCof
G4double ComputePhotoAbsCof(const G4Material *Material, const G4double &GammaEnergy) const
Definition: TRTTransitionRadiation.cxx:657
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
TRTTransitionRadiation::m_EkinMin
G4double m_EkinMin
Definition: TRTTransitionRadiation.h:95
TRTTransitionRadiation::m_GammaMin
G4double m_GammaMin
Definition: TRTTransitionRadiation.h:94
TRTTransitionRadiation::m_Omg
G4double * m_Omg
Definition: TRTTransitionRadiation.h:100
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
TRTTransitionRadiation::IsApplicable
G4bool IsApplicable(const G4ParticleDefinition &)
Definition: TRTTransitionRadiation.cxx:235
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:486
TRRegionXMLHandler
Definition: TRRegionXMLHandler.h:14
TRTRadiatorParameters.h
TRTTransitionRadiation::m_sigmaGas
G4double * m_sigmaGas
Definition: TRTTransitionRadiation.h:101
TRTTransitionRadiation::NeffArtru
G4double NeffArtru(const G4double &sigGas, const G4double &sigFoil, const G4double &GasThickness, const G4double &FoilThickness, const G4int &FoilsTraversed) const
Definition: TRTTransitionRadiation.cxx:467
TRTRadiatorParameters
Definition: TRTRadiatorParameters.h:12
TRTTransitionRadiation::m_WplasmaFoil
G4double m_WplasmaFoil
Definition: TRTTransitionRadiation.h:92
TRTTransitionRadiation::m_WplasmaGas
G4double m_WplasmaGas
Definition: TRTTransitionRadiation.h:91
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:261
TRTTransitionRadiation::m_sigmaFoil
G4double * m_sigmaFoil
Definition: TRTTransitionRadiation.h:102
TRTTransitionRadiation::m_xmlfilename
const std::string m_xmlfilename
Definition: TRTTransitionRadiation.h:84
TRTTransitionRadiation::NeffNevski
G4double NeffNevski(const G4double &sigGas, const G4double &sigFoil, const G4double &GasThickness, const G4double &FoilThickness, const G4int &FoilsTraversed) const
Definition: TRTTransitionRadiation.cxx:450
TRTTransitionRadiation::m_Sr
G4double * m_Sr
Definition: TRTTransitionRadiation.h:98
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:99
TRTTransitionRadiation::m_Ey
G4double * m_Ey
Definition: TRTTransitionRadiation.h:97
Material
@ Material
Definition: MaterialTypes.h:8
TRTTransitionRadiation::m_radiators
std::vector< TRTRadiatorParameters > m_radiators
Definition: TRTTransitionRadiation.h:85
TRTTransitionRadiation::m_MinEnergyTR
G4double m_MinEnergyTR
Definition: TRTTransitionRadiation.h:87
TRTTransitionRadiation::XFinter
G4double XFinter(const G4double &X, const G4double *A, const G4double *F) const
Definition: TRTTransitionRadiation.cxx:629