00001 #ifndef L1GCTTDRJETFINDER_H_ 00002 #define L1GCTTDRJETFINDER_H_ 00003 00004 #include "L1Trigger/GlobalCaloTrigger/interface/L1GctJetFinderBase.h" 00005 00006 #include <boost/cstdint.hpp> //for uint16_t 00007 #include <vector> 00008 00047 /* 00048 * \author Jim Brooke & Robert Frazier 00049 * \date March 2006 00050 */ 00051 00052 00053 00054 class L1GctTdrJetFinder : public L1GctJetFinderBase 00055 { 00056 public: 00057 00059 L1GctTdrJetFinder(int id); 00060 00061 ~L1GctTdrJetFinder(); 00062 00064 friend std::ostream& operator << (std::ostream& os, const L1GctTdrJetFinder& algo); 00065 00067 virtual void fetchInput(); 00068 00070 virtual void process(); 00071 00072 protected: 00073 00074 // Each jetFinder must define the constants as private and copy the 00075 // function definitions below. 00076 virtual unsigned maxRegionsIn() const { return MAX_REGIONS_IN; } 00077 virtual unsigned centralCol0() const { return CENTRAL_COL0; } 00078 virtual unsigned int nCols() const { return N_COLS; } 00079 00080 private: 00081 00083 static const unsigned int MAX_REGIONS_IN; 00084 static const unsigned int N_COLS; 00085 static const unsigned int CENTRAL_COL0; 00086 00088 void findJets(); 00089 00091 bool detectJet(const UShort centreIndex, const bool boundary = false) const; 00092 00094 ULong calcJetEnergy(const UShort centreIndex, const bool boundary = false) const; 00095 00097 L1CaloRegionDetId calcJetPosition(const UShort centreIndex) const; 00098 00100 bool calcJetTauVeto(const UShort centreIndex, const bool boundary = false) const; 00101 00102 }; 00103 00104 std::ostream& operator << (std::ostream& os, const L1GctTdrJetFinder& algo); 00105 00106 #endif /*L1GCTTDRJETFINDER_H_*/