ATLAS Offline Software
Loading...
Searching...
No Matches
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>
13class G4Material;
14class G4Step;
15class G4Track;
16
17
19
20class TRTTransitionRadiation : public G4VDiscreteProcess, public AthMessaging {
21
22public:
23
25 // Public Methods //
27
28 TRTTransitionRadiation(const G4String& processName="TransitionRadiation", const std::string & xmlfilename="TRgeomodelgeometry.xml");
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
38private:
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
static Double_t ss
#define F(x, y, z)
Definition MD5.cxx:112
@ Material
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
G4bool IsApplicable(const G4ParticleDefinition &)
G4double NeffNevski(const G4double &sigGas, const G4double &sigFoil, const G4double &GasThickness, const G4double &FoilThickness, const G4int &FoilsTraversed) const
void AddRadiatorParameters(const TRTRadiatorParameters &p)
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
G4double XFinter(const G4double &X, const G4double *A, const G4double *F) const
G4double XInteg(const G4double *yy, G4double *ss) const
TRTTransitionRadiation & operator=(const TRTTransitionRadiation &)
std::vector< TRTRadiatorParameters > m_radiators
G4double XEmitanNevski(const G4double &PhotonEnergy, const G4double &Gamma, const G4double &GasThickness, const G4double &FoilThickness) const
G4double NeffArtru(const G4double &sigGas, const G4double &sigFoil, const G4double &GasThickness, const G4double &FoilThickness, const G4int &FoilsTraversed) const
G4double XEmitanArtru(const G4double &PhotonEnergy, const G4double &Gamma, const G4double &GasThickness, const G4double &FoilThickness) const
TRTTransitionRadiation(const G4String &processName="TransitionRadiation", const std::string &xmlfilename="TRgeomodelgeometry.xml")
TRRegionXMLHandler * m_XMLhandler
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *)
G4double ComputePhotoAbsCof(const G4Material *Material, const G4double &GammaEnergy) const
TRTTransitionRadiation(const TRTTransitionRadiation &)
hold the test vectors and ease the comparison