ATLAS Offline Software
WZVetoedShower.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "UserHooksUtils.h"
7 #include <stdexcept>
8 #include <iostream>
9 
10 namespace Pythia8{
11  class WZVetoedShower;
12 }
13 
15 
16 namespace Pythia8{
17 
44  class WZVetoedShower : public UserHooks{
45 
46  public:
47 
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  }
57 
59 
66  bool doVetoMPIStep(int nMPI, const Event &){
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  }
78 
85  bool doVetoISREmission(int, const Event &evt, int iSys){
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  }
101  bool doVetoFSREmission(int, const Event &evt, int iSys, bool){
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  }
113 
115  bool canVetoMPIStep(){return true;}
117  int numberVetoMPIStep(){return 1;}
119  bool canVetoISREmission(){return true;}
121  bool canVetoFSREmission(){return true;}
122 
123  private:
124 
126  };
127 }
128 
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
Event
Definition: trigbs_orderedMerge.cxx:42
Pythia8::WZVetoedShower::~WZVetoedShower
~WZVetoedShower()
Definition: WZVetoedShower.cxx:58
Pythia8::WZVetoedShower::m_powhegScale
double m_powhegScale
Definition: WZVetoedShower.cxx:125
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Pythia8_UserHooks::UserHooksFactory::Creator
Definition: UserHooksFactory.h:54
Pythia8::WZVetoedShower::numberVetoMPIStep
int numberVetoMPIStep()
Call doVetoMIStep once.
Definition: WZVetoedShower.cxx:117
UserHooksFactory.h
Pythia8
Author: James Monk (jmonk@cern.ch)
Definition: IPythia8Custom.h:13
Pythia8::WZVetoedShower::WZVetoedShower
WZVetoedShower()
Definition: WZVetoedShower.cxx:48
wzVetoedShowerCreator
Pythia8_UserHooks::UserHooksFactory::Creator< Pythia8::WZVetoedShower > wzVetoedShowerCreator("WZVetoedShower")
Pythia8::WZVetoedShower::canVetoFSREmission
bool canVetoFSREmission()
Switch off veto of FSR.
Definition: WZVetoedShower.cxx:121
Pythia8::WZVetoedShower::doVetoFSREmission
bool doVetoFSREmission(int, const Event &evt, int iSys, bool)
This is similar to the ISR veto.
Definition: WZVetoedShower.cxx:101
Pythia8::WZVetoedShower
This UserHook should be used when showering W, Z or other colourless resonances generated with PoWHEG...
Definition: WZVetoedShower.cxx:44
Pythia8::WZVetoedShower::doVetoISREmission
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...
Definition: WZVetoedShower.cxx:85
Pythia8_UserHooks::findLastISREmission
size_t findLastISREmission(const Pythia8::Event &evt)
Definition: UserHooksUtils.h:80
UserHooksUtils.h
Pythia8::WZVetoedShower::canVetoISREmission
bool canVetoISREmission()
Switch on veto of ISR.
Definition: WZVetoedShower.cxx:119
Pythia8::WZVetoedShower::doVetoMPIStep
bool doVetoMPIStep(int nMPI, const Event &)
doVetoMPIStep is called immediately after the MPI generation In this case it never actually vetoes th...
Definition: WZVetoedShower.cxx:66
Pythia8::WZVetoedShower::canVetoMPIStep
bool canVetoMPIStep()
Switch on calling of doVetoMPIStep.
Definition: WZVetoedShower.cxx:115
Pythia8_UserHooks::findLastFSREmission
size_t findLastFSREmission(const Pythia8::Event &evt)
Definition: UserHooksUtils.h:89