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 // ******************************************* 27 // | 28 // | G4LowEPComptonModel-- Geant4 29 // | low energy Compton scat 30 // | J. M. C. Brown, Monash Univer 31 // | ## Unpolarised photons 32 // | 33 // | 34 // ******************************************* 35 // | 36 // | The following is a Geant4 class to simula 37 // | bound electron Compton scattering. Genera 38 // | based on G4LowEnergyCompton.cc and G4Live 39 // | Algorithms for photon energy, and ejected 40 // | direction taken from: 41 // | 42 // | J. M. C. Brown, M. R. Dimmock, J. E. Gill 43 // | "A low energy bound atomic electron Compt 44 // | for Geant4", NIMB, Vol. 338, 77-88, 2014 45 // | 46 // | The author acknowledges the work of the G 47 // | in developing the following algorithms th 48 // | or adapeted for the present software: 49 // | 50 // | # sampling of photon scattering angle, 51 // | # target element selection in composite 52 // | # target shell selection in element, 53 // | # and sampling of bound electron momentu 54 // | 55 // ******************************************* 56 // | 57 // | History: 58 // | -------- 59 // | 60 // | Nov. 2011 JMCB - First version 61 // | Feb. 2012 JMCB - Migration to Geant 62 // | Sep. 2012 JMCB - Final fixes for Ge 63 // | Feb. 2013 JMCB - Geant4 9.6 FPE fix 64 // | Jan. 2015 JMCB - Migration to MT (B 65 // | implementation) 66 // | Feb. 2016 JMCB - Geant4 10.2 FPE fi 67 // | 68 // ******************************************* 69 70 #ifndef G4LowEPComptonModel_h 71 #define G4LowEPComptonModel_h 1 72 73 #include "G4VEmModel.hh" 74 #include "G4PhysicsFreeVector.hh" 75 76 class G4ParticleChangeForGamma; 77 class G4VAtomDeexcitation; 78 class G4ShellData; 79 class G4DopplerProfile; 80 81 class G4LowEPComptonModel : public G4VEmModel 82 { 83 84 public: 85 86 explicit G4LowEPComptonModel(const G4Particl 87 const G4String& nam = "LowEPComp 88 virtual ~G4LowEPComptonModel(); 89 90 void Initialise(const G4ParticleDefinition*, 91 void InitialiseLocal(const G4ParticleDefinit 92 G4VEmModel* mas 93 94 void InitialiseForElement(const G4ParticleDe 95 96 G4double ComputeCrossSectionPerAtom( const G 97 G4double kinEnergy, 98 G4double Z, 99 G4double A=0, 100 G4double cut=0, 101 G4double emax=DBL_MAX ) overrid 102 103 void SampleSecondaries(std::vector<G4Dynamic 104 const G4MaterialCutsCouple*, 105 const G4DynamicParticle*, 106 G4double tmin, 107 G4double maxEnergy) override; 108 109 G4LowEPComptonModel & operator=(const G4Low 110 G4LowEPComptonModel(const G4LowEPComptonMod 111 112 private: 113 void ReadData(size_t Z, const char* path = 0 114 G4double ComputeScatteringFunction(G4double 115 116 G4ParticleChangeForGamma* fParticleChange; 117 G4VAtomDeexcitation* fAtomDeexcitation; 118 static G4ShellData* shellData; 119 static G4DopplerProfile* profileData; 120 121 static const G4int maxZ = 99; 122 static G4PhysicsFreeVector* data[100]; 123 static const G4double ScatFuncFitParam[101][ 124 125 G4int verboseLevel; 126 G4bool isInitialised; 127 }; 128 129 //******************************************** 130 131 #endif 132