Public Member Functions | Private Attributes | List of all members
genie::mueloss::gsl::BezrukovBugaevIntegrand 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/BezrukovBugaevModel.h"

Inheritance diagram for genie::mueloss::gsl::BezrukovBugaevIntegrand:

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 80 of file BezrukovBugaevModel.h.

Constructor & Destructor Documentation

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

Definition at line 110 of file BezrukovBugaevModel.cxx.

References genie::units::A, E, fA, and fE.

110  :
111 ROOT::Math::IBaseFunctionOneDim()
112 {
113  fE = E;
114  fA = A;
115 }
Float_t E
Definition: plot.C:20
static const double A
Definition: Units.h:82
gsl::BezrukovBugaevIntegrand::~BezrukovBugaevIntegrand ( )

Definition at line 117 of file BezrukovBugaevModel.cxx.

118 {
119 
120 }

Member Function Documentation

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

Definition at line 127 of file BezrukovBugaevModel.cxx.

References a, d, fA, fE, genie::constants::kAem, genie::constants::kMuonMass2, kPi, python.hepunit::pi, confusionMatrixTree::t, genie::units::ub, registry_explorer::v, submit_syst::x, and submit_syst::x2.

128 {
129 // Returns v*(ds/dv)
130 
131  double v = xin; // v, the fraction of energy transfered to the photon
132 
133  if (! (v >0)) return 0;
134  if ( v >1) return 0;
135  if (! (fE>0)) return 0;
136 
137  double a = kAem;
138  double pi = kPi;
139  double mmu2 = kMuonMass2;
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.);
144  double M1_2 = 0.54; // m1^2 in photonuclear diff. xsec formula (in GeV^2)
145  double M2_2 = 1.80; // m2^2 in photonuclear diff. xsec formula (in GeV^2)
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);
150 
151  // Calculate the cross section (in ub) for photonuclear interaction
152  double Ep = v*fE; // photon energy (GeV)
153  double loge = TMath::Log(0.0213*Ep); // factor 0.0213 has units of GeV^-1
154  double sig = 114.3 + 1.647 * loge*loge; // in ub
155 
156  // Calculate the factor G (dimensionless) appearing in the differential
157  // photonuclear interaction cross section
158  double x = 0.00282*A13*sig; // factor 0.00282 has units of ub^-1
159  double x2 = x*x;
160  double x3 = x2*x;
161  double G = 3*(0.5*x2 - 1. + (1.+x)*TMath::Exp(-x)) /x3;
162 
163  // Calculate the differential cross section ds/dv for muon nuclear
164  // interaction based on the Bezrukov-Bugaev formula.
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) );
169 
170  double ds_dv = bbA*(bbB+bbC+bbD); // in um (microbarns)
171  double vds_dv = v*ds_dv;
172 
173  vds_dv *= units::ub; // ub -> GeV^-2
174  return vds_dv;
175 }
const double kPi
static const double kAem
Definition: Constants.h:57
const double a
static const double kMuonMass2
Definition: Constants.h:85
Float_t d
Definition: plot.C:236
static const double ub
Definition: Units.h:88
unsigned int gsl::BezrukovBugaevIntegrand::NDim ( void  ) const

Definition at line 122 of file BezrukovBugaevModel.cxx.

123 {
124  return 1;
125 }

Member Data Documentation

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

Definition at line 91 of file BezrukovBugaevModel.h.

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

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

Definition at line 90 of file BezrukovBugaevModel.h.

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


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