thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
KTClus.h
1 // -*- C++ -*-
2 //
3 // KTClus.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_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 &) = delete;
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 */
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
Energy theCut
The minimum allowed value of the longitudinally invariant -algorithms distance measure.
Definition: KTClus.h:149
bool onlyJets
If true, only apply the cut to pairs of coloured particles.
Definition: KTClus.h:154
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual void describe() const
Describe the currently active cuts in the log file.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
KTClus & operator=(const KTClus &)=delete
The assignment operator is private and must never be called.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the Durham -algorithms distance measure.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype, LorentzMomentum pi, LorentzMomentum pj, bool inci=false, bool incj=false) const
Return true if a pair of particles with type pitype and pjtype and momenta pi and pj respectively pas...
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
This class corresponds to a kinematical cut to be made on a pair of particles in a hard sub-process...
Definition: TwoCutBase.h:35
static ClassDescription< KTClus > initKTClus
The static object used to initialize the description of this class.
Definition: KTClus.h:162
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
static void Init()
The standard Init function used to initialize the interfaces.
KTClus()
The default constructor.
Definition: KTClus.h:37
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
This clas implements the cuts relevant for the -measure in the longitudinally invariant kt-algorithm...
Definition: KTClus.h:28
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
virtual IBPtr clone() const
Make a simple clone of this object.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52