herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
PairPtCut.h
1// -*- C++ -*-
2//
3// PairPtCut.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_PairPtCut_H
10#define Herwig_PairPtCut_H
11//
12// This is the declaration of the PairPtCut class.
13//
14
15#include "ThePEG/Cuts/TwoCutBase.h"
16#include "ThePEG/PDT/MatcherBase.h"
17
18namespace Herwig {
19
20using namespace ThePEG;
21
31class PairPtCut: public TwoCutBase {
32
33public:
34
41 theMinPt(0*GeV), theMaxPt(Constants::MaxEnergy),
44
45public:
46
55 virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
56 LorentzMomentum pi, LorentzMomentum pj,
57 bool inci = false, bool incj = false) const;
58
63 virtual Energy2 minSij(tcPDPtr , tcPDPtr ) const { return ZERO; }
64
70 virtual Energy2 minTij(tcPDPtr , tcPDPtr ) const { return ZERO; }
71
77 virtual double minDeltaR(tcPDPtr , tcPDPtr ) const { return ZERO; }
78
89 virtual Energy minKTClus(tcPDPtr , tcPDPtr ) const { return ZERO; }
90
97 virtual double minDurham(tcPDPtr , tcPDPtr ) const { return ZERO; }
98
100
104 virtual void describe() const;
105
106public:
107
111 Energy minPt() const { return theMinPt; }
112
116 Energy maxPt() const { return theMaxPt; }
117
121 bool sameFlavourOnly() const { return theSameFlavourOnly; }
122
126 bool oppositeSignOnly() const { return theOppositeSignOnly; }
127
132 Ptr<MatcherBase>::tptr firstMatcher() const { return theFirstMatcher; }
133 Ptr<MatcherBase>::tptr secondMatcher() const { return theSecondMatcher; }
134
135protected:
136
140 int family(long id) const;
141
142public:
143
151
157 void persistentInput(PersistentIStream & is, int version);
159
166 static void Init();
167
168protected:
169
176 virtual IBPtr clone() const;
177
182 virtual IBPtr fullclone() const;
184
185private:
186
190 Energy theMinPt;
191
195 Energy theMaxPt;
196
202
208
213 Ptr<MatcherBase>::ptr theFirstMatcher;
214 Ptr<MatcherBase>::ptr theSecondMatcher;
215
216private:
217
222 PairPtCut & operator=(const PairPtCut &) = delete;
223
224};
225
226}
227
228#endif /* Herwig_PairPtCut_H */
229
This class implements a cut on the transverse momentum of a pair of particles.
Definition: PairPtCut.h:31
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Ptr< MatcherBase >::tptr firstMatcher() const
Return the matchers for a pair of particles to cut on.
Definition: PairPtCut.h:132
Ptr< MatcherBase >::ptr theFirstMatcher
Matchers for a pair of particles to cut on.
Definition: PairPtCut.h:213
Energy minPt() const
Return the minimal allowed pair pT.
Definition: PairPtCut.h:111
virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype, LorentzMomentum pi, LorentzMomentum pj, bool inci=false, bool incj=false) const
Return true if a pair of particles with type pitype and pjtype and momenta pi and pj respectively pas...
PairPtCut()
The default constructor.
Definition: PairPtCut.h:40
virtual double minDurham(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the Durham -algorithms distance measure.
Definition: PairPtCut.h:97
PairPtCut & operator=(const PairPtCut &)=delete
The assignment operator is private and must never be called.
Energy maxPt() const
Return the maximal allowed pair pT.
Definition: PairPtCut.h:116
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
bool theSameFlavourOnly
Whether the cut is active on same-flavour fermions only (ignored for pairs not consisting of two ferm...
Definition: PairPtCut.h:201
bool oppositeSignOnly() const
Return whether cut acts on opposite-sign fermions only.
Definition: PairPtCut.h:126
bool sameFlavourOnly() const
Return whether cut acts on same-flavour fermions only.
Definition: PairPtCut.h:121
Energy theMaxPt
The maximal allowed pT cut value.
Definition: PairPtCut.h:195
Energy theMinPt
The minimal allowed pT cut value.
Definition: PairPtCut.h:190
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Energy minKTClus(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
Definition: PairPtCut.h:89
virtual IBPtr clone() const
Make a simple clone of this object.
virtual Energy2 minSij(tcPDPtr, tcPDPtr) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
Definition: PairPtCut.h:63
virtual double minDeltaR(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
Definition: PairPtCut.h:77
virtual Energy2 minTij(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
Definition: PairPtCut.h:70
static void Init()
The standard Init function used to initialize the interfaces.
int family(long id) const
Return the family of the given PDG id number.
virtual void describe() const
Describe the currently active cuts in the log file.
bool theOppositeSignOnly
Whether the cut is active on opposite-sign fermions only (ignored for pairs not consisting of two fer...
Definition: PairPtCut.h:207
-*- C++ -*-
constexpr Energy MaxEnergy
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr ZeroUnit ZERO
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr