thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
OneCutBase.h
1// -*- C++ -*-
2//
3// OneCutBase.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_OneCutBase_H
10#define THEPEG_OneCutBase_H
11//
12// This is the declaration of the OneCutBase class.
13//
14
15#include "ThePEG/Interface/Interfaced.h"
16#include "OneCutBase.fh"
17#include "Cuts.fh"
18
19namespace ThePEG {
20
39class OneCutBase: public Interfaced {
40
41public:
42
49
53 virtual ~OneCutBase();
55
56public:
57
64 virtual Energy minKT(tcPDPtr p) const = 0;
65
71 virtual double minEta(tcPDPtr p) const = 0;
72
78 virtual double maxEta(tcPDPtr p) const = 0;
79
85 virtual double minRapidityMax(tcPDPtr p) const;
86
92 virtual double maxRapidityMin(tcPDPtr p) const;
93
99 virtual Energy minMaxKT(tcPDPtr p) const;
100
107 virtual double minMaxEta(tcPDPtr p) const;
108
115 virtual double maxMinEta(tcPDPtr p) const;
116
122 virtual bool passCuts(tcCutsPtr parent,
123 tcPDPtr ptype, LorentzMomentum p) const;
124
130 bool passCuts(tcCutsPtr parent, tcPPtr p) const;
132
136 virtual void describe() const;
137
138public:
139
146 static void Init();
147
148private:
149
155
160 OneCutBase & operator=(const OneCutBase &) = delete;
161
162};
163
164}
165
166#include "ThePEG/Utilities/ClassTraits.h"
167
168namespace ThePEG {
169
174template <>
175struct BaseClassTrait<OneCutBase,1> {
177 typedef Interfaced NthBase;
178};
179
182template <>
183struct ClassTraits<OneCutBase>
184 : public ClassTraitsBase<OneCutBase> {
186 static string className() { return "ThePEG::OneCutBase"; }
187};
188
191}
192
193#endif /* THEPEG_OneCutBase_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
This class corresponds to a kinematical cut to be made on a single outgoing parton from a hard sub-pr...
Definition: OneCutBase.h:39
virtual void describe() const
Describe the currently active cuts in the log file.
virtual double minEta(tcPDPtr p) const =0
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type.
static AbstractNoPIOClassDescription< OneCutBase > initOneCutBase
The static object used to initialize the description of this class.
Definition: OneCutBase.h:154
virtual Energy minMaxKT(tcPDPtr p) const
Return the minimum allowed value of the transverse momentum of the outgoing parton with the lagrest t...
virtual double minRapidityMax(tcPDPtr p) const
Return the minimum allowed rapidity of an outgoing parton of the given type.
OneCutBase()
The default constructor.
Definition: OneCutBase.h:48
virtual ~OneCutBase()
The destructor.
virtual bool passCuts(tcCutsPtr parent, tcPDPtr ptype, LorentzMomentum p) const
Return true if a particle with type ptype and momentum p passes the cuts.
OneCutBase & operator=(const OneCutBase &)=delete
The assignment operator is private and must never be called.
virtual double maxEta(tcPDPtr p) const =0
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type.
virtual double maxMinEta(tcPDPtr p) const
Return the maximum allowed pseudo-rapidity of the outgoing parton of the given type with the minimum ...
virtual double minMaxEta(tcPDPtr p) const
Return the minimum allowed pseudo-rapidity of the outgoing parton of the given type with the maximum ...
virtual Energy minKT(tcPDPtr p) const =0
Return the minimum allowed value of the transverse momentum of an outgoing parton.
virtual double maxRapidityMin(tcPDPtr p) const
Return the maximum allowed rapidity of an outgoing parton of the given type.
static void Init()
The standard Init function used to initialize the interfaces.
bool passCuts(tcCutsPtr parent, tcPPtr p) const
Return true if the given particle passes the cuts.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
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