ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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  }

◆ 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  }

◆ 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:
Pythia8::WprimeWZFlat::pTWeight
double pTWeight(double rH)
Definition: WprimeWZFlat.cxx:66
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Pythia8::WprimeWZFlat::breitWignerDenom
double breitWignerDenom(double mFrac)
Definition: WprimeWZFlat.cxx:55
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TRTCalib_cfilter.p3
p3
Definition: TRTCalib_cfilter.py:132
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
TRTCalib_cfilter.p0
p0
Definition: TRTCalib_cfilter.py:129
Pythia8::WprimeWZFlat::m_flattenPT
Pythia8_UserHooks::UserSetting< int > m_flattenPT
Definition: WprimeWZFlat.cxx:90