CMS 3D CMS Logo

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

Public Member Functions

 Nucleus2gamma2 (int idBeamIn)
 
void xfUpdate (int, double x, double) override
 

Detailed Description

Definition at line 82 of file Pythia8Hadronizer.cc.

Constructor & Destructor Documentation

◆ Nucleus2gamma2()

Nucleus2gamma2::Nucleus2gamma2 ( int  idBeamIn)
inline

Definition at line 85 of file Pythia8Hadronizer.cc.

Member Function Documentation

◆ xfUpdate()

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

Definition at line 88 of file Pythia8Hadronizer.cc.

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

88  {
89  // lead
90  double radius = 0; // radius in [fm]
91  double z = 0;
92  if (idBeam == 1000822080) {
93  radius = 6.636;
94  z = 82;
95  }
96  // oxygen
97  else if (idBeam == 80160) {
98  radius = 3.02;
99  z = 8;
100  }
101 
102  // Minimum impact parameter (~2*radius) [fm].
103  double bmin = 2 * radius;
104 
105  // Per-nucleon mass for lead.
106  double m2 = pow2(0.9314);
107  double alphaEM = 0.007297353080;
108  double hbarc = 0.197;
109  double xi = x * sqrt(m2) * bmin / hbarc;
110  double bK0 = besselK0(xi);
111  double bK1 = besselK1(xi);
112  double intB = xi * bK1 * bK0 - 0.5 * pow2(xi) * (pow2(bK1) - pow2(bK0));
113  xgamma = 2. * alphaEM * pow2(z) / M_PI * intB;
114  }
constexpr int pow2(int x)
Definition: TauNNIdHW.h:59
T sqrt(T t)
Definition: SSEVec.h:19
#define M_PI