herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
Cuts
PairRapidityCut.h
1
// -*- C++ -*-
2
//
3
// PairRapidityCut.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_PairRapidityCut_H
10
#define Herwig_PairRapidityCut_H
11
//
12
// This is the declaration of the PairRapidityCut class.
13
//
14
15
#include "ThePEG/Cuts/TwoCutBase.h"
16
#include "ThePEG/PDT/MatcherBase.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
31
class
PairRapidityCut
:
public
TwoCutBase
{
32
33
public
:
34
40
PairRapidityCut
();
41
45
virtual
~
PairRapidityCut
();
47
48
public
:
49
58
virtual
bool
passCuts(tcCutsPtr parent,
tcPDPtr
pitype,
tcPDPtr
pjtype,
59
LorentzMomentum
pi
, LorentzMomentum pj,
60
bool
inci =
false
,
bool
incj =
false
)
const
;
61
66
virtual
Energy2
minSij
(
tcPDPtr
,
tcPDPtr
)
const
{
return
ZERO
; }
67
73
virtual
Energy2
minTij
(
tcPDPtr
,
tcPDPtr
)
const
{
return
ZERO
; }
74
80
virtual
double
minDeltaR
(
tcPDPtr
,
tcPDPtr
)
const
{
return
ZERO
; }
81
92
virtual
Energy
minKTClus
(
tcPDPtr
,
tcPDPtr
)
const
{
return
ZERO
; }
93
100
virtual
double
minDurham
(
tcPDPtr
,
tcPDPtr
)
const
{
return
ZERO
; }
101
103
107
virtual
void
describe()
const
;
108
109
public
:
110
111
// /**
112
// * Return the minimal allowed rapidity
113
// */
114
// double minRapidity() const { return theMinRapidity; }
115
//
116
// /**
117
// * Return the maximal allowed rapidity
118
// */
119
// double maxRapidity() const { return theMaxRapidity; }
120
124
const
vector<pair<double,double> >&
yRanges
()
const
{
return
theYRanges; }
125
129
bool
sameFlavourOnly
()
const
{
return
theSameFlavourOnly; }
130
134
bool
oppositeSignOnly
()
const
{
return
theOppositeSignOnly; }
135
140
Ptr<MatcherBase>::tptr
firstMatcher
()
const
{
return
theFirstMatcher; }
141
Ptr<MatcherBase>::tptr
secondMatcher()
const
{
return
theSecondMatcher; }
142
143
protected
:
144
148
int
family(
long
id
)
const
;
149
150
public
:
151
158
void
persistentOutput(
PersistentOStream
& os)
const
;
159
165
void
persistentInput(
PersistentIStream
& is,
int
version);
167
174
static
void
Init();
175
176
protected
:
177
184
virtual
IBPtr
clone()
const
;
185
190
virtual
IBPtr
fullclone()
const
;
192
193
private
:
194
198
string
doYRange(
string
);
199
203
vector<pair<double,double> >
theYRanges
;
204
208
bool
thePseudo
;
209
214
bool
theSameFlavourOnly
;
215
220
bool
theOppositeSignOnly
;
221
226
Ptr<MatcherBase>::ptr
theFirstMatcher
;
227
Ptr<MatcherBase>::ptr
theSecondMatcher;
228
229
private
:
230
235
PairRapidityCut
& operator=(
const
PairRapidityCut
&) =
delete
;
236
237
};
238
239
}
240
241
#endif
/* Herwig_PairRapidityCut_H */
242
ThePEG::PersistentIStream
Herwig::PairRapidityCut::theSameFlavourOnly
bool theSameFlavourOnly
Whether the cut is active on same-flavour fermions only (ignored for pairs not consisting of two ferm...
Definition:
PairRapidityCut.h:214
Ptr< MatcherBase >::tptr
transient_pointer tptr
Herwig::PairRapidityCut::minDurham
virtual double minDurham(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the Durham -algorithms distance measure.
Definition:
PairRapidityCut.h:100
Herwig::PairRapidityCut::minKTClus
virtual Energy minKTClus(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
Definition:
PairRapidityCut.h:92
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Constants::pi
constexpr double pi
Herwig::PairRapidityCut::theFirstMatcher
Ptr< MatcherBase >::ptr theFirstMatcher
Matchers for a pair of particles to cut on.
Definition:
PairRapidityCut.h:226
ThePEG
Herwig::PairRapidityCut
This class implements a cut on the rapidity of a pair of particles.
Definition:
PairRapidityCut.h:31
Herwig::PairRapidityCut::oppositeSignOnly
bool oppositeSignOnly() const
Return whether cut acts on opposite-sign fermions only.
Definition:
PairRapidityCut.h:134
Herwig::PairRapidityCut::sameFlavourOnly
bool sameFlavourOnly() const
Return whether cut acts on same-flavour fermions only.
Definition:
PairRapidityCut.h:129
Herwig::PairRapidityCut::minDeltaR
virtual double minDeltaR(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
Definition:
PairRapidityCut.h:80
Herwig::PairRapidityCut::firstMatcher
Ptr< MatcherBase >::tptr firstMatcher() const
Return the matchers for a pair of particles to cut on.
Definition:
PairRapidityCut.h:140
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::PairRapidityCut::theOppositeSignOnly
bool theOppositeSignOnly
Whether the cut is active on opposite-sign fermions only (ignored for pairs not consisting of two fer...
Definition:
PairRapidityCut.h:220
ThePEG::TwoCutBase
Herwig::PairRapidityCut::thePseudo
bool thePseudo
Whether to use pseudo rapidity instead of rapidity.
Definition:
PairRapidityCut.h:208
Herwig::PairRapidityCut::minTij
virtual Energy2 minTij(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
Definition:
PairRapidityCut.h:73
Herwig::PairRapidityCut::theYRanges
vector< pair< double, double > > theYRanges
The rapidity ranges.
Definition:
PairRapidityCut.h:203
Herwig::PairRapidityCut::minSij
virtual Energy2 minSij(tcPDPtr, tcPDPtr) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
Definition:
PairRapidityCut.h:66
Herwig::PairRapidityCut::yRanges
const vector< pair< double, double > > & yRanges() const
Return the minimal allowed rapidity.
Definition:
PairRapidityCut.h:124
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ZERO
constexpr ZeroUnit ZERO
Ptr< MatcherBase >::ptr
pointer ptr
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13