Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4TauNeutrinoNucleusTotXsc Class Reference

#include <G4TauNeutrinoNucleusTotXsc.hh>

+ Inheritance diagram for G4TauNeutrinoNucleusTotXsc:

Public Member Functions

 G4TauNeutrinoNucleusTotXsc ()
 
 ~G4TauNeutrinoNucleusTotXsc ()
 
virtual G4bool IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *)
 
virtual G4bool IsElementApplicable (const G4DynamicParticle *, G4int, const G4Material *)
 
virtual G4double GetElementCrossSection (const G4DynamicParticle *dynPart, G4int Z, const G4Material *mat)
 
virtual G4double GetIsoCrossSection (const G4DynamicParticle *aPart, G4int Z, G4int A, const G4Isotope *, const G4Element *, const G4Material *)
 
G4int GetEnergyIndex (G4double energy)
 
G4double GetNuMuTotCsXsc (G4int index, G4double energy, G4int Z, G4int A)
 
G4double GetANuMuTotCsXsc (G4int index, G4double energy, G4int Z, G4int A)
 
G4double GetNuMuTotCsArray (G4int index)
 
G4double GetANuMuTotCsArray (G4int index)
 
void SetCutEnergy (G4double ec)
 
G4double GetCutEnergy ()
 
void SetBiasingFactor (G4double bf)
 
G4double GetBiasingFactor ()
 
G4double GetTotXsc ()
 
G4double GetCcTotRatio ()
 
G4double GetQEratio ()
 
- Public Member Functions inherited from G4VCrossSectionDataSet
 G4VCrossSectionDataSet (const G4String &nam="")
 
virtual ~G4VCrossSectionDataSet ()
 
G4double GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
G4double ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
virtual G4double ComputeCrossSectionPerElement (G4double kinEnergy, G4double loge, const G4ParticleDefinition *, const G4Element *, const G4Material *mat=nullptr)
 
