thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
NJetsCut.h
1 // -*- C++ -*-
2 //
3 // NJetsCut.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_NJetsCut_H
11 #define THEPEG_NJetsCut_H
12 //
13 // This is the declaration of the NJetsCut class.
14 //
15 
16 #include "ThePEG/Cuts/MultiCutBase.h"
17 #include "ThePEG/PDT/MatcherBase.h"
18 
19 namespace ThePEG {
20 
27 class NJetsCut: public MultiCutBase {
28 
29 public:
30 
36  NJetsCut();
37 
41  virtual ~NJetsCut();
43 
44 public:
45 
52  virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
53  const vector<LorentzMomentum> & p) const;
55 
59  virtual void describe() const;
60 
61 public:
62 
69  void persistentOutput(PersistentOStream & os) const;
70 
76  void persistentInput(PersistentIStream & is, int version);
78 
85  static void Init();
86 
87 protected:
88 
95  virtual IBPtr clone() const;
96 
101  virtual IBPtr fullclone() const;
103 
104 private:
105 
110 
114  int nJetsMin;
115 
119  int nJetsMax;
120 
121 private:
122 
128 
133  NJetsCut & operator=(const NJetsCut &) = delete;
134 
135 };
136 
137 }
138 
139 #include "ThePEG/Utilities/ClassTraits.h"
140 
141 namespace ThePEG {
142 
147 template <>
148 struct BaseClassTrait<NJetsCut,1> {
150  typedef MultiCutBase NthBase;
151 };
152 
155 template <>
156 struct ClassTraits<NJetsCut>
157  : public ClassTraitsBase<NJetsCut> {
159  static string className() { return "ThePEG::NJetsCut"; }
163  static string library() { return "JetCuts.so"; }
164 };
165 
168 }
169 
170 #endif /* THEPEG_NJetsCut_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Ptr< MatcherBase >::ptr unresolvedMatcher
A matcher for unresolved partons.
Definition: NJetsCut.h:109
virtual void describe() const
Describe the currently active cuts in the log file.
NJetsCut()
The default constructor.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
NJetsCut & operator=(const NJetsCut &)=delete
The assignment operator is private and must never be called.
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< NJetsCut > initNJetsCut
The static object used to initialize the description of this class.
Definition: NJetsCut.h:127
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual ~NJetsCut()
The destructor.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
This class corresponds to a kinematical cut to be made on a set of outgoing particles from a hard sub...
Definition: MultiCutBase.h:34
Ptr is a templated class to provide typedefs for pointers types ThePEG should use for a given type...
Definition: Ptr.h:35
NJetsCut is a simple cut on jet multiplicity.
Definition: NJetsCut.h:27
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int nJetsMin
The minimum number of jets.
Definition: NJetsCut.h:114
int nJetsMax
The maximum number of jets.
Definition: NJetsCut.h:119
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52