herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MissingPtCut.h
1 // -*- C++ -*-
2 //
3 // MissingPtCut.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig 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 Herwig_MissingPtCut_H
10 #define Herwig_MissingPtCut_H
11 //
12 // This is the declaration of the MissingPtCut class.
13 //
14 
15 #include "ThePEG/Cuts/MultiCutBase.h"
16 #include "ThePEG/PDT/MatcherBase.h"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
31 class MissingPtCut: public MultiCutBase {
32 
33 public:
34 
40  MissingPtCut();
41 
45  virtual ~MissingPtCut();
47 
48 public:
49 
57  virtual Energy2 minS(const tcPDVector) const { return ZERO; }
58 
64  virtual Energy2 maxS(const tcPDVector) const { return Constants::MaxEnergy2; }
65 
70  virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
71  const vector<LorentzMomentum> & p) const;
72 
76  virtual void describe() const;
77 
81  Ptr<MatcherBase>::tptr matcher() const { return theMatcher; }
83 
84 public:
85 
89  const vector<int>& invisibleParticles() const { return theInvisibleParticles; }
90 
94  string doInvisibleParticles(string);
95 
99  Energy ptMissMin() const { return thePtMissMin; }
100 
104  Energy ptMissMax() const { return thePtMissMax; }
105 
106 public:
107 
114  void persistentOutput(PersistentOStream & os) const;
115 
121  void persistentInput(PersistentIStream & is, int version);
123 
130  static void Init();
131 
132 protected:
133 
140  virtual IBPtr clone() const;
141 
146  virtual IBPtr fullclone() const;
148 
149 
150 // If needed, insert declarations of virtual function defined in the
151 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
152 
153 
154 private:
155 
160 
164  Energy thePtMissMin;
165 
169  Energy thePtMissMax;
170 
175 
176 private:
177 
182  MissingPtCut & operator=(const MissingPtCut &) = delete;
183 
184 };
185 
186 }
187 
188 #endif /* Herwig_MissingPtCut_H */
transient_pointer tptr
vector< tcPDPtr > tcPDVector
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
const vector< int > & invisibleParticles() const
Return the PDG codes of those particles that cannot be detected.
Definition: MissingPtCut.h:89
Energy thePtMissMin
The minimum missing pt.
Definition: MissingPtCut.h:164
vector< int > theInvisibleParticles
The PDG codes of those particles that cannot be detected.
Definition: MissingPtCut.h:159
virtual Energy2 minS(const tcPDVector) const
Return the minimum allowed value of the squared invariant mass of a set of outgoing partons of the gi...
Definition: MissingPtCut.h:57
Energy ptMissMax() const
Return the maximum missing pt.
Definition: MissingPtCut.h:104
Ptr< MatcherBase >::ptr theMatcher
A matcher for particles to cut on.
Definition: MissingPtCut.h:174
virtual Energy2 maxS(const tcPDVector) const
Return the maximum allowed value of the squared invariant mass of a set of outgoing partons of the gi...
Definition: MissingPtCut.h:64
MissingPtCut implements a cut on the total missing transverse momentum of a set of outgoing particles...
Definition: MissingPtCut.h:31
Ptr< MatcherBase >::tptr matcher() const
Return the matcher for particles to cut on.
Definition: MissingPtCut.h:81
Energy thePtMissMax
The maximum missing pt.
Definition: MissingPtCut.h:169
Energy ptMissMin() const
Return the minimum missing pt.
Definition: MissingPtCut.h:99
-*- C++ -*-
constexpr ZeroUnit ZERO