Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:41

0001 #include "EventFilter/GctRawToDigi/src/GctUnpackCollections.h"
0002 
0003 GctUnpackCollections::GctUnpackCollections(edm::Event& event)
0004     : m_event(event),
0005       m_gctFibres(new L1GctFibreCollection()),  // GCT input collections
0006       m_rctEm(new L1CaloEmCollection()),
0007       m_rctCalo(new L1CaloRegionCollection()),
0008       m_gctInternEm(new L1GctInternEmCandCollection()),  // GCT internal collections
0009       m_gctInternJets(new L1GctInternJetDataCollection()),
0010       m_gctInternEtSums(new L1GctInternEtSumCollection()),
0011       m_gctInternHFData(new L1GctInternHFDataCollection()),
0012       m_gctInternHtMiss(new L1GctInternHtMissCollection()),
0013       m_gctIsoEm(new L1GctEmCandCollection()),  // GCT output collections
0014       m_gctNonIsoEm(new L1GctEmCandCollection()),
0015       m_gctCenJets(new L1GctJetCandCollection()),
0016       m_gctForJets(new L1GctJetCandCollection()),
0017       m_gctTauJets(new L1GctJetCandCollection()),
0018       m_gctHfBitCounts(new L1GctHFBitCountsCollection()),
0019       m_gctHfRingEtSums(new L1GctHFRingEtSumsCollection()),
0020       m_gctEtTot(new L1GctEtTotalCollection()),
0021       m_gctEtHad(new L1GctEtHadCollection()),
0022       m_gctEtMiss(new L1GctEtMissCollection()),
0023       m_gctHtMiss(new L1GctHtMissCollection()),
0024       m_gctJetCounts(new L1GctJetCountsCollection()),  // Deprecated (empty collection still needed by GT)
0025       m_errors(new L1TriggerErrorCollection())         // Misc
0026 {
0027   m_gctIsoEm->reserve(4);
0028   m_gctCenJets->reserve(4);
0029   m_gctForJets->reserve(4);
0030   m_gctTauJets->reserve(4);
0031   // ** DON'T RESERVE SPACE IN VECTORS FOR DEBUG UNPACK ITEMS! **
0032 }
0033 
0034 GctUnpackCollections::~GctUnpackCollections() {
0035   // GCT input collections
0036   m_event.put(std::move(m_gctFibres));
0037   m_event.put(std::move(m_rctEm));
0038   m_event.put(std::move(m_rctCalo));
0039 
0040   // GCT internal collections
0041   m_event.put(std::move(m_gctInternEm));
0042   m_event.put(std::move(m_gctInternJets));
0043   m_event.put(std::move(m_gctInternEtSums));
0044   m_event.put(std::move(m_gctInternHFData));
0045   m_event.put(std::move(m_gctInternHtMiss));
0046 
0047   // GCT output collections
0048   m_event.put(std::move(m_gctIsoEm), "isoEm");
0049   m_event.put(std::move(m_gctNonIsoEm), "nonIsoEm");
0050   m_event.put(std::move(m_gctCenJets), "cenJets");
0051   m_event.put(std::move(m_gctForJets), "forJets");
0052   m_event.put(std::move(m_gctTauJets), "tauJets");
0053   m_event.put(std::move(m_gctHfBitCounts));
0054   m_event.put(std::move(m_gctHfRingEtSums));
0055   m_event.put(std::move(m_gctEtTot));
0056   m_event.put(std::move(m_gctEtHad));
0057   m_event.put(std::move(m_gctEtMiss));
0058   m_event.put(std::move(m_gctHtMiss));
0059   m_event.put(std::move(m_gctJetCounts));  // Deprecated (empty collection still needed by GT)
0060 
0061   // Misc
0062   m_event.put(std::move(m_errors));
0063 }
0064 
0065 std::ostream& operator<<(std::ostream& os, const GctUnpackCollections& rhs) {
0066   // GCT input collections
0067   os << "Read " << rhs.gctFibres()->size() << " GCT raw fibre data\n"
0068      << "Read " << rhs.rctEm()->size() << " RCT EM candidates\n"
0069      << "Read " << rhs.rctCalo()->size()
0070      << " RCT Calo Regions\n"
0071 
0072      // GCT internal collections
0073      << "Read " << rhs.gctInternEm()->size() << " GCT intermediate EM candidates\n"
0074      << "Read " << rhs.gctInternJets()->size() << " GCT intermediate jet candidates\n"
0075      << "Read " << rhs.gctInternEtSums()->size() << " GCT intermediate et sums\n"
0076      << "Read " << rhs.gctInternHFData()->size() << " GCT intermediate HF data\n"
0077      << "Read " << rhs.gctInternHtMiss()->size()
0078      << " GCT intermediate Missing Ht\n"
0079 
0080      // GCT output collections
0081      << "Read " << rhs.gctIsoEm()->size() << " GCT iso EM candidates\n"
0082      << "Read " << rhs.gctNonIsoEm()->size() << " GCT non-iso EM candidates\n"
0083      << "Read " << rhs.gctCenJets()->size() << " GCT central jet candidates\n"
0084      << "Read " << rhs.gctForJets()->size() << " GCT forward jet candidates\n"
0085      << "Read " << rhs.gctTauJets()->size() << " GCT tau jet candidates\n"
0086      << "Read " << rhs.gctHfBitCounts()->size() << " GCT HF ring bit counts\n"
0087      << "Read " << rhs.gctHfRingEtSums()->size() << " GCT HF ring et sums\n"
0088      << "Read " << rhs.gctEtTot()->size() << " GCT total et\n"
0089      << "Read " << rhs.gctEtHad()->size() << " GCT ht\n"
0090      << "Read " << rhs.gctEtMiss()->size() << " GCT met\n"
0091      << "Read " << rhs.gctHtMiss()->size() << " GCT mht";
0092 
0093   // Any point in putting in an m_errors()->size()? Not sure.
0094 
0095   return os;
0096 }