Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // Class for description of transition radiat 27 // by charged particle crossed interface betw 28 // and material 2 (1 -> 2). Transition radiati 29 // - optical back 30 // - optical forward 31 // - X-ray forward (for relativistic case Tk 32 // 33 // GEANT 4 class header file --- Copyright CER 34 // 35 // History: 36 // 18.12.97, V. Grichine (Vladimir.Grichine@ce 37 // 02.02.00, V.Grichine, new data fEnergy and 38 // numerical integration 39 // 03.06.03, V.Ivanchenko fix compilation warn 40 // 28.07.05, P.Gumplinger add G4ProcessType to 41 42 #ifndef G4TransitionRadiation_h 43 #define G4TransitionRadiation_h 44 45 #include "globals.hh" 46 #include "G4ParticleDefinition.hh" 47 #include "G4Step.hh" 48 #include "G4Track.hh" 49 #include "G4VDiscreteProcess.hh" 50 #include "G4VParticleChange.hh" 51 52 class G4TransitionRadiation : public G4VDiscre 53 { 54 public: 55 explicit G4TransitionRadiation(const G4Strin 56 G4ProcessType 57 58 virtual ~G4TransitionRadiation(); 59 60 G4TransitionRadiation(const G4TransitionRadi 61 G4TransitionRadiation& operator=(const G4Tra 62 63 // Methods 64 65 G4bool IsApplicable(const G4ParticleDefiniti 66 67 virtual G4double GetMeanFreePath(const G4Tra 68 G4ForceCond 69 70 virtual G4VParticleChange* PostStepDoIt(cons 71 cons 72 73 virtual void ProcessDescription(std::ostream 74 virtual void DumpInfo() const override { Pro 75 76 virtual G4double SpectralAngleTRdensity(G4do 77 G4do 78 79 G4double IntegralOverEnergy(G4double energy1 80 G4double varAngl 81 82 G4double IntegralOverAngle(G4double energy, 83 G4double varAngle 84 85 G4double AngleIntegralDistribution(G4double 86 G4double 87 88 G4double EnergyIntegralDistribution(G4double 89 90 protected: 91 // Local constants 92 // Accuracy of Sympson integration 93 static constexpr G4int fSympsonNumber = 100; 94 static constexpr G4int fGammaNumber = 15; 95 static constexpr G4int fPointNumber = 100; 96 97 G4double fGamma; 98 G4double fEnergy; 99 G4double fVarAngle; 100 101 G4double fMinEnergy; // min TR energy 102 G4double fMaxEnergy; // max TR energy 103 G4double fMaxTheta; // max theta of TR qu 104 105 G4double fSigma1; // plasma energy Sq of ma 106 G4double fSigma2; // plasma energy Sq of ma 107 108 G4int fMatIndex1; // index of the 1st mater 109 G4int fMatIndex2; // index of the 2nd mater 110 }; 111 112 #endif // G4TransitionRadiation_h 113