File indexing completed on 2023-03-17 11:11:18
0001 #ifndef L1GCTHARDWAREJETFINDER_H_
0002 #define L1GCTHARDWAREJETFINDER_H_
0003
0004 #include "L1Trigger/GlobalCaloTrigger/interface/L1GctJetFinderBase.h"
0005
0006 #include <vector>
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 class L1GctHardwareJetFinder : public L1GctJetFinderBase {
0019 public:
0020
0021 L1GctHardwareJetFinder(int id);
0022
0023 ~L1GctHardwareJetFinder() override;
0024
0025
0026 friend std::ostream& operator<<(std::ostream& os, const L1GctHardwareJetFinder& algo);
0027
0028
0029 virtual void reset();
0030
0031
0032 void fetchInput() override;
0033
0034
0035 void process() override;
0036
0037 protected:
0038
0039
0040 unsigned maxRegionsIn() const override { return MAX_REGIONS_IN; }
0041 unsigned centralCol0() const override { return CENTRAL_COL0; }
0042 unsigned nCols() const override { return N_COLS; }
0043
0044 private:
0045
0046 static const unsigned int MAX_REGIONS_IN;
0047 static const unsigned int N_COLS;
0048 static const unsigned int CENTRAL_COL0;
0049
0050
0051 RegionsVector m_localMaxima;
0052
0053 RegionsVector m_clusters;
0054
0055
0056 unsigned m_numberOfClusters;
0057
0058
0059 RegionsVector m_localMax00;
0060 RegionsVector m_cluster00;
0061
0062
0063 void findProtoJets();
0064 L1GctRegion makeProtoJet(L1GctRegion localMax);
0065
0066 void findJets();
0067
0068
0069 void findLocalMaxima();
0070
0071 void findProtoClusters();
0072
0073 void findFinalClusters();
0074
0075
0076 void convertClustersToProtoJets();
0077
0078 void convertClustersToOutputJets();
0079 };
0080
0081 std::ostream& operator<<(std::ostream& os, const L1GctHardwareJetFinder& algo);
0082
0083 #endif