GENIEGenerator
Loading...
Searching...
No Matches
genie::mueloss::gsl::BezrukovBugaevIntegrand Class Reference

#include <BezrukovBugaevModel.h>

Inheritance diagram for genie::mueloss::gsl::BezrukovBugaevIntegrand:
[legend]
Collaboration diagram for genie::mueloss::gsl::BezrukovBugaevIntegrand:
[legend]

Public Member Functions

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

Private Attributes

double fE
double fA

Detailed Description

Definition at line 69 of file BezrukovBugaevModel.h.

Constructor & Destructor Documentation

◆ BezrukovBugaevIntegrand()

gsl::BezrukovBugaevIntegrand::BezrukovBugaevIntegrand ( double E,
double A )

Definition at line 104 of file BezrukovBugaevModel.cxx.

104 :
105ROOT::Math::IBaseFunctionOneDim()
106{
107 fE = E;
108 fA = A;
109}

References fA, and fE.

◆ ~BezrukovBugaevIntegrand()

gsl::BezrukovBugaevIntegrand::~BezrukovBugaevIntegrand ( )

Definition at line 111 of file BezrukovBugaevModel.cxx.

112{
113
114}

Member Function Documentation

◆ Clone()

ROOT::Math::IBaseFunctionOneDim * gsl::BezrukovBugaevIntegrand::Clone ( void ) const

Definition at line 172 of file BezrukovBugaevModel.cxx.

173{
174 return new gsl::BezrukovBugaevIntegrand(fE, fA);
175}

References fA, and fE.

◆ DoEval()

double gsl::BezrukovBugaevIntegrand::DoEval ( double xin) const

Definition at line 121 of file BezrukovBugaevModel.cxx.

122{
123// Returns v*(ds/dv)
124
125 double v = xin; // v, the fraction of energy transfered to the photon
126
127 if (! (v >0)) return 0;
128 if ( v >1) return 0;
129 if (! (fE>0)) return 0;
130
131 double a = kAem;
132 double pi = kPi;
133 double mmu2 = kMuonMass2;
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.);
138 double M1_2 = 0.54; // m1^2 in photonuclear diff. xsec formula (in GeV^2)
139 double M2_2 = 1.80; // m2^2 in photonuclear diff. xsec formula (in GeV^2)
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);
144
145 // Calculate the cross section (in ub) for photonuclear interaction
146 double Ep = v*fE; // photon energy (GeV)
147 double loge = TMath::Log(0.0213*Ep); // factor 0.0213 has units of GeV^-1
148 double sig = 114.3 + 1.647 * loge*loge; // in ub
149
150 // Calculate the factor G (dimensionless) appearing in the differential
151 // photonuclear interaction cross section
152 double x = 0.00282*A13*sig; // factor 0.00282 has units of ub^-1
153 double x2 = x*x;
154 double x3 = x2*x;
155 double G = 3*(0.5*x2 - 1. + (1.+x)*TMath::Exp(-x)) /x3;
156
157 // Calculate the differential cross section ds/dv for muon nuclear
158 // interaction based on the Bezrukov-Bugaev formula.
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) );
163
164 double ds_dv = bbA*(bbB+bbC+bbD); // in um (microbarns)
165 double vds_dv = v*ds_dv;
166
167 vds_dv *= units::ub; // ub -> GeV^-2
168 return vds_dv;
169}
const double a
static constexpr double ub
Definition Units.h:80

References a, fA, fE, genie::constants::kAem, genie::constants::kMuonMass2, genie::constants::kPi, and genie::units::ub.

◆ NDim()

unsigned int gsl::BezrukovBugaevIntegrand::NDim ( void ) const

Definition at line 116 of file BezrukovBugaevModel.cxx.

117{
118 return 1;
119}

Member Data Documentation

◆ fA

double genie::mueloss::gsl::BezrukovBugaevIntegrand::fA
private

Definition at line 80 of file BezrukovBugaevModel.h.

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

◆ fE

double genie::mueloss::gsl::BezrukovBugaevIntegrand::fE
private

Definition at line 79 of file BezrukovBugaevModel.h.

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


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