herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
InvariantMassCut.h
1// -*- C++ -*-
2//
3// InvariantMassCut.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_InvariantMassCut_H
10#define Herwig_InvariantMassCut_H
11//
12// This is the declaration of the InvariantMassCut class.
13//
14
15#include "ThePEG/Cuts/TwoCutBase.h"
16#include "ThePEG/PDT/MatcherBase.h"
17
18namespace Herwig {
19
20using namespace ThePEG;
21
32
33public:
34
41 theMinMass(0*GeV), theMaxMass(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 minMass() const { return theMinMass; }
112
116 Energy maxMass() const { return theMaxMass; }
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
191
196
202
208
213 Ptr<MatcherBase>::ptr theFirstMatcher;
214 Ptr<MatcherBase>::ptr theSecondMatcher;
215
216private:
217
223
224};
225
226}
227
228#endif /* Herwig_InvariantMassCut_H */
This class implements a cut on the invariant mass.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
bool oppositeSignOnly() const
Return whether cut acts on opposite-sign fermions only.
InvariantMassCut & operator=(const InvariantMassCut &)=delete
The assignment operator is private and must never be called.
bool theOppositeSignOnly
Whether the cut is active on opposite-sign fermions only (ignored for pairs not consisting of two fer...
bool theSameFlavourOnly
Whether the cut is active on same-flavour fermions only (ignored for pairs not consisting of two ferm...
bool sameFlavourOnly() const
Return whether cut acts on same-flavour fermions only.
InvariantMassCut()
The default constructor.
virtual double minDurham(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the Durham -algorithms distance measure.
virtual void describe() const
Describe the currently active cuts in the log file.
Energy theMaxMass
The maximal allowed mass cut value.
Ptr< MatcherBase >::tptr firstMatcher() const
Return the matchers for a pair of particles to cut on.
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...
virtual Energy2 minSij(tcPDPtr, tcPDPtr) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
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 Energy minKTClus(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy maxMass() const
Return the maximal allowed invariant mass.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual double minDeltaR(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
virtual Energy2 minTij(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
Energy theMinMass
The minimal allowed mass cut value.
Ptr< MatcherBase >::ptr theFirstMatcher
Matchers for a pair of particles to cut on.
Energy minMass() const
Return the minimal allowed invariant mass.
virtual IBPtr clone() const
Make a simple clone of this object.
-*- C++ -*-
constexpr Energy MaxEnergy
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr ZeroUnit ZERO
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr