CMS 3D CMS Logo

EmissionVetoHook1.h
Go to the documentation of this file.
1 class EmissionVetoHook1 : public Pythia8::UserHooks {
2 
3 public:
4 
5  // Constructor and destructor.
6  EmissionVetoHook1(int nFinalIn, bool vetoOnIn, int vetoCountIn,
7  int pThardModeIn, int pTemtModeIn, int emittedModeIn,
8  int pTdefModeIn, bool MPIvetoOnIn, int QEDvetoModeIn,
9  int nFinalModeIn, int VerbosityIn) :
10  nFinalExt(nFinalIn),
11  vetoOn(vetoOnIn), vetoCount(vetoCountIn),
12  pThardMode(pThardModeIn), pTemtMode(pTemtModeIn),
13  emittedMode(emittedModeIn), pTdefMode(pTdefModeIn),
14  MPIvetoOn(MPIvetoOnIn), QEDvetoMode(QEDvetoModeIn),
15  nFinalMode(nFinalModeIn), nISRveto(0), nFSRveto(0),
16  Verbosity(VerbosityIn) {}
18  std::cout << "Number of ISR vetoed = " << nISRveto << std::endl;
19  std::cout << "Number of FSR vetoed = " << nFSRveto << std::endl;
20  }
21 
22 //--------------------------------------------------------------------------
23 
24  bool canVetoMPIStep() { return true; }
25  int numberVetoMPIStep() { return 1; }
26  bool doVetoMPIStep(int nMPI, const Pythia8::Event &e);
27 
28  bool canVetoISREmission() { return vetoOn; }
29  bool doVetoISREmission(int, const Pythia8::Event &e, int iSys);
30 
31  bool canVetoFSREmission() { return vetoOn; }
32  bool doVetoFSREmission(int, const Pythia8::Event &e, int iSys, bool);
33 
34  bool canVetoMPIEmission() { return MPIvetoOn; }
35  bool doVetoMPIEmission(int, const Pythia8::Event &e);
36 
38 
39  double pTpythia(const Pythia8::Event &e, int RadAfterBranch,
40  int EmtAfterBranch, int RecAfterBranch, bool FSR);
41 
42  double pTpowheg(const Pythia8::Event &e, int i, int j, bool FSR);
43 
44  double pTcalc(const Pythia8::Event &e, int i, int j, int k, int r, int xSRin);
45 
46 //--------------------------------------------------------------------------
47 
48 private:
51  int nFinal;
52  double pThard, pTMPI;
53  bool accepted, isEmt;
54  // The number of accepted emissions (in a row)
56  // Statistics on vetos
57  unsigned long int nISRveto, nFSRveto;
58  int Verbosity;
59 };
bool doVetoMPIEmission(int, const Pythia8::Event &e)
bool doVetoISREmission(int, const Pythia8::Event &e, int iSys)
unsigned long int nISRveto
double pTpowheg(const Pythia8::Event &e, int i, int j, bool FSR)
int k[5][pyjets_maxn]
unsigned long int nFSRveto
double pTcalc(const Pythia8::Event &e, int i, int j, int k, int r, int xSRin)
EmissionVetoHook1(int nFinalIn, bool vetoOnIn, int vetoCountIn, int pThardModeIn, int pTemtModeIn, int emittedModeIn, int pTdefModeIn, bool MPIvetoOnIn, int QEDvetoModeIn, int nFinalModeIn, int VerbosityIn)
bool doVetoMPIStep(int nMPI, const Pythia8::Event &e)
double pTpythia(const Pythia8::Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
bool doVetoFSREmission(int, const Pythia8::Event &e, int iSys, bool)
void fatalEmissionVeto(std::string message)