CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/L1Trigger/GlobalTriggerAnalyzer/interface/L1RetrieveL1Extra.h

Go to the documentation of this file.
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 
00124     const bool validL1ExtraColl(const L1GtObject&) const;
00125 
00127     const edm::InputTag inputTagL1ExtraColl(const L1GtObject&) const;
00128 
00130 
00131     inline const l1extra::L1MuonParticleCollection* l1ExtraMuon() const {
00132         return m_l1ExtraMuon;
00133     }
00134 
00135     inline const l1extra::L1EmParticleCollection* l1ExtraIsoEG() const {
00136         return m_l1ExtraIsoEG;
00137     }
00138     inline const l1extra::L1EmParticleCollection* l1ExtraNoIsoEG() const {
00139         return m_l1ExtraNoIsoEG;
00140     }
00141 
00142     inline const l1extra::L1JetParticleCollection* l1ExtraCenJet() const {
00143         return m_l1ExtraCenJet;
00144     }
00145     inline const l1extra::L1JetParticleCollection* l1ExtraForJet() const {
00146         return m_l1ExtraForJet;
00147     }
00148     inline const l1extra::L1JetParticleCollection* l1ExtraTauJet() const {
00149         return m_l1ExtraTauJet;
00150     }
00151 
00152     inline const l1extra::L1EtMissParticleCollection* l1ExtraETT() const {
00153         return m_l1ExtraETT;
00154     }
00155     inline const l1extra::L1EtMissParticleCollection* l1ExtraETM() const {
00156         return m_l1ExtraETM;
00157     }
00158     inline const l1extra::L1EtMissParticleCollection* l1ExtraHTT() const {
00159         return m_l1ExtraHTT;
00160     }
00161     inline const l1extra::L1EtMissParticleCollection* l1ExtraHTM() const {
00162         return m_l1ExtraHTM;
00163     }
00164 
00165     inline const l1extra::L1HFRingsCollection* l1ExtraHfBitCounts() const {
00166         return m_l1ExtraHfBitCounts;
00167     }
00168     inline const l1extra::L1HFRingsCollection* l1ExtraHfRingEtSums() const {
00169         return m_l1ExtraHfRingEtSums;
00170     }
00171 
00174     void retrieveL1ExtraObjects(const edm::Event&, const edm::EventSetup&);
00175 
00178 
00184     void printL1Extra(std::ostream& oStr, const L1GtObject& gtObject,
00185             const bool checkBxInEvent, const int bxInEvent,
00186             const bool checkObjIndexInColl, const int objIndexInColl) const;
00187 
00189     void printL1Extra(std::ostream&, const L1GtObject&, const int bxInEvent) const;
00190 
00192     void printL1Extra(std::ostream&, const L1GtObject&) const;
00193 
00195     void printL1Extra(std::ostream&, const int bxInEvent) const;
00196 
00198     void printL1Extra(std::ostream&) const;
00199 
00200 private:
00201 
00203 
00205 
00206     edm::InputTag m_tagL1ExtraMuon;
00207 
00208     edm::InputTag m_tagL1ExtraIsoEG;
00209     edm::InputTag m_tagL1ExtraNoIsoEG;
00210 
00211     edm::InputTag m_tagL1ExtraCenJet;
00212     edm::InputTag m_tagL1ExtraForJet;
00213     edm::InputTag m_tagL1ExtraTauJet;
00214 
00215     edm::InputTag m_tagL1ExtraEtMissMET;
00216     edm::InputTag m_tagL1ExtraEtMissHTM;
00217 
00218     edm::InputTag m_tagL1ExtraHFRings;
00219 
00220     int m_nrBxInEventGmt;
00221     int m_nrBxInEventGct;
00222 
00224 
00225     bool m_validL1ExtraMuon;
00226 
00227     bool m_validL1ExtraIsoEG;
00228     bool m_validL1ExtraNoIsoEG;
00229 
00230     bool m_validL1ExtraCenJet;
00231     bool m_validL1ExtraForJet;
00232     bool m_validL1ExtraTauJet;
00233 
00234     bool m_validL1ExtraETT;
00235     bool m_validL1ExtraETM;
00236     bool m_validL1ExtraHTT;
00237     bool m_validL1ExtraHTM;
00238 
00239     bool m_validL1ExtraHfBitCounts;
00240     bool m_validL1ExtraHfRingEtSums;
00241 
00243 
00244     const l1extra::L1MuonParticleCollection* m_l1ExtraMuon;
00245 
00246     const l1extra::L1EmParticleCollection* m_l1ExtraIsoEG;
00247     const l1extra::L1EmParticleCollection* m_l1ExtraNoIsoEG;
00248 
00249     const l1extra::L1JetParticleCollection* m_l1ExtraCenJet;
00250     const l1extra::L1JetParticleCollection* m_l1ExtraForJet;
00251     const l1extra::L1JetParticleCollection* m_l1ExtraTauJet;
00252 
00253     const l1extra::L1EtMissParticleCollection* m_l1ExtraETT;
00254     const l1extra::L1EtMissParticleCollection* m_l1ExtraETM;
00255     const l1extra::L1EtMissParticleCollection* m_l1ExtraHTT;
00256     const l1extra::L1EtMissParticleCollection* m_l1ExtraHTM;
00257 
00258     const l1extra::L1HFRingsCollection* m_l1ExtraHfBitCounts;
00259     const l1extra::L1HFRingsCollection* m_l1ExtraHfRingEtSums;
00260 
00261 };
00262 
00263 #endif