herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
FrixionePhotonSeparationCut.h
1 // -*- C++ -*-
2 //
3 // FrixionePhotonSeparationCut.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2017 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_FrixionePhotonSeparationCut_H
10 #define Herwig_FrixionePhotonSeparationCut_H
11 //
12 // This is the declaration of the FrixionePhotonSeparationCut 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 
32 
33 public:
34 
40  FrixionePhotonSeparationCut() : theDeltaZero(0.0), theExponentn(1.0), theEfficiency(0.0), theCutType(1) {}
42 
43 public:
44 
53  virtual bool passCuts(tcCutsPtr, const tcPDVector & ptype,
54  const vector<LorentzMomentum> & p) const;
56 
60  virtual void describe() const;
61 
65  Ptr<MatcherBase>::tptr matcher() const { return theMatcher; }
66 
67 public:
68 
75  void persistentOutput(PersistentOStream & os) const;
76 
82  void persistentInput(PersistentIStream & is, int version);
84 
91  static void Init();
92 
93 protected:
94 
101  virtual IBPtr clone() const;
102 
107  virtual IBPtr fullclone() const;
109 
110 private:
111 
115  double theDeltaZero;
116 
120  double theExponentn;
121 
126 
131 
136 
137 private:
138 
144 
149  FrixionePhotonSeparationCut & operator=(const FrixionePhotonSeparationCut &) = delete;
150 
151 };
152 
153 }
154 
155 #include "ThePEG/Utilities/ClassTraits.h"
156 
157 namespace ThePEG {
158 
163 template <>
166  typedef MultiCutBase NthBase;
167 };
168 
171 template <>
173  : public ClassTraitsBase<Herwig::FrixionePhotonSeparationCut> {
175  static string className() { return "Herwig::FrixionePhotonSeparationCut"; }
179  static string library() { return "HwMatchboxCuts.so"; }
180 };
181 
184 }
185 
186 #endif /* Herwig_FrixionePhotonSeparationCut_H */
This class implements a cut on legoplot and rapidity separation.
transient_pointer tptr
static ClassDescription< FrixionePhotonSeparationCut > initFrixionePhotonSeparationCut
The static object used to initialize the description of this class.
vector< tcPDPtr > tcPDVector
Ptr< MatcherBase >::tptr matcher() const
Return the matcher for particles to isolate on.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
double theEfficiency
The efficiency epsilon of the algorithm.
double theDeltaZero
The maximal legoplot separation where partons are included in the criterium.
double theExponentn
The exponent n of the algorithm.
Ptr< MatcherBase >::ptr theMatcher
A matcher for particles to isolate on.
int theCutType
The cut type of the algorithm.
-*- C++ -*-
FrixionePhotonSeparationCut()
The default constructor.