thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
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 
22 namespace ThePEG {
23 
34 class JetCuts: public MultiCutBase {
35 
36 public:
37 
43  JetCuts();
44 
48  virtual ~JetCuts();
50 
51 public:
52 
59  virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
60  const vector<LorentzMomentum> & p) const;
62 
66  virtual void describe() const;
67 
68 public:
69 
74 
78  const vector<Ptr<JetRegion>::ptr>& jetRegions() const { return theJetRegions; }
79 
83  const vector<Ptr<JetRegion>::ptr>& jetVetoRegions() const { return theJetVetoRegions; }
84 
88  const vector<Ptr<JetPairRegion>::ptr>& jetPairRegions() const { return theJetPairRegions; }
89 
93  const vector<Ptr<MultiJetRegion>::ptr>& multiJetRegions() const { return theMultiJetRegions; }
94 
98  enum Orderings {
99  orderPt = 1,
100  orderY = 2
101  };
102 
106  int ordering() const { return theOrdering; }
107 
108 public:
109 
116  void persistentOutput(PersistentOStream & os) const;
117 
123  void persistentInput(PersistentIStream & is, int version);
125 
132  static void Init();
133 
134 protected:
135 
142  virtual IBPtr clone() const;
143 
148  virtual IBPtr fullclone() const;
150 
151 private:
152 
157 
161  vector<Ptr<JetRegion>::ptr> theJetRegions;
162 
166  vector<Ptr<JetRegion>::ptr> theJetVetoRegions;
167 
171  vector<Ptr<JetPairRegion>::ptr> theJetPairRegions;
172 
176  vector<Ptr<MultiJetRegion>::ptr> theMultiJetRegions;
177 
182 
183 private:
184 
190 
195  JetCuts & operator=(const JetCuts &) = delete;
196 
197 };
198 
199 }
200 
201 #include "ThePEG/Utilities/ClassTraits.h"
202 
203 namespace ThePEG {
204 
209 template <>
210 struct BaseClassTrait<JetCuts,1> {
212  typedef MultiCutBase NthBase;
213 };
214 
217 template <>
218 struct ClassTraits<JetCuts>
219  : public ClassTraitsBase<JetCuts> {
221  static string className() { return "ThePEG::JetCuts"; }
225  static string library() { return "JetCuts.so"; }
226 };
227 
230 }
231 
232 #endif /* THEPEG_JetCuts_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual void describe() const
Describe the currently active cuts in the log file.
const vector< Ptr< JetRegion >::ptr > & jetVetoRegions() const
Return the jet veto regions to check.
Definition: JetCuts.h:83
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
virtual ~JetCuts()
The destructor.
static void Init()
The standard Init function used to initialize the interfaces.
const vector< Ptr< JetPairRegion >::ptr > & jetPairRegions() const
Return the jet pair regions to match.
Definition: JetCuts.h:88
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition: Containers.h:42
Ptr< MatcherBase >::tptr unresolvedMatcher() const
Return the matcher for unresolved partons.
Definition: JetCuts.h:73
static ClassDescription< JetCuts > initJetCuts
The static object used to initialize the description of this class.
Definition: JetCuts.h:189
Orderings
Enumerate the ordering to apply on jets.
Definition: JetCuts.h:98
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
JetCuts combines various JetRegion and JetPairRegion objects into a cut object.
Definition: JetCuts.h:34
int ordering() const
Return the ordering.
Definition: JetCuts.h:106
virtual IBPtr clone() const
Make a simple clone of this object.
Ptr< MatcherBase >::ptr theUnresolvedMatcher
A matcher for unresolved partons.
Definition: JetCuts.h:156
int theOrdering
Types of the ordering to apply on jets.
Definition: JetCuts.h:181
vector< Ptr< JetPairRegion >::ptr > theJetPairRegions
The jet pair regions to match.
Definition: JetCuts.h:171
vector< Ptr< MultiJetRegion >::ptr > theMultiJetRegions
The multi jet regions to match.
Definition: JetCuts.h:176
vector< Ptr< JetRegion >::ptr > theJetRegions
The jet regions to match.
Definition: JetCuts.h:161
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
JetCuts()
The default constructor.
This class corresponds to a kinematical cut to be made on a set of outgoing particles from a hard sub...
Definition: MultiCutBase.h:34
const vector< Ptr< JetRegion >::ptr > & jetRegions() const
Return the jet regions to match.
Definition: JetCuts.h:78
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
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...
vector< Ptr< JetRegion >::ptr > theJetVetoRegions
The jet veto regions to check.
Definition: JetCuts.h:166
Ptr is a templated class to provide typedefs for pointers types ThePEG should use for a given type...
Definition: Ptr.h:35
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
JetCuts & operator=(const JetCuts &)=delete
The assignment operator is private and must never be called.
const vector< Ptr< MultiJetRegion >::ptr > & multiJetRegions() const
Return the multi jet regions to match.
Definition: JetCuts.h:93
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52