herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
22namespace Herwig {
23
24struct Branching;
25
26using namespace ThePEG;
27
31struct VetoShower { };
32
40class ShowerVeto: public Interfaced {
41
42public:
43
48
54
59
63 Event
64 };
65
66public:
67
72
77
78public:
79
87
93 void persistentInput(PersistentIStream & is, int version);
95
102 static void Init();
103
104public:
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
120private:
121
126 ShowerVeto & operator=(const ShowerVeto &) = delete;
127
128private:
129
134
135};
136
137}
138
139#endif /* HERWIG_ShowerVeto_H */
ShowerVeto is a general interface for performing vetoes during showering.
Definition: ShowerVeto.h:40
static void Init()
The standard Init function used to initialize the interfaces.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ShowerVeto & operator=(const ShowerVeto &)=delete
The assignment operator is private and must never be called.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ShowerVetoType
Define types of ShowerVetoes.
Definition: ShowerVeto.h:47
@ Shower
Throw away showering.
Definition: ShowerVeto.h:58
@ Emission
Throw away emission, if veto encountered.
Definition: ShowerVeto.h:53
virtual bool vetoTimeLike(tcShowerProgenitorPtr, tcShowerParticlePtr, const Branching &, tcShowerTreePtr)=0
Return true, if the selected emission off the given particle and progenitor is vetoed.
ShowerVetoType _vetoType
The type of this veto.
Definition: ShowerVeto.h:133
virtual bool vetoSpaceLike(tcShowerProgenitorPtr, tcShowerParticlePtr, const Branching &, tcShowerTreePtr)=0
Return true, if the selected emission off the given particle and progenitor is vetoed.
ShowerVetoType vetoType() const
Return the type of this veto.
Definition: ShowerVeto.h:76
ShowerVeto(ShowerVetoType vetoType)
Constructor giving the behaviour of this veto.
Definition: ShowerVeto.h:71
-*- C++ -*-
The branching struct is used to store information on the branching.
Definition: Branching.h:20
Exception class for vetoing a showering.
Definition: ShowerVeto.h:31