virtual G4double ComputeIsoCrossSection (G4double kinEnergy, G4double loge, const G4ParticleDefinition *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
 
virtual const G4IsotopeSelectIsotope (const G4Element *, G4double kinEnergy, G4double logE)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
virtual void CrossSectionDescription (std::ostream &) const
 
virtual void SetVerboseLevel (G4int value)
 
G4double GetMinKinEnergy () const
 
void SetMinKinEnergy (G4double value)
 
G4double GetMaxKinEnergy () const
 
void SetMaxKinEnergy (G4double value)
 
bool ForAllAtomsAndEnergies () const
 
void SetForAllAtomsAndEnergies (G4bool val)
 
const G4StringGetName () const
 
void SetName (const G4String &nam)
 
G4VCrossSectionDataSetoperator= (const G4VCrossSectionDataSet &right)=delete
 
 G4VCrossSectionDataSet (const G4VCrossSectionDataSet &)=delete
 

Protected Attributes

G4double fCofXsc
 
G4double fSin2tW
 
G4double fCofS
 
G4double fCofL
 
G4double fCutEnergy
 
G4double fBiasingFactor
 
G4double fTotXsc
 
G4double fCcTotRatio
 
G4double fCcFactor
 
G4double fNcFactor
 
G4double fQEratio
 
G4double fEmc
 
G4double fEtc
 
G4double fDtc
 
G4int fIndex
 
- Protected Attributes inherited from G4VCrossSectionDataSet
G4int verboseLevel
 
G4String name
 

Static Protected Attributes

static const G4double fNuMuEnergy [50]
 
static const G4double fNuMuInXsc [50]
 
static const G4double fNuMuQeXsc [50]
 
static const G4double fANuMuInXsc [50]
 
static const G4double fANuMuQeXsc [50]
 

Detailed Description

Definition at line 42 of file G4TauNeutrinoNucleusTotXsc.hh.

Constructor & Destructor Documentation

◆ G4TauNeutrinoNucleusTotXsc()

G4TauNeutrinoNucleusTotXsc::G4TauNeutrinoNucleusTotXsc ( )

Definition at line 47 of file G4TauNeutrinoNucleusTotXsc.cc.

48 : G4VCrossSectionDataSet("NuMuNuclTotXsc")
49{
50 fCofXsc = 1.e-38*cm2/GeV;
51
52 // G4cout<<"fCofXsc = "<<fCofXsc*GeV/cm2<<" cm2/GeV"<<G4endl;
53
54 // PDG2016: sin^2 theta Weinberg
55
56 fSin2tW = 0.23129; // 0.2312;
57
58 // 9 <-> 6, 5/9 or 5/6 ?
59
60 fCofS = 5.*fSin2tW*fSin2tW/9.;
61 fCofL = 1. - fSin2tW + fCofS;
62
63 // G4cout<<"fCosL = "<<fCofL<<", fCofS = "<<fCofS<<G4endl;
64
65 fCutEnergy = 0.; // default value
66
67 fBiasingFactor = 1.; // default as physics
68 fEmc = 0.2*GeV;
69 G4double mt = 1.77686*GeV;
70 G4double mnp = 0.5*(proton_mass_c2+neutron_mass_c2);
71 fEtc = mt + 0.5*mt*mt/mnp;
72 fDtc = fEtc - fEmc;
73 fIndex = 50;
74
75 fTotXsc = 0.;
76 fCcTotRatio = 0.75; // from nc/cc~0.33 ratio
77 fCcFactor = fNcFactor = 1.;
78 fQEratio = 0.5; // mean in the 1 GeV range
79
80 // theMuonMinus = G4MuonMinus::MuonMinus();
81 // theMuonPlus = G4MuonPlus::MuonPlus();
82}
double G4double
Definition G4Types.hh:83
G4VCrossSectionDataSet(const G4String &nam="")

◆ ~G4TauNeutrinoNucleusTotXsc()

G4TauNeutrinoNucleusTotXsc::~G4TauNeutrinoNucleusTotXsc ( )

Definition at line 84 of file G4TauNeutrinoNucleusTotXsc.cc.

85{}

Member Function Documentation

◆ GetANuMuTotCsArray()

G4double G4TauNeutrinoNucleusTotXsc::GetANuMuTotCsArray ( G4int index)

Definition at line 317 of file G4TauNeutrinoNucleusTotXsc.cc.

318{
319 if( index >= 0 && index < fIndex) return fANuMuInXsc[index] + fANuMuQeXsc[index];
320 else
321 {
322 G4cout<<"Improper index of fANuMuTotXsc array"<<G4endl;
323 return 0.;
324 }
325}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static const G4double fANuMuQeXsc[50]
static const G4double fANuMuInXsc[50]

◆ GetANuMuTotCsXsc()

G4double G4TauNeutrinoNucleusTotXsc::GetANuMuTotCsXsc ( G4int index,
G4double energy,
G4int Z,
G4int A )

Definition at line 266 of file G4TauNeutrinoNucleusTotXsc.cc.

267{
268 G4double xsc(0.), qexsc(0.), inxsc(0.);
269
270 // if( index <= 0 || energy < theMuonPlus->GetPDGMass() ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0];
271 if( index <= 0 || energy < fEmc ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0];
272 else if (index >= fIndex) xsc = aa*fANuMuInXsc[fIndex-1] + zz*fANuMuQeXsc[fIndex-1];
273 else
274 {
275 G4double x1 = fNuMuEnergy[index-1]*GeV;
276 G4double x2 = fNuMuEnergy[index]*GeV;
277 G4double y1 = fANuMuInXsc[index-1];
278 G4double y2 = fANuMuInXsc[index];
279 G4double z1 = fANuMuQeXsc[index-1];
280 G4double z2 = fANuMuQeXsc[index];
281
282 if( x1 >= x2 ) return aa*fANuMuInXsc[index] + zz*fANuMuQeXsc[index];
283 else
284 {
285 G4double angle = (y2-y1)/(x2-x1);
286 inxsc = y1 + (energy-x1)*angle;
287
288 angle = (z2-z1)/(x2-x1);
289 qexsc = z1 + (energy-x1)*angle;
290 qexsc *= zz;
291 xsc = inxsc*aa + qexsc;
292
293 if( xsc > 0.) fQEratio = qexsc/xsc;
294 }
295 }
296 return xsc;
297}
static const G4double fNuMuEnergy[50]
G4double energy(const ThreeVector &p, const G4double m)

Referenced by GetIsoCrossSection().

◆ GetBiasingFactor()

G4double G4TauNeutrinoNucleusTotXsc::GetBiasingFactor ( )
inline

Definition at line 77 of file G4TauNeutrinoNucleusTotXsc.hh.

77{return fBiasingFactor;};

◆ GetCcTotRatio()

G4double G4TauNeutrinoNucleusTotXsc::GetCcTotRatio ( )
inline

Definition at line 80 of file G4TauNeutrinoNucleusTotXsc.hh.

80{return fCcTotRatio;};

Referenced by G4TauNeutrinoNucleusProcess::PostStepDoIt().

◆ GetCutEnergy()

G4double G4TauNeutrinoNucleusTotXsc::GetCutEnergy ( )
inline

Definition at line 74 of file G4TauNeutrinoNucleusTotXsc.hh.

74{return fCutEnergy;};

◆ GetElementCrossSection()

G4double G4TauNeutrinoNucleusTotXsc::GetElementCrossSection ( const G4DynamicParticle * dynPart,
G4int Z,
const G4Material * mat )
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 105 of file G4TauNeutrinoNucleusTotXsc.cc.

107{
108 G4int Zi(0);
109 size_t i(0), j(0);
110 const G4ElementVector* theElementVector = mat->GetElementVector();
111
112 for ( i = 0; i < theElementVector->size(); ++i )
113 {
114 Zi = (*theElementVector)[i]->GetZasInt();
115 if( Zi == Z ) break;
116 }
117 const G4Element* elm = (*theElementVector)[i];
118 size_t nIso = elm->GetNumberOfIsotopes();
119 G4double fact = 0.0;
120 G4double xsec = 0.0;
121 const G4Isotope* iso = nullptr;
122 const G4IsotopeVector* isoVector = elm->GetIsotopeVector();
123 const G4double* abundVector = elm->GetRelativeAbundanceVector();
124
125 for (j = 0; j<nIso; ++j)
126 {
127 iso = (*isoVector)[j];
128 G4int A = iso->GetN();
129
130 if( abundVector[j] > 0.0 && IsIsoApplicable(part, Z, A, elm, mat) )
131 {
132 fact += abundVector[j];
133 xsec += abundVector[j]*GetIsoCrossSection( part, Z, A, iso, elm, mat);
134 }
135 }
136 if( fact > 0.0) { xsec /= fact; }
137 return xsec;
138}
std::vector< const G4Element * > G4ElementVector
std::vector< G4Isotope * > G4IsotopeVector
int G4int
Definition G4Types.hh:85
const G4double A[17]
G4double * GetRelativeAbundanceVector() const
Definition G4Element.hh:149
size_t GetNumberOfIsotopes() const
Definition G4Element.hh:143
G4IsotopeVector * GetIsotopeVector() const
Definition G4Element.hh:146
G4int GetN() const
Definition G4Isotope.hh:83
const G4ElementVector * GetElementVector() const
virtual G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *aPart, G4int Z, G4int A, const G4Isotope *, const G4Element *, const G4Material *)

Referenced by G4TauNeutrinoNucleusProcess::PostStepDoIt().

◆ GetEnergyIndex()

G4int G4TauNeutrinoNucleusTotXsc::GetEnergyIndex ( G4double energy)

Definition at line 207 of file G4TauNeutrinoNucleusTotXsc.cc.

208{
209 G4int i, eIndex = 0;
210
211 for( i = 0; i < fIndex; i++)
212 {
213 if( energy <= fNuMuEnergy[i]*GeV )
214 {
215 eIndex = i;
216 break;
217 }
218 }
219 if( i >= fIndex ) eIndex = i;
220 // G4cout<<"eIndex = "<<eIndex<<G4endl;
221 return eIndex;
222}

Referenced by GetIsoCrossSection().

◆ GetIsoCrossSection()

G4double G4TauNeutrinoNucleusTotXsc::GetIsoCrossSection ( const G4DynamicParticle * aPart,
G4int Z,
G4int A,
const G4Isotope * ,
const G4Element * ,
const G4Material *  )
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 144 of file G4TauNeutrinoNucleusTotXsc.cc.

146{
147 fCcFactor = fNcFactor = 1.;
148 fCcTotRatio = 0.25;
149
150 G4double ccnuXsc, ccanuXsc, ncXsc, totXsc(0.);
151
152 G4double energy = aPart->GetTotalEnergy();
153 G4String pName = aPart->GetDefinition()->GetParticleName();
154
155 if( pName == "nu_tau" || pName == "ant_nu_tau" ) energy -= fDtc; // scaling energy for tau-neutrinos
156
157 G4int index = GetEnergyIndex(energy);
158
159 if( index >= fIndex )
160 {
161 G4double pm = proton_mass_c2;
162 G4double s2 = 2.*energy*pm+pm*pm;
163 G4double aa = 1.;
164 G4double bb = 1.085;
165 G4double mw = 80.385*GeV;
166 fCcFactor = bb/(1.+ aa*s2/mw/mw);
167
168 G4double mz = 91.1876*GeV;
169 fNcFactor = bb/(1.+ aa*s2/mz/mz);
170 }
171 ccnuXsc = GetNuMuTotCsXsc(index, energy, Z, A);
172 ccnuXsc *= fCcFactor;
173 ccanuXsc = GetANuMuTotCsXsc(index, energy, Z, A);
174 ccanuXsc *= fCcFactor;
175
176 if( pName == "nu_tau")
177 {
178 ncXsc = fCofL*ccnuXsc + fCofS*ccanuXsc;
179 ncXsc *= fNcFactor/fCcFactor;
180 totXsc = ccnuXsc + ncXsc;
181 if( totXsc > 0.) fCcTotRatio = ccnuXsc/totXsc;
182 }
183 else if( pName == "anti_nu_tau")
184 {
185 ncXsc = fCofL*ccanuXsc + fCofS*ccnuXsc;
186 ncXsc *= fNcFactor/fCcFactor;
187 totXsc = ccanuXsc + ncXsc;
188 if( totXsc > 0.) fCcTotRatio = ccanuXsc/totXsc;
189 }
190 else return totXsc;
191
192 totXsc *= fCofXsc;
193 totXsc *= energy;
194 // totXsc *= A; // incoherent sum over all isotope nucleons
195
196 totXsc *= fBiasingFactor; // biasing up, if set >1
197
198 fTotXsc = totXsc;
199
200 return totXsc;
201}
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
const G4String & GetParticleName() const
G4double GetNuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A)
G4double GetANuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A)

