00001 #ifndef L1Trigger_GlobalTriggerAnalyzer_L1RetrieveL1Extra_h 00002 #define L1Trigger_GlobalTriggerAnalyzer_L1RetrieveL1Extra_h 00003 00020 // system include files 00021 #include <iosfwd> 00022 #include <memory> 00023 #include <vector> 00024 #include <string> 00025 00026 // user include files 00027 // base classes 00028 00029 // 00030 #include "FWCore/Framework/interface/Frameworkfwd.h" 00031 #include "FWCore/ServiceRegistry/interface/Service.h" 00032 00033 #include "FWCore/Framework/interface/Event.h" 00034 #include "FWCore/Framework/interface/Run.h" 00035 #include "FWCore/Framework/interface/EventSetup.h" 00036 00037 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00038 #include "FWCore/Utilities/interface/InputTag.h" 00039 00040 // L1Extra objects 00041 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h" 00042 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h" 00043 #include "DataFormats/L1Trigger/interface/L1EmParticle.h" 00044 #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h" 00045 #include "DataFormats/L1Trigger/interface/L1JetParticle.h" 00046 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" 00047 #include "DataFormats/L1Trigger/interface/L1EtMissParticle.h" 00048 #include "DataFormats/L1Trigger/interface/L1EtMissParticleFwd.h" 00049 #include "DataFormats/L1Trigger/interface/L1HFRings.h" 00050 #include "DataFormats/L1Trigger/interface/L1HFRingsFwd.h" 00051 00052 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" 00053 00054 // forward declarations 00055 00056 00057 // class declaration 00058 class L1RetrieveL1Extra { 00059 00060 public: 00061 00062 // constructor(s) 00063 explicit L1RetrieveL1Extra(const edm::ParameterSet&); 00064 00065 // destructor 00066 virtual ~L1RetrieveL1Extra(); 00067 00068 public: 00069 00071 00072 inline const bool validL1ExtraMuon() const { 00073 return m_validL1ExtraMuon; 00074 } 00075 00076 // 00077 inline const bool validL1ExtraIsoEG() const { 00078 return m_validL1ExtraIsoEG; 00079 } 00080 00081 inline const bool validL1ExtraNoIsoEG() const { 00082 return m_validL1ExtraNoIsoEG; 00083 } 00084 00085 // 00086 inline const bool validL1ExtraCenJet() const { 00087 return m_validL1ExtraCenJet; 00088 } 00089 00090 inline const bool validL1ExtraForJet() const { 00091 return m_validL1ExtraForJet; 00092 } 00093 00094 inline const bool validL1ExtraTauJet() const { 00095 return m_validL1ExtraTauJet; 00096 } 00097 00098 // 00099 inline const bool validL1ExtraETT() const { 00100 return m_validL1ExtraETT; 00101 } 00102 00103 inline const bool validL1ExtraETM() const { 00104 return m_validL1ExtraETM; 00105 } 00106 00107 inline const bool validL1ExtraHTT() const { 00108 return m_validL1ExtraHTT; 00109 } 00110 00111 inline const bool validL1ExtraHTM() const { 00112 return m_validL1ExtraHTM; 00113 } 00114 00115 // 00116 inline const bool validL1ExtraHfBitCounts() const { 00117 return m_validL1ExtraHfBitCounts; 00118 } 00119 00120 inline const bool validL1ExtraHfRingEtSums() const { 00121 return m_validL1ExtraHfRingEtSums; 00122 } 00123 00125 00126 inline const l1extra::L1MuonParticleCollection* l1ExtraMuon() const { 00127 return m_l1ExtraMuon; 00128 } 00129 00130 inline const l1extra::L1EmParticleCollection* l1ExtraIsoEG() const { 00131 return m_l1ExtraIsoEG; 00132 } 00133 inline const l1extra::L1EmParticleCollection* l1ExtraNoIsoEG() const { 00134 return m_l1ExtraNoIsoEG; 00135 } 00136 00137 inline const l1extra::L1JetParticleCollection* l1ExtraCenJet() const { 00138 return m_l1ExtraCenJet; 00139 } 00140 inline const l1extra::L1JetParticleCollection* l1ExtraForJet() const { 00141 return m_l1ExtraForJet; 00142 } 00143 inline const l1extra::L1JetParticleCollection* l1ExtraTauJet() const { 00144 return m_l1ExtraTauJet; 00145 } 00146 00147 inline const l1extra::L1EtMissParticleCollection* l1ExtraETT() const { 00148 return m_l1ExtraETT; 00149 } 00150 inline const l1extra::L1EtMissParticleCollection* l1ExtraETM() const { 00151 return m_l1ExtraETM; 00152 } 00153 inline const l1extra::L1EtMissParticleCollection* l1ExtraHTT() const { 00154 return m_l1ExtraHTT; 00155 } 00156 inline const l1extra::L1EtMissParticleCollection* l1ExtraHTM() const { 00157 return m_l1ExtraHTM; 00158 } 00159 00160 inline const l1extra::L1HFRingsCollection* l1ExtraHfBitCounts() const { 00161 return m_l1ExtraHfBitCounts; 00162 } 00163 inline const l1extra::L1HFRingsCollection* l1ExtraHfRingEtSums() const { 00164 return m_l1ExtraHfRingEtSums; 00165 } 00166 00169 void retrieveL1ExtraObjects(const edm::Event&, const edm::EventSetup&); 00170 00171 private: 00172 00174 00176 00177 edm::InputTag m_tagL1ExtraMuon; 00178 00179 edm::InputTag m_tagL1ExtraIsoEG; 00180 edm::InputTag m_tagL1ExtraNoIsoEG; 00181 00182 edm::InputTag m_tagL1ExtraCenJet; 00183 edm::InputTag m_tagL1ExtraForJet; 00184 edm::InputTag m_tagL1ExtraTauJet; 00185 00186 edm::InputTag m_tagL1ExtraEtMissMET; 00187 edm::InputTag m_tagL1ExtraEtMissHTM; 00188 00189 edm::InputTag m_tagL1ExtraHFRings; 00190 00191 int m_nrBxInEventGmt; 00192 int m_nrBxInEventGct; 00193 00195 00196 bool m_validL1ExtraMuon; 00197 00198 bool m_validL1ExtraIsoEG; 00199 bool m_validL1ExtraNoIsoEG; 00200 00201 bool m_validL1ExtraCenJet; 00202 bool m_validL1ExtraForJet; 00203 bool m_validL1ExtraTauJet; 00204 00205 bool m_validL1ExtraETT; 00206 bool m_validL1ExtraETM; 00207 bool m_validL1ExtraHTT; 00208 bool m_validL1ExtraHTM; 00209 00210 bool m_validL1ExtraHfBitCounts; 00211 bool m_validL1ExtraHfRingEtSums; 00212 00214 00215 const l1extra::L1MuonParticleCollection* m_l1ExtraMuon; 00216 00217 const l1extra::L1EmParticleCollection* m_l1ExtraIsoEG; 00218 const l1extra::L1EmParticleCollection* m_l1ExtraNoIsoEG; 00219 00220 const l1extra::L1JetParticleCollection* m_l1ExtraCenJet; 00221 const l1extra::L1JetParticleCollection* m_l1ExtraForJet; 00222 const l1extra::L1JetParticleCollection* m_l1ExtraTauJet; 00223 00224 const l1extra::L1EtMissParticleCollection* m_l1ExtraETT; 00225 const l1extra::L1EtMissParticleCollection* m_l1ExtraETM; 00226 const l1extra::L1EtMissParticleCollection* m_l1ExtraHTT; 00227 const l1extra::L1EtMissParticleCollection* m_l1ExtraHTM; 00228 00229 const l1extra::L1HFRingsCollection* m_l1ExtraHfBitCounts; 00230 const l1extra::L1HFRingsCollection* m_l1ExtraHfRingEtSums; 00231 00232 }; 00233 00234 #endif