CMS 3D CMS Logo

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 
28  ~L1GctHardwareJetFinder() override;
29 
31  friend std::ostream& operator << (std::ostream& os, const L1GctHardwareJetFinder& algo);
32 
34  virtual void reset();
35 
37  void fetchInput() override;
38 
40  void process() override;
41 
42  protected:
43 
44  // Each jetFinder must define the constants as private and copy the
45  // function definitions below.
46  unsigned maxRegionsIn() const override { return MAX_REGIONS_IN; }
47  unsigned centralCol0() const override { return CENTRAL_COL0; }
48  unsigned nCols() const override { 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 
61 
64 
65  // Additional clusters to avoid double counting of jets across eta=0
68 
70  void findProtoJets();
73  void findJets();
74 
76  void findLocalMaxima();
78  void findProtoClusters();
80  void findFinalClusters();
81 
86 
87 };
88 
89 std::ostream& operator << (std::ostream& os, const L1GctHardwareJetFinder& algo);
90 
91 #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.
void process() override
process the data, fill output buffers
void findProtoJets()
The first stage of clustering, called by fetchInput()
unsigned centralCol0() const override
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()
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 << operator.
void fetchInput() override
get input data from sources
void findLocalMaxima()
Find local maxima in the search array.
Base class to allow implementation of jetFinder algorithms.
void findProtoClusters()
Convert local maxima to clusters.
static const unsigned int N_COLS
virtual void reset()
include additional reset functionality
unsigned nCols() const override
void convertClustersToOutputJets()
Organise the final clustered jets into L1GctJets.
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.
unsigned maxRegionsIn() const override
RegionsVector m_localMaxima
Local vectors used during both stages of clustering.