Referenced by GetElementCrossSection().

◆ GetNuMuTotCsArray()

G4double G4TauNeutrinoNucleusTotXsc::GetNuMuTotCsArray ( G4int index)

Definition at line 303 of file G4TauNeutrinoNucleusTotXsc.cc.

304{
305 if( index >= 0 && index < fIndex) return fNuMuInXsc[index] + fNuMuQeXsc[index];
306 else
307 {
308 G4cout<<"Improper index of fNuMuTotXsc array"<<G4endl;
309 return 0.;
310 }
311}

◆ GetNuMuTotCsXsc()

G4double G4TauNeutrinoNucleusTotXsc::GetNuMuTotCsXsc ( G4int index,
G4double energy,
G4int Z,
G4int A )

Definition at line 228 of file G4TauNeutrinoNucleusTotXsc.cc.

229{
230 G4double xsc(0.), qexsc(0.), inxsc(0.);
231 G4int nn = aa - zz;
232 if(nn < 1) nn = 0;
233
234 // if( index <= 0 || energy < theMuonMinus->GetPDGMass() ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0];
235 if( index <= 0 || energy < fEmc ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0];
236 else if (index >= fIndex) xsc = aa*fNuMuInXsc[fIndex-1] + nn*fNuMuQeXsc[fIndex-1];
237 else
238 {
239 G4double x1 = fNuMuEnergy[index-1]*GeV;
240 G4double x2 = fNuMuEnergy[index]*GeV;
241 G4double y1 = fNuMuInXsc[index-1];
242 G4double y2 = fNuMuInXsc[index];
243 G4double z1 = fNuMuQeXsc[index-1];
244 G4double z2 = fNuMuQeXsc[index];
245
246 if(x1 >= x2) return aa*fNuMuInXsc[index] + nn*fNuMuQeXsc[index];
247 else
248 {
249 G4double angle = (y2-y1)/(x2-x1);
250 inxsc = y1 + (energy-x1)*angle;
251 angle = (z2-z1)/(x2-x1);
252 qexsc = z1 + (energy-x1)*angle;
253 qexsc *= nn;
254 xsc = inxsc*aa + qexsc;
255
256 if( xsc > 0.) fQEratio = qexsc/xsc;
257 }
258 }
259 return xsc;
260}

