GENIEGenerator
Loading...
Searching...
No Matches
genie::utils::phys Namespace Reference

Various physics formulas & utilities. More...

Functions

double FormationZone (double m, const TLorentzVector &p, const TVector3 &p3hadr, double ct0, double K)
double R99118 (double x, double Q2)
 PRL 98, 142301, 2007.
double RWhitlow (double x, double Q2)

Detailed Description

Various physics formulas & utilities.

Author
Costas Andreopoulos <c.andreopoulos \at cern.ch> University of Liverpool
Created:\n January 22, 2008
License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org

Function Documentation

◆ FormationZone()

double genie::utils::phys::FormationZone ( double m,
const TLorentzVector & p,
const TVector3 & p3hadr,
double ct0,
double K )

Definition at line 18 of file PhysUtils.cxx.

21{
22// m -> hadon mass (on-shell)
23// p -> hadron momentum 4-vector (Lab)
24// p3hadr -> hadronic-system momentum 3-vector (Lab)
25
26 TVector3 p3 = p4.Vect(); // hadron's: p (px,py,pz)
27 double m2 = m*m; // m^2
28 double P = p4.P(); // |p|
29 double Pt = p3.Pt(p3hadr); // pT
30 double Pt2 = Pt*Pt; // pT^2
31 double fz = P*ct0*m/(m2+K*Pt2); // formation zone, in fm
32
33 LOG("PhysUtil", pNOTICE)
34 << "Formation zone(|P| = " << P << " GeV, Pt = " << Pt
35 << " GeV, ct0 = " << ct0 << " fm, K = " << K << ") = " << fz << " fm";
36
37 return fz;
38}
#define pNOTICE
Definition Messenger.h:61
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96

References LOG, and pNOTICE.

Referenced by genie::DISHadronicSystemGenerator::SimulateFormationZone().

◆ R99118()

double genie::utils::phys::R99118 ( double x,
double Q2 )

PRL 98, 142301, 2007.

Definition at line 40 of file PhysUtils.cxx.

41{
42// Adapted from fortran code sent by V.Tvaskis
43// PRL 98, 142301, 2007
44//
45 double A[3] = { .06723, .46714, 1.89794 };
46 double B[3] = { .06347, .57468, -.35342 };
47 double C[3] = { .05992, .50885, 2.10807 };
48
49 double consq2=2.; // Joining point of r1990 and re99118
50 double R=0;
51
52 if(Q2 >= consq2) {
53 double FAC = 1+12.*(Q2/(1.+Q2))*(.125*.125/(x*x+.125*.125));
54 double RLOG = FAC/TMath::Log(Q2/.04);
55 double Q2thr = 5.*TMath::Power(1.-x,5);
56 double R_A = A[0]*RLOG + A[1] / TMath::Sqrt( TMath::Sqrt( TMath::Power(Q2,4)+TMath::Power(A[2],4) ));
57 double R_B = B[0]*RLOG + B[1]/Q2 + B[2]/( TMath::Power(Q2,2) + TMath::Power(.3,2) );
58 double R_C = C[0]*RLOG + C[1]/TMath::Sqrt( TMath::Power(Q2-Q2thr,2) + TMath::Power(C[2],2) );
59 R = (R_A+R_B+R_C)/3.;
60 }
61
62 if(Q2 < consq2) {
63 double FAC = 1+12.*(consq2/(1.+consq2))*(.125*.125/(x*x+.125*.125));
64 double RLOG = FAC/TMath::Log(consq2/.04);
65 double Q2thr = 5.*TMath::Power(1.-x,5);
66 double R_A = A[0]*RLOG + A[1]/TMath::Sqrt(TMath::Sqrt( TMath::Power(consq2,4)+TMath::Power(A[2],4) ));
67 double R_B = B[0]*RLOG + B[1]/consq2 + B[2]/( TMath::Power(consq2,2) + TMath::Power(.3,2) );
68 double R_C = C[0]*RLOG + C[1]/TMath::Sqrt( TMath::Power(consq2-Q2thr,2) + TMath::Power(C[2],2) );
69 double norm=(R_A+R_B+R_C)/3.;
70 R=norm*(1.0-TMath::Exp(-Q2*9.212));
71 }
72 return R;
73}

◆ RWhitlow()

double genie::utils::phys::RWhitlow ( double x,
double Q2 )

Definition at line 75 of file PhysUtils.cxx.

76{
77// Adapted from NeuGEN's rmodel_mod()
78//
79// Hugh's comments in original code:
80// from NuTeV code provided by Donna Naples, May 2005
81// added form for R below qsq=.35 GEV**2 from hep-ex/030807
82//
83// NuTEV comments:
84//
85//C Revised to make HTWIST select between more than two different
86//C values of R.
87//C
88//C HTWIST = 'F' ==> RQCD - WITH LIMIT R > (2MX)**2/Q2
89//C HTWIST = 'T' ==> RSLAC - WITH LIMIT R > (2MX)**2/Q2
90//C HTWIST = '0' ==> R = 0 (NOT TRUE, BUT USEFUL FOR STUDIES)
91//C HTWIST = '2' ==> R =.2 (NOT TRUE, BUT USEFUL FOR STUDIES)
92//C HTWIST = 'C' ==> R-CALLAN-GROSS = (2MX)**2/Q2
93//C
94//C HTWIST = 'W' ==> R PARAMETERIZATION FROM WHITLOW'S THESIS
95//C HTWIST = '+' ==> R PARAMETRIZATION FROM WHITLOW +15%
96//C HTWIST = 'P' ==> R PARAMETRIZATION FROM WHITLOW +0.03
97//C HTWIST = 'M' ==> R PARAMETRIZATION FROM WHITLOW -0.03
98//C
99//C 22-DEC-92 WGS
100//
101 const double C2 = TMath::Power(0.125, 2);
102 const double B1 = 0.0635;
103 const double B2 = 0.5747;
104 const double B3 = -0.3534;
105
106 double Q2R = TMath::Max(Q2, 0.35);
107 double ss = TMath::Log(Q2R/.04);
108
109 double x2 = TMath::Power(x, 2.);
110 double Q4R = TMath::Power(Q2R, 2.);
111 double Q4 = TMath::Power(Q2, 2.);
112
113 double theta = 1. + (12.*Q2R/(Q2R+1.)) * (C2/(C2+x2));
114 double R = (B1/ss)*theta + B2/Q2R + B3/(Q4R+.09);
115
116 R = TMath::Max(R,0.);
117
118 if(Q2 < 0.35) {
119 R *= ( 3.207*(Q2/(Q4+1.)) );
120 }
121 return R;
122}

Referenced by genie::QPMDISStrucFuncBase::R(), and genie::QPMDMDISStrucFuncBase::R().