thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
JetFinder.h
1 // -*- C++ -*-
2 //
3 // JetFinder.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 // Copyright (C) 2009-2019 Simon Platzer
6 //
7 // ThePEG is licenced under version 3 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 
80 
86 
91  const pair<double,double>& constituentRapidityRange() const { return theConstituentRapidityRange; }
92 
97  void constituentRapidityRange(const pair<double,double>& r) { theConstituentRapidityRange = r; }
98 
102  virtual void describe() const = 0;
103 
104 public:
105 
112  void persistentOutput(PersistentOStream & os) const;
113 
119  void persistentInput(PersistentIStream & is, int version);
121 
128  static void Init();
129 
130 
131 // If needed, insert declarations of virtual function defined in the
132 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
133 
134 
135 private:
136 
140  string doYRange(string);
141 
146 
151  unsigned int theMinOutgoing;
152 
158 
163  pair<double,double> theConstituentRapidityRange;
164 
169  JetFinder & operator=(const JetFinder &) = delete;
170 
171 };
172 
173 }
174 
175 #endif /* THEPEG_JetFinder_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual ~JetFinder()
The destructor.
bool restrictConsitutents() const
Return true, if jets should only be constructed from matching objects inside a given rapidity interva...
Definition: JetFinder.h:79
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:696
JetFinder()
The default constructor.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual void describe() const =0
Describe this jet finder.
unsigned int theMinOutgoing
The minimum number of outgoing partons on which clustering should be performed.
Definition: JetFinder.h:151
string doYRange(string)
Command to insert a rapidity range.
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.
pair< double, double > theConstituentRapidityRange
The rapidity interval within objects should be considered for clustering, if appropriate.
Definition: JetFinder.h:163
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:145
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.
JetFinder & operator=(const JetFinder &)=delete
The assignment operator is private and must never be called.
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
bool theRestrictConstituents
True, if jets should only be constructed from matching objects inside a given rapidity interval...
Definition: JetFinder.h:157
void constituentRapidityRange(const pair< double, double > &r)
Set the rapidity interval within objects should be considered for clustering, if appropriate.
Definition: JetFinder.h:97
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.
void restrictConsitutents(bool on)
Jets should only be constructed from matching objects inside a given rapidity interval.
Definition: JetFinder.h:85
const pair< double, double > & constituentRapidityRange() const
Return the rapidity interval within objects should be considered for clustering, if appropriate...
Definition: JetFinder.h:91