ATLAS Offline Software
Loading...
Searching...
No Matches
Pythia8::WprimeWZFlat Class Reference
Inheritance diagram for Pythia8::WprimeWZFlat:
Collaboration diagram for Pythia8::WprimeWZFlat:

Public Member Functions

 WprimeWZFlat ()
 ~WprimeWZFlat ()
virtual bool canModifySigma ()
virtual double multiplySigmaBy (const SigmaProcess *sigmaProcessPtr, const PhaseSpace *phaseSpacePtr, bool)

Private Member Functions

double breitWignerDenom (double mFrac)
double pTWeight (double rH)

Private Attributes

Pythia8_UserHooks::UserSetting< int > m_flattenPT = Pythia8_UserHooks::UserSetting<int>("WprimeWZFlat:FlattenPT", 0)

Detailed Description

Definition at line 17 of file WprimeWZFlat.cxx.

Constructor & Destructor Documentation

◆ WprimeWZFlat()

Pythia8::WprimeWZFlat::WprimeWZFlat ( )
inline

Definition at line 22 of file WprimeWZFlat.cxx.

22{}

◆ ~WprimeWZFlat()

Pythia8::WprimeWZFlat::~WprimeWZFlat ( )
inline

Definition at line 25 of file WprimeWZFlat.cxx.

25{}

Member Function Documentation

◆ breitWignerDenom()

double Pythia8::WprimeWZFlat::breitWignerDenom ( double mFrac)
inlineprivate

Definition at line 55 of file WprimeWZFlat.cxx.

55 {
56
57 if(mFrac < 0.025) return breitWignerDenom(0.025);
58 if(mFrac > 0.6) return breitWignerDenom(0.6);
59
60 if(mFrac < 0.0425) return 1e-12/(-1.293+1.098e+2*mFrac-2.800e+3*mFrac*mFrac+2.345e+4*mFrac*mFrac*mFrac);
61 if(mFrac < 0.073) return 1.248e-12*(std::exp(1.158+18.34*mFrac));
62
63 return 5.733e-10*std::pow(mFrac,-3.798-0.6555*std::log(mFrac))/std::pow(1.427-mFrac,30.017);
64 }
double breitWignerDenom(double mFrac)

◆ canModifySigma()

virtual bool Pythia8::WprimeWZFlat::canModifySigma ( )
inlinevirtual

Definition at line 28 of file WprimeWZFlat.cxx.

28{return true;}

◆ multiplySigmaBy()

virtual double Pythia8::WprimeWZFlat::multiplySigmaBy ( const SigmaProcess * sigmaProcessPtr,
const PhaseSpace * phaseSpacePtr,
bool  )
inlinevirtual

Definition at line 31 of file WprimeWZFlat.cxx.

33 {
34 // All events should be 2 -> 1, but kill them if not.
35 if (sigmaProcessPtr->nFinal() != 1) return 0.;
36
37 // Weight cross section with BW propagator, i.e. to remove it.
38 // (inEvent = false for initialization).
39 // No inEvent criteria, want weight both for cross section
40 // and MC generation.
41 int idRes = sigmaProcessPtr->resonanceA();
42 double mRes = particleDataPtr->m0(idRes);
43 double wRes = particleDataPtr->mWidth(idRes);
44 double m2Res = mRes*mRes;
45 double gamMRat = wRes/mRes;
46 double sHat = phaseSpacePtr->sHat();
47 double weightBW = m2Res*m2Res + sHat*sHat*(1 + gamMRat*gamMRat) - 2.*sHat*m2Res;
48 double rH = std::sqrt(sHat);
49
50 return (m_flattenPT(settingsPtr)) ? weightBW * pTWeight(rH) : weightBW * breitWignerDenom(rH/settingsPtr->parm("Beams:eCM"));
51 }
Pythia8_UserHooks::UserSetting< int > m_flattenPT
double pTWeight(double rH)

◆ pTWeight()

double Pythia8::WprimeWZFlat::pTWeight ( double rH)
inlineprivate

Definition at line 66 of file WprimeWZFlat.cxx.

66 {
67
68 double pe0 = 9.705/2000.;
69 double pe1 = -1.27668e-03;
70
71 double weightHighpT =1./(std::exp(pe0+pe1*rH));
72
73 double p0 = 0.00405295;
74 double p1 = -1.15389e-06;
75 double p2 = -8.83305e-10;
76 double p3 = 1.02983e-12;
77 double p4 = -3.64486e-16;
78 double p5 = 6.05783e-20;
79 double p6 = -4.74988e-24;
80 double p7 = 1.40627e-28;
81 double weightFinal = (p0+(p1*rH)+(p2*std::pow(rH,2))+(p3*std::pow(rH,3))+(p4*std::pow(rH,4))+(p5*std::pow(rH,5))+(p6*std::pow(rH,6))+(p7*std::pow(rH,7)));
82
83 if(rH < 400.) weightFinal *= 0.5;
84
85 return weightHighpT * weightFinal;
86 }

Member Data Documentation

◆ m_flattenPT

Pythia8_UserHooks::UserSetting<int> Pythia8::WprimeWZFlat::m_flattenPT = Pythia8_UserHooks::UserSetting<int>("WprimeWZFlat:FlattenPT", 0)
private

Definition at line 90 of file WprimeWZFlat.cxx.


The documentation for this class was generated from the following file: