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

#include <G4MuNeutrinoNucleusTotXsc.hh>

+ Inheritance diagram for G4MuNeutrinoNucleusTotXsc:

Public Member Functions

 G4MuNeutrinoNucleusTotXsc ()
 
 ~G4MuNeutrinoNucleusTotXsc ()
 
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
 
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 G4MuNeutrinoNucleusTotXsc.hh.

Constructor & Destructor Documentation

◆ G4MuNeutrinoNucleusTotXsc()

G4MuNeutrinoNucleusTotXsc::G4MuNeutrinoNucleusTotXsc ( )

Definition at line 47 of file G4MuNeutrinoNucleusTotXsc.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 fIndex = 50;
70
71 fTotXsc = 0.;
72 fCcTotRatio = 0.75; // from nc/cc~0.33 ratio
73 fCcFactor = fNcFactor = 1.;
74 fQEratio = 0.5; // mean in the 1 GeV range
75
76 // theMuonMinus = G4MuonMinus::MuonMinus();
77 // theMuonPlus = G4MuonPlus::MuonPlus();
78}
G4VCrossSectionDataSet(const G4String &nam="")

◆ ~G4MuNeutrinoNucleusTotXsc()

G4MuNeutrinoNucleusTotXsc::~G4MuNeutrinoNucleusTotXsc ( )

Definition at line 80 of file G4MuNeutrinoNucleusTotXsc.cc.

81{}

Member Function Documentation

◆ GetANuMuTotCsArray()

G4double G4MuNeutrinoNucleusTotXsc::GetANuMuTotCsArray ( G4int index)

Definition at line 311 of file G4MuNeutrinoNucleusTotXsc.cc.

312{
313 if( index >= 0 && index < fIndex) return fANuMuInXsc[index] + fANuMuQeXsc[index];
314 else
315 {
316 G4cout<<"Improper index of fANuMuTotXsc array"<<G4endl;
317 return 0.;
318 }
319}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static const G4double fANuMuQeXsc[50]
static const G4double fANuMuInXsc[50]

◆ GetANuMuTotCsXsc()

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

Definition at line 260 of file G4MuNeutrinoNucleusTotXsc.cc.

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

Referenced by GetIsoCrossSection().

◆ GetBiasingFactor()

G4double G4MuNeutrinoNucleusTotXsc::GetBiasingFactor ( )
inline

Definition at line 77 of file G4MuNeutrinoNucleusTotXsc.hh.

77{return fBiasingFactor;};

◆ GetCcTotRatio()

G4double G4MuNeutrinoNucleusTotXsc::GetCcTotRatio ( )
inline

Definition at line 80 of file G4MuNeutrinoNucleusTotXsc.hh.

80{return fCcTotRatio;};

Referenced by G4MuNeutrinoNucleusProcess::PostStepDoIt().

◆ GetCutEnergy()

G4double G4MuNeutrinoNucleusTotXsc::GetCutEnergy ( )
inline

Definition at line 74 of file G4MuNeutrinoNucleusTotXsc.hh.

74{return fCutEnergy;};

◆ GetElementCrossSection()

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 101 of file G4MuNeutrinoNucleusTotXsc.cc.

103{
104 G4int Zi(0);
105 size_t i(0), j(0);
106 const G4ElementVector* theElementVector = mat->GetElementVector();
107
108 for ( i = 0; i < theElementVector->size(); ++i )
109 {
110 Zi = (*theElementVector)[i]->GetZasInt();
111 if( Zi == Z ) break;
112 }
113 const G4Element* elm = (*theElementVector)[i];
114 size_t nIso = elm->GetNumberOfIsotopes();
115 G4double fact = 0.0;
116 G4double xsec = 0.0;
117 const G4Isotope* iso = nullptr;
118 const G4IsotopeVector* isoVector = elm->GetIsotopeVector();
119 const G4double* abundVector = elm->GetRelativeAbundanceVector();
120
121 for (j = 0; j<nIso; ++j)
122 {
123 iso = (*isoVector)[j];
124 G4int A = iso->GetN();
125
126 if( abundVector[j] > 0.0 && IsIsoApplicable(part, Z, A, elm, mat) )
127 {
128 fact += abundVector[j];
129 xsec += abundVector[j]*GetIsoCrossSection( part, Z, A, iso, elm, mat);
130 }
131 }
132 if( fact > 0.0) { xsec /= fact; }
133 return xsec;
134}
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 G4double GetIsoCrossSection(const G4DynamicParticle *aPart, G4int Z, G4int A, const G4Isotope *, const G4Element *, const G4Material *)
virtual G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *)

