herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ShowerVeto.h
1 // -*- C++ -*-
2 //
3 // ShowerVeto.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_ShowerVeto_H
10 #define HERWIG_ShowerVeto_H
11 //
12 // This is the declaration of the ShowerVeto class.
13 //
14 
15 #include "ThePEG/Interface/Interfaced.h"
16 #include "ShowerVeto.fh"
17 #include "Herwig/Shower/QTilde/ShowerConfig.h"
18 #include "Herwig/Shower/QTilde/Base/ShowerParticle.fh"
19 #include "Herwig/Shower/QTilde/Base/ShowerProgenitor.fh"
20 #include "Herwig/Shower/QTilde/Base/ShowerTree.fh"
21 
22 namespace Herwig {
23 
24 struct Branching;
25 
26 using namespace ThePEG;
27 
31 struct VetoShower { };
32 
40 class ShowerVeto: public Interfaced {
41 
42 public:
43 
48 
53  Emission = 1,
54 
59 
64  };
65 
66 public:
67 
71  ShowerVeto (ShowerVetoType vetoType) : _vetoType(vetoType) {}
72 
76  ShowerVetoType vetoType () const {return _vetoType;}
77 
78 public:
79 
86  void persistentOutput(PersistentOStream & os) const;
87 
93  void persistentInput(PersistentIStream & is, int version);
95 
102  static void Init();
103 
104 public:
105 
110  virtual bool vetoTimeLike (tcShowerProgenitorPtr, tcShowerParticlePtr,
111  const Branching&,tcShowerTreePtr) = 0;
112 
117  virtual bool vetoSpaceLike (tcShowerProgenitorPtr, tcShowerParticlePtr,
118  const Branching&,tcShowerTreePtr) = 0;
119 
120 private:
121 
126  ShowerVeto & operator=(const ShowerVeto &) = delete;
127 
128 private:
129 
134 
135 };
136 
137 }
138 
139 #endif /* HERWIG_ShowerVeto_H */
ShowerVetoType vetoType() const
Return the type of this veto.
Definition: ShowerVeto.h:76
The branching struct is used to store information on the branching.
Definition: Branching.h:20
ShowerVeto is a general interface for performing vetoes during showering.
Definition: ShowerVeto.h:40
ShowerVetoType _vetoType
The type of this veto.
Definition: ShowerVeto.h:133
ShowerVeto(ShowerVetoType vetoType)
Constructor giving the behaviour of this veto.
Definition: ShowerVeto.h:71
-*- C++ -*-
ShowerVetoType
Define types of ShowerVetoes.
Definition: ShowerVeto.h:47
Exception class for vetoing a showering.
Definition: ShowerVeto.h:31
Throw away showering.
Definition: ShowerVeto.h:58