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

#include <G4ElNeutrinoNucleusTotXsc.hh>

+ Inheritance diagram for G4ElNeutrinoNucleusTotXsc:

Public Member Functions

 G4ElNeutrinoNucleusTotXsc ()
 
 ~G4ElNeutrinoNucleusTotXsc ()
 
G4bool IsIsoApplicable (const G4DynamicParticle *, G4int, G4int, const G4Element *, const G4Material *) override
 
G4bool IsElementApplicable (const G4DynamicParticle *, G4int, const G4Material *) override
 
G4double GetElementCrossSection (const G4DynamicParticle *dynPart, G4int Z, const G4Material *mat) override
 
G4double GetIsoCrossSection (const G4DynamicParticle *aPart, G4int Z, G4int A, const G4Isotope *, const G4Element *, const G4Material *) override
 
G4int GetEnergyIndex (G4double energy)
 
G4double GetNuElTotCsXsc (G4int index, G4double energy)
 
G4double GetANuElTotCsXsc (G4int index, G4double energy)
 
G4double GetNuElTotCsArray (G4int index)
 
G4double GetANuElTotCsArray (G4int index)
 
void SetCutEnergy (G4double ec)
 
G4double GetCutEnergy ()
 
void SetBiasingFactor (G4double bf)
 
G4double GetBiasingFactor ()
 
G4double GetTotXsc ()
 
G4double GetCcTotRatio ()
 
- 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
 
G4int fIndex
 
const G4ParticleDefinitiontheElectron
 
const G4ParticleDefinitionthePositron
 
- Protected Attributes inherited from G4VCrossSectionDataSet
G4int verboseLevel
 
G4String name
 

Static Protected Attributes

static const G4double fNuElEnergy [50]
 
static const G4double fNuElTotXsc [50]
 
static const G4double fANuElTotXsc [50]
 

Detailed Description

Definition at line 42 of file G4ElNeutrinoNucleusTotXsc.hh.

Constructor & Destructor Documentation

◆ G4ElNeutrinoNucleusTotXsc()

G4ElNeutrinoNucleusTotXsc::G4ElNeutrinoNucleusTotXsc ( )

Definition at line 51 of file G4ElNeutrinoNucleusTotXsc.cc.

52 : G4VCrossSectionDataSet("NuElNuclTotXsc")
53{
54 fCofXsc = 1.e-38*cm2/GeV;
55
56 // G4cout<<"fCofXsc = "<<fCofXsc*GeV/cm2<<" cm2/GeV"<<G4endl;
57
58 // PDG2016: sin^2 theta Weinberg
59
60 fSin2tW = 0.23129; // 0.2312;
61
62 // 9 <-> 6, 5/9 or 5/6 ?
63
64 fCofS = 5.*fSin2tW*fSin2tW/9.;
65 fCofL = 1. - fSin2tW + fCofS;
66
67 // G4cout<<"fCosL = "<<fCofL<<", fCofS = "<<fCofS<<G4endl;
68
69 fCutEnergy = 0.; // default value
70
71 fBiasingFactor = 1.; // default as physics
72
73 fIndex = 50;
74
75 fTotXsc = 0.;
76 fCcTotRatio = 0.75; // from nc/cc~0.33 ratio
77 fCcFactor = fNcFactor = 1.;
78
81}
const G4ParticleDefinition * thePositron
const G4ParticleDefinition * theElectron
static G4Electron * Electron()
Definition G4Electron.cc:91
static G4Positron * Positron()
Definition G4Positron.cc:90
G4VCrossSectionDataSet(const G4String &nam="")

◆ ~G4ElNeutrinoNucleusTotXsc()

G4ElNeutrinoNucleusTotXsc::~G4ElNeutrinoNucleusTotXsc ( )

Definition at line 83 of file G4ElNeutrinoNucleusTotXsc.cc.

84{}

Member Function Documentation

◆ GetANuElTotCsArray()

G4double G4ElNeutrinoNucleusTotXsc::GetANuElTotCsArray ( G4int index)

Definition at line 294 of file G4ElNeutrinoNucleusTotXsc.cc.