Referenced by GetIsoCrossSection().

◆ GetQEratio()

G4double G4TauNeutrinoNucleusTotXsc::GetQEratio ( )
inline

Definition at line 81 of file G4TauNeutrinoNucleusTotXsc.hh.

81{return fQEratio;};

◆ GetTotXsc()

G4double G4TauNeutrinoNucleusTotXsc::GetTotXsc ( )
inline

Definition at line 79 of file G4TauNeutrinoNucleusTotXsc.hh.

79{return fTotXsc;};

◆ IsElementApplicable()

virtual G4bool G4TauNeutrinoNucleusTotXsc::IsElementApplicable ( const G4DynamicParticle * ,
G4int ,
const G4Material *  )
inlinevirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 53 of file G4TauNeutrinoNucleusTotXsc.hh.

53{ return true; };

◆ IsIsoApplicable()

G4bool G4TauNeutrinoNucleusTotXsc::IsIsoApplicable ( const G4DynamicParticle * aPart,
G4int Z,
G4int A,
const G4Element * ,
const G4Material *  )
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 90 of file G4TauNeutrinoNucleusTotXsc.cc.

91{
92 G4bool result = false;
93 G4String pName = aPart->GetDefinition()->GetParticleName();
94 G4double tKin = aPart->GetKineticEnergy();
95
96 if( ( pName == "nu_tau" || pName == "anti_nu_tau") && tKin >= fEtc )
97 {
98 result = true;
99 }
100 return result;
101}
bool G4bool
Definition G4Types.hh:86
G4double GetKineticEnergy() const

Referenced by GetElementCrossSection().

◆ SetBiasingFactor()

void G4TauNeutrinoNucleusTotXsc::SetBiasingFactor ( G4double bf)
inline

Definition at line 76 of file G4TauNeutrinoNucleusTotXsc.hh.

76{fBiasingFactor=bf;};

◆ SetCutEnergy()

void G4TauNeutrinoNucleusTotXsc::SetCutEnergy ( G4double ec)
inline

Definition at line 73 of file G4TauNeutrinoNucleusTotXsc.hh.

73{fCutEnergy=ec;};

Member Data Documentation

◆ fANuMuInXsc

const G4double G4TauNeutrinoNucleusTotXsc::fANuMuInXsc
staticprotected
Initial value:
=
{
0, 0, 0, 0, 0,
0, 0, 0.00437363, 0.0161485, 0.0333162,
0.0557621, 0.0814548, 0.108838, 0.136598, 0.163526,
0.188908, 0.212041, 0.232727, 0.250872, 0.26631,
0.279467, 0.290341, 0.299177, 0.306299, 0.311864,
0.316108, 0.319378, 0.321892, 0.323583, 0.324909,
0.325841, 0.326568, 0.327111, 0.327623, 0.32798,
0.328412, 0.328704, 0.328988, 0.329326, 0.329559,
0.329791, 0.330051, 0.330327, 0.33057, 0.330834,
0.331115, 0.331416, 0.331678, 0.33192, 0.332124 }

Definition at line 379 of file G4TauNeutrinoNucleusTotXsc.hh.

421{
422public:
423
426
427 virtual
429
430 virtual
431 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
432
433
434 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
436 G4int Z,
437 const G4Material* mat);
438 virtual
440 const G4Isotope*,
441 const G4Element*,
442 const G4Material*);
443
447
450
451 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
453
456
457 G4double GetTotXsc(){return fTotXsc;};
459 G4double GetQEratio(){return fQEratio;};
460
461protected:
462
463 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
464 G4double fSin2tW; // sin^2theta_Weinberg
466 G4double fCutEnergy; // minimal recoil electron energy detected
467 G4double fBiasingFactor; // biasing xsc up
471
472 static const G4double fNuMuEnergy[50];
473 static const G4double fNuMuInXsc[50];
474 static const G4double fNuMuQeXsc[50];
475 static const G4double fANuMuInXsc[50];
476 static const G4double fANuMuQeXsc[50];
477
478 // G4ParticleDefinition* theMuonMinus;
479 // G4ParticleDefinition* theMuonPlus;
480};
481
482#endif
virtual G4double GetElementCrossSection(const G4DynamicParticle *dynPart, G4int Z, const G4Material *mat)
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int, const G4Material *)

Referenced by GetANuMuTotCsArray(), and GetANuMuTotCsXsc().

◆ fANuMuQeXsc

const G4double G4TauNeutrinoNucleusTotXsc::fANuMuQeXsc
staticprotected
Initial value:
=
{
0.0770264, 0.138754, 0.177006, 0.202417, 0.21804,
0.225742, 0.227151, 0.223805, 0.21709, 0.208137,
0.197763, 0.186496, 0.174651, 0.162429, 0.14999,
0.137498, 0.125127, 0.113057, 0.101455, 0.0904642,
0.0801914, 0.0707075, 0.0620483, 0.0542192, 0.0472011,
0.0409571, 0.0354377, 0.0305862, 0.0263422, 0.0226451,
0.0194358, 0.0166585, 0.0142613, 0.0121968, 0.0104221,
0.00889912, 0.00759389, 0.00647662, 0.00552119, 0.00470487,
0.00400791, 0.00341322, 0.00290607, 0.00247377, 0.0021054,
0.00179162, 0.00152441, 0.00129691, 0.00110323, 0.000938345 }

Definition at line 394 of file G4TauNeutrinoNucleusTotXsc.hh.

436{
437public:
438
441
442 virtual
444
445 virtual
446 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
447
448
449 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
451 G4int Z,
452 const G4Material* mat);
453 virtual
455 const G4Isotope*,
456 const G4Element*,
457 const G4Material*);
458
462
465
466 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
468
471
472 G4double GetTotXsc(){return fTotXsc;};
474 G4double GetQEratio(){return fQEratio;};
475
476protected:
477
478 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
479 G4double fSin2tW; // sin^2theta_Weinberg
481 G4double fCutEnergy; // minimal recoil electron energy detected
482 G4double fBiasingFactor; // biasing xsc up
486
487 static const G4double fNuMuEnergy[50];
488 static const G4double fNuMuInXsc[50];
489 static const G4double fNuMuQeXsc[50];
490 static const G4double fANuMuInXsc[50];
491 static const G4double fANuMuQeXsc[50];
492
493 // G4ParticleDefinition* theMuonMinus;
494 // G4ParticleDefinition* theMuonPlus;
495};
496
497#endif

Referenced by GetANuMuTotCsArray(), and GetANuMuTotCsXsc().

◆ fBiasingFactor

G4double G4TauNeutrinoNucleusTotXsc::fBiasingFactor
protected

◆ fCcFactor

G4double G4TauNeutrinoNucleusTotXsc::fCcFactor
protected

Definition at line 90 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCcTotRatio

G4double G4TauNeutrinoNucleusTotXsc::fCcTotRatio
protected

◆ fCofL

G4double G4TauNeutrinoNucleusTotXsc::fCofL
protected

Definition at line 87 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCofS

G4double G4TauNeutrinoNucleusTotXsc::fCofS
protected

Definition at line 87 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCofXsc

G4double G4TauNeutrinoNucleusTotXsc::fCofXsc
protected

Definition at line 85 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCutEnergy

G4double G4TauNeutrinoNucleusTotXsc::fCutEnergy
protected

◆ fDtc

G4double G4TauNeutrinoNucleusTotXsc::fDtc
protected

Definition at line 91 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fEmc

G4double G4TauNeutrinoNucleusTotXsc::fEmc
protected

◆ fEtc

G4double G4TauNeutrinoNucleusTotXsc::fEtc
protected

Definition at line 91 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and IsIsoApplicable().

◆ fIndex

◆ fNcFactor

G4double G4TauNeutrinoNucleusTotXsc::fNcFactor
protected

Definition at line 90 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fNuMuEnergy

const G4double G4TauNeutrinoNucleusTotXsc::fNuMuEnergy
staticprotected
Initial value:
=
{
0.12, 0.141136, 0.165996, 0.195233, 0.229621,
0.270066, 0.317634, 0.373581, 0.439382, 0.516773,
0.607795, 0.714849, 0.84076, 0.988848, 1.16302,
1.36787, 1.6088, 1.89217, 2.22545, 2.61743,
3.07845, 3.62068, 4.25841, 5.00847, 5.89065,
6.9282, 8.14851, 9.58376, 11.2718, 13.2572,
15.5922, 18.3386, 21.5687, 25.3677, 29.8359,
35.0911, 41.2719, 48.5413, 57.0912, 67.147,
78.974, 92.8842, 109.244, 128.486, 151.117,
177.735, 209.04, 245.86, 289.164, 340.097 }

Definition at line 332 of file G4TauNeutrinoNucleusTotXsc.hh.

374{
375public:
376
379
380 virtual
382
383 virtual
384 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
385
386
387 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
389 G4int Z,
390 const G4Material* mat);
391 virtual
393 const G4Isotope*,
394 const G4Element*,
395 const G4Material*);
396
400
403
404 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
406
409
410 G4double GetTotXsc(){return fTotXsc;};
412 G4double GetQEratio(){return fQEratio;};
413
414protected:
415
416 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
417 G4double fSin2tW; // sin^2theta_Weinberg
419 G4double fCutEnergy; // minimal recoil electron energy detected
420 G4double fBiasingFactor; // biasing xsc up
424
425 static const G4double fNuMuEnergy[50];
426 static const G4double fNuMuInXsc[50];
427 static const G4double fNuMuQeXsc[50];
428 static const G4double fANuMuInXsc[50];
429 static const G4double fANuMuQeXsc[50];
430
431 // G4ParticleDefinition* theMuonMinus;
432 // G4ParticleDefinition* theMuonPlus;
433};
434
435#endif

Referenced by GetANuMuTotCsXsc(), GetEnergyIndex(), and GetNuMuTotCsXsc().

◆ fNuMuInXsc

const G4double G4TauNeutrinoNucleusTotXsc::fNuMuInXsc
staticprotected
Initial value:
=
{
0, 0, 0, 0, 0,
0, 0, 0.0166853, 0.0649693, 0.132346,
0.209102, 0.286795, 0.3595, 0.423961, 0.479009,
0.524797, 0.562165, 0.592225, 0.61612, 0.63491,
0.649524, 0.660751, 0.669245, 0.675546, 0.680092,
0.683247, 0.685307, 0.686521, 0.687093, 0.687184,
0.686919, 0.686384, 0.685631, 0.684689, 0.68357,
0.682275, 0.680806, 0.67917, 0.677376, 0.675442,
0.673387, 0.671229, 0.668985, 0.666665, 0.664272,
0.661804, 0.65925, 0.656593, 0.65381, 0.650871 }

