thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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
19namespace ThePEG {
20
27class NJetsCut: public MultiCutBase {
28
29public:
30
35
36public:
37
44 virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
45 const vector<LorentzMomentum> & p) const;
47
51 virtual void describe() const;
52
53public:
54
62
68 void persistentInput(PersistentIStream & is, int version);
70
77 static void Init();
78
79protected:
80
87 virtual IBPtr clone() const;
88
93 virtual IBPtr fullclone() const;
95
96private:
97
102
107
112
113private:
114
120
125 NJetsCut & operator=(const NJetsCut &) = delete;
126
127};
128
129}
130
131#include "ThePEG/Utilities/ClassTraits.h"
132
133namespace ThePEG {
134
139template <>
140struct BaseClassTrait<NJetsCut,1> {
142 typedef MultiCutBase NthBase;
143};
144
147template <>
148struct ClassTraits<NJetsCut>
149 : public ClassTraitsBase<NJetsCut> {
151 static string className() { return "ThePEG::NJetsCut"; }
155 static string library() { return "JetCuts.so"; }
156};
157
160}
161
162#endif /* THEPEG_NJetsCut_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
This class corresponds to a kinematical cut to be made on a set of outgoing particles from a hard sub...
Definition: MultiCutBase.h:34
NJetsCut is a simple cut on jet multiplicity.
Definition: NJetsCut.h:27
Ptr< MatcherBase >::ptr unresolvedMatcher
A matcher for unresolved partons.
Definition: NJetsCut.h:101
NJetsCut & operator=(const NJetsCut &)=delete
The assignment operator is private and must never be called.
int nJetsMax
The maximum number of jets.
Definition: NJetsCut.h:111
int nJetsMin
The minimum number of jets.
Definition: NJetsCut.h:106
virtual IBPtr clone() const
Make a simple clone of this object.
static void Init()
The standard Init function used to initialize the interfaces.
NJetsCut()
The default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void describe() const
Describe the currently active cuts in the log file.
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:119
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
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