295{
296 if( index >= 0 && index < fIndex) return fANuElTotXsc[index];
297 else
298 {
299 G4cout<<"Improper index of fANuElTotXsc array"<<G4endl;
300 return 0.;
301 }
302}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static const G4double fANuElTotXsc[50]

◆ GetANuElTotCsXsc()

G4double G4ElNeutrinoNucleusTotXsc::GetANuElTotCsXsc ( G4int index,
G4double energy )

Definition at line 253 of file G4ElNeutrinoNucleusTotXsc.cc.

254{
255 G4double xsc(0.);
256
257 if( index <= 0 || energy < thePositron->GetPDGMass() ) xsc = fANuElTotXsc[0];
258 else if (index >= fIndex) xsc = fANuElTotXsc[fIndex-1];
259 else
260 {
261 G4double x1 = fNuElEnergy[index-1]*GeV;
262 G4double x2 = fNuElEnergy[index]*GeV;
263 G4double y1 = fANuElTotXsc[index-1];
264 G4double y2 = fANuElTotXsc[index];
265
266 if( x1 >= x2 ) return fANuElTotXsc[index];
267 else
268 {
269 G4double angle = (y2-y1)/(x2-x1);
270 xsc = y1 + (energy-x1)*angle;
271 }
272 }
273 return xsc;
274}
double G4double
Definition G4Types.hh:83
static const G4double fNuElEnergy[50]
G4double energy(const ThreeVector &p, const G4double m)

Referenced by GetIsoCrossSection().

◆ GetBiasingFactor()

G4double G4ElNeutrinoNucleusTotXsc::GetBiasingFactor ( )
inline

Definition at line 73 of file G4ElNeutrinoNucleusTotXsc.hh.

73{return fBiasingFactor;};

◆ GetCcTotRatio()

G4double G4ElNeutrinoNucleusTotXsc::GetCcTotRatio ( )
inline

Definition at line 76 of file G4ElNeutrinoNucleusTotXsc.hh.

76{return fCcTotRatio;};

Referenced by G4ElNeutrinoNucleusProcess::PostStepDoIt().

◆ GetCutEnergy()

G4double G4ElNeutrinoNucleusTotXsc::GetCutEnergy ( )
inline

Definition at line 70 of file G4ElNeutrinoNucleusTotXsc.hh.

70{return fCutEnergy;};

◆ GetElementCrossSection()

G4double G4ElNeutrinoNucleusTotXsc::GetElementCrossSection ( const G4DynamicParticle * dynPart,
G4int Z,
const G4Material * mat )
overridevirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 104 of file G4ElNeutrinoNucleusTotXsc.cc.

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

Referenced by G4ElNeutrinoNucleusProcess::PostStepDoIt().

◆ GetEnergyIndex()

G4int G4ElNeutrinoNucleusTotXsc::GetEnergyIndex ( G4double energy)

Definition at line 205 of file G4ElNeutrinoNucleusTotXsc.cc.

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

Referenced by GetIsoCrossSection().

◆ GetIsoCrossSection()

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 144 of file G4ElNeutrinoNucleusTotXsc.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 G4int index = GetEnergyIndex(energy);
156
157 if( index >= fIndex )
158 {
159 G4double pm = proton_mass_c2;
160 G4double s2 = 2.*energy*pm+pm*pm;
161 G4double aa = 1.;
162 G4double bb = 1.085;
163 G4double mw = 80.385*GeV;
164 fCcFactor = bb/(1.+ aa*s2/mw/mw);
165
166 G4double mz = 91.1876*GeV;
167 fNcFactor = bb/(1.+ aa*s2/mz/mz);
168 }
169 ccnuXsc = GetNuElTotCsXsc(index, energy);
170 ccnuXsc *= fCcFactor;
171 ccanuXsc = GetANuElTotCsXsc(index, energy);
172 ccanuXsc *= fCcFactor;
173
174 if( pName == "nu_e")
175 {
176 ncXsc = fCofL*ccnuXsc + fCofS*ccanuXsc;
177 ncXsc *= fNcFactor/fCcFactor;
178 totXsc = ccnuXsc + ncXsc;
179 if( totXsc > 0.) fCcTotRatio = ccnuXsc/totXsc;
180 }
181 else if( pName == "anti_nu_e")
182 {
183 ncXsc = fCofL*ccanuXsc + fCofS*ccnuXsc;
184 ncXsc *= fNcFactor/fCcFactor;
185 totXsc = ccanuXsc + ncXsc;
186 if( totXsc > 0.) fCcTotRatio = ccanuXsc/totXsc;
187 }
188 else return totXsc;
189
190 totXsc *= fCofXsc;
191 totXsc *= energy;
192 totXsc *= A; // incoherent sum over all isotope nucleons
193
194 totXsc *= fBiasingFactor; // biasing up, if set >1
195
196 fTotXsc = totXsc;
197
198 return totXsc;
199}
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
G4double GetNuElTotCsXsc(G4int index, G4double energy)
G4double GetANuElTotCsXsc(G4int index, G4double energy)
const G4String & GetParticleName() const