Referenced by G4MuNeutrinoNucleusProcess::PostStepDoIt().

◆ GetEnergyIndex()

G4int G4MuNeutrinoNucleusTotXsc::GetEnergyIndex ( G4double energy)

Definition at line 201 of file G4MuNeutrinoNucleusTotXsc.cc.

202{
203 G4int i, eIndex = 0;
204
205 for( i = 0; i < fIndex; i++)
206 {
207 if( energy <= fNuMuEnergy[i]*GeV )
208 {
209 eIndex = i;
210 break;
211 }
212 }
213 if( i >= fIndex ) eIndex = i;
214 // G4cout<<"eIndex = "<<eIndex<<G4endl;
215 return eIndex;
216}

Referenced by GetIsoCrossSection().

◆ GetIsoCrossSection()

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 140 of file G4MuNeutrinoNucleusTotXsc.cc.

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

Referenced by GetElementCrossSection().

◆ GetNuMuTotCsArray()

G4double G4MuNeutrinoNucleusTotXsc::GetNuMuTotCsArray ( G4int index)

Definition at line 297 of file G4MuNeutrinoNucleusTotXsc.cc.

298{
299 if( index >= 0 && index < fIndex) return fNuMuInXsc[index] + fNuMuQeXsc[index];
300 else
301 {
302 G4cout<<"Improper index of fNuMuTotXsc array"<<G4endl;
303 return 0.;
304 }
305}
static const G4double fNuMuInXsc[50]
static const G4double fNuMuQeXsc[50]

◆ GetNuMuTotCsXsc()

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

Definition at line 222 of file G4MuNeutrinoNucleusTotXsc.cc.

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

Referenced by GetIsoCrossSection().

◆ GetQEratio()

G4double G4MuNeutrinoNucleusTotXsc::GetQEratio ( )
inline

Definition at line 81 of file G4MuNeutrinoNucleusTotXsc.hh.

81{return fQEratio;};

◆ GetTotXsc()

G4double G4MuNeutrinoNucleusTotXsc::GetTotXsc ( )
inline

Definition at line 79 of file G4MuNeutrinoNucleusTotXsc.hh.

79{return fTotXsc;};

◆ IsElementApplicable()

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 53 of file G4MuNeutrinoNucleusTotXsc.hh.

53{ return true; };

◆ IsIsoApplicable()

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 86 of file G4MuNeutrinoNucleusTotXsc.cc.

87{
88 G4bool result = false;
89 G4String pName = aPart->GetDefinition()->GetParticleName();
90 G4double tKin = aPart->GetKineticEnergy();
91
92 if( ( pName == "nu_mu" || pName == "anti_nu_mu") && tKin >= fEmc )
93 {
94 result = true;
95 }
96 return result;
97}
bool G4bool
Definition G4Types.hh:86
G4double GetKineticEnergy() const

Referenced by GetElementCrossSection().

◆ SetBiasingFactor()

void G4MuNeutrinoNucleusTotXsc::SetBiasingFactor ( G4double bf)
inline

Definition at line 76 of file G4MuNeutrinoNucleusTotXsc.hh.

76{fBiasingFactor=bf;};

◆ SetCutEnergy()

void G4MuNeutrinoNucleusTotXsc::SetCutEnergy ( G4double ec)
inline

Definition at line 73 of file G4MuNeutrinoNucleusTotXsc.hh.

73{fCutEnergy=ec;};

Member Data Documentation

◆ fANuMuInXsc

const G4double G4MuNeutrinoNucleusTotXsc::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 373 of file G4MuNeutrinoNucleusTotXsc.hh.

