ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
Pythia8::mHatReweight Class Reference
Inheritance diagram for Pythia8::mHatReweight:
Collaboration diagram for Pythia8::mHatReweight:

Public Member Functions

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

Private Attributes

Pythia8_UserHooks::UserSetting< double > m_slope
 
Pythia8_UserHooks::UserSetting< double > m_mHatConstMin
 
Pythia8_UserHooks::UserSetting< double > m_p1
 
Pythia8_UserHooks::UserSetting< double > m_p2
 

Detailed Description

Definition at line 19 of file mHatReweight.cxx.

Constructor & Destructor Documentation

◆ mHatReweight()

Pythia8::mHatReweight::mHatReweight ( )
inline

Definition at line 24 of file mHatReweight.cxx.

25  : m_slope("mHatReweight:Slope", 1)
26  , m_mHatConstMin("mHatReweight:mHatConstMin", 1500)
27  , m_p1("mHatReweight:p1", -3.872)
28  , m_p2("mHatReweight:p2", 15.606)
29  {
30  std::cout<<"*************************************************************"<<std::endl;
31  std::cout<<"* *"<<std::endl;
32  std::cout<<"* Populating high-mass events with mHatReweight UserHook! *"<<std::endl;
33  std::cout<<"* *"<<std::endl;
34  std::cout<<"*************************************************************"<<std::endl;
35  }

Member Function Documentation

◆ canModifySigma()

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

Definition at line 38 of file mHatReweight.cxx.

38 {return true;}

◆ multiplySigmaBy()

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

Definition at line 41 of file mHatReweight.cxx.

43  {
44  // All events should be 2 -> 1, but kill them if not.
45  if (sigmaProcessPtr->nFinal() != 1) return 0.;
46  // config
47  double slope = m_slope(settingsPtr);
48  double mHatConstMin = m_mHatConstMin(settingsPtr);
49  double p1 = m_p1(settingsPtr);
50  double p2 = m_p2(settingsPtr);
51  // event kinematics
52  double mHat = std::sqrt(phaseSpacePtr->sHat());
53  double ecm = phaseSpacePtr->ecm();
54 
55  // scale factor
56  double scale = 0.0;
57  // low-mass slope modification
58  if( mHat < mHatConstMin ){
59  scale = std::pow(mHat/ecm, slope);
60  }
61  // const high-mass
62  else {
63  double xsec = std::pow(mHat/ecm, p1) * std::pow(1 - mHat/ecm, p2);
64  double xsecMin = std::pow(mHatConstMin/ecm, p1) * std::pow(1 - mHatConstMin/ecm, p2);
65  scale = std::pow(mHatConstMin/ecm, slope) * xsecMin / xsec;
66  }
67  return scale;
68  }

Member Data Documentation

◆ m_mHatConstMin

Pythia8_UserHooks::UserSetting<double> Pythia8::mHatReweight::m_mHatConstMin
private

Definition at line 73 of file mHatReweight.cxx.

◆ m_p1

Pythia8_UserHooks::UserSetting<double> Pythia8::mHatReweight::m_p1
private

Definition at line 74 of file mHatReweight.cxx.

◆ m_p2

Pythia8_UserHooks::UserSetting<double> Pythia8::mHatReweight::m_p2
private

Definition at line 75 of file mHatReweight.cxx.

◆ m_slope

Pythia8_UserHooks::UserSetting<double> Pythia8::mHatReweight::m_slope
private

Definition at line 72 of file mHatReweight.cxx.


The documentation for this class was generated from the following file:
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
Pythia8::mHatReweight::m_p2
Pythia8_UserHooks::UserSetting< double > m_p2
Definition: mHatReweight.cxx:75
Pythia8::mHatReweight::m_p1
Pythia8_UserHooks::UserSetting< double > m_p1
Definition: mHatReweight.cxx:74
GetAllXsec.xsec
xsec
Definition: GetAllXsec.py:85
Pythia8::mHatReweight::m_mHatConstMin
Pythia8_UserHooks::UserSetting< double > m_mHatConstMin
Definition: mHatReweight.cxx:73
Pythia8::mHatReweight::m_slope
Pythia8_UserHooks::UserSetting< double > m_slope
Definition: mHatReweight.cxx:72