ThePEG  1.8.0
KTClus.h
1 // -*- C++ -*-
2 //
3 // KTClus.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef THEPEG_KTClus_H
10 #define THEPEG_KTClus_H
11 //
12 // This is the declaration of the KTClus class.
13 //
14 
15 #include "ThePEG/Cuts/TwoCutBase.h"
16 
17 namespace ThePEG {
18 
28 class KTClus: public TwoCutBase {
29 
30 public:
31 
37  KTClus() : theCut(10.0*GeV), onlyJets(true) {}
39 
40 public:
41 
54  virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const;
55 
60  virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const;
61 
67  virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const;
68 
74  virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const;
75 
82  virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const;
83 
90  virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
92  bool inci = false, bool incj = false) const;
94 
98  virtual void describe() const;
99 
100 public:
101 
108  void persistentOutput(PersistentOStream & os) const;
109 
115  void persistentInput(PersistentIStream & is, int version);
117 
124  static void Init();
125 
126 protected:
127 
134  virtual IBPtr clone() const;
135 
140  virtual IBPtr fullclone() const;
142 
143 private:
144 
150 
154  bool onlyJets;
155 
156 private:
157 
163 
168  KTClus & operator=(const KTClus &);
169 
170 };
171 
172 }
173 
174 #include "ThePEG/Utilities/ClassTraits.h"
175 
176 namespace ThePEG {
177 
182 template <>
183 struct BaseClassTrait<KTClus,1> {
185  typedef TwoCutBase NthBase;
186 };
187 
190 template <>
191 struct ClassTraits<KTClus>
192  : public ClassTraitsBase<KTClus> {
194  static string className() { return "ThePEG::KTClus"; }
198  static string library() { return "KTClus.so"; }
199 };
200 
203 }
204 
205 #endif /* THEPEG_KTClus_H */