ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
Pythia8::WZVetoedShower Class Reference

This UserHook should be used when showering W, Z or other colourless resonances generated with PoWHEG. More...

Inheritance diagram for Pythia8::WZVetoedShower:
Collaboration diagram for Pythia8::WZVetoedShower:

Public Member Functions

 WZVetoedShower ()
 
 ~WZVetoedShower ()
 
bool doVetoMPIStep (int nMPI, const Event &)
 doVetoMPIStep is called immediately after the MPI generation In this case it never actually vetoes the MPI, but since it is called before the ISR veto check this is a convenient place to find the PoWHEG scale from the LHEF event More...
 
bool doVetoISREmission (int, const Event &evt, int iSys)
 This is called after the generation of each new ISR emission Can use it to test if the last generated emission is above the veto scale. More...
 
bool doVetoFSREmission (int, const Event &evt, int iSys, bool)
 This is similar to the ISR veto. More...
 
bool canVetoMPIStep ()
 Switch on calling of doVetoMPIStep. More...
 
int numberVetoMPIStep ()
 Call doVetoMIStep once. More...
 
bool canVetoISREmission ()
 Switch on veto of ISR. More...
 
bool canVetoFSREmission ()
 Switch off veto of FSR. More...
 

Private Attributes

double m_powhegScale
 

Detailed Description

This UserHook should be used when showering W, Z or other colourless resonances generated with PoWHEG.

The following setting must be activated in Pythia:

SpaceShower:pTMaxMatch = 2 TimeShower:pTMaxMatch = 2

These set the limit for emission from both initial and final state radiation to the kinematic (beam) energy. The veto hook then vetos any emission that would be above the appropriate scale.

In the cases of colourless resonance production there should be no FSR emission from PoWHEG, therefore the veto determines the pT of every Pythia emission relative to the beam, and vetos if it is above the PoWHEG scale.

This is ok because

1) Although you might think the pT should also be determined relative to any PoWHEG ISR emission, there is no way PoWHEG could have generated an emission off its own ISR. 2) There can be FSR off what was a PoWHEG ISR leg, but again, PoWHEG could never have generated that emission, so you only need to compare to the incoming (beam) legs.

This is in contrast to QCD production, which requires a different veto scheme. As such, this hook...

         ...SHOULD NOT BE USED FOR QCD JET PRODUCTION!!

Definition at line 44 of file WZVetoedShower.cxx.

Constructor & Destructor Documentation

◆ WZVetoedShower()

Pythia8::WZVetoedShower::WZVetoedShower ( )
inline

Definition at line 48 of file WZVetoedShower.cxx.

48  : m_powhegScale(0.){
49 
50  std::cout<<"*******************************************************************"<<std::endl;
51  std::cout<<"* *"<<std::endl;
52  std::cout<<"* Using vetoed shower for PoWHEG colourless resonance production! *"<<std::endl;
53  std::cout<<"* *"<<std::endl;
54  std::cout<<"*******************************************************************"<<std::endl;
55 
56  }

◆ ~WZVetoedShower()

Pythia8::WZVetoedShower::~WZVetoedShower ( )
inline

Definition at line 58 of file WZVetoedShower.cxx.

58 {}

Member Function Documentation

◆ canVetoFSREmission()

bool Pythia8::WZVetoedShower::canVetoFSREmission ( )
inline

Switch off veto of FSR.

Definition at line 121 of file WZVetoedShower.cxx.

121 {return true;}

◆ canVetoISREmission()

bool Pythia8::WZVetoedShower::canVetoISREmission ( )
inline

Switch on veto of ISR.

Definition at line 119 of file WZVetoedShower.cxx.

119 {return true;}

◆ canVetoMPIStep()

bool Pythia8::WZVetoedShower::canVetoMPIStep ( )
inline

Switch on calling of doVetoMPIStep.

Definition at line 115 of file WZVetoedShower.cxx.

115 {return true;}

◆ doVetoFSREmission()

bool Pythia8::WZVetoedShower::doVetoFSREmission ( int  ,
const Event evt,
int  iSys,
bool   
)
inline

This is similar to the ISR veto.

Definition at line 101 of file WZVetoedShower.cxx.

101  {
102 
103  // only veto emissions from the hard system
104  if(iSys != 0) return false;
105 
106  size_t emission = Pythia8_UserHooks::findLastFSREmission(evt);
107 
108  // Veto if above the POWHEG scale
109  if (evt[emission].pT() > m_powhegScale) return true;
110 
111  return false;
112  }

◆ doVetoISREmission()

bool Pythia8::WZVetoedShower::doVetoISREmission ( int  ,
const Event evt,
int  iSys 
)
inline

This is called after the generation of each new ISR emission Can use it to test if the last generated emission is above the veto scale.

Definition at line 85 of file WZVetoedShower.cxx.

85  {
86 
87  // only veto emissions from the hard system
88  if(iSys != 0) return false;
89 
91 
92  // Veto emission above the veto scale
93  if(evt[emission].pT() > m_powhegScale) return true;
94 
95  return false;
96  }

◆ doVetoMPIStep()

bool Pythia8::WZVetoedShower::doVetoMPIStep ( int  nMPI,
const Event  
)
inline

doVetoMPIStep is called immediately after the MPI generation In this case it never actually vetoes the MPI, but since it is called before the ISR veto check this is a convenient place to find the PoWHEG scale from the LHEF event

Definition at line 66 of file WZVetoedShower.cxx.

66  {
67 
68  // Only do anything on the first call.
69  if(nMPI > 1) return false;
70 
71  m_powhegScale = infoPtr->QRen();
72 // m_powhegScale = infoPtr->QFac();
73 
74 // std::cout<<" ******** veto scale = "<<m_powhegScale<<", "<<infoPtr->QRen() <<" *********"<<std::endl;
75 
76  return false;
77  }

◆ numberVetoMPIStep()

int Pythia8::WZVetoedShower::numberVetoMPIStep ( )
inline

Call doVetoMIStep once.

Definition at line 117 of file WZVetoedShower.cxx.

117 {return 1;}

Member Data Documentation

◆ m_powhegScale

double Pythia8::WZVetoedShower::m_powhegScale
private

Definition at line 125 of file WZVetoedShower.cxx.


The documentation for this class was generated from the following file:
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
Pythia8::WZVetoedShower::m_powhegScale
double m_powhegScale
Definition: WZVetoedShower.cxx:125
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Pythia8_UserHooks::findLastISREmission
size_t findLastISREmission(const Pythia8::Event &evt)
Definition: UserHooksUtils.h:80
Pythia8_UserHooks::findLastFSREmission
size_t findLastFSREmission(const Pythia8::Event &evt)
Definition: UserHooksUtils.h:89