File indexing completed on 2025-01-18 09:58:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #ifndef G4ElNeutrinoNucleusTotXsc_h
0034 #define G4ElNeutrinoNucleusTotXsc_h
0035
0036
0037 #include "globals.hh"
0038 #include "G4VCrossSectionDataSet.hh"
0039
0040 class G4ParticleDefinition;
0041
0042 class G4ElNeutrinoNucleusTotXsc : public G4VCrossSectionDataSet
0043 {
0044 public:
0045
0046 G4ElNeutrinoNucleusTotXsc();
0047 ~G4ElNeutrinoNucleusTotXsc();
0048
0049 G4bool IsIsoApplicable(const G4DynamicParticle*, G4int , G4int , const G4Element*, const G4Material*) override;
0050
0051 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*) override { return true; };
0052
0053
0054
0055 G4double GetElementCrossSection(const G4DynamicParticle* dynPart, G4int Z, const G4Material* mat) override;
0056
0057 G4double GetIsoCrossSection(const G4DynamicParticle* aPart, G4int Z, G4int A,
0058 const G4Isotope*,
0059 const G4Element*,
0060 const G4Material*) override;
0061
0062 G4int GetEnergyIndex(G4double energy);
0063 G4double GetNuElTotCsXsc(G4int index, G4double energy);
0064 G4double GetANuElTotCsXsc(G4int index, G4double energy);
0065
0066 G4double GetNuElTotCsArray(G4int index);
0067 G4double GetANuElTotCsArray(G4int index);
0068
0069 void SetCutEnergy(G4double ec){fCutEnergy = ec;};
0070 G4double GetCutEnergy(){return fCutEnergy;};
0071
0072 void SetBiasingFactor(G4double bf){fBiasingFactor=bf;};
0073 G4double GetBiasingFactor(){return fBiasingFactor;};
0074
0075 G4double GetTotXsc(){return fTotXsc;};
0076 G4double GetCcTotRatio(){return fCcTotRatio;};
0077
0078 protected:
0079
0080 G4double fCofXsc;
0081 G4double fSin2tW;
0082 G4double fCofS, fCofL;
0083 G4double fCutEnergy;
0084 G4double fBiasingFactor;
0085 G4double fTotXsc, fCcTotRatio, fCcFactor, fNcFactor;
0086
0087 G4int fIndex;
0088
0089 static const G4double fNuElEnergy[50];
0090 static const G4double fNuElTotXsc[50];
0091 static const G4double fANuElTotXsc[50];
0092
0093 const G4ParticleDefinition* theElectron;
0094 const G4ParticleDefinition* thePositron;
0095 };
0096
0097 #endif