Ignore:
Timestamp:
Nov 5, 2010, 3:45:55 PM (14 years ago)
Author:
garnier
Message:

update ti head

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh

    r1337 r1340  
    2525//
    2626//
    27 // GEANT4 tag $Name: geant4-09-04-beta-01 $
     27// GEANT4 tag $Name: hadr-cross-V09-03-12 $
    2828//
    2929//
     
    5555  G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* )
    5656  {
    57     return IsZAApplicable(aParticle, 0., 0.);
     57    return IsIsoApplicable(aParticle, 0, 0);
    5858  }
    5959
    60   G4bool IsZAApplicable(const G4DynamicParticle* aParticle, G4double /*ZZ*/,
    61                                                             G4double /*AA*/)
     60  G4bool IsIsoApplicable(const G4DynamicParticle* aParticle,
     61                         G4int /*ZZ*/, G4int /*AA*/)
    6262  {
    6363    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;
    6668    return result;
    6769  }
     
    7173                           const G4Element* anElement, G4double T=0.);
    7274
    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.);
    7677
    7778  G4double GetEquivalentPhotonEnergy();
     
    8788private:
    8889  G4int    GetFunctions(G4double a, G4double* x, G4double* y, G4double* z);
    89   //G4double LinearFit(G4double X, G4int N, const G4double* XN, const G4double* YN);
     90
    9091  G4double ThresholdEnergy(G4int Z, G4int N);
    9192  G4double HighEnergyJ1(G4double lE);
     
    111112  static G4double  lastH;    // Last value of the High energy A-dependence
    112113
    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;
    116122};
    117123
    118 inline G4double G4ElectroNuclearCrossSection::DFun(G4double x)// Parametrization of the PhotoNucCS
     124
     125inline G4double
     126G4ElectroNuclearCrossSection::DFun(G4double x)
    119127{
    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
    128137  return (poc*(x-pos)+shd*std::exp(-reg*x))*flux;
    129138}
    130139
    131 inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section
     140
     141inline G4double
     142G4ElectroNuclearCrossSection::Fun(G4double x)
    132143{
     144  // Integrated PhoNuc cross section
    133145  G4double dlg1=lastG+lastG-1.;
    134146  G4double lgoe=lastG/lastE;
     
    137149}
    138150
    139 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn)
     151
     152inline G4double
     153G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn)
    140154{
    141155  static const G4double le=std::log(50000.); // std::log(E0)
     
    150164}
    151165
    152 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn)
     166
     167inline G4double
     168G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn)
    153169{
    154170  static const G4double e=50000.;       // E0
     
    164180}
    165181
    166 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn)
     182
     183inline G4double
     184G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn)
    167185{
    168186  static const G4double e=50000.;       // E0
Note: See TracChangeset for help on using the changeset viewer.