herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
Cuts
IdentifiedParticleCut.h
1
// -*- C++ -*-
2
//
3
// IdentifiedParticleCut.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_IdentifiedParticleCut_H
10
#define Herwig_IdentifiedParticleCut_H
11
//
12
// This is the declaration of the IdentifiedParticleCut class.
13
//
14
15
#include "ThePEG/Cuts/OneCutBase.h"
16
#include "ThePEG/PDT/MatcherBase.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
31
class
IdentifiedParticleCut
:
public
OneCutBase
{
32
33
public
:
34
38
IdentifiedParticleCut
();
39
40
public
:
41
48
virtual
Energy
minKT
(
tcPDPtr
)
const
{
return
ZERO
; }
49
55
virtual
double
minEta
(
tcPDPtr
)
const
{
return
-
Constants::MaxRapidity
; }
56
62
virtual
double
maxEta
(
tcPDPtr
)
const
{
return
Constants::MaxRapidity
; }
63
69
virtual
bool
passCuts
(tcCutsPtr parent,
70
tcPDPtr
ptype, LorentzMomentum p)
const
;
71
75
virtual
void
describe
()
const
;
77
78
public
:
79
83
Energy
ptMin
()
const
{
return
thePtMin
; }
84
88
Energy
ptMax
()
const
{
return
thePtMax
; }
89
93
const
vector<pair<double,double> >&
yRanges
()
const
{
return
theYRanges
; }
94
98
Ptr<MatcherBase>::tptr
matcher
()
const
{
return
theMatcher
; }
99
100
public
:
101
108
void
persistentOutput
(
PersistentOStream
& os)
const
;
109
115
void
persistentInput
(
PersistentIStream
& is,
int
version);
117
124
static
void
Init
();
125
126
protected
:
127
134
virtual
IBPtr
clone
()
const
;
135
140
virtual
IBPtr
fullclone
()
const
;
142
143
144
// If needed, insert declarations of virtual function defined in the
145
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
146
147
private
:
148
152
string
doYRange
(
string
);
153
157
Energy
thePtMin
;
158
162
Energy
thePtMax
;
163
167
vector<pair<double,double> >
theYRanges
;
168
172
Ptr<MatcherBase>::ptr
theMatcher
;
173
174
private
:
175
180
IdentifiedParticleCut
&
operator=
(
const
IdentifiedParticleCut
&) =
delete
;
181
182
};
183
184
}
185
186
#endif
/* Herwig_IdentifiedParticleCut_H */
Herwig::IdentifiedParticleCut
IdentifiedParticleCut implements cuts on single momenta.
Definition:
IdentifiedParticleCut.h:31
Herwig::IdentifiedParticleCut::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::IdentifiedParticleCut::ptMin
Energy ptMin() const
Return the minimum pt.
Definition:
IdentifiedParticleCut.h:83
Herwig::IdentifiedParticleCut::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::IdentifiedParticleCut::minEta
virtual double minEta(tcPDPtr) const
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type.
Definition:
IdentifiedParticleCut.h:55
Herwig::IdentifiedParticleCut::ptMax
Energy ptMax() const
Return the maximum pt.
Definition:
IdentifiedParticleCut.h:88
Herwig::IdentifiedParticleCut::thePtMax
Energy thePtMax
The maximum pt.
Definition:
IdentifiedParticleCut.h:162
Herwig::IdentifiedParticleCut::describe
virtual void describe() const
Describe the currently active cuts in the log file.
Herwig::IdentifiedParticleCut::theMatcher
Ptr< MatcherBase >::ptr theMatcher
A matcher for particles to cut on.
Definition:
IdentifiedParticleCut.h:172
Herwig::IdentifiedParticleCut::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::IdentifiedParticleCut::IdentifiedParticleCut
IdentifiedParticleCut()
The default constructor.
Herwig::IdentifiedParticleCut::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::IdentifiedParticleCut::maxEta
virtual double maxEta(tcPDPtr) const
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type.
Definition:
IdentifiedParticleCut.h:62
Herwig::IdentifiedParticleCut::matcher
Ptr< MatcherBase >::tptr matcher() const
Return the matcher for particles to cut on.
Definition:
IdentifiedParticleCut.h:98
Herwig::IdentifiedParticleCut::minKT
virtual Energy minKT(tcPDPtr) const
Return the minimum allowed value of the transverse momentum of an outgoing parton.
Definition:
IdentifiedParticleCut.h:48
Herwig::IdentifiedParticleCut::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::IdentifiedParticleCut::yRanges
const vector< pair< double, double > > & yRanges() const
Return the rapidity ranges.
Definition:
IdentifiedParticleCut.h:93
Herwig::IdentifiedParticleCut::doYRange
string doYRange(string)
Command to insert a rapidity range.
Herwig::IdentifiedParticleCut::theYRanges
vector< pair< double, double > > theYRanges
The rapidity ranges.
Definition:
IdentifiedParticleCut.h:167
Herwig::IdentifiedParticleCut::passCuts
virtual bool passCuts(tcCutsPtr parent, tcPDPtr ptype, LorentzMomentum p) const
Return true if a particle with type ptype and momentum p passes the cuts.
Herwig::IdentifiedParticleCut::operator=
IdentifiedParticleCut & operator=(const IdentifiedParticleCut &)=delete
The assignment operator is private and must never be called.
Herwig::IdentifiedParticleCut::thePtMin
Energy thePtMin
The minimum pt.
Definition:
IdentifiedParticleCut.h:157
ThePEG::OneCutBase
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Constants::MaxRapidity
constexpr double MaxRapidity
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6