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 81 of file Pythia8Hadronizer.cc.

Constructor & Destructor Documentation

◆ Nucleus2gamma2()

Nucleus2gamma2::Nucleus2gamma2 ( int  idBeamIn)
inline

Definition at line 84 of file Pythia8Hadronizer.cc.

Member Function Documentation

◆ xfUpdate()

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

Definition at line 87 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.

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