thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
MultiCutBase.h
1 // -*- C++ -*-
2 //
3 // MultiCutBase.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG 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 THEPEG_MultiCutBase_H
10 #define THEPEG_MultiCutBase_H
11 //
12 // This is the declaration of the MultiCutBase class.
13 //
14 
15 #include "ThePEG/Interface/Interfaced.h"
16 #include "MultiCutBase.fh"
17 #include "Cuts.fh"
18 
19 namespace ThePEG {
20 
34 class MultiCutBase: public Interfaced {
35 
36 public:
37 
45  virtual Energy2 minS(const tcPDVector & pv) const;
46 
52  virtual Energy2 maxS(const tcPDVector & pv) const;
53 
58  virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
59  const vector<LorentzMomentum> & p) const;
60 
64  bool passCuts(tcCutsPtr parent, const tcPVector & p) const;
66 
70  virtual void describe() const;
71 
72 public:
73 
80  static void Init();
81 
82 private:
83 
89 
94  MultiCutBase & operator=(const MultiCutBase &) = delete;
95 
96 };
97 
98 }
99 
100 #include "ThePEG/Utilities/ClassTraits.h"
101 
102 namespace ThePEG {
103 
108 template <>
109 struct BaseClassTrait<MultiCutBase,1> {
111  typedef Interfaced NthBase;
112 };
113 
116 template <>
117 struct ClassTraits<MultiCutBase>
118  : public ClassTraitsBase<MultiCutBase> {
120  static string className() { return "ThePEG::MultiCutBase"; }
121 };
122 
125 }
126 
127 #endif /* THEPEG_MultiCutBase_H */
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition: Containers.h:42
virtual Energy2 maxS(const tcPDVector &pv) const
Return the maximum allowed value of the squared invariant mass of a set of outgoing partons of the gi...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
static void Init()
The standard Init function used to initialize the interfaces.
MultiCutBase & operator=(const MultiCutBase &)=delete
The assignment operator is private and must never be called.
vector< tcPPtr > tcPVector
A vector of transient pointers to const Particle objects.
Definition: Containers.h:85
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
This class corresponds to a kinematical cut to be made on a set of outgoing particles from a hard sub...
Definition: MultiCutBase.h:34
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
virtual Energy2 minS(const tcPDVector &pv) const
Return the minimum allowed value of the squared invariant mass of a set of outgoing partons of the gi...
virtual void describe() const
Describe the currently active cuts in the log file.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
static AbstractNoPIOClassDescription< MultiCutBase > initMultiCutBase
The static object used to initialize the description of this class.
Definition: MultiCutBase.h:88
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
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...