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 */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual ~JetFinder()
The destructor.
unsigned int minOutgoing() const
Return the minimum number of outgoing partons on which clustering should be performed.
Definition: JetFinder.h:73
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition: Containers.h:42
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
JetFinder()
The default constructor.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
unsigned int theMinOutgoing
The minimum number of outgoing partons on which clustering should be performed.
Definition: JetFinder.h:117
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Alias for a transient pointer to a const ParticleData .
Definition: Pointers.h:64
Ptr< MatcherBase >::ptr theUnresolvedMatcher
A matcher for unresolved partons.
Definition: JetFinder.h:111
JetFinder defines an interface to jet finders to be used when cuts should actually be defined on the ...
Definition: JetFinder.h:30
static void Init()
The standard Init function used to initialize the interfaces.
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
JetFinder & operator=(const JetFinder &)
The assignment operator is private and must never be called.
void minOutgoing(unsigned int n)
Set the minimum number of outgoing partons on which clustering should be performed.
Definition: JetFinder.h:67
Ptr is a templated class to provide typedefs for pointers types ThePEG should use for a given type...
Definition: Ptr.h:35
Ptr< MatcherBase >::tptr unresolvedMatcher() const
Return the matcher for unresolved partons.
Definition: JetFinder.h:61
virtual bool cluster(tcPDVector &ptype, vector< LorentzMomentum > &p, tcCutsPtr parent, tcPDPtr t1=tcPDPtr(), tcPDPtr t2=tcPDPtr()) const =0
Perform jet clustering on the given outgoing particles.