ATLAS Offline Software
Loading...
Searching...
No Matches
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 }
Pythia8_UserHooks::UserSetting< double > m_mHatConstMin
Pythia8_UserHooks::UserSetting< double > m_p1
Pythia8_UserHooks::UserSetting< double > m_p2
Pythia8_UserHooks::UserSetting< double > m_slope

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: