CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EmissionVetoHook.h
Go to the documentation of this file.
1 #include <Pythia.h>
2 
3 class EmissionVetoHook : public Pythia8::UserHooks {
4 
5 public:
6 
7  // Constructor and destructor.
8  EmissionVetoHook(int argVerbosity) : last(-1), nISRveto(0), nFSRveto(0),
9  Verbosity(argVerbosity), firstNoRad(true) { }
11  cout << "Number of ISR vetoed = " << nISRveto << endl;
12  cout << "Number of FSR vetoed = " << nFSRveto << endl;
13  }
14 
15  // Use VetoMIStep to analyse the incoming LHEF event and
16  // extract the veto scale
17  bool canVetoMPIStep() { return true; }
18  int numberVetoMPIStep() { return 1; }
19  bool doVetoMPIStep(int, const Pythia8::Event &e);
20 
21  // For subsequent ISR/FSR emissions, find the pT of the shower
22  // emission and veto as necessary
23  bool canVetoISREmission() { return true; }
24  bool doVetoISREmission(int, const Pythia8::Event &e, int iSys);
25 
26  bool canVetoFSREmission() { return true; }
27  bool doVetoFSREmission(int, const Pythia8::Event &e, int iSys, bool);
28 
29  void fatalEmissionVeto(string message);
30 
31  // Functions to return information
32  double getPTpowheg() { return pTpowheg; }
33  double getPTshower() { return pTshower; }
34  int getNISRveto() { return nISRveto; }
35  int getNFSRveto() { return nFSRveto; }
36  bool getNoRad() { return noRad; }
37 
38 private:
39 
43 };
bool doVetoISREmission(int, const Pythia8::Event &e, int iSys)
void fatalEmissionVeto(string message)
bool doVetoFSREmission(int, const Pythia8::Event &e, int iSys, bool)
EmissionVetoHook(int argVerbosity)
bool doVetoMPIStep(int, const Pythia8::Event &e)
tuple cout
Definition: gather_cfg.py:121