Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ForwardXrayTR.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27//
28// G4ForwardXrayTR
29//
30// Class for description
31//
32// Class for forward X-ray transition radiation generated
33// by relativistic charged particle crossed interface between material 1
34// and material 2 (1 -> 2)
35
36// History:
37// 22.09.97, V. Grichine ([email protected])
38// 26.01.00, V.Grichine, new constructor and protected DM for fast sim. models
39// 10.03.03, V.Ivanchenko migrade to "cut per region"
40// 03.06.03, V.Ivanchenko fix compilation warnings
41
42#ifndef G4FORWARDXRAYTR_H
43#define G4FORWARDXRAYTR_H
44
45
46#include "globals.hh"
47#include "templates.hh"
48#include "geomdefs.hh"
49#include "Randomize.hh"
50#include "G4Step.hh"
51#include "G4VDiscreteProcess.hh"
52#include "G4DynamicParticle.hh"
53#include "G4Material.hh"
56#include "G4OpticalSurface.hh"
57#include "G4OpticalPhoton.hh"
59
61#include "G4PhysicsTable.hh"
62#include "G4Gamma.hh"
63#include "G4PhysicsLogVector.hh"
64
66{
67public:
68
69 // Constructors
70
71 explicit G4ForwardXrayTR( const G4String& matName1, // G4Material* pMat1,
72 const G4String& matName2, // G4Material* pMat2,
73 const G4String& processName="XrayTR" );
74
75 explicit G4ForwardXrayTR( const G4String& processName="XrayTR" );
76
77 // Destructor // virtual
78
79 virtual ~G4ForwardXrayTR();
80
81/////////////////////// Methods /////////////////////////////////
82
83 void BuildXrayTRtables();
84
86 G4ForceCondition* condition) override;
87
89 const G4Step& aStep ) override;
90
91 G4double GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const;
92
93 G4double GetThetaTR(G4int iMat, G4int jMat, G4int iTkin) const;
94
95
96///////////////////// Angle distribution /////////////////////////////
97//
98
100 G4double varAngle ) const override;
101
103 G4double varAngle ) const;
104
106 G4double energy2,
107 G4double varAngle ) const;
108
109G4double AngleSum( G4double varAngle1,
110 G4double varAngle2 ) const;
111
112///////////////////////// Energy distribution ///////////////////////////////
113
115 G4double x ) const;
116
118 G4double varAngle1,
119 G4double varAngle2 ) const;
120
122 G4double energy2 ) const;
123
124
125/////////////////////////// Access functions ////////////////////////////
126
129
130 static G4int GetSympsonNumber();
131 static G4int GetBinTR();
132
133 static G4double GetMinProtonTkin();
134 static G4double GetMaxProtonTkin();
135 static G4int GetTotBin();
136
137
138protected: // for access from X-ray TR fast simulation models
139
140 // private : /////////////// Data members ///////////////////////////
141
142G4ParticleDefinition* fPtrGamma; // pointer to TR photon
143
144const std::vector<G4double>* fGammaCutInKineticEnergy;
145 // TR photon cut in energy array
146G4double fGammaTkinCut; // Tkin cut of TR photon in current mat.
147
150
152
153static G4int fSympsonNumber; // Accuracy of Sympson integration
154
155static G4double fTheMinEnergyTR; // static min TR energy
156static G4double fTheMaxEnergyTR; // static max TR energy
157 G4double fMinEnergyTR; // min TR energy in material
158 G4double fMaxEnergyTR; // max TR energy in material
159static G4double fTheMaxAngle; // max theta of TR quanta
160static G4double fTheMinAngle; // max theta of TR quanta
161 G4double fMaxThetaTR; // max theta of TR quanta
162static G4int fBinTR; // number of bins in TR vectors
163
164static G4double fMinProtonTkin; // min Tkin of proton in tables
165static G4double fMaxProtonTkin; // max Tkin of proton in tables
166static G4int fTotBin; // number of bins in log scale
167 G4double fGamma; // current Lorentz factor
168
169static G4double fPlasmaCof; // physical consts for plasma energy
171
172G4double fSigma1; // plasma energy Sq of matter1
173G4double fSigma2; // plasma energy Sq of matter2
174
175private:
176 // Operators
177
178 G4ForwardXrayTR(const G4ForwardXrayTR& right) = delete;
179
180 G4ForwardXrayTR& operator=(const G4ForwardXrayTR& right) = delete;
181
182 // G4bool operator==(const G4ForwardXrayTR& right)const;
183 // G4bool operator!=(const G4ForwardXrayTR& right)const;
184
185}; // end of G4ForwardXrayTR class ---------------------------
186
187#endif // G4FORWARDXRAYTR_H
188
189
190
G4double condition(const G4ErrorSymMatrix &m)
G4ForceCondition
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
static G4int fSympsonNumber
G4double SpectralDensity(G4double energy, G4double x) const
static G4double GetMinProtonTkin()
G4double EnergyInterval(G4double energy1, G4double energy2, G4double varAngle) const
static G4double fPlasmaCof
G4double EnergySum(G4double energy1, G4double energy2) const
static G4double fCofTR
static G4int GetSympsonNumber()
static G4double fTheMaxAngle
static G4double fTheMinEnergyTR
static G4double GetMaxProtonTkin()
static G4int GetTotBin()
static G4int GetBinTR()
const std::vector< G4double > * fGammaCutInKineticEnergy
G4PhysicsTable * fEnergyDistrTable
static G4int fBinTR
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep) override
G4PhysicsTable * fAngleDistrTable
G4double AngleDensity(G4double energy, G4double varAngle) const
G4double GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const
G4PhysicsTable * GetAngleDistrTable()
static G4double fMinProtonTkin
G4double AngleInterval(G4double energy, G4double varAngle1, G4double varAngle2) const
G4double GetThetaTR(G4int iMat, G4int jMat, G4int iTkin) const
G4PhysicsLogVector * fProtonEnergyVector
G4ParticleDefinition * fPtrGamma
static G4double fTheMinAngle
G4double SpectralAngleTRdensity(G4double energy, G4double varAngle) const override
static G4int fTotBin
G4double AngleSum(G4double varAngle1, G4double varAngle2) const
G4PhysicsTable * GetEnergyDistrTable()
static G4double fTheMaxEnergyTR
static G4double fMaxProtonTkin
virtual ~G4ForwardXrayTR()
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *condition) override
Definition: G4Step.hh:62