415{
416public:
417
420
421 virtual
423
424 virtual
425 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
426
427
428 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
430 G4int Z,
431 const G4Material* mat);
432 virtual
434 const G4Isotope*,
435 const G4Element*,
436 const G4Material*);
437
441
444
445 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
447
450
451 G4double GetTotXsc(){return fTotXsc;};
453 G4double GetQEratio(){return fQEratio;};
454
455protected:
456
457 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
458 G4double fSin2tW; // sin^2theta_Weinberg
460 G4double fCutEnergy; // minimal recoil electron energy detected
461 G4double fBiasingFactor; // biasing xsc up
465
466 static const G4double fNuMuEnergy[50];
467 static const G4double fNuMuInXsc[50];
468 static const G4double fNuMuQeXsc[50];
469 static const G4double fANuMuInXsc[50];
470 static const G4double fANuMuQeXsc[50];
471
472 // G4ParticleDefinition* theMuonMinus;
473 // G4ParticleDefinition* theMuonPlus;
474};
475
476#endif
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int, const G4Material *)
virtual G4double GetElementCrossSection(const G4DynamicParticle *dynPart, G4int Z, const G4Material *mat)

Referenced by GetANuMuTotCsArray(), and GetANuMuTotCsXsc().

◆ fANuMuQeXsc

const G4double G4MuNeutrinoNucleusTotXsc::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 388 of file G4MuNeutrinoNucleusTotXsc.hh.

430{
431public:
432
435
436 virtual
438
439 virtual
440 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
441
442
443 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
445 G4int Z,
446 const G4Material* mat);
447 virtual
449 const G4Isotope*,
450 const G4Element*,
451 const G4Material*);
452
456
459
460 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
462
465
466 G4double GetTotXsc(){return fTotXsc;};
468 G4double GetQEratio(){return fQEratio;};
469
470protected:
471
472 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
473 G4double fSin2tW; // sin^2theta_Weinberg
475 G4double fCutEnergy; // minimal recoil electron energy detected
476 G4double fBiasingFactor; // biasing xsc up
480
481 static const G4double fNuMuEnergy[50];
482 static const G4double fNuMuInXsc[50];
483 static const G4double fNuMuQeXsc[50];
484 static const G4double fANuMuInXsc[50];
485 static const G4double fANuMuQeXsc[50];
486
487 // G4ParticleDefinition* theMuonMinus;
488 // G4ParticleDefinition* theMuonPlus;
489};
490
491#endif

Referenced by GetANuMuTotCsArray(), and GetANuMuTotCsXsc().

◆ fBiasingFactor

G4double G4MuNeutrinoNucleusTotXsc::fBiasingFactor
protected

◆ fCcFactor

G4double G4MuNeutrinoNucleusTotXsc::fCcFactor
protected

Definition at line 90 of file G4MuNeutrinoNucleusTotXsc.hh.

Referenced by G4MuNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCcTotRatio

G4double G4MuNeutrinoNucleusTotXsc::fCcTotRatio
protected

◆ fCofL

G4double G4MuNeutrinoNucleusTotXsc::fCofL
protected

Definition at line 87 of file G4MuNeutrinoNucleusTotXsc.hh.

Referenced by G4MuNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCofS

G4double G4MuNeutrinoNucleusTotXsc::fCofS
protected

Definition at line 87 of file G4MuNeutrinoNucleusTotXsc.hh.

Referenced by G4MuNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCofXsc

G4double G4MuNeutrinoNucleusTotXsc::fCofXsc
protected

Definition at line 85 of file G4MuNeutrinoNucleusTotXsc.hh.

Referenced by G4MuNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCutEnergy

G4double G4MuNeutrinoNucleusTotXsc::fCutEnergy
protected

◆ fEmc

G4double G4MuNeutrinoNucleusTotXsc::fEmc
protected

◆ fIndex

◆ fNcFactor

G4double G4MuNeutrinoNucleusTotXsc::fNcFactor
protected

Definition at line 90 of file G4MuNeutrinoNucleusTotXsc.hh.

Referenced by G4MuNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fNuMuEnergy

const G4double G4MuNeutrinoNucleusTotXsc::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 326 of file G4MuNeutrinoNucleusTotXsc.hh.

