Public Member Functions | Private Attributes | List of all members
genie::mueloss::gsl::PetrukhinShestakovIntegrand Class Reference

#include "/cvmfs/nova.opensciencegrid.org/externals/genie/v3_00_06_p01/Linux64bit+2.6-2.12-e17-debug/GENIE-Generator/src/Physics/MuonEnergyLoss/PetrukhinShestakovModel.h"

Inheritance diagram for genie::mueloss::gsl::PetrukhinShestakovIntegrand:

Public Member Functions

 PetrukhinShestakovIntegrand (double E, double Z)
 
 ~PetrukhinShestakovIntegrand ()
 
unsigned int NDim (void) const
 
double DoEval (double xin) const
 
ROOT::Math::IBaseFunctionOneDim * Clone (void) const
 

Private Attributes

double fE
 
double fZ
 

Detailed Description

Definition at line 81 of file PetrukhinShestakovModel.h.

Constructor & Destructor Documentation

gsl::PetrukhinShestakovIntegrand::PetrukhinShestakovIntegrand ( double  E,
double  Z 
)

Definition at line 86 of file PetrukhinShestakovModel.cxx.

References E, fE, fZ, and Z.

86  :
87 ROOT::Math::IBaseFunctionOneDim()
88 {
89  fE = E;
90  fZ = Z;
91 }
Float_t Z
Definition: plot.C:38
Float_t E
Definition: plot.C:20
gsl::PetrukhinShestakovIntegrand::~PetrukhinShestakovIntegrand ( )

Definition at line 93 of file PetrukhinShestakovModel.cxx.

94 {
95 
96 }

Member Function Documentation

ROOT::Math::IBaseFunctionOneDim * gsl::PetrukhinShestakovIntegrand::Clone ( void  ) const
double gsl::PetrukhinShestakovIntegrand::DoEval ( double  xin) const

Definition at line 103 of file PetrukhinShestakovModel.cxx.

References a, a3, b, delta, fE, fZ, genie::constants::kAem, genie::constants::kElectronMass, genie::constants::kLe2, genie::constants::kMuonMass, genie::constants::kMuonMass2, genie::constants::kSqrtNapierConst, registry_explorer::v, and Z2.

104 {
105 // Calculate the Bethe-Heitler cross section ds/dv for muon bremsstrahlung
106 // Returns v*(ds/dv)
107 
108  double v = xin; // v, the fraction of energy transfered to the photon
109  double v2 = TMath::Power(v,2.);
110 
111  if (! (v >0)) return 0;
112  if ( v >1) return 0;
113  if (! (fE>0)) return 0;
114 
115  // Some constants...
116  double Z2 = TMath::Power(fZ,2.);
117  double Zm13 = TMath::Power(fZ,-1./3.);
118  double Zm23 = TMath::Power(fZ,-2./3.);
119  double a3 = TMath::Power(kAem,3.); // (e/m coupling const)^3
120  double me = kElectronMass;
121  double mmu = kMuonMass;
122  double mmu2 = kMuonMass2;
123  double mmue = mmu/me;
124  double memu = me/mmu;
125  double memu2 = TMath::Power(memu,2);
126 
127  // Calculate the minimum monentum transfer to the nucleus (in GeV)
128  double delta = (mmu2/fE) * 0.5*v/(1.-v);
129 
130  // Calculate the fi(delta) factor for the bremsstrahlung cross section
131  // ds/dv according to the Petrukhin/Shestakov formula (dimensionless)
132  double a = ( (fZ<10) ? 189.*mmue * Zm13 : 189.*mmue * (2./3.)*Zm23 );
133  double b = 1. + (189./me) * Zm13 * kSqrtNapierConst * delta;
134  double fi = TMath::Log(a/b);
135 
136  // Calculate the Bethe-Heitler cross section ds/dv for muon bremsstrahlung
137  double ds_dv = (a3*memu2*kLe2) * (4*Z2) * (fi) * (4/3.-4*v/3.+v2)/v;
138  double vds_dv = v*ds_dv;
139  return vds_dv; // in GeV^-2
140 }
TH1F * a3
Definition: f2_nu.C:606
static const double kLe2
Definition: Constants.h:52
static const double kSqrtNapierConst
Definition: Constants.h:45
double delta
Definition: runWimpSim.h:98
static const double kElectronMass
Definition: Constants.h:71
static const double kAem
Definition: Constants.h:57
Definition: NueSkimmer.h:24
const double a
static const double kMuonMass2
Definition: Constants.h:85
Double_t Z2
Definition: plot.C:264
static const double kMuonMass
Definition: Constants.h:72
const hit & b
Definition: hits.cxx:21
unsigned int gsl::PetrukhinShestakovIntegrand::NDim ( void  ) const

Definition at line 98 of file PetrukhinShestakovModel.cxx.

99 {
100  return 1;
101 }

Member Data Documentation

double genie::mueloss::gsl::PetrukhinShestakovIntegrand::fE
private

Definition at line 91 of file PetrukhinShestakovModel.h.

Referenced by Clone(), DoEval(), and PetrukhinShestakovIntegrand().

double genie::mueloss::gsl::PetrukhinShestakovIntegrand::fZ
private

Definition at line 92 of file PetrukhinShestakovModel.h.

Referenced by Clone(), DoEval(), and PetrukhinShestakovIntegrand().


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