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 // 29 // GEANT4 Class header file 30 // 31 // 32 // File name: G4mplIonisationWithDeltaMode 33 // 34 // Author: Vladimir Ivanchenko 35 // 36 // Creation date: 06.09.2005 37 // 38 // Modifications: 39 // 12.08.2007 ComputeDEDXAhlen function added 40 // 41 // Class Description: 42 // 43 // Implementation of model of energy loss of t 44 45 // ------------------------------------------- 46 // 47 48 #ifndef G4mplIonisationWithDeltaModel_h 49 #define G4mplIonisationWithDeltaModel_h 1 50 51 #include "G4VEmModel.hh" 52 #include "G4VEmFluctuationModel.hh" 53 #include <vector> 54 55 class G4ParticleChangeForLoss; 56 57 class G4mplIonisationWithDeltaModel : public G 58 { 59 60 public: 61 62 explicit G4mplIonisationWithDeltaModel(G4dou 63 const G4String 64 65 virtual ~G4mplIonisationWithDeltaModel(); 66 67 virtual void Initialise(const G4ParticleDefi 68 const G4DataVector&) 69 70 virtual G4double ComputeDEDXPerVolume(const 71 const 72 G4doub 73 G4doub 74 75 virtual G4double ComputeCrossSectionPerElect 76 const G4Parti 77 G4double kine 78 G4double cutE 79 G4double maxE 80 81 virtual G4double ComputeCrossSectionPerAtom( 82 const G4Parti 83 G4double kine 84 G4double Z, G 85 G4double cutE 86 G4double maxE 87 88 virtual void SampleSecondaries(std::vector<G 89 const G4Mater 90 const G4Dynam 91 G4double tmin 92 G4double maxE 93 94 95 virtual G4double SampleFluctuations(const G4 96 const G4 97 const G4 98 const G4 99 const G4 100 const G4 101 102 virtual G4double Dispersion(const G4Material 103 const G4DynamicP 104 const G4double t 105 const G4double t 106 const G4double l 107 108 virtual G4double MinEnergyCut(const G4Partic 109 const G4Materi 110 111 void SetParticle(const G4ParticleDefinition* 112 113 protected: 114 115 virtual G4double MaxSecondaryEnergy(const G4 116 G4double 117 118 private: 119 120 G4double ComputeDEDXAhlen(const G4Material* 121 G4double cut); 122 123 // hide assignment operator 124 G4mplIonisationWithDeltaModel & 125 operator=(const G4mplIonisationWithDeltaM 126 G4mplIonisationWithDeltaModel(const G4mplIo 127 128 const G4ParticleDefinition* monopole; 129 G4ParticleDefinition* theElectron; 130 G4ParticleChangeForLoss* fParticleChange; 131 132 G4double mass; 133 G4double magCharge; 134 G4double twoln10; 135 G4double betalow; 136 G4double betalim; 137 G4double beta2lim; 138 G4double bg2lim; 139 G4double chargeSquare; 140 G4double dedxlim; 141 G4int nmpl; 142 G4double pi_hbarc2_over_mc2; 143 144 static std::vector<G4double>* dedx0; 145 }; 146 147 #endif 148 149 //....oooOO0OOooo........oooOO0OOooo........oo 150