Changeset 1340 for trunk/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh
- Timestamp:
- Nov 5, 2010, 3:45:55 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh
r1337 r1340 25 25 // 26 26 // 27 // GEANT4 tag $Name: geant4-09-04-beta-01$27 // GEANT4 tag $Name: hadr-cross-V09-03-12 $ 28 28 // 29 29 // … … 55 55 G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* ) 56 56 { 57 return Is ZAApplicable(aParticle, 0., 0.);57 return IsIsoApplicable(aParticle, 0, 0); 58 58 } 59 59 60 G4bool Is ZAApplicable(const G4DynamicParticle* aParticle, G4double /*ZZ*/,61 G4double/*AA*/)60 G4bool IsIsoApplicable(const G4DynamicParticle* aParticle, 61 G4int /*ZZ*/, G4int /*AA*/) 62 62 { 63 63 G4bool result = false; 64 if( aParticle->GetDefinition()==G4Electron::ElectronDefinition()) result = true; 65 if( aParticle->GetDefinition()==G4Positron::PositronDefinition()) result = true; 64 if (aParticle->GetDefinition() == G4Electron::ElectronDefinition()) 65 result = true; 66 if (aParticle->GetDefinition() == G4Positron::PositronDefinition()) 67 result = true; 66 68 return result; 67 69 } … … 71 73 const G4Element* anElement, G4double T=0.); 72 74 73 G4double GetIsoZACrossSection(const G4DynamicParticle* aParticle, 74 G4double ZZ, G4double AA, G4double T=0.); 75 75 G4double GetZandACrossSection(const G4DynamicParticle* aParticle, 76 G4int ZZ, G4int AA, G4double T=0.); 76 77 77 78 G4double GetEquivalentPhotonEnergy(); … … 87 88 private: 88 89 G4int GetFunctions(G4double a, G4double* x, G4double* y, G4double* z); 89 //G4double LinearFit(G4double X, G4int N, const G4double* XN, const G4double* YN); 90 90 91 G4double ThresholdEnergy(G4int Z, G4int N); 91 92 G4double HighEnergyJ1(G4double lE); … … 111 112 static G4double lastH; // Last value of the High energy A-dependence 112 113 113 static std::vector <G4double*> J1; // Vector of pointers to the J1 tabulated functions 114 static std::vector <G4double*> J2; // Vector of pointers to the J2 tabulated functions 115 static std::vector <G4double*> J3; // Vector of pointers to the J3 tabulated functions 114 // Vector of pointers to the J1 tabulated functions 115 static std::vector <G4double*> J1; 116 117 // Vector of pointers to the J2 tabulated functions 118 static std::vector <G4double*> J2; 119 120 // Vector of pointers to the J3 tabulated functions 121 static std::vector <G4double*> J3; 116 122 }; 117 123 118 inline G4double G4ElectroNuclearCrossSection::DFun(G4double x)// Parametrization of the PhotoNucCS 124 125 inline G4double 126 G4ElectroNuclearCrossSection::DFun(G4double x) 119 127 { 120 static const G4double shd=1.0734; // HE PomShadowing(D) 121 static const G4double poc=0.0375; // HE Pomeron coefficient 122 static const G4double pos=16.5; // HE Pomeron shift 123 static const G4double reg=.11; // HE Reggeon slope 124 static const G4double mel=0.5109989; // Mass of an electron in MeV 125 static const G4double lmel=std::log(mel); // Log of an electron mass 126 G4double y=std::exp(x-lastG-lmel); // y for the x 127 G4double flux=lastG*(2.-y*(2.-y))-1.; // flux factor 128 // Parametrization of the PhotoNucCS 129 static const G4double shd=1.0734; // HE PomShadowing(D) 130 static const G4double poc=0.0375; // HE Pomeron coefficient 131 static const G4double pos=16.5; // HE Pomeron shift 132 static const G4double reg=.11; // HE Reggeon slope 133 static const G4double mel=0.5109989; // Mass of an electron in MeV 134 static const G4double lmel=std::log(mel); // Log of an electron mass 135 G4double y=std::exp(x-lastG-lmel); // y for the x 136 G4double flux=lastG*(2.-y*(2.-y))-1.; // flux factor 128 137 return (poc*(x-pos)+shd*std::exp(-reg*x))*flux; 129 138 } 130 139 131 inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section 140 141 inline G4double 142 G4ElectroNuclearCrossSection::Fun(G4double x) 132 143 { 144 // Integrated PhoNuc cross section 133 145 G4double dlg1=lastG+lastG-1.; 134 146 G4double lgoe=lastG/lastE; … … 137 149 } 138 150 139 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn) 151 152 inline G4double 153 G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn) 140 154 { 141 155 static const G4double le=std::log(50000.); // std::log(E0) … … 150 164 } 151 165 152 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn) 166 167 inline G4double 168 G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn) 153 169 { 154 170 static const G4double e=50000.; // E0 … … 164 180 } 165 181 166 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn) 182 183 inline G4double 184 G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn) 167 185 { 168 186 static const G4double e=50000.; // E0
Note: See TracChangeset
for help on using the changeset viewer.