CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
Nucleus2gamma2 Class Reference
Inheritance diagram for Nucleus2gamma2:

Public Member Functions

 Nucleus2gamma2 (int idBeamIn, double R=-1.0, int Z=-1)
 
void xfUpdate (int, double x, double) override
 

Private Attributes

double radius
 
int z
 

Detailed Description

Definition at line 81 of file Pythia8Hadronizer.cc.

Constructor & Destructor Documentation

◆ Nucleus2gamma2()

Nucleus2gamma2::Nucleus2gamma2 ( int  idBeamIn,
double  R = -1.0,
int  Z = -1 
)
inline

Member Function Documentation

◆ xfUpdate()

void Nucleus2gamma2::xfUpdate ( int  ,
double  x,
double   
)
inlineoverride

Definition at line 90 of file Pythia8Hadronizer.cc.

References ReggeGribovPartonMC_AdvancedParameters_cfi::bmin, edm::errors::Configuration, Exception, callgraph::m2, M_PI, L1TauEmu::pow2(), CosmicsPD_Skims::radius, mathSSE::sqrt(), x, and protons_cff::xi.

90  {
91  if (z == -1) {
92  // lead
93  if (idBeam == 1000822080)
94  z = 82;
95  }
96  if (radius == -1) {
97  // lead
98  if (idBeam == 1000822080)
99  radius = 6.636;
100  }
101 
102  if (z < 0 || radius < 0)
103  throw edm::Exception(edm::errors::Configuration, "Pythia8Interface")
104  << " Invalid photon flux input parameters: beam ID= " << idBeam << " , radius= " << radius << " , z= " << z
105  << "\n";
106 
107  // Minimum impact parameter (~2*radius) [fm].
108  double bmin = 2 * radius;
109 
110  // Per-nucleon mass for lead.
111  double m2 = pow2(0.9314);
112  double alphaEM = 0.007297353080;
113  double hbarc = 0.197;
114  double xi = x * sqrt(m2) * bmin / hbarc;
115  double bK0 = besselK0(xi);
116  double bK1 = besselK1(xi);
117  double intB = xi * bK1 * bK0 - 0.5 * pow2(xi) * (pow2(bK1) - pow2(bK0));
118  xgamma = 2. * alphaEM * pow2(z) / M_PI * intB;
119  }
constexpr int pow2(int x)
Definition: TauNNIdHW.h:51
T sqrt(T t)
Definition: SSEVec.h:23
#define M_PI

Member Data Documentation

◆ radius

double Nucleus2gamma2::radius
private

Definition at line 83 of file Pythia8Hadronizer.cc.

◆ z

int Nucleus2gamma2::z
private