Referenced by GetElementCrossSection().

◆ GetNuElTotCsArray()

G4double G4ElNeutrinoNucleusTotXsc::GetNuElTotCsArray ( G4int index)

Definition at line 280 of file G4ElNeutrinoNucleusTotXsc.cc.

281{
282 if( index >= 0 && index < fIndex) return fNuElTotXsc[index];
283 else
284 {
285 G4cout<<"Improper index of fNuElTotXsc array"<<G4endl;
286 return 0.;
287 }
288}
static const G4double fNuElTotXsc[50]

◆ GetNuElTotCsXsc()

G4double G4ElNeutrinoNucleusTotXsc::GetNuElTotCsXsc ( G4int index,
G4double energy )

Definition at line 226 of file G4ElNeutrinoNucleusTotXsc.cc.

227{
228 G4double xsc(0.);
229
230 if( index <= 0 || energy < theElectron->GetPDGMass() ) xsc = fNuElTotXsc[0];
231 else if (index >= fIndex) xsc = fNuElTotXsc[fIndex-1];
232 else
233 {
234 G4double x1 = fNuElEnergy[index-1]*GeV;
235 G4double x2 = fNuElEnergy[index]*GeV;
236 G4double y1 = fNuElTotXsc[index-1];
237 G4double y2 = fNuElTotXsc[index];
238
239 if(x1 >= x2) return fNuElTotXsc[index];
240 else
241 {
242 G4double angle = (y2-y1)/(x2-x1);
243 xsc = y1 + (energy-x1)*angle;
244 }
245 }
246 return xsc;
247}

Referenced by GetIsoCrossSection().

◆ GetTotXsc()

G4double G4ElNeutrinoNucleusTotXsc::GetTotXsc ( )
inline

Definition at line 75 of file G4ElNeutrinoNucleusTotXsc.hh.

75{return fTotXsc;};

◆ IsElementApplicable()

G4bool G4ElNeutrinoNucleusTotXsc::IsElementApplicable ( const G4DynamicParticle * ,
G4int ,
const G4Material *  )
inlineoverridevirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 51 of file G4ElNeutrinoNucleusTotXsc.hh.

51{ return true; };

◆ IsIsoApplicable()

G4bool G4ElNeutrinoNucleusTotXsc::IsIsoApplicable ( const G4DynamicParticle * aPart,
G4int ,
G4int ,
const G4Element * ,
const G4Material *  )
overridevirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 90 of file G4ElNeutrinoNucleusTotXsc.cc.

91{
92 G4bool result = false;
93 G4String pName = aPart->GetDefinition()->GetParticleName();
94
95 if( pName == "nu_e" || pName == "anti_nu_e" )
96 {
97 result = true;
98 }
99 return result;
100}
bool G4bool
Definition G4Types.hh:86

Referenced by GetElementCrossSection().

◆ SetBiasingFactor()

void G4ElNeutrinoNucleusTotXsc::SetBiasingFactor ( G4double bf)
inline

Definition at line 72 of file G4ElNeutrinoNucleusTotXsc.hh.

72{fBiasingFactor=bf;};

◆ SetCutEnergy()

void G4ElNeutrinoNucleusTotXsc::SetCutEnergy ( G4double ec)
inline

Definition at line 69 of file G4ElNeutrinoNucleusTotXsc.hh.

69{fCutEnergy = ec;};

Member Data Documentation

◆ fANuElTotXsc

const G4double G4ElNeutrinoNucleusTotXsc::fANuElTotXsc
staticprotected
Initial value:
=
{
0.00103385, 0.00237807, 0.00366358, 0.00515192, 0.00697434,
0.00925859, 0.0121508, 0.0158252, 0.0204908, 0.0263959,
0.0338304, 0.0431234, 0.0546346, 0.068735, 0.0857738,
0.106025, 0.129614, 0.15643, 0.186063, 0.21784,
0.251065, 0.28525, 0.319171, 0.348995, 0.369448,
0.378165, 0.377353, 0.371224, 0.363257, 0.355433,
0.348618, 0.343082, 0.338825, 0.33574, 0.333684,
0.332504, 0.332052, 0.332187, 0.332781, 0.333716,
0.33489, 0.336213, 0.337608, 0.339008, 0.340362,
0.341606, 0.342706, 0.343628, 0.344305, 0.344675
}

Definition at line 347 of file G4ElNeutrinoNucleusTotXsc.hh.

389{
390public:
391
394
395 G4bool IsIsoApplicable(const G4DynamicParticle*, G4int , G4int , const G4Element*, const G4Material*) override;
396
397 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*) override { return true; };
398
399
400
401 G4double GetElementCrossSection(const G4DynamicParticle* dynPart, G4int Z, const G4Material* mat) override;
402
404 const G4Isotope*,
405 const G4Element*,
406 const G4Material*) override;
407
409 G4double GetNuElTotCsXsc(G4int index, G4double energy);
411
414
415 void SetCutEnergy(G4double ec){fCutEnergy = ec;};
417
420
421 G4double GetTotXsc(){return fTotXsc;};
423
424protected:
425
426 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
427 G4double fSin2tW; // sin^2theta_Weinberg
429 G4double fCutEnergy; // minimal recoil electron energy detected
430 G4double fBiasingFactor; // biasing xsc up
432
434
435 static const G4double fNuElEnergy[50];
436 static const G4double fNuElTotXsc[50];
437 static const G4double fANuElTotXsc[50];
438
441};
442
443#endif
G4bool IsElementApplicable(const G4DynamicParticle *, G4int, const G4Material *) override
G4double GetElementCrossSection(const G4DynamicParticle *dynPart, G4int Z, const G4Material *mat) override

Referenced by GetANuElTotCsArray(), and GetANuElTotCsXsc().

◆ fBiasingFactor

G4double G4ElNeutrinoNucleusTotXsc::fBiasingFactor
protected

◆ fCcFactor

G4double G4ElNeutrinoNucleusTotXsc::fCcFactor
protected

Definition at line 85 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCcTotRatio

G4double G4ElNeutrinoNucleusTotXsc::fCcTotRatio
protected

◆ fCofL

G4double G4ElNeutrinoNucleusTotXsc::fCofL
protected

Definition at line 82 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCofS

G4double G4ElNeutrinoNucleusTotXsc::fCofS
protected

Definition at line 82 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCofXsc

G4double G4ElNeutrinoNucleusTotXsc::fCofXsc
protected

Definition at line 80 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fCutEnergy

G4double G4ElNeutrinoNucleusTotXsc::fCutEnergy
protected

◆ fIndex

◆ fNcFactor

G4double G4ElNeutrinoNucleusTotXsc::fNcFactor
protected

Definition at line 85 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc(), and GetIsoCrossSection().

◆ fNuElEnergy

const G4double G4ElNeutrinoNucleusTotXsc::fNuElEnergy
staticprotected
Initial value:
=
{
0.000561138, 0.000735091, 0.000962969, 0.00126149, 0.00165255,
0.00216484, 0.00283594, 0.00371508, 0.00486676, 0.00637546,
0.00835185, 0.0109409, 0.0143326, 0.0187757, 0.0245962,
0.032221, 0.0422095, 0.0552945, 0.0724358, 0.0948908,
0.124307, 0.162842, 0.213323, 0.279453, 0.366084,
0.47957, 0.628237, 0.82299, 1.07812, 1.41233,
1.85016, 2.42371, 3.17505, 4.15932, 5.44871,
7.13781, 9.35053, 12.2492, 16.0464, 21.0208,
27.5373, 36.0739, 47.2568, 61.9064, 81.0973,
106.238, 139.171, 182.314, 238.832, 312.869
}

