00001 #ifndef JetMETAnalyzer_H 00002 #define JetMETAnalyzer_H 00003 00004 00016 #include <memory> 00017 #include <fstream> 00018 #include "FWCore/Framework/interface/Frameworkfwd.h" 00019 #include "FWCore/Framework/interface/EDAnalyzer.h" 00020 #include "FWCore/Framework/interface/Event.h" 00021 #include "FWCore/Framework/interface/MakerMacros.h" 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 #include "FWCore/ServiceRegistry/interface/Service.h" 00024 #include "DQMServices/Core/interface/DQMStore.h" 00025 #include "DQMServices/Core/interface/MonitorElement.h" 00026 00027 #include "DataFormats/Common/interface/TriggerResults.h" 00028 #include "DataFormats/HLTReco/interface/TriggerEvent.h" 00029 #include "DataFormats/HLTReco/interface/TriggerObject.h" 00030 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" 00031 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" 00032 // 00033 #include "CommonTools/TriggerUtils/interface/GenericTriggerEventFlag.h" 00034 // 00035 #include "DQMOffline/JetMET/interface/JetAnalyzer.h" 00036 #include "DQMOffline/JetMET/interface/JetPtAnalyzer.h" 00037 #include "DQMOffline/JetMET/interface/PFJetAnalyzer.h" 00038 #include "DQMOffline/JetMET/interface/JPTJetAnalyzer.h" 00039 #include "DQMOffline/JetMET/interface/CaloMETAnalyzer.h" 00040 #include "DQMOffline/JetMET/interface/METAnalyzer.h" 00041 #include "DQMOffline/JetMET/interface/PFMETAnalyzer.h" 00042 #include "DQMOffline/JetMET/interface/HTMHTAnalyzer.h" 00043 00044 #include "DQMOffline/JetMET/interface/JetMETDQMDCSFilter.h" 00045 00046 #include "DataFormats/VertexReco/interface/Vertex.h" 00047 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00048 00049 #include "DataFormats/Scalers/interface/DcsStatus.h" 00050 00051 class JetMETAnalyzer : public edm::EDAnalyzer { 00052 public: 00053 00055 JetMETAnalyzer(const edm::ParameterSet&); 00056 00058 virtual ~JetMETAnalyzer(); 00059 00061 void beginJob(void); 00062 00064 void analyze(const edm::Event&, const edm::EventSetup&); 00065 00067 void endJob(void); 00068 00070 void beginRun(const edm::Run&, const edm::EventSetup&); 00071 00073 void endRun(const edm::Run&, const edm::EventSetup&); 00074 00075 00076 private: 00077 // ----------member data --------------------------- 00078 00079 DQMStore* dbe; 00080 edm::ParameterSet parameters; 00081 std::string metname; 00082 00083 edm::InputTag theCaloJetCollectionLabel; 00084 edm::InputTag theAKJetCollectionLabel; 00085 edm::InputTag theSCJetCollectionLabel; 00086 edm::InputTag theICJetCollectionLabel; 00087 edm::InputTag thePFJetCollectionLabel; 00088 edm::InputTag theJPTJetCollectionLabel; 00089 edm::InputTag theTriggerResultsLabel; 00090 00091 00092 //Cleaning parameters 00093 edm::ParameterSet theCleaningParameters; 00094 edm::InputTag _theVertexLabel; 00095 edm::InputTag _theGTLabel; 00096 std::string _hlt_PhysDec; 00097 00098 bool _hlt_initialized; 00099 00100 std::vector<unsigned > _techTrigsAND; 00101 std::vector<unsigned > _techTrigsOR; 00102 std::vector<unsigned > _techTrigsNOT; 00103 00104 bool _doPVCheck; 00105 bool _doHLTPhysicsOn; 00106 00107 bool _tightBHFiltering; 00108 00109 int _nvtx_min; 00110 int _vtxndof_min; 00111 int _nvtxtrks_min; 00112 double _vtxchi2_max; 00113 double _vtxz_max; 00114 // 00115 00116 int _LSBegin; 00117 int _LSEnd; 00118 00119 HLTConfigProvider hltConfig_; 00120 std::string processname_; 00121 00122 //MonitorElement* hltpathME; 00123 MonitorElement* lumisecME; 00124 MonitorElement* cleanupME; 00125 MonitorElement* verticesME; 00126 00127 GenericTriggerEventFlag * _HighPtJetEventFlag; 00128 GenericTriggerEventFlag * _LowPtJetEventFlag; 00129 00130 std::vector<std::string> highPtJetExpr_; 00131 std::vector<std::string> lowPtJetExpr_; 00132 00133 bool theJetAnalyzerFlag; 00134 bool theIConeJetAnalyzerFlag; 00135 bool theSConeJetAnalyzerFlag; 00136 bool theJetCleaningFlag; 00137 00138 bool theJetPtAnalyzerFlag; 00139 bool theJetPtCleaningFlag; 00140 00141 bool thePFJetAnalyzerFlag; 00142 bool thePFJetCleaningFlag; 00143 00144 bool theDiJetSelectionFlag; 00145 00146 bool theJPTJetAnalyzerFlag; 00147 bool theJPTJetCleaningFlag; 00148 00149 bool theCaloMETAnalyzerFlag; 00150 00151 bool theTcMETAnalyzerFlag; 00152 00153 bool theMuCorrMETAnalyzerFlag; 00154 00155 bool thePfMETAnalyzerFlag; 00156 00157 bool theHTMHTAnalyzerFlag; 00158 00159 // the jet analyzer 00160 JetAnalyzer * theJetAnalyzer; 00161 JetAnalyzer * theAKJetAnalyzer; 00162 JetAnalyzer * theSCJetAnalyzer; 00163 JetAnalyzer * theICJetAnalyzer; 00164 JetAnalyzer * theCleanedAKJetAnalyzer; 00165 JetAnalyzer * theCleanedSCJetAnalyzer; 00166 JetAnalyzer * theCleanedICJetAnalyzer; 00167 JetAnalyzer * theDiJetAnalyzer; 00168 00169 JPTJetAnalyzer * theJPTJetAnalyzer; 00170 JPTJetAnalyzer * theCleanedJPTJetAnalyzer; 00171 00172 PFJetAnalyzer * thePFJetAnalyzer; 00173 PFJetAnalyzer * theCleanedPFJetAnalyzer; 00174 PFJetAnalyzer * thePFDiJetAnalyzer; 00175 00176 JetPtAnalyzer * thePtAKJetAnalyzer; 00177 JetPtAnalyzer * thePtSCJetAnalyzer; 00178 JetPtAnalyzer * thePtICJetAnalyzer; 00179 JetPtAnalyzer * theCleanedPtAKJetAnalyzer; 00180 JetPtAnalyzer * theCleanedPtSCJetAnalyzer; 00181 JetPtAnalyzer * theCleanedPtICJetAnalyzer; 00182 00183 CaloMETAnalyzer * theCaloMETAnalyzer; 00184 //CaloMETAnalyzer * theCaloMETNoHFAnalyzer; 00185 //CaloMETAnalyzer * theCaloMETHOAnalyzer; 00186 //CaloMETAnalyzer * theCaloMETNoHFHOAnalyzer; 00187 CaloMETAnalyzer * theMuCorrMETAnalyzer; 00188 00189 METAnalyzer * theTcMETAnalyzer; 00190 00191 PFMETAnalyzer * thePfMETAnalyzer; 00192 00193 HTMHTAnalyzer * theHTMHTAnalyzer; 00194 00195 JetMETDQMDCSFilter * DCSFilterCalo; 00196 JetMETDQMDCSFilter * DCSFilterPF; 00197 JetMETDQMDCSFilter * DCSFilterJPT; 00198 JetMETDQMDCSFilter * DCSFilterAll; 00199 00200 }; 00201 #endif