File indexing completed on 2025-01-18 09:58:42
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 G4MuNeutrinoNucleusTotXsc_h
0034 #define G4MuNeutrinoNucleusTotXsc_h
0035
0036
0037 #include "globals.hh"
0038 #include "G4VCrossSectionDataSet.hh"
0039
0040 class G4ParticleDefinition;
0041
0042 class G4MuNeutrinoNucleusTotXsc : public G4VCrossSectionDataSet
0043 {
0044 public:
0045
0046 G4MuNeutrinoNucleusTotXsc();
0047 ~G4MuNeutrinoNucleusTotXsc();
0048
0049 virtual
0050 G4bool IsIsoApplicable(const G4DynamicParticle*, G4int Z, G4int A, const G4Element*, const G4Material*);
0051
0052 virtual
0053 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
0054
0055
0056
0057 virtual G4double GetElementCrossSection(const G4DynamicParticle* dynPart,
0058 G4int Z,
0059 const G4Material* mat);
0060 virtual
0061 G4double GetIsoCrossSection(const G4DynamicParticle* aPart, G4int Z, G4int A,
0062 const G4Isotope*,
0063 const G4Element*,
0064 const G4Material*);
0065
0066 G4int GetEnergyIndex(G4double energy);
0067 G4double GetNuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A);
0068 G4double GetANuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A);
0069
0070 G4double GetNuMuTotCsArray(G4int index);
0071 G4double GetANuMuTotCsArray(G4int index);
0072
0073 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
0074 G4double GetCutEnergy(){return fCutEnergy;};
0075
0076 void SetBiasingFactor(G4double bf){fBiasingFactor=bf;};
0077 G4double GetBiasingFactor(){return fBiasingFactor;};
0078
0079 G4double GetTotXsc(){return fTotXsc;};
0080 G4double GetCcTotRatio(){return fCcTotRatio;};
0081 G4double GetQEratio(){return fQEratio;};
0082
0083 protected:
0084
0085 G4double fCofXsc;
0086 G4double fSin2tW;
0087 G4double fCofS, fCofL;
0088 G4double fCutEnergy;
0089 G4double fBiasingFactor;
0090 G4double fTotXsc, fCcTotRatio, fCcFactor, fNcFactor, fQEratio;
0091 G4double fEmc;
0092 G4int fIndex;
0093
0094 static const G4double fNuMuEnergy[50];
0095 static const G4double fNuMuInXsc[50];
0096 static const G4double fNuMuQeXsc[50];
0097 static const G4double fANuMuInXsc[50];
0098 static const G4double fANuMuQeXsc[50];
0099
0100
0101
0102 };
0103
0104 #endif