368{
369public:
370
373
374 virtual
376
377 virtual
378 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
379
380
381 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
383 G4int Z,
384 const G4Material* mat);
385 virtual
387 const G4Isotope*,
388 const G4Element*,
389 const G4Material*);
390
394
397
398 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
400
403
404 G4double GetTotXsc(){return fTotXsc;};
406 G4double GetQEratio(){return fQEratio;};
407
408protected:
409
410 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
411 G4double fSin2tW; // sin^2theta_Weinberg
413 G4double fCutEnergy; // minimal recoil electron energy detected
414 G4double fBiasingFactor; // biasing xsc up
418
419 static const G4double fNuMuEnergy[50];
420 static const G4double fNuMuInXsc[50];
421 static const G4double fNuMuQeXsc[50];
422 static const G4double fANuMuInXsc[50];
423 static const G4double fANuMuQeXsc[50];
424
425 // G4ParticleDefinition* theMuonMinus;
426 // G4ParticleDefinition* theMuonPlus;
427};
428
429#endif

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

◆ fNuMuInXsc

const G4double G4MuNeutrinoNucleusTotXsc::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 343 of file G4MuNeutrinoNucleusTotXsc.hh.

385{
386public:
387
390
391 virtual
393
394 virtual
395 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
396
397
398 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
400 G4int Z,
401 const G4Material* mat);
402 virtual
404 const G4Isotope*,
405 const G4Element*,
406 const G4Material*);
407
411
414
415 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
417
420
421 G4double GetTotXsc(){return fTotXsc;};
423 G4double GetQEratio(){return fQEratio;};
424
425protected:
426
427 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
428 G4double fSin2tW; // sin^2theta_Weinberg
430 G4double fCutEnergy; // minimal recoil electron energy detected
431 G4double fBiasingFactor; // biasing xsc up
435
436 static const G4double fNuMuEnergy[50];
437 static const G4double fNuMuInXsc[50];
438 static const G4double fNuMuQeXsc[50];
439 static const G4double fANuMuInXsc[50];
440 static const G4double fANuMuQeXsc[50];
441
442 // G4ParticleDefinition* theMuonMinus;
443 // G4ParticleDefinition* theMuonPlus;
444};
445
446#endif

Referenced by GetNuMuTotCsArray(), and GetNuMuTotCsXsc().

◆ fNuMuQeXsc

const G4double G4MuNeutrinoNucleusTotXsc::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 356 of file G4MuNeutrinoNucleusTotXsc.hh.

398{
399public:
400
403
404 virtual
406
407 virtual
408 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; };
409
410
411 // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*);
413 G4int Z,
414 const G4Material* mat);
415 virtual
417 const G4Isotope*,
418 const G4Element*,
419 const G4Material*);
420
424
427
428 void SetCutEnergy(G4double ec){fCutEnergy=ec;};
430
433
434 G4double GetTotXsc(){return fTotXsc;};
436 G4double GetQEratio(){return fQEratio;};
437
438protected:
439
440 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
441 G4double fSin2tW; // sin^2theta_Weinberg
443 G4double fCutEnergy; // minimal recoil electron energy detected
444 G4double fBiasingFactor; // biasing xsc up
448
449 static const G4double fNuMuEnergy[50];
450 static const G4double fNuMuInXsc[50];
451 static const G4double fNuMuQeXsc[50];
452 static const G4double fANuMuInXsc[50];
453 static const G4double fANuMuQeXsc[50];
454
455 // G4ParticleDefinition* theMuonMinus;
456 // G4ParticleDefinition* theMuonPlus;
457};
458
459#endif

Referenced by GetNuMuTotCsArray(), and GetNuMuTotCsXsc().

◆ fQEratio

G4double G4MuNeutrinoNucleusTotXsc::fQEratio
protected

◆ fSin2tW

G4double G4MuNeutrinoNucleusTotXsc::fSin2tW
protected

Definition at line 86 of file G4MuNeutrinoNucleusTotXsc.hh.

Referenced by G4MuNeutrinoNucleusTotXsc().

◆ fTotXsc

G4double G4MuNeutrinoNucleusTotXsc::fTotXsc
protected

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