CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PetrukhinModel.cc
Go to the documentation of this file.
1 // PetrukhinModel.cc Class:
3 //
4 // Improvements: Function of Muom Brem using nuclear screening correction
5 // Description: Muon bremsstrahlung using the Petrukhin's model in FASTSIM
6 // Authors: Sandro Fonseca de Souza and Andre Sznajder (UERJ/Brazil)
7 // Date: 23-Nov-2010
9 
10 #include <fstream>
11 #include "TF1.h"
13 #include <math.h>
14 using namespace std;
15 
16 //=====================================================================
17 
19 //Function of Muom Brem using nuclear-electron screening correction from G4 style
20 //
21 
22  double PetrukhinFunc (double *x, double *p ){
23 
24  //Function independent variable
25  double nu = x[0]; //fraction of muon's energy transferred to the photon
26 
27  // Parameters
28  double E=p[0]; //Muon Energy (in GeV)
29  double A=p[1];// Atomic weight
30  double Z=p[2];// Atomic number
31 
32  /*
33 
35 //Function of Muom Brem using nuclear screening correction
36 //Ref: http://pdg.lbl.gov/2008/AtomicNuclearProperties/adndt.pdf
37 
38  //Physical constants
39  double B = 182.7;
40  double ee = sqrt(2.7181) ; // sqrt(e)
41  double ZZ= pow( Z,-1./3.); // Z^-1/3
43  double emass = 0.0005109990615; // electron mass (GeV/c^2)
44  double mumass = 0.105658367;//mu mass (GeV/c^2)
45 
46  double re = 2.817940285e-13;// Classical electron radius (Units: cm)
47  double alpha = 1./137.03599976; // fine structure constant
48  double Dn = 1.54* (pow(A,0.27));
49  double constant = pow((2.0 * Z * emass/mumass * re ),2.0);
51 
52  double delta = (mumass * mumass * nu) /(2.* E * (1.- nu));
53 
54  double Delta_n = TMath::Log(Dn / (1.+ delta *( Dn * ee -2.)/ mumass)); //nuclear screening correction
55 
56  double Phi = TMath::Log((B * mumass * ZZ / emass)/ (1.+ delta * ee * B * ZZ / emass)) - Delta_n;//phi(delta)
57 
58  //Diff. Cross Section for Muon Brem from a screened nuclear (Equation 16: REF: LBNL-44742)
59  double f = alpha * constant *(4./3.-4./3.*nu + nu*nu)*Phi/nu;
60 */
61 
63 // Function for Muon Brem Xsec from G4
65 //Physical constants
66  double B = 183.;
67  double Bl= 1429.;
68  double ee = 1.64872 ; // sqrt(e)
69  double Z13= pow( Z,-1./3.); // Z^-1/3
70  double Z23= pow( Z,-2./3.); // Z^-2/3
71 
72  //Original values of paper
73  double emass = 0.0005109990615; // electron mass (GeV/c^2)
74  double mumass = 0.105658367; // muon mass (GeV/c^2)
75  // double re = 2.817940285e-13; // Classical electron radius (Units: cm)
76  double alpha = 0.00729735; // 1./137.03599976; // fine structure constant
77  double constant = 1.85736e-30; // pow( ( emass / mumass * re ) , 2.0);
78 
79  double Dn = 1.54*(pow(A,0.27));
80  double Dnl= pow(Dn,(1.-1./Z));
81 
82  double delta = (mumass * mumass * nu)/(2.* E * (1.- nu));
83 
84 
85  double Phi_n = TMath::Log( B * Z13 *( mumass + delta * ( Dnl * ee -2 ))
86  / ( Dnl * ( emass + delta * ee * B * Z13 ) ) );
87 
88 
89  double Phi_e = TMath::Log( ( Bl * Z23 * mumass )
90  / ( 1.+ delta * mumass / ( emass*emass * ee ) )
91  / ( emass + delta *ee * Bl * Z23 ) );
92 
93 
94 
95 //Diff. Cross Section for Muon Brem from G4 ( without NA/A factor )
96  double f = 16./3. * alpha * constant* Z * ( Z * Phi_n + Phi_e ) * (1./nu) * (1. - nu + 0.75*nu*nu) ;
97 
98  return f;
99 
100 
101 
102  }
103 
104 
105 
const double Z[kNumberCalorimeter]
dbl * delta
Definition: mlp_gen.cc:36
float alpha
Definition: AMPTWrapper.h:95
double PetrukhinFunc(double *x, double *p)
double f[11][100]
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40