70 G4double mnp = 0.5*(proton_mass_c2+neutron_mass_c2);
71 fEtc = mt + 0.5*mt*mt/mnp;
96 if( ( pName ==
"nu_tau" || pName ==
"anti_nu_tau") && tKin >=
fEtc )
112 for ( i = 0; i < theElementVector->size(); ++i )
114 Zi = (*theElementVector)[i]->GetZasInt();
117 const G4Element* elm = (*theElementVector)[i];
125 for (j = 0; j<nIso; ++j)
127 iso = (*isoVector)[j];
132 fact += abundVector[j];
136 if( fact > 0.0) { xsec /= fact; }
150 G4double ccnuXsc, ccanuXsc, ncXsc, totXsc(0.);
155 if( pName ==
"nu_tau" || pName ==
"ant_nu_tau" ) energy -=
fDtc;
176 if( pName ==
"nu_tau")
180 totXsc = ccnuXsc + ncXsc;
183 else if( pName ==
"anti_nu_tau")
187 totXsc = ccanuXsc + ncXsc;
211 for( i = 0; i <
fIndex; i++)
219 if( i >=
fIndex ) eIndex = i;
230 G4double xsc(0.), qexsc(0.), inxsc(0.);
250 inxsc = y1 + (energy-x1)*angle;
251 angle = (z2-z1)/(x2-x1);
252 qexsc = z1 + (energy-x1)*angle;
254 xsc = inxsc*aa + qexsc;
268 G4double xsc(0.), qexsc(0.), inxsc(0.);
286 inxsc = y1 + (energy-x1)*angle;
288 angle = (z2-z1)/(x2-x1);
289 qexsc = z1 + (energy-x1)*angle;
291 xsc = inxsc*aa + qexsc;
334 0.12, 0.141136, 0.165996, 0.195233, 0.229621,
335 0.270066, 0.317634, 0.373581, 0.439382, 0.516773,
336 0.607795, 0.714849, 0.84076, 0.988848, 1.16302,
337 1.36787, 1.6088, 1.89217, 2.22545, 2.61743,
338 3.07845, 3.62068, 4.25841, 5.00847, 5.89065,
339 6.9282, 8.14851, 9.58376, 11.2718, 13.2572,
340 15.5922, 18.3386, 21.5687, 25.3677, 29.8359,
341 35.0911, 41.2719, 48.5413, 57.0912, 67.147,
342 78.974, 92.8842, 109.244, 128.486, 151.117,
343 177.735, 209.04, 245.86, 289.164, 340.097 };
352 0, 0, 0.0166853, 0.0649693, 0.132346,
353 0.209102, 0.286795, 0.3595, 0.423961, 0.479009,
354 0.524797, 0.562165, 0.592225, 0.61612, 0.63491,
355 0.649524, 0.660751, 0.669245, 0.675546, 0.680092,
356 0.683247, 0.685307, 0.686521, 0.687093, 0.687184,
357 0.686919, 0.686384, 0.685631, 0.684689, 0.68357,
358 0.682275, 0.680806, 0.67917, 0.677376, 0.675442,
359 0.673387, 0.671229, 0.668985, 0.666665, 0.664272,
360 0.661804, 0.65925, 0.656593, 0.65381, 0.650871 };
364 0.20787, 0.411055, 0.570762, 0.705379, 0.814702,
365 0.89543, 0.944299, 0.959743, 0.942906, 0.897917,
366 0.831331, 0.750948, 0.66443, 0.578191, 0.496828,
367 0.423071, 0.358103, 0.302016, 0.254241, 0.213889,
368 0.179971, 0.151527, 0.12769, 0.107706, 0.0909373,
369 0.0768491, 0.0649975, 0.0550143, 0.0465948, 0.0394861,
370 0.0334782, 0.0283964, 0.0240945, 0.0204506, 0.0173623,
371 0.0147437, 0.0125223, 0.0106374, 0.00903737, 0.00767892,
372 0.00652531, 0.00554547, 0.0047131, 0.0040059, 0.003405,
373 0.00289436, 0.00246039, 0.00209155, 0.00177804, 0.00151152 };
382 0, 0, 0.00437363, 0.0161485, 0.0333162,
383 0.0557621, 0.0814548, 0.108838, 0.136598, 0.163526,
384 0.188908, 0.212041, 0.232727, 0.250872, 0.26631,
385 0.279467, 0.290341, 0.299177, 0.306299, 0.311864,
386 0.316108, 0.319378, 0.321892, 0.323583, 0.324909,
387 0.325841, 0.326568, 0.327111, 0.327623, 0.32798,
388 0.328412, 0.328704, 0.328988, 0.329326, 0.329559,
389 0.329791, 0.330051, 0.330327, 0.33057, 0.330834,
390 0.331115, 0.331416, 0.331678, 0.33192, 0.332124 };
396 0.0770264, 0.138754, 0.177006, 0.202417, 0.21804,
397 0.225742, 0.227151, 0.223805, 0.21709, 0.208137,
398 0.197763, 0.186496, 0.174651, 0.162429, 0.14999,
399 0.137498, 0.125127, 0.113057, 0.101455, 0.0904642,
400 0.0801914, 0.0707075, 0.0620483, 0.0542192, 0.0472011,
401 0.0409571, 0.0354377, 0.0305862, 0.0263422, 0.0226451,
402 0.0194358, 0.0166585, 0.0142613, 0.0121968, 0.0104221,
403 0.00889912, 0.00759389, 0.00647662, 0.00552119, 0.00470487,
404 0.00400791, 0.00341322, 0.00290607, 0.00247377, 0.0021054,
405 0.00179162, 0.00152441, 0.00129691, 0.00110323, 0.000938345 };
std::vector< const G4Element * > G4ElementVector
std::vector< G4Isotope * > G4IsotopeVector
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetTotalEnergy() const
G4double * GetRelativeAbundanceVector() const
size_t GetNumberOfIsotopes() const
G4IsotopeVector * GetIsotopeVector() const
const G4ElementVector * GetElementVector() const
const G4String & GetParticleName() const
static const G4double fNuMuEnergy[50]
virtual G4double GetElementCrossSection(const G4DynamicParticle *dynPart, G4int Z, const G4Material *mat)
G4double GetANuMuTotCsArray(G4int index)
G4double GetNuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A)
static const G4double fANuMuQeXsc[50]
G4double GetANuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A)
static const G4double fNuMuInXsc[50]
static const G4double fNuMuQeXsc[50]
G4int GetEnergyIndex(G4double energy)
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 *)
G4TauNeutrinoNucleusTotXsc()
~G4TauNeutrinoNucleusTotXsc()
G4double GetNuMuTotCsArray(G4int index)
static const G4double fANuMuInXsc[50]