CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1GctHardwareJetFinder.h
Go to the documentation of this file.
1 #ifndef L1GCTHARDWAREJETFINDER_H_
2 #define L1GCTHARDWAREJETFINDER_H_
3 
5 
6 #include <boost/cstdint.hpp> //for uint16_t
7 #include <vector>
8 
14 /*
15  * \author Greg Heath
16  * \date June 2006
17  */
18 
19 
20 
22 {
23  public:
24 
26  L1GctHardwareJetFinder(int id);
27 
29 
31  friend std::ostream& operator << (std::ostream& os, const L1GctHardwareJetFinder& algo);
32 
34  virtual void reset();
35 
37  virtual void fetchInput();
38 
40  virtual void process();
41 
42  protected:
43 
44  // Each jetFinder must define the constants as private and copy the
45  // function definitions below.
46  virtual unsigned maxRegionsIn() const { return MAX_REGIONS_IN; }
47  virtual unsigned centralCol0() const { return CENTRAL_COL0; }
48  virtual unsigned nCols() const { return N_COLS; }
49 
50 private:
51 
53  static const unsigned int MAX_REGIONS_IN;
54  static const unsigned int N_COLS;
55  static const unsigned int CENTRAL_COL0;
56 
59 
64 
67 
68  // Additional clusters to avoid double counting of jets across eta=0
71 
73  void findProtoJets();
76  void findJets();
77 
79  void findLocalMaxima();
81  void findProtoClusters();
83  void findFinalClusters();
84 
89 
90 };
91 
92 std::ostream& operator << (std::ostream& os, const L1GctHardwareJetFinder& algo);
93 
94 #endif /*L1GCTHARDWAREJETFINDER_H_*/
unsigned m_numberOfClusters
The number of local Maxima/clusters found at each stage of clustering.
void findFinalClusters()
Convert protojets to final jets.
bool m_positiveEtaWheel
Positive/negative eta flag used in the initial clustering.
void findProtoJets()
The first stage of clustering, called by fetchInput()
void convertClustersToProtoJets()
Organise the pre-clustered jets into the ones we keep and those we send to the neighbour.
void findJets()
The second stage of clustering, called by process()
virtual unsigned nCols() const
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.
Gct version of a calorimeter region, used within GCT emulation.
Definition: L1GctRegion.h:17
RegionsVector m_clusters
Each local maximum becomes a cluster.
L1GctHardwareJetFinder(int id)
id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi.
friend std::ostream & operator<<(std::ostream &os, const L1GctHardwareJetFinder &algo)
Overload &lt;&lt; operator.
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
void findLocalMaxima()
Find local maxima in the search array.
Base class to allow implementation of jetFinder algorithms.
void findProtoClusters()
Convert local maxima to clusters.
virtual void fetchInput()
get input data from sources
static const unsigned int N_COLS
virtual void process()
process the data, fill output buffers
virtual void reset()
include additional reset functionality
void convertClustersToOutputJets()
Organise the final clustered jets into L1GctJets.
virtual unsigned maxRegionsIn() const
Emulation of the hardware jet finder.
static const unsigned int CENTRAL_COL0
std::vector< L1GctRegion > RegionsVector
L1GctRegion makeProtoJet(L1GctRegion localMax)
Method to make a single proto-jet.
virtual unsigned centralCol0() const
RegionsVector m_localMaxima
Local vectors used during both stages of clustering.