thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
TwoCutBase.h
1// -*- C++ -*-
2//
3// TwoCutBase.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5//
6// ThePEG 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 THEPEG_TwoCutBase_H
10#define THEPEG_TwoCutBase_H
11//
12// This is the declaration of the TwoCutBase class.
13//
14
15#include "ThePEG/Interface/Interfaced.h"
16#include "TwoCutBase.fh"
17#include "Cuts.fh"
18
19namespace ThePEG {
20
35class TwoCutBase: public Interfaced {
36
37public:
38
43
44public:
45
52 virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const = 0;
53
59 virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const = 0;
60
66 virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const = 0;
67
78 virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const = 0;
79
86 virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const = 0;
87
94 virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
96 bool inci = false, bool incj = false) const;
97
103 bool passCuts(tcCutsPtr parent, tcPPtr pi, tcPPtr pj,
104 bool inci = false, bool incj = false) const;
106
110 virtual void describe() const;
111
112public:
113
120 static void Init();
121
122private:
123
129
134 TwoCutBase & operator=(const TwoCutBase &) = delete;
135
136};
137
138}
139
140#include "ThePEG/Utilities/ClassTraits.h"
141
142namespace ThePEG {
143
148template <>
149struct BaseClassTrait<TwoCutBase,1> {
151 typedef Interfaced NthBase;
152};
153
156template <>
157struct ClassTraits<TwoCutBase>
158 : public ClassTraitsBase<TwoCutBase> {
160 static string className() { return "ThePEG::TwoCutBase"; }
161};
162
165}
166
167#endif /* THEPEG_TwoCutBase_H */
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This class corresponds to a kinematical cut to be made on a pair of particles in a hard sub-process.
Definition: TwoCutBase.h:35
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...
static AbstractNoPIOClassDescription< TwoCutBase > initTwoCutBase
The static object used to initialize the description of this class.
Definition: TwoCutBase.h:128
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of of two outgoing partons of type pi and pj.
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
TwoCutBase & operator=(const TwoCutBase &)=delete
The assignment operator is private and must never be called.
virtual void describe() const
Describe the currently active cuts in the log file.
virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const =0
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
bool passCuts(tcCutsPtr parent, tcPPtr pi, tcPPtr pj, bool inci=false, bool incj=false) const
Return true if the given pair of particles passes the cuts.
static void Init()
The standard Init function used to initialize the interfaces.
TwoCutBase()
The default constructor.
Definition: TwoCutBase.h:42
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of the Durham -algorithms distance measure.
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66