CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/EventFilter/GctRawToDigi/src/GctUnpackCollections.cc

Go to the documentation of this file.
00001 #include "EventFilter/GctRawToDigi/src/GctUnpackCollections.h"
00002 
00003 
00004 GctUnpackCollections::GctUnpackCollections(edm::Event& event):
00005   m_event(event),
00006   m_gctFibres(new L1GctFibreCollection()),  // GCT input collections
00007   m_rctEm(new L1CaloEmCollection()),
00008   m_rctCalo(new L1CaloRegionCollection()),
00009   m_gctInternEm(new L1GctInternEmCandCollection()),  // GCT internal collections
00010   m_gctInternJets(new L1GctInternJetDataCollection()),
00011   m_gctInternEtSums(new L1GctInternEtSumCollection()),
00012   m_gctInternHFData(new L1GctInternHFDataCollection()),
00013   m_gctInternHtMiss(new L1GctInternHtMissCollection()),
00014   m_gctIsoEm(new L1GctEmCandCollection()),  // GCT output collections
00015   m_gctNonIsoEm(new L1GctEmCandCollection()),
00016   m_gctCenJets(new L1GctJetCandCollection()),
00017   m_gctForJets(new L1GctJetCandCollection()),
00018   m_gctTauJets(new L1GctJetCandCollection()),
00019   m_gctHfBitCounts(new L1GctHFBitCountsCollection()),
00020   m_gctHfRingEtSums(new L1GctHFRingEtSumsCollection()),
00021   m_gctEtTot(new L1GctEtTotalCollection()),
00022   m_gctEtHad(new L1GctEtHadCollection()),
00023   m_gctEtMiss(new L1GctEtMissCollection()),
00024   m_gctHtMiss(new L1GctHtMissCollection()),
00025   m_gctJetCounts(new L1GctJetCountsCollection()),  // Deprecated (empty collection still needed by GT)
00026   m_errors(new L1TriggerErrorCollection())  // Misc
00027 {
00028   m_gctIsoEm->reserve(4);
00029   m_gctCenJets->reserve(4);
00030   m_gctForJets->reserve(4);
00031   m_gctTauJets->reserve(4);
00032   // ** DON'T RESERVE SPACE IN VECTORS FOR DEBUG UNPACK ITEMS! **
00033 }
00034 
00035 GctUnpackCollections::~GctUnpackCollections()
00036 {
00037   // GCT input collections
00038   m_event.put(m_gctFibres);
00039   m_event.put(m_rctEm);
00040   m_event.put(m_rctCalo);
00041 
00042   // GCT internal collections
00043   m_event.put(m_gctInternEm);
00044   m_event.put(m_gctInternJets);
00045   m_event.put(m_gctInternEtSums);
00046   m_event.put(m_gctInternHFData);
00047   m_event.put(m_gctInternHtMiss);
00048 
00049   // GCT output collections
00050   m_event.put(m_gctIsoEm, "isoEm");
00051   m_event.put(m_gctNonIsoEm, "nonIsoEm");
00052   m_event.put(m_gctCenJets,"cenJets");
00053   m_event.put(m_gctForJets,"forJets");
00054   m_event.put(m_gctTauJets,"tauJets");
00055   m_event.put(m_gctHfBitCounts);
00056   m_event.put(m_gctHfRingEtSums);
00057   m_event.put(m_gctEtTot);
00058   m_event.put(m_gctEtHad);
00059   m_event.put(m_gctEtMiss);
00060   m_event.put(m_gctHtMiss);
00061   m_event.put(m_gctJetCounts);  // Deprecated (empty collection still needed by GT)
00062   
00063   // Misc
00064   m_event.put(m_errors);
00065 }
00066 
00067 std::ostream& operator<<(std::ostream& os, const GctUnpackCollections& rhs)
00068 {
00069      // GCT input collections
00070   os << "Read " << rhs.gctFibres()->size() << " GCT raw fibre data\n"
00071      << "Read " << rhs.rctEm()->size() << " RCT EM candidates\n"
00072      << "Read " << rhs.rctCalo()->size() << " RCT Calo Regions\n"
00073 
00074      // GCT internal collections
00075      << "Read " << rhs.gctInternEm()->size() << " GCT intermediate EM candidates\n"
00076      << "Read " << rhs.gctInternJets()->size() << " GCT intermediate jet candidates\n"
00077      << "Read " << rhs.gctInternEtSums()->size() << " GCT intermediate et sums\n"
00078      << "Read " << rhs.gctInternHFData()->size() << " GCT intermediate HF data\n"
00079      << "Read " << rhs.gctInternHtMiss()->size() << " GCT intermediate Missing Ht\n"
00080 
00081      // GCT output collections
00082      << "Read " << rhs.gctIsoEm()->size() << " GCT iso EM candidates\n"
00083      << "Read " << rhs.gctNonIsoEm()->size() << " GCT non-iso EM candidates\n"
00084      << "Read " << rhs.gctCenJets()->size() << " GCT central jet candidates\n"
00085      << "Read " << rhs.gctForJets()->size() << " GCT forward jet candidates\n"
00086      << "Read " << rhs.gctTauJets()->size() << " GCT tau jet candidates\n"
00087      << "Read " << rhs.gctHfBitCounts()->size() << " GCT HF ring bit counts\n"
00088      << "Read " << rhs.gctHfRingEtSums()->size() << " GCT HF ring et sums\n"
00089      << "Read " << rhs.gctEtTot()->size() << " GCT total et\n"
00090      << "Read " << rhs.gctEtHad()->size() << " GCT ht\n"
00091      << "Read " << rhs.gctEtMiss()->size() << " GCT met\n"
00092      << "Read " << rhs.gctHtMiss()->size() << " GCT mht";
00093      
00094      // Any point in putting in an m_errors()->size()? Not sure.
00095 
00096   return os;
00097 }