18 #include <Math/Integrator.h> 24 using namespace genie;
30 MuELossI(
"genie::mueloss::BezrukovBugaevModel")
36 MuELossI(
"genie::mueloss::BezrukovBugaevModel", config)
66 ROOT::Math::IBaseFunctionOneDim *
integrand =
73 int nmaxeval = 100000;
74 ROOT::Math::Integrator ig(*integrand,ig_type,abstol,reltol,nmaxeval);
78 double bnucl = (
kNA/
A) * ig.Integral(Vmin, Vmax);
83 double de_dx = bnucl*
E;
111 ROOT::Math::IBaseFunctionOneDim()
133 if (! (v >0))
return 0;
135 if (! (
fE>0))
return 0;
140 double v2 = TMath::Power(v,2.);
141 double t = mmu2 *v2/(1-
v);
142 double k = 1. - 2./v + 2./v2;
143 double A13 = TMath::Power(
fA,1./3.);
146 double M1_2_t = M1_2 /
t;
147 double M2_2_t = M2_2 /
t;
148 double mmu2_t = mmu2 /
t;
149 double d = M1_2 / (t + M1_2);
153 double loge = TMath::Log(0.0213*Ep);
154 double sig = 114.3 + 1.647 * loge*loge;
158 double x = 0.00282*A13*sig;
161 double G = 3*(0.5*x2 - 1. + (1.+
x)*TMath::Exp(-x)) /x3;
165 double bbA = 0.5*(a/
pi) *
fA * sig * v;
166 double bbB = 0.75*G * ( k*TMath::Log(1.+M1_2_t) - k*d - 2.*mmu2_t );
167 double bbC = 0.25 * ( k*TMath::Log(1.+M2_2_t) - 2.*mmu2_t );
168 double bbD = 0.5*mmu2_t * ( 0.75*G*d + 0.25*M2_2_t*TMath::Log(1.+1./M2_2_t) );
170 double ds_dv = bbA*(bbB+bbC+bbD);
171 double vds_dv = v*ds_dv;
177 ROOT::Math::IBaseFunctionOneDim *
unsigned int NDim(void) const
ROOT::Math::IntegrationOneDim::Type Integration1DimTypeFromString(string type)
THE MAIN GENIE PROJECT NAMESPACE
double DoEval(double xin) const
static const double kSqrtNapierConst
static double Z(MuELMaterial_t material)
ROOT::Math::IBaseFunctionOneDim * Clone(void) const
The MuELoss utility package that computes muon energy losses in the energy range from 1 GeV to 10 TeV...
virtual ~BezrukovBugaevModel()
static double Threshold(MuELProcess_t p)
MuELProcess_t Process(void) const
BezrukovBugaevIntegrand(double E, double A)
static const double kMuonMass2
static const double kMuonMass
double integrand(double *x, double *par)
double dE_dx(double E, MuELMaterial_t material) const
Implement the MuELossI interface.
static double A(MuELMaterial_t material)
~BezrukovBugaevIntegrand()
enum genie::mueloss::EMuELMaterial MuELMaterial_t