12#include <Math/Integrator.h>
24MuELossI(
"genie::mueloss::BezrukovBugaevModel")
30MuELossI(
"genie::mueloss::BezrukovBugaevModel", config)
60 ROOT::Math::IBaseFunctionOneDim * integrand =
62 ROOT::Math::IntegrationOneDim::Type ig_type =
67 int nmaxeval = 100000;
68 ROOT::Math::Integrator ig(*integrand,ig_type,abstol,reltol,nmaxeval);
72 double bnucl = (
kNA/A) * ig.Integral(Vmin, Vmax);
77 double de_dx = bnucl*E;
105ROOT::Math::IBaseFunctionOneDim()
127 if (! (v >0))
return 0;
129 if (! (
fE>0))
return 0;
134 double v2 = TMath::Power(v,2.);
135 double t = mmu2 *v2/(1-v);
136 double k = 1. - 2./v + 2./v2;
137 double A13 = TMath::Power(
fA,1./3.);
140 double M1_2_t = M1_2 / t;
141 double M2_2_t = M2_2 / t;
142 double mmu2_t = mmu2 / t;
143 double d = M1_2 / (t + M1_2);
147 double loge = TMath::Log(0.0213*Ep);
148 double sig = 114.3 + 1.647 * loge*loge;
152 double x = 0.00282*A13*sig;
155 double G = 3*(0.5*x2 - 1. + (1.+x)*TMath::Exp(-x)) /x3;
159 double bbA = 0.5*(
a/pi) *
fA * sig * v;
160 double bbB = 0.75*G * ( k*TMath::Log(1.+M1_2_t) - k*d - 2.*mmu2_t );
161 double bbC = 0.25 * ( k*TMath::Log(1.+M2_2_t) - 2.*mmu2_t );
162 double bbD = 0.5*mmu2_t * ( 0.75*G*d + 0.25*M2_2_t*TMath::Log(1.+1./M2_2_t) );
164 double ds_dv = bbA*(bbB+bbC+bbD);
165 double vds_dv = v*ds_dv;
171ROOT::Math::IBaseFunctionOneDim *
MuELProcess_t Process(void) const
virtual ~BezrukovBugaevModel()
double dE_dx(double E, MuELMaterial_t material) const
Implement the MuELossI interface.
static double A(MuELMaterial_t material)
static double Z(MuELMaterial_t material)
static double Threshold(MuELProcess_t p)
unsigned int NDim(void) const
double DoEval(double xin) const
~BezrukovBugaevIntegrand()
ROOT::Math::IBaseFunctionOneDim * Clone(void) const
BezrukovBugaevIntegrand(double E, double A)
static const double kMuonMass2
static const double kSqrtNapierConst
static const double kMuonMass
The MuELoss utility package that computes muon energy losses in the energy range from 1 GeV to 10 TeV...
enum genie::mueloss::EMuELMaterial MuELMaterial_t
static constexpr double ub
static constexpr double g
ROOT::Math::IntegrationOneDim::Type Integration1DimTypeFromString(string type)
THE MAIN GENIE PROJECT NAMESPACE