![]() |
![]() |
00001 #ifndef L1GCTJETCOUNTER_H_ 00002 #define L1GCTJETCOUNTER_H_ 00003 00004 #include "CondFormats/L1TObjects/interface/L1GctJetCounterSetup.h" 00005 00006 #include "L1Trigger/GlobalCaloTrigger/interface/L1GctProcessor.h" 00007 #include "L1Trigger/GlobalCaloTrigger/src/L1GctJetCount.h" 00008 00009 #include <boost/cstdint.hpp> //for uint16_t 00010 #include <vector> 00011 00023 class L1GctJetCounterLut; 00024 class L1GctJetCand; 00025 class L1GctJetLeafCard; 00026 00027 class L1GctJetCounter : public L1GctProcessor 00028 { 00029 public: 00030 //Typedefs 00031 typedef std::vector<L1GctJetCand> JetVector; 00032 00033 //Statics 00034 static const unsigned int MAX_JETLEAF_CARDS; 00035 static const unsigned int MAX_JETS_PER_LEAF; 00036 static const unsigned int MAX_JETS_TO_COUNT; 00037 00039 L1GctJetCounter(int id, std::vector<L1GctJetLeafCard*> leafCards, 00040 L1GctJetCounterLut* jetCounterLut=0); 00041 00042 ~L1GctJetCounter(); 00043 00045 friend std::ostream& operator << (std::ostream& os, const L1GctJetCounter& algo); 00046 00048 virtual void fetchInput(); 00049 00051 virtual void process(); 00052 00054 void setLut(const L1GctJetCounterLut& lut); 00055 00057 void setLut(const L1GctJetCounterSetup::cutDescription& cut); 00058 00060 void setLut(const L1GctJetCounterSetup::cutsListForJetCounter& cutList); 00061 00063 void setJets(JetVector& jets); 00064 00066 L1GctJetCounterLut* getJetCounterLut() const { return m_jetCounterLut; } 00067 00069 JetVector getJets() const { return m_jets; } 00070 00072 L1GctJetCount<3> getValue() const { return m_value;} 00073 00075 bool setupOk() const; 00076 00078 void setVerbose(); 00079 void setTerse(); 00080 00081 protected: 00082 00084 virtual void resetProcessor(); 00085 virtual void resetPipelines() {} 00086 00088 virtual void setupObjects() {} 00089 00090 private: 00091 00092 //Statics 00093 00095 int m_id; 00096 00098 std::vector<L1GctJetLeafCard*> m_jetLeafCards; 00099 00101 L1GctJetCounterLut* m_jetCounterLut; 00102 00104 JetVector m_jets; 00105 00107 L1GctJetCount<3> m_value; 00108 00109 bool m_setupOk; 00110 00111 //PRIVATE METHODS 00112 00113 }; 00114 00115 std::ostream& operator << (std::ostream& os, const L1GctJetCounter& algo); 00116 00117 #endif /*L1GCTJETCOUNTER_H_*/