Definition at line 309 of file G4ElNeutrinoNucleusTotXsc.hh.

351{
352public:
353
356
357 G4bool IsIsoApplicable(const G4DynamicParticle*, G4int , G4int , const G4Element*, const G4Material*) override;
358
359 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*) override { return true; };
360
361
362
363 G4double GetElementCrossSection(const G4DynamicParticle* dynPart, G4int Z, const G4Material* mat) override;
364
366 const G4Isotope*,
367 const G4Element*,
368 const G4Material*) override;
369
371 G4double GetNuElTotCsXsc(G4int index, G4double energy);
373
376
377 void SetCutEnergy(G4double ec){fCutEnergy = ec;};
379
382
383 G4double GetTotXsc(){return fTotXsc;};
385
386protected:
387
388 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
389 G4double fSin2tW; // sin^2theta_Weinberg
391 G4double fCutEnergy; // minimal recoil electron energy detected
392 G4double fBiasingFactor; // biasing xsc up
394
396
397 static const G4double fNuElEnergy[50];
398 static const G4double fNuElTotXsc[50];
399 static const G4double fANuElTotXsc[50];
400
403};
404
405#endif

Referenced by GetANuElTotCsXsc(), GetEnergyIndex(), and GetNuElTotCsXsc().

◆ fNuElTotXsc

const G4double G4ElNeutrinoNucleusTotXsc::fNuElTotXsc
staticprotected
Initial value:
=
{
0.0026484, 0.00609503, 0.00939421, 0.0132163, 0.0178983,
0.0237692, 0.0312066, 0.0406632, 0.0526867, 0.0679357,
0.0871913, 0.111359, 0.141458, 0.178584, 0.223838,
0.27822, 0.342461, 0.416865, 0.501361, 0.596739,
0.713623, 0.905749, 1.20718, 1.52521, 1.75286,
1.82072, 1.67119, 1.50074, 1.3077, 1.14923,
1.0577, 0.977911, 0.918526, 0.792889, 0.702282,
0.678615, 0.687099, 0.725167, 0.706795, 0.678045,
0.649791, 0.651328, 0.651934, 0.658062, 0.660659,
0.662534, 0.662601, 0.660261, 0.656724, 0.65212
}

Definition at line 327 of file G4ElNeutrinoNucleusTotXsc.hh.

369{
370public:
371
374
375 G4bool IsIsoApplicable(const G4DynamicParticle*, G4int , G4int , const G4Element*, const G4Material*) override;
376
377 G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*) override { return true; };
378
379
380
381 G4double GetElementCrossSection(const G4DynamicParticle* dynPart, G4int Z, const G4Material* mat) override;
382
384 const G4Isotope*,
385 const G4Element*,
386 const G4Material*) override;
387
389 G4double GetNuElTotCsXsc(G4int index, G4double energy);
391
394
395 void SetCutEnergy(G4double ec){fCutEnergy = ec;};
397
400
401 G4double GetTotXsc(){return fTotXsc;};
403
404protected:
405
406 G4double fCofXsc; // 2*Gf*Gf*MeC2/pi
407 G4double fSin2tW; // sin^2theta_Weinberg
409 G4double fCutEnergy; // minimal recoil electron energy detected
410 G4double fBiasingFactor; // biasing xsc up
412
414
415 static const G4double fNuElEnergy[50];
416 static const G4double fNuElTotXsc[50];
417 static const G4double fANuElTotXsc[50];
418
421};
422
423#endif

Referenced by GetNuElTotCsArray(), and GetNuElTotCsXsc().

◆ fSin2tW

G4double G4ElNeutrinoNucleusTotXsc::fSin2tW
protected

Definition at line 81 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc().

◆ fTotXsc

G4double G4ElNeutrinoNucleusTotXsc::fTotXsc
protected

◆ theElectron

const G4ParticleDefinition* G4ElNeutrinoNucleusTotXsc::theElectron
protected

Definition at line 93 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc().

◆ thePositron

const G4ParticleDefinition* G4ElNeutrinoNucleusTotXsc::thePositron
protected

Definition at line 94 of file G4ElNeutrinoNucleusTotXsc.hh.

Referenced by G4ElNeutrinoNucleusTotXsc().


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