Definition at line 349 of file G4TauNeutrinoNucleusTotXsc.hh.

391{
392public:
393
396
397 virtual
399
400 virtual
401 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
402
403
404 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
406 G4int Z,
407 const G4Material* mat);
408 virtual
410 const G4Isotope*,
411 const G4Element*,
412 const G4Material*);
413
417
420
421 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
423
426
427 G4double GetTotXsc(){return fTotXsc;};
429 G4double GetQEratio(){return fQEratio;};
430
431protected:
432
433 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
434 G4double fSin2tW; // sin^2theta_Weinberg
436 G4double fCutEnergy; // minimal recoil electron energy detected
437 G4double fBiasingFactor; // biasing xsc up
441
442 static const G4double fNuMuEnergy[50];
443 static const G4double fNuMuInXsc[50];
444 static const G4double fNuMuQeXsc[50];
445 static const G4double fANuMuInXsc[50];
446 static const G4double fANuMuQeXsc[50];
447
448 // G4ParticleDefinition* theMuonMinus;
449 // G4ParticleDefinition* theMuonPlus;
450};
451
452#endif

Referenced by GetNuMuTotCsArray(), and GetNuMuTotCsXsc().

◆ fNuMuQeXsc

const G4double G4TauNeutrinoNucleusTotXsc::fNuMuQeXsc
staticprotected
Initial value:
=
{
0.20787, 0.411055, 0.570762, 0.705379, 0.814702,
0.89543, 0.944299, 0.959743, 0.942906, 0.897917,
0.831331, 0.750948, 0.66443, 0.578191, 0.496828,
0.423071, 0.358103, 0.302016, 0.254241, 0.213889,
0.179971, 0.151527, 0.12769, 0.107706, 0.0909373,
0.0768491, 0.0649975, 0.0550143, 0.0465948, 0.0394861,
0.0334782, 0.0283964, 0.0240945, 0.0204506, 0.0173623,
0.0147437, 0.0125223, 0.0106374, 0.00903737, 0.00767892,
0.00652531, 0.00554547, 0.0047131, 0.0040059, 0.003405,
0.00289436, 0.00246039, 0.00209155, 0.00177804, 0.00151152 }

Definition at line 362 of file G4TauNeutrinoNucleusTotXsc.hh.

404{
405public:
406
409
410 virtual
412
413 virtual
414 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
415
416
417 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
419 G4int Z,
420 const G4Material* mat);
421 virtual
423 const G4Isotope*,
424 const G4Element*,
425 const G4Material*);
426
430
433
434 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
436
439
440 G4double GetTotXsc(){return fTotXsc;};
442 G4double GetQEratio(){return fQEratio;};
443
444protected:
445
446 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
447 G4double fSin2tW; // sin^2theta_Weinberg
449 G4double fCutEnergy; // minimal recoil electron energy detected
450 G4double fBiasingFactor; // biasing xsc up
454
455 static const G4double fNuMuEnergy[50];
456 static const G4double fNuMuInXsc[50];
457 static const G4double fNuMuQeXsc[50];
458 static const G4double fANuMuInXsc[50];
459 static const G4double fANuMuQeXsc[50];
460
461 // G4ParticleDefinition* theMuonMinus;
462 // G4ParticleDefinition* theMuonPlus;
463};
464
465#endif

Referenced by GetNuMuTotCsArray(), and GetNuMuTotCsXsc().

◆ fQEratio

G4double G4TauNeutrinoNucleusTotXsc::fQEratio
protected

◆ fSin2tW

G4double G4TauNeutrinoNucleusTotXsc::fSin2tW
protected

Definition at line 86 of file G4TauNeutrinoNucleusTotXsc.hh.

Referenced by G4TauNeutrinoNucleusTotXsc().

◆ fTotXsc

G4double G4TauNeutrinoNucleusTotXsc::fTotXsc
protected

The documentation for this class was generated from the following files: