Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. 1 // 3 // 2 // ******************************************* << 4 // By copying, distributing or modifying the Program (or any work 3 // * License and Disclaimer << 5 // based on the Program) you indicate your acceptance of this statement, 4 // * << 6 // and all its terms. 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 // 7 // 27 // ------------------------------------------- 8 // ------------------------------------------------------------ 28 // GEANT 4 class header file 9 // GEANT 4 class header file 29 // 10 // >> 11 // For information related to this code contact: >> 12 // CERN, IT Division, ASD group 30 // History: New Implementation 13 // History: New Implementation 31 // 14 // 32 // ---------- G4QAOLowEnergyLoss physics 15 // ---------- G4QAOLowEnergyLoss physics process ------- 33 // by Stephane Chauvie, 21 Ma 16 // by Stephane Chauvie, 21 May 2000 34 // 17 // 35 // Modified: 18 // Modified: 36 // 16/09/2000 S. Chauvie Oscillator for all m 19 // 16/09/2000 S. Chauvie Oscillator for all materials 37 // 23/05/2000 MGP Made compliant to design 20 // 23/05/2000 MGP Made compliant to design 38 // 01/06/2001 V.Ivanchenko replace names by Z << 39 // 21 // 40 // Class description: 22 // Class description: 41 // Quantal Harmonic Oscillator Model for energ 23 // Quantal Harmonic Oscillator Model for energy loss of low energy antiprotons 42 // Further documentation available from http:/ 24 // Further documentation available from http://www.ge.infn.it/geant4/lowE 43 25 44 // ------------------------------------------- 26 // ------------------------------------------------------------ 45 27 46 28 47 #ifndef G4QAOLowEnergyLoss_hh 29 #ifndef G4QAOLowEnergyLoss_hh 48 #define G4QAOLowEnergyLoss_hh 1 30 #define G4QAOLowEnergyLoss_hh 1 49 31 50 #include "G4VLowEnergyModel.hh" 32 #include "G4VLowEnergyModel.hh" 51 #include "globals.hh" 33 #include "globals.hh" 52 34 53 class G4QAOLowEnergyLoss : public G4VLowEnergy 35 class G4QAOLowEnergyLoss : public G4VLowEnergyModel 54 { 36 { 55 public: << 37 public: 56 explicit G4QAOLowEnergyLoss(const G4String& << 38 >> 39 G4QAOLowEnergyLoss(const G4String& name); >> 40 57 ~G4QAOLowEnergyLoss(); 41 ~G4QAOLowEnergyLoss(); 58 42 59 G4double HighEnergyLimit(const G4ParticleDef 43 G4double HighEnergyLimit(const G4ParticleDefinition* aParticle, 60 const G4Material* m << 44 const G4Material* material) const; 61 // returns the higher limit for model validi 45 // returns the higher limit for model validity 62 46 63 G4double LowEnergyLimit(const G4ParticleDefi 47 G4double LowEnergyLimit(const G4ParticleDefinition* aParticle, 64 const G4Material* ma << 48 const G4Material* material) const; 65 // returns the lower limit for model validit 49 // returns the lower limit for model validity 66 50 67 G4double HighEnergyLimit(const G4ParticleDef << 51 G4double HighEnergyLimit(const G4ParticleDefinition* aParticle) const; 68 // returns the higher limit for model validi 52 // returns the higher limit for model validity 69 53 70 G4double LowEnergyLimit(const G4ParticleDefi << 54 G4double LowEnergyLimit(const G4ParticleDefinition* aParticle) const; 71 // returns the lower limit for model validit 55 // returns the lower limit for model validity 72 56 73 G4bool IsInCharge(const G4DynamicParticle* p 57 G4bool IsInCharge(const G4DynamicParticle* particle, 74 const G4Material* material) const over << 58 const G4Material* material) const; 75 // returns true if the model is applicable a 59 // returns true if the model is applicable at that energy for 76 // that particle for that material 60 // that particle for that material 77 61 78 G4bool IsInCharge(const G4ParticleDefinition 62 G4bool IsInCharge(const G4ParticleDefinition* aParticle, 79 const G4Material* material) const over << 63 const G4Material* material) const; 80 // returns true if the model is applicable a 64 // returns true if the model is applicable at that energy for 81 // that particle for that material 65 // that particle for that material 82 66 83 G4double TheValue(const G4DynamicParticle* p 67 G4double TheValue(const G4DynamicParticle* particle, 84 const G4Material* material) ove << 68 const G4Material* material); 85 // returns the energy loss via the quantal h 69 // returns the energy loss via the quantal harmonic oscillator model 86 70 87 G4double TheValue(const G4ParticleDefinition 71 G4double TheValue(const G4ParticleDefinition* aParticle, 88 const G4Material* material 72 const G4Material* material, 89 G4double kinet << 73 G4double kineticEnergy); 90 // returns the energy loss via the quantal h 74 // returns the energy loss via the quantal harmonic oscillator model 91 75 92 private: << 76 private: >> 77 93 G4double EnergyLoss(const G4Material* materi 78 G4double EnergyLoss(const G4Material* material, 94 G4double kineticEn 79 G4double kineticEnergy, 95 G4double zParticle 80 G4double zParticle) const; 96 // returns the energy loss via the quantal h 81 // returns the energy loss via the quantal harmonic oscillator model 97 82 98 // get number of shell, energy and oscillato << 83 // get number of shell, energy and oscillator strenghts for material 99 G4int GetNumberOfShell(const G4Material* mat 84 G4int GetNumberOfShell(const G4Material* material) const; 100 85 101 G4double GetShellEnergy(const G4Material* ma 86 G4double GetShellEnergy(const G4Material* material,G4int nbOfTheShell) const; 102 G4double GetOscillatorEnergy(const G4Materia 87 G4double GetOscillatorEnergy(const G4Material* material,G4int nbOfTheShell) const; 103 G4double GetShellStrength(const G4Material* 88 G4double GetShellStrength(const G4Material* material,G4int nbOfTheShell) const; 104 G4double GetOccupationNumber(G4int Z, G4int 89 G4double GetOccupationNumber(G4int Z, G4int ShellNb) const; 105 90 106 // calculate stopping number for L's term 91 // calculate stopping number for L's term 107 G4double GetL0(G4double normEnergy) const; 92 G4double GetL0(G4double normEnergy) const; 108 // terms in Z^2 93 // terms in Z^2 109 G4double GetL1(G4double normEnergy) const; 94 G4double GetL1(G4double normEnergy) const; 110 // terms in Z^3 95 // terms in Z^3 111 G4double GetL2(G4double normEnergy) const; 96 G4double GetL2(G4double normEnergy) const; 112 // terms in Z^4 97 // terms in Z^4 113 << 98 114 // number, energy and oscillator strengths << 99 // material at now avaliable for the model >> 100 static const G4String materialAvailable[6]; >> 101 >> 102 // number, energy and oscillator strenghts 115 // for an harmonic oscillator model of mater 103 // for an harmonic oscillator model of material 116 static const G4int nbofShellForMaterial[6]; 104 static const G4int nbofShellForMaterial[6]; 117 static const G4double alShellEnergy[3]; << 105 static G4double alShellEnergy[3]; 118 static const G4double alShellStrength[3]; << 106 static G4double alShellStrength[3]; 119 static const G4double siShellEnergy[3]; << 107 static G4double siShellEnergy[3]; 120 static const G4double siShellStrength[3]; << 108 static G4double siShellStrength[3]; 121 static const G4double cuShellEnergy[4]; << 109 static G4double cuShellEnergy[4]; 122 static const G4double cuShellStrength[4]; << 110 static G4double cuShellStrength[4]; 123 static const G4double taShellEnergy[6]; << 111 static G4double taShellEnergy[6]; 124 static const G4double taShellStrength[6]; << 112 static G4double taShellStrength[6]; 125 static const G4double auShellEnergy[6]; << 113 static G4double auShellEnergy[6]; 126 static const G4double auShellStrength[6]; << 114 static G4double auShellStrength[6]; 127 static const G4double ptShellEnergy[6]; << 115 static G4double ptShellEnergy[6]; 128 static const G4double ptShellStrength[6]; << 116 static G4double ptShellStrength[6]; >> 117 >> 118 G4int numberOfMaterials; >> 119 129 // variable for calculation of stopping num 120 // variable for calculation of stopping number of L's term 130 static const G4double L0[67][2]; 121 static const G4double L0[67][2]; 131 static const G4double L1[22][2]; 122 static const G4double L1[22][2]; 132 static const G4double L2[14][2]; 123 static const G4double L2[14][2]; 133 static const G4int nbOfElectronPerSubShell[1 124 static const G4int nbOfElectronPerSubShell[1540]; 134 static const G4int fNumberOfShells[101]; 125 static const G4int fNumberOfShells[101]; 135 << 136 // Z of element at now avaliable for the mod << 137 static const G4int materialAvailable[6]; << 138 126 139 G4int numberOfMaterials; << 140 G4int sizeL0; 127 G4int sizeL0; 141 G4int sizeL1; 128 G4int sizeL1; 142 G4int sizeL2; 129 G4int sizeL2; 143 130 144 }; 131 }; 145 132 146 #endif 133 #endif 147 134