CMS 3D CMS Logo

L1GctTdrJetFinder.h
Go to the documentation of this file.
1 #ifndef L1GCTTDRJETFINDER_H_
2 #define L1GCTTDRJETFINDER_H_
3 
5 
6 #include <boost/cstdint.hpp> //for uint16_t
7 #include <vector>
8 
47 /*
48  * \author Jim Brooke & Robert Frazier
49  * \date March 2006
50  */
51 
52 
53 
55 {
56  public:
57 
59  L1GctTdrJetFinder(int id);
60 
61  ~L1GctTdrJetFinder() override;
62 
64  friend std::ostream& operator << (std::ostream& os, const L1GctTdrJetFinder& algo);
65 
67  void fetchInput() override;
68 
70  void process() override;
71 
72  protected:
73 
74  // Each jetFinder must define the constants as private and copy the
75  // function definitions below.
76  unsigned maxRegionsIn() const override { return MAX_REGIONS_IN; }
77  unsigned centralCol0() const override { return CENTRAL_COL0; }
78  unsigned int nCols() const override { return N_COLS; }
79 
80 private:
81 
83  static const unsigned int MAX_REGIONS_IN;
84  static const unsigned int N_COLS;
85  static const unsigned int CENTRAL_COL0;
86 
88  void findJets();
89 
91  bool detectJet(const UShort centreIndex, const bool boundary = false) const;
92 
94  ULong calcJetEnergy(const UShort centreIndex, const bool boundary = false) const;
95 
97  L1CaloRegionDetId calcJetPosition(const UShort centreIndex) const;
98 
100  bool calcJetTauVeto(const UShort centreIndex, const bool boundary = false) const;
101 
102 };
103 
104 std::ostream& operator << (std::ostream& os, const L1GctTdrJetFinder& algo);
105 
106 #endif /*L1GCTTDRJETFINDER_H_*/
3*3 sliding window algorithm jet finder.
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.
friend std::ostream & operator<<(std::ostream &os, const L1GctTdrJetFinder &algo)
Overload << operator.
unsigned centralCol0() const override
unsigned long int ULong
~L1GctTdrJetFinder() override
void findJets()
Here is the TDR 3x3 sliding window jet finder algorithm.
bool calcJetTauVeto(const UShort centreIndex, const bool boundary=false) const
Returns combined tauVeto of the 9 regions centred (physically) about centreIndex. Set boundary = true...
Base class to allow implementation of jetFinder algorithms.
ULong calcJetEnergy(const UShort centreIndex, const bool boundary=false) const
Returns energy sum of the 9 regions centred (physically) about centreIndex. Set boundary = true if at...
static const unsigned int CENTRAL_COL0
void process() override
process the data, fill output buffers
unsigned short int UShort
bool detectJet(const UShort centreIndex, const bool boundary=false) const
Returns true if region index is the centre of a jet. Set boundary = true if at edge of HCAL...
unsigned maxRegionsIn() const override
void fetchInput() override
get input data from sources
L1CaloRegionDetId calcJetPosition(const UShort centreIndex) const
returns the encoded (eta, phi) position of the centre region
unsigned int nCols() const override
static const unsigned int N_COLS
L1GctTdrJetFinder(int id)
id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi.