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 <vector>
7 
13 /*
14  * \author Greg Heath
15  * \date June 2006
16  */
17 
19 public:
21  L1GctHardwareJetFinder(int id);
22 
23  ~L1GctHardwareJetFinder() override;
24 
26  friend std::ostream& operator<<(std::ostream& os, const L1GctHardwareJetFinder& algo);
27 
29  virtual void reset();
30 
32  void fetchInput() override;
33 
35  void process() override;
36 
37 protected:
38  // Each jetFinder must define the constants as private and copy the
39  // function definitions below.
40  unsigned maxRegionsIn() const override { return MAX_REGIONS_IN; }
41  unsigned centralCol0() const override { return CENTRAL_COL0; }
42  unsigned nCols() const override { return N_COLS; }
43 
44 private:
46  static const unsigned int MAX_REGIONS_IN;
47  static const unsigned int N_COLS;
48  static const unsigned int CENTRAL_COL0;
49 
54 
57 
58  // Additional clusters to avoid double counting of jets across eta=0
61 
63  void findProtoJets();
66  void findJets();
67 
69  void findLocalMaxima();
71  void findProtoClusters();
73  void findFinalClusters();
74 
79 };
80 
81 std::ostream& operator<<(std::ostream& os, const L1GctHardwareJetFinder& algo);
82 
83 #endif /*L1GCTHARDWAREJETFINDER_H_*/
L1GctHardwareJetFinder::CENTRAL_COL0
static const unsigned int CENTRAL_COL0
Definition: L1GctHardwareJetFinder.h:48
L1GctJetFinderBase::RegionsVector
std::vector< L1GctRegion > RegionsVector
Definition: L1GctJetFinderBase.h:53
L1GctHardwareJetFinder::convertClustersToOutputJets
void convertClustersToOutputJets()
Organise the final clustered jets into L1GctJets.
Definition: L1GctHardwareJetFinder.cc:425
operator<<
std::ostream & operator<<(std::ostream &os, const L1GctHardwareJetFinder &algo)
Definition: L1GctHardwareJetFinder.cc:25
L1GctHardwareJetFinder::findProtoClusters
void findProtoClusters()
Convert local maxima to clusters.
Definition: L1GctHardwareJetFinder.cc:149
L1GctHardwareJetFinder::m_cluster00
RegionsVector m_cluster00
Definition: L1GctHardwareJetFinder.h:60
L1GctJetFinderBase
Base class to allow implementation of jetFinder algorithms.
Definition: L1GctJetFinderBase.h:48
L1GctHardwareJetFinder::findFinalClusters
void findFinalClusters()
Convert protojets to final jets.
Definition: L1GctHardwareJetFinder.cc:317
L1GctHardwareJetFinder::maxRegionsIn
unsigned maxRegionsIn() const override
Definition: L1GctHardwareJetFinder.h:40
L1GctHardwareJetFinder::L1GctHardwareJetFinder
L1GctHardwareJetFinder(int id)
id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi.
Definition: L1GctHardwareJetFinder.cc:9
L1GctHardwareJetFinder
Emulation of the hardware jet finder.
Definition: L1GctHardwareJetFinder.h:18
L1GctHardwareJetFinder::findProtoJets
void findProtoJets()
The first stage of clustering, called by fetchInput()
Definition: L1GctHardwareJetFinder.cc:52
L1GctHardwareJetFinder::operator<<
friend std::ostream & operator<<(std::ostream &os, const L1GctHardwareJetFinder &algo)
Overload << operator.
Definition: L1GctHardwareJetFinder.cc:25
L1GctHardwareJetFinder::convertClustersToProtoJets
void convertClustersToProtoJets()
Organise the pre-clustered jets into the ones we keep and those we send to the neighbour.
Definition: L1GctHardwareJetFinder.cc:413
cmsdt::algo
algo
Definition: constants.h:165
L1GctHardwareJetFinder::process
void process() override
process the data, fill output buffers
Definition: L1GctHardwareJetFinder.cc:40
L1GctHardwareJetFinder::m_clusters
RegionsVector m_clusters
Each local maximum becomes a cluster.
Definition: L1GctHardwareJetFinder.h:53
L1GctHardwareJetFinder::findLocalMaxima
void findLocalMaxima()
Find local maxima in the search array.
Definition: L1GctHardwareJetFinder.cc:66
L1GctJetFinderBase.h
L1GctHardwareJetFinder::reset
virtual void reset()
include additional reset functionality
Definition: L1GctHardwareJetFinder.cc:32
L1GctHardwareJetFinder::nCols
unsigned nCols() const override
Definition: L1GctHardwareJetFinder.h:42
L1GctHardwareJetFinder::m_localMaxima
RegionsVector m_localMaxima
Local vectors used during both stages of clustering.
Definition: L1GctHardwareJetFinder.h:51
L1GctHardwareJetFinder::m_localMax00
RegionsVector m_localMax00
Definition: L1GctHardwareJetFinder.h:59
L1GctHardwareJetFinder::centralCol0
unsigned centralCol0() const override
Definition: L1GctHardwareJetFinder.h:41
L1GctHardwareJetFinder::m_numberOfClusters
unsigned m_numberOfClusters
The number of local Maxima/clusters found at each stage of clustering.
Definition: L1GctHardwareJetFinder.h:56
L1GctHardwareJetFinder::~L1GctHardwareJetFinder
~L1GctHardwareJetFinder() override
Definition: L1GctHardwareJetFinder.cc:23
L1GctHardwareJetFinder::N_COLS
static const unsigned int N_COLS
Definition: L1GctHardwareJetFinder.h:47
L1GctHardwareJetFinder::findJets
void findJets()
The second stage of clustering, called by process()
Definition: L1GctHardwareJetFinder.cc:59
L1GctRegion
Gct version of a calorimeter region, used within GCT emulation.
Definition: L1GctRegion.h:17
L1GctHardwareJetFinder::MAX_REGIONS_IN
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.
Definition: L1GctHardwareJetFinder.h:46
L1GctHardwareJetFinder::makeProtoJet
L1GctRegion makeProtoJet(L1GctRegion localMax)
Method to make a single proto-jet.
Definition: L1GctHardwareJetFinder.cc:219
L1GctHardwareJetFinder::fetchInput
void fetchInput() override
get input data from sources
Definition: L1GctHardwareJetFinder.cc:34