00001 #ifndef DataFormats_L1Trigger_L1HFRings_h 00002 #define DataFormats_L1Trigger_L1HFRings_h 00003 // -*- C++ -*- 00004 // 00005 // Package: L1Trigger 00006 // Class : L1HFRings 00007 // 00016 // 00017 // Original Author: Werner Sun 00018 // Created: Sat Mar 14 19:04:20 CET 2009 00019 // $Id: L1HFRings.h,v 1.2 2009/03/22 16:11:30 wsun Exp $ 00020 // 00021 00022 // system include files 00023 00024 // user include files 00025 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h" 00026 #include "DataFormats/Common/interface/Ref.h" 00027 00028 // forward declarations 00029 00030 namespace l1extra { 00031 00032 class L1HFRings 00033 { 00034 00035 public: 00036 enum HFRingLabels { kRing1PosEta, kRing1NegEta, kRing2PosEta, 00037 kRing2NegEta, kNumRings } ; 00038 00039 L1HFRings(); 00040 00041 // Default Refs are null. 00042 L1HFRings( const double* hfEtSums, // array of etSums 00043 const int* hfBitCounts, // array of bitCounts 00044 const edm::Ref< L1GctHFRingEtSumsCollection >& aHFEtSumsRef = 00045 edm::Ref< L1GctHFRingEtSumsCollection >(), 00046 const edm::Ref< L1GctHFBitCountsCollection >& aHFBitCountsRef 00047 = edm::Ref< L1GctHFBitCountsCollection >(), 00048 int bx = 0 ) ; 00049 00050 virtual ~L1HFRings(); 00051 00052 // ---------- const member functions --------------------- 00053 double hfEtSum( HFRingLabels i ) const // in GeV 00054 { return m_ringEtSums[ i ] ; } 00055 int hfBitCount( HFRingLabels i ) const 00056 { return m_ringBitCounts [ i ] ; } 00057 00058 const edm::Ref< L1GctHFRingEtSumsCollection >& gctHFEtSumsRef() const 00059 { return m_etSumsRef ; } 00060 const edm::Ref< L1GctHFBitCountsCollection >& gctHFBitCountsRef() const 00061 { return m_bitCountsRef ; } 00062 00063 const L1GctHFRingEtSums* gctHFEtSums() const 00064 { return m_etSumsRef.get() ; } 00065 const L1GctHFBitCounts* gctHFBitCounts() const 00066 { return m_bitCountsRef.get() ; } 00067 00068 int bx() const { return m_bx ; } 00069 00070 // ---------- static member functions -------------------- 00071 00072 // ---------- member functions --------------------------- 00073 00074 private: 00075 // L1HFRings(const L1HFRings&); // stop default 00076 00077 // const L1HFRings& operator=(const L1HFRings&); // stop default 00078 00079 // ---------- member data -------------------------------- 00080 double m_ringEtSums[ kNumRings ] ; 00081 int m_ringBitCounts[ kNumRings ] ; 00082 00083 edm::Ref< L1GctHFRingEtSumsCollection > m_etSumsRef ; 00084 edm::Ref< L1GctHFBitCountsCollection > m_bitCountsRef ; 00085 00086 int m_bx ; 00087 }; 00088 } 00089 00090 #endif