herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
QTilde
Base
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
47
enum
ShowerVetoType
{
48
53
Emission
= 1,
54
58
Shower
,
59
63
Event
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
133
ShowerVetoType
_vetoType
;
134
135
};
136
137
}
138
139
#endif
/* HERWIG_ShowerVeto_H */
Herwig::ShowerVeto
ShowerVeto is a general interface for performing vetoes during showering.
Definition:
ShowerVeto.h:40
Herwig::ShowerVeto::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::ShowerVeto::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ShowerVeto::operator=
ShowerVeto & operator=(const ShowerVeto &)=delete
The assignment operator is private and must never be called.
Herwig::ShowerVeto::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ShowerVeto::ShowerVetoType
ShowerVetoType
Define types of ShowerVetoes.
Definition:
ShowerVeto.h:47
Herwig::ShowerVeto::Shower
@ Shower
Throw away showering.
Definition:
ShowerVeto.h:58
Herwig::ShowerVeto::Emission
@ Emission
Throw away emission, if veto encountered.
Definition:
ShowerVeto.h:53
Herwig::ShowerVeto::vetoTimeLike
virtual bool vetoTimeLike(tcShowerProgenitorPtr, tcShowerParticlePtr, const Branching &, tcShowerTreePtr)=0
Return true, if the selected emission off the given particle and progenitor is vetoed.
Herwig::ShowerVeto::_vetoType
ShowerVetoType _vetoType
The type of this veto.
Definition:
ShowerVeto.h:133
Herwig::ShowerVeto::vetoSpaceLike
virtual bool vetoSpaceLike(tcShowerProgenitorPtr, tcShowerParticlePtr, const Branching &, tcShowerTreePtr)=0
Return true, if the selected emission off the given particle and progenitor is vetoed.
Herwig::ShowerVeto::vetoType
ShowerVetoType vetoType() const
Return the type of this veto.
Definition:
ShowerVeto.h:76
Herwig::ShowerVeto::ShowerVeto
ShowerVeto(ShowerVetoType vetoType)
Constructor giving the behaviour of this veto.
Definition:
ShowerVeto.h:71
ThePEG::Event
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
Herwig::Branching
The branching struct is used to store information on the branching.
Definition:
Branching.h:20
Herwig::VetoShower
Exception class for vetoing a showering.
Definition:
ShowerVeto.h:31
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6