ThePEG  1.8.0
JetFinder.h
1 // -*- C++ -*-
2 //
3 // JetFinder.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2007 Leif Lonnblad
5 // Copyright (C) 2009-2011 Simon Platzer
6 //
7 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
8 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
9 //
10 #ifndef THEPEG_JetFinder_H
11 #define THEPEG_JetFinder_H
12 //
13 // This is the declaration of the JetFinder class.
14 //
15 
16 #include "ThePEG/Interface/Interfaced.h"
17 #include "ThePEG/PDT/MatcherBase.h"
18 #include "Cuts.fh"
19 
20 namespace ThePEG {
21 
30 class JetFinder: public Interfaced {
31 
32 public:
33 
39  JetFinder();
40 
44  virtual ~JetFinder();
46 
47 public:
48 
54  virtual bool cluster(tcPDVector & ptype, vector<LorentzMomentum> & p,
55  tcCutsPtr parent, tcPDPtr t1 = tcPDPtr(),
56  tcPDPtr t2 = tcPDPtr()) const = 0;
57 
62 
67  void minOutgoing(unsigned int n) { theMinOutgoing = n; }
68 
73  unsigned int minOutgoing() const { return theMinOutgoing; }
74 
75 public:
76 
83  void persistentOutput(PersistentOStream & os) const;
84 
90  void persistentInput(PersistentIStream & is, int version);
92 
99  static void Init();
100 
101 
102 // If needed, insert declarations of virtual function defined in the
103 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
104 
105 
106 private:
107 
112 
117  unsigned int theMinOutgoing;
118 
123  JetFinder & operator=(const JetFinder &);
124 
125 };
126 
127 }
128 
129 #endif /* THEPEG_JetFinder_H */