thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
JetCuts.h
1// -*- C++ -*-
2//
3// JetCuts.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5// Copyright (C) 2009-2019 Simon Platzer
6//
7// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
8// Please respect the MCnet academic guidelines, see GUIDELINES for details.
9//
10#ifndef THEPEG_JetCuts_H
11#define THEPEG_JetCuts_H
12//
13// This is the declaration of the JetCuts class.
14//
15
16#include "ThePEG/Cuts/MultiCutBase.h"
17#include "ThePEG/PDT/MatcherBase.h"
18#include "ThePEG/Cuts/JetRegion.h"
19#include "ThePEG/Cuts/JetPairRegion.h"
20#include "ThePEG/Cuts/MultiJetRegion.h"
21
22namespace ThePEG {
23
34class JetCuts: public MultiCutBase {
35
36public:
37
42
43public:
44
51 virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
52 const vector<LorentzMomentum> & p) const;
54
58 virtual void describe() const;
59
60public:
61
66
70 const vector<Ptr<JetRegion>::ptr>& jetRegions() const { return theJetRegions; }
71
75 const vector<Ptr<JetRegion>::ptr>& jetVetoRegions() const { return theJetVetoRegions; }
76
80 const vector<Ptr<JetPairRegion>::ptr>& jetPairRegions() const { return theJetPairRegions; }
81
85 const vector<Ptr<MultiJetRegion>::ptr>& multiJetRegions() const { return theMultiJetRegions; }
86
90 enum Orderings {
91 orderPt = 1,
92 orderY = 2
93 };
94
98 int ordering() const { return theOrdering; }
99
100public:
101
109
115 void persistentInput(PersistentIStream & is, int version);
117
124 static void Init();
125
126protected:
127
134 virtual IBPtr clone() const;
135
140 virtual IBPtr fullclone() const;
142
143private:
144
149
153 vector<Ptr<JetRegion>::ptr> theJetRegions;
154
158 vector<Ptr<JetRegion>::ptr> theJetVetoRegions;
159
163 vector<Ptr<JetPairRegion>::ptr> theJetPairRegions;
164
168 vector<Ptr<MultiJetRegion>::ptr> theMultiJetRegions;
169
174
175private:
176
182
187 JetCuts & operator=(const JetCuts &) = delete;
188
189};
190
191}
192
193#include "ThePEG/Utilities/ClassTraits.h"
194
195namespace ThePEG {
196
201template <>
202struct BaseClassTrait<JetCuts,1> {
204 typedef MultiCutBase NthBase;
205};
206
209template <>
210struct ClassTraits<JetCuts>
211 : public ClassTraitsBase<JetCuts> {
213 static string className() { return "ThePEG::JetCuts"; }
217 static string library() { return "JetCuts.so"; }
218};
219
222}
223
224#endif /* THEPEG_JetCuts_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
JetCuts combines various JetRegion and JetPairRegion objects into a cut object.
Definition: JetCuts.h:34
const vector< Ptr< JetPairRegion >::ptr > & jetPairRegions() const
Return the jet pair regions to match.
Definition: JetCuts.h:80
const vector< Ptr< MultiJetRegion >::ptr > & multiJetRegions() const
Return the multi jet regions to match.
Definition: JetCuts.h:85
vector< Ptr< JetRegion >::ptr > theJetRegions
The jet regions to match.
Definition: JetCuts.h:153
static void Init()
The standard Init function used to initialize the interfaces.
const vector< Ptr< JetRegion >::ptr > & jetVetoRegions() const
Return the jet veto regions to check.
Definition: JetCuts.h:75
Ptr< MatcherBase >::ptr theUnresolvedMatcher
A matcher for unresolved partons.
Definition: JetCuts.h:148
Orderings
Enumerate the ordering to apply on jets.
Definition: JetCuts.h:90
virtual IBPtr clone() const
Make a simple clone of this object.
vector< Ptr< JetPairRegion >::ptr > theJetPairRegions
The jet pair regions to match.
Definition: JetCuts.h:163
vector< Ptr< MultiJetRegion >::ptr > theMultiJetRegions
The multi jet regions to match.
Definition: JetCuts.h:168
virtual bool passCuts(tcCutsPtr parent, const tcPDVector &ptype, const vector< LorentzMomentum > &p) const
Return true if a set of outgoing particles with typea ptype and corresponding momenta p passes the cu...
static ClassDescription< JetCuts > initJetCuts
The static object used to initialize the description of this class.
Definition: JetCuts.h:181
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
const vector< Ptr< JetRegion >::ptr > & jetRegions() const
Return the jet regions to match.
Definition: JetCuts.h:70
virtual void describe() const
Describe the currently active cuts in the log file.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
int theOrdering
Types of the ordering to apply on jets.
Definition: JetCuts.h:173
JetCuts()
The default constructor.
JetCuts & operator=(const JetCuts &)=delete
The assignment operator is private and must never be called.
vector< Ptr< JetRegion >::ptr > theJetVetoRegions
The jet veto regions to check.
Definition: JetCuts.h:158
Ptr< MatcherBase >::tptr unresolvedMatcher() const
Return the matcher for unresolved partons.
Definition: JetCuts.h:65
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
int ordering() const
Return the ordering.
Definition: JetCuts.h:98
This class corresponds to a kinematical cut to be made on a set of outgoing particles from a hard sub...
Definition: MultiCutBase.h:34
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition: Containers.h:42
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
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85