00001 #ifndef GctUnpackCollections_h 00002 #define GctUnpackCollections_h 00003 00015 // CMSSW headers 00016 #include "FWCore/Framework/interface/Event.h" 00017 00018 // DataFormat headers 00019 #include "DataFormats/L1CaloTrigger/interface/L1CaloCollections.h" 00020 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h" 00021 #include "DataFormats/L1Trigger/interface/L1TriggerError.h" 00022 00023 00024 class GctUnpackCollections 00025 { 00026 public: 00028 GctUnpackCollections(edm::Event& event); 00029 00031 ~GctUnpackCollections(); 00032 00033 // Collections for storing GCT input data. 00034 L1GctFibreCollection * const gctFibres() const { return m_gctFibres.get(); } 00035 L1CaloEmCollection * const rctEm() const { return m_rctEm.get(); } 00036 L1CaloRegionCollection * const rctCalo() const { return m_rctCalo.get(); } 00037 00038 // GCT intermediate data 00039 L1GctInternEmCandCollection * const gctInternEm() const { return m_gctInternEm.get(); } 00040 L1GctInternJetDataCollection * const gctInternJets() const { return m_gctInternJets.get(); } 00041 L1GctInternEtSumCollection * const gctInternEtSums() const { return m_gctInternEtSums.get(); } 00042 L1GctInternHFDataCollection * const gctInternHFData() const { return m_gctInternHFData.get(); } 00043 L1GctInternHtMissCollection * const gctInternHtMiss() const { return m_gctInternHtMiss.get(); } 00044 00045 // GCT output data 00046 L1GctEmCandCollection * const gctIsoEm() const { return m_gctIsoEm.get(); } 00047 L1GctEmCandCollection * const gctNonIsoEm() const { return m_gctNonIsoEm.get(); } 00048 L1GctJetCandCollection * const gctCenJets() const { return m_gctCenJets.get(); } 00049 L1GctJetCandCollection * const gctForJets() const { return m_gctForJets.get(); } 00050 L1GctJetCandCollection * const gctTauJets() const { return m_gctTauJets.get(); } 00051 L1GctHFBitCountsCollection * const gctHfBitCounts() const { return m_gctHfBitCounts.get(); } 00052 L1GctHFRingEtSumsCollection * const gctHfRingEtSums() const { return m_gctHfRingEtSums.get(); } 00053 L1GctEtTotalCollection * const gctEtTot() const { return m_gctEtTot.get(); } 00054 L1GctEtHadCollection * const gctEtHad() const { return m_gctEtHad.get(); } 00055 L1GctEtMissCollection * const gctEtMiss() const { return m_gctEtMiss.get(); } 00056 L1GctHtMissCollection * const gctHtMiss() const { return m_gctHtMiss.get(); } 00057 L1GctJetCountsCollection * const gctJetCounts() const { return m_gctJetCounts.get(); } 00058 00059 // Misc 00060 L1TriggerErrorCollection * const errors() const { return m_errors.get(); } 00061 00062 private: 00063 00064 GctUnpackCollections(const GctUnpackCollections&); 00065 GctUnpackCollections& operator=(const GctUnpackCollections&); 00066 00067 edm::Event& m_event; 00068 00069 // Collections for storing GCT input data. 00070 std::auto_ptr<L1GctFibreCollection> m_gctFibres; 00071 std::auto_ptr<L1CaloEmCollection> m_rctEm; 00072 std::auto_ptr<L1CaloRegionCollection> m_rctCalo; 00073 00074 // GCT intermediate data 00075 std::auto_ptr<L1GctInternEmCandCollection> m_gctInternEm; 00076 std::auto_ptr<L1GctInternJetDataCollection> m_gctInternJets; 00077 std::auto_ptr<L1GctInternEtSumCollection> m_gctInternEtSums; 00078 std::auto_ptr<L1GctInternHFDataCollection> m_gctInternHFData; 00079 std::auto_ptr<L1GctInternHtMissCollection> m_gctInternHtMiss; 00080 00081 // GCT output data 00082 std::auto_ptr<L1GctEmCandCollection> m_gctIsoEm; 00083 std::auto_ptr<L1GctEmCandCollection> m_gctNonIsoEm; 00084 std::auto_ptr<L1GctJetCandCollection> m_gctCenJets; 00085 std::auto_ptr<L1GctJetCandCollection> m_gctForJets; 00086 std::auto_ptr<L1GctJetCandCollection> m_gctTauJets; 00087 std::auto_ptr<L1GctHFBitCountsCollection> m_gctHfBitCounts; 00088 std::auto_ptr<L1GctHFRingEtSumsCollection> m_gctHfRingEtSums; 00089 std::auto_ptr<L1GctEtTotalCollection> m_gctEtTot; 00090 std::auto_ptr<L1GctEtHadCollection> m_gctEtHad; 00091 std::auto_ptr<L1GctEtMissCollection> m_gctEtMiss; 00092 std::auto_ptr<L1GctHtMissCollection> m_gctHtMiss; 00093 std::auto_ptr<L1GctJetCountsCollection> m_gctJetCounts; // DEPRECATED. ONLY GT NEEDS THIS. 00094 00095 // Misc 00096 std::auto_ptr<L1TriggerErrorCollection> m_errors; 00097 00098 }; 00099 00100 // Pretty print for the GctUnpackCollections sub-class 00101 std::ostream& operator<<(std::ostream& os, const GctUnpackCollections& rhs); 00102 00103 #endif /* GctUnpackCollections_h */