00001
00002
00003
00004
00005
00006
00007
00008 #ifndef JetMETHLTOfflineSource_H
00009 #define JetMETHLTOfflineSource_H
00010
00011
00012 #include <memory>
00013 #include <unistd.h>
00014
00015
00016
00017 #include "FWCore/Framework/interface/Frameworkfwd.h"
00018 #include "FWCore/Framework/interface/EDAnalyzer.h"
00019
00020 #include "FWCore/Framework/interface/Event.h"
00021 #include "FWCore/Framework/interface/MakerMacros.h"
00022
00023 #include "DataFormats/Common/interface/TriggerResults.h"
00024 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00025 #include "DataFormats/HLTReco/interface/TriggerObject.h"
00026 #include "FWCore/Common/interface/TriggerNames.h"
00027 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00028 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00029 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
00030
00031 #include "DQMServices/Core/interface/DQMStore.h"
00032 #include "DQMServices/Core/interface/MonitorElement.h"
00033 #include "FWCore/ServiceRegistry/interface/Service.h"
00034 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00035 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00036 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00037 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00038 #include "DataFormats/METReco/interface/CaloMET.h"
00039
00040 #include <iostream>
00041 #include <fstream>
00042 #include <vector>
00043
00044 class PtSorter {
00045 public:
00046 template <class T> bool operator() ( const T& a, const T& b ) {
00047 return ( a.pt() > b.pt() );
00048 }
00049 };
00050
00051 class JetMETHLTOfflineSource : public edm::EDAnalyzer {
00052 public:
00053 explicit JetMETHLTOfflineSource(const edm::ParameterSet&);
00054 ~JetMETHLTOfflineSource();
00055
00056
00057 private:
00058 virtual void beginJob() ;
00059 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00060 virtual void endJob() ;
00061
00062
00063 void beginRun(const edm::Run& run, const edm::EventSetup& c);
00064
00065 void histobooking( const edm::EventSetup& c);
00066
00067
00068 void endRun(const edm::Run& run, const edm::EventSetup& c);
00069
00070
00071 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00072 const edm::EventSetup& c) ;
00073
00075 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00076 const edm::EventSetup& c);
00077
00078 virtual bool isBarrel(double eta);
00079 virtual bool isEndCap(double eta);
00080 virtual bool isForward(double eta);
00081 virtual bool validPathHLT(std::string path);
00082 virtual bool isHLTPathAccepted(std::string pathName);
00083 virtual bool isTriggerObjectFound(std::string objectName);
00084 virtual double TriggerPosition(std::string trigName);
00085 virtual void fillMEforMonTriggerSummary();
00086 virtual void fillMEforMonAllTrigger(const edm::Event & iEvent);
00087 virtual void fillMEforMonAllTriggerwrtMuonTrigger(const edm::Event & iEvent);
00088
00089 virtual void fillMEforEffAllTrigger(const edm::Event & iEvent);
00090 virtual void fillMEforEffWrtMuTrigger(const edm::Event & iEvent);
00091 virtual void fillMEforEffWrtMBTrigger(const edm::Event & iEvent);
00092 virtual void fillMEforTriggerNTfired();
00093
00094 int nev_;
00095 DQMStore * dbe;
00096
00097 MonitorElement* total_;
00098
00099
00100 std::vector<std::string> MuonTrigPaths_;
00101 std::vector<std::string> MBTrigPaths_;
00102 std::vector<int> prescUsed_;
00103
00104
00105 std::string dirname_;
00106 std::string processname_;
00107
00108 reco::helper::JetIDHelper *jetID;
00109
00110 bool verbose_;
00111 bool plotAll_;
00112 bool plotAllwrtMu_;
00113 bool plotEff_ ;
00114 bool isSetup_;
00115 bool nameForEff_;
00116
00117 double _fEMF;
00118 double _feta;
00119 double _fHPD;
00120 double _n90Hits;
00121 edm::InputTag triggerSummaryLabel_;
00122 edm::InputTag triggerResultsLabel_;
00123 edm::InputTag caloJetsTag_;
00124 edm::InputTag caloMETTag_;
00125 edm::Handle<reco::CaloJetCollection> calojetColl_;
00126 edm::Handle<reco::CaloMETCollection> calometColl_;
00127 std::vector<std::string> custompathname;
00128 std::vector<std::pair<std::string, std::string> > custompathnamepairs_;
00129
00130 reco::CaloJetCollection calojet;
00131 HLTConfigProvider hltConfig_;
00132 edm::Handle<edm::TriggerResults> triggerResults_;
00133 edm::TriggerNames triggerNames_;
00134 edm::Handle<trigger::TriggerEvent> triggerObj_;
00135
00136 MonitorElement* scalersSelect;
00137
00138
00139 class PathInfo {
00140 PathInfo():
00141 pathIndex_(-1), prescaleUsed_(-1),denomPathName_("unset"), pathName_("unset"), l1pathName_("unset"), filterName_("unset"), DenomfilterName_("unset"), processName_("unset"), objectType_(-1), triggerType_("unset")
00142 {};
00143 public:
00144 void setHistos(
00145 MonitorElement* const N,
00146 MonitorElement* const Pt,
00147 MonitorElement* const PtBarrel,
00148 MonitorElement* const PtEndcap,
00149 MonitorElement* const PtForward,
00150 MonitorElement* const Eta,
00151 MonitorElement* const Phi,
00152 MonitorElement* const EtaPhi,
00153 MonitorElement* const N_L1,
00154 MonitorElement* const Pt_L1,
00155 MonitorElement* const PtBarrel_L1,
00156 MonitorElement* const PtEndcap_L1,
00157 MonitorElement* const PtForward_L1,
00158 MonitorElement* const Eta_L1,
00159 MonitorElement* const Phi_L1,
00160 MonitorElement* const EtaPhi_L1,
00161 MonitorElement* const N_HLT,
00162 MonitorElement* const Pt_HLT,
00163 MonitorElement* const PtBarrel_HLT,
00164 MonitorElement* const PtEndcap_HLT,
00165 MonitorElement* const PtForward_HLT,
00166 MonitorElement* const Eta_HLT,
00167 MonitorElement* const Phi_HLT,
00168 MonitorElement* const EtaPhi_HLT,
00169
00170 MonitorElement* const PtResolution_L1HLT,
00171 MonitorElement* const EtaResolution_L1HLT,
00172 MonitorElement* const PhiResolution_L1HLT,
00173 MonitorElement* const PtResolution_HLTRecObj,
00174 MonitorElement* const EtaResolution_HLTRecObj,
00175 MonitorElement* const PhiResolution_HLTRecObj,
00176
00177 MonitorElement* const PtCorrelation_L1HLT,
00178 MonitorElement* const EtaCorrelation_L1HLT,
00179 MonitorElement* const PhiCorrelation_L1HLT,
00180 MonitorElement* const PtCorrelation_HLTRecObj,
00181 MonitorElement* const EtaCorrelation_HLTRecObj,
00182 MonitorElement* const PhiCorrelation_HLTRecObj,
00183
00184 MonitorElement* const JetAveragePt,
00185 MonitorElement* const JetAverageEta,
00186 MonitorElement* const JetPhiDifference,
00187 MonitorElement* const HLTAveragePt,
00188 MonitorElement* const HLTAverageEta,
00189 MonitorElement* const HLTPhiDifference,
00190 MonitorElement* const L1AveragePt,
00191 MonitorElement* const L1AverageEta,
00192 MonitorElement* const L1PhiDifference
00193 )
00194
00195 {
00196 N_ =N;
00197 Pt_ =Pt;
00198 PtBarrel_ =PtBarrel;
00199 PtEndcap_ =PtEndcap;
00200 PtForward_ =PtForward;
00201 Eta_ =Eta;
00202 Phi_ =Phi;
00203 EtaPhi_ =EtaPhi;
00204 N_L1_ =N_L1;
00205 Pt_L1_ =Pt_L1;
00206 PtBarrel_L1_ =PtBarrel_L1;
00207 PtEndcap_L1_ =PtEndcap_L1;
00208 PtForward_L1_ =PtForward_L1;
00209 Eta_L1_ =Eta_L1;
00210 Phi_L1_ =Phi_L1;
00211 EtaPhi_L1_ =EtaPhi_L1 ;
00212 N_HLT_ =N_HLT;
00213 Pt_HLT_ =Pt_HLT;
00214 PtBarrel_HLT_ =PtBarrel_HLT;
00215 PtEndcap_HLT_ =PtEndcap_HLT;
00216 PtForward_HLT_ =PtForward_HLT;
00217 Eta_HLT_ =Eta_HLT;
00218 Phi_HLT_ =Phi_HLT;
00219 EtaPhi_HLT_ =EtaPhi_HLT ;
00220
00221 PtResolution_L1HLT_ =PtResolution_L1HLT;
00222 EtaResolution_L1HLT_ =EtaResolution_L1HLT;
00223 PhiResolution_L1HLT_ =PhiResolution_L1HLT;
00224 PtResolution_HLTRecObj_ =PtResolution_HLTRecObj;
00225 EtaResolution_HLTRecObj_=EtaResolution_HLTRecObj;
00226 PhiResolution_HLTRecObj_=PhiResolution_HLTRecObj;
00227
00228 PtCorrelation_L1HLT_ =PtCorrelation_L1HLT;
00229 EtaCorrelation_L1HLT_ =EtaCorrelation_L1HLT;
00230 PhiCorrelation_L1HLT_ =PhiCorrelation_L1HLT;
00231 PtCorrelation_HLTRecObj_ =PtCorrelation_HLTRecObj;
00232 EtaCorrelation_HLTRecObj_=EtaCorrelation_HLTRecObj;
00233 PhiCorrelation_HLTRecObj_=PhiCorrelation_HLTRecObj;
00234
00235 JetAveragePt_ = JetAveragePt;
00236 JetAverageEta_ = JetAverageEta;
00237 JetPhiDifference_ = JetPhiDifference;
00238 HLTAveragePt_ = HLTAveragePt;
00239 HLTAverageEta_ = HLTAverageEta;
00240 HLTPhiDifference_ = HLTPhiDifference;
00241 L1AveragePt_ = L1AveragePt;
00242 L1AverageEta_ = L1AverageEta;
00243 L1PhiDifference_ = L1PhiDifference;
00244
00245
00246 };
00247 void setDgnsHistos(
00248 MonitorElement* const TriggerSummary,
00249 MonitorElement* const JetSize,
00250 MonitorElement* const JetPt,
00251 MonitorElement* const EtavsPt,
00252 MonitorElement* const PhivsPt,
00253 MonitorElement* const Pt12,
00254 MonitorElement* const Eta12,
00255 MonitorElement* const Phi12,
00256 MonitorElement* const Pt3,
00257 MonitorElement* const Pt12Pt3,
00258 MonitorElement* const Pt12Phi12
00259
00260 )
00261 {
00262 TriggerSummary_ = TriggerSummary;
00263 JetSize_ = JetSize;
00264 JetPt_ = JetPt;
00265 EtavsPt_ = EtavsPt;
00266 PhivsPt_ = PhivsPt;
00267 Pt12_ = Pt12;
00268 Eta12_ = Eta12;
00269 Phi12_ = Phi12;
00270 Pt3_ = Pt3;
00271 Pt12Pt3_ = Pt12Pt3;
00272 Pt12Phi12_ = Pt12Phi12;
00273
00274 };
00275 void setEffHistos(
00276 MonitorElement* const NumeratorPt,
00277 MonitorElement* const NumeratorPtBarrel,
00278 MonitorElement* const NumeratorPtEndcap,
00279 MonitorElement* const NumeratorPtForward,
00280 MonitorElement* const NumeratorEta,
00281 MonitorElement* const NumeratorPhi,
00282 MonitorElement* const NumeratorEtaPhi,
00283 MonitorElement* const DenominatorPt,
00284 MonitorElement* const DenominatorPtBarrel,
00285 MonitorElement* const DenominatorPtEndcap,
00286 MonitorElement* const DenominatorPtForward,
00287 MonitorElement* const DenominatorEta,
00288 MonitorElement* const DenominatorPhi,
00289 MonitorElement* const DenominatorEtaPhi
00290
00291 )
00292 {
00293 NumeratorPt_ =NumeratorPt;
00294 NumeratorPtBarrel_ =NumeratorPtBarrel;
00295 NumeratorPtEndcap_ =NumeratorPtEndcap;
00296 NumeratorPtForward_ =NumeratorPtForward;
00297 NumeratorEta_ =NumeratorEta;
00298 NumeratorPhi_ =NumeratorPhi;
00299 NumeratorEtaPhi_ =NumeratorEtaPhi;
00300 DenominatorPt_ =DenominatorPt;
00301 DenominatorPtBarrel_ =DenominatorPtBarrel;
00302 DenominatorPtEndcap_ =DenominatorPtEndcap;
00303 DenominatorPtForward_ =DenominatorPtForward;
00304 DenominatorEta_ =DenominatorEta;
00305 DenominatorPhi_ =DenominatorPhi;
00306 DenominatorEtaPhi_ =DenominatorEtaPhi;
00307
00308
00309 };
00310 ~PathInfo() {};
00311 PathInfo(int prescaleUsed, std::string denomPathName, std::string pathName, std::string l1pathName, std::string filterName, std::string DenomfilterName, std::string processName, size_t type, std::string triggerType):
00312 prescaleUsed_(prescaleUsed),denomPathName_(denomPathName), pathName_(pathName), l1pathName_(l1pathName), filterName_(filterName), DenomfilterName_(DenomfilterName), processName_(processName), objectType_(type), triggerType_(triggerType){};
00313
00314 MonitorElement * getMEhisto_N() { return N_;}
00315 MonitorElement * getMEhisto_Pt() { return Pt_;}
00316 MonitorElement * getMEhisto_PtBarrel() { return PtBarrel_;}
00317 MonitorElement * getMEhisto_PtEndcap() { return PtEndcap_;}
00318 MonitorElement * getMEhisto_PtForward() { return PtForward_;}
00319 MonitorElement * getMEhisto_Eta() { return Eta_; }
00320 MonitorElement * getMEhisto_Phi() { return Phi_; }
00321 MonitorElement * getMEhisto_EtaPhi() { return EtaPhi_; }
00322
00323 MonitorElement * getMEhisto_N_L1() { return N_L1_;}
00324 MonitorElement * getMEhisto_Pt_L1() { return Pt_L1_;}
00325 MonitorElement * getMEhisto_PtBarrel_L1() { return PtBarrel_L1_;}
00326 MonitorElement * getMEhisto_PtEndcap_L1() { return PtEndcap_L1_;}
00327 MonitorElement * getMEhisto_PtForward_L1() { return PtForward_L1_;}
00328 MonitorElement * getMEhisto_Eta_L1() { return Eta_L1_; }
00329 MonitorElement * getMEhisto_Phi_L1() { return Phi_L1_; }
00330 MonitorElement * getMEhisto_EtaPhi_L1() { return EtaPhi_L1_; }
00331
00332 MonitorElement * getMEhisto_N_HLT() { return N_HLT_;}
00333 MonitorElement * getMEhisto_Pt_HLT() { return Pt_HLT_;}
00334 MonitorElement * getMEhisto_PtBarrel_HLT() { return PtBarrel_HLT_;}
00335 MonitorElement * getMEhisto_PtEndcap_HLT() { return PtEndcap_HLT_;}
00336 MonitorElement * getMEhisto_PtForward_HLT() { return PtForward_HLT_;}
00337 MonitorElement * getMEhisto_Eta_HLT() { return Eta_HLT_; }
00338 MonitorElement * getMEhisto_Phi_HLT() { return Phi_HLT_; }
00339 MonitorElement * getMEhisto_EtaPhi_HLT() { return EtaPhi_HLT_; }
00340
00341 MonitorElement * getMEhisto_PtResolution_L1HLT() { return PtResolution_L1HLT_;}
00342 MonitorElement * getMEhisto_EtaResolution_L1HLT() { return EtaResolution_L1HLT_;}
00343 MonitorElement * getMEhisto_PhiResolution_L1HLT() { return PhiResolution_L1HLT_;}
00344 MonitorElement * getMEhisto_PtResolution_HLTRecObj() { return PtResolution_HLTRecObj_;}
00345 MonitorElement * getMEhisto_EtaResolution_HLTRecObj() { return EtaResolution_HLTRecObj_;}
00346 MonitorElement * getMEhisto_PhiResolution_HLTRecObj() { return PhiResolution_HLTRecObj_;}
00347
00348 MonitorElement * getMEhisto_PtCorrelation_L1HLT() { return PtCorrelation_L1HLT_;}
00349 MonitorElement * getMEhisto_EtaCorrelation_L1HLT() { return EtaCorrelation_L1HLT_;}
00350 MonitorElement * getMEhisto_PhiCorrelation_L1HLT() { return PhiCorrelation_L1HLT_;}
00351 MonitorElement * getMEhisto_PtCorrelation_HLTRecObj() { return PtCorrelation_HLTRecObj_;}
00352 MonitorElement * getMEhisto_EtaCorrelation_HLTRecObj() { return EtaCorrelation_HLTRecObj_;}
00353 MonitorElement * getMEhisto_PhiCorrelation_HLTRecObj() { return PhiCorrelation_HLTRecObj_;}
00354
00355 MonitorElement * getMEhisto_AveragePt_RecObj() {return JetAveragePt_;}
00356 MonitorElement * getMEhisto_AverageEta_RecObj() {return JetAverageEta_;}
00357 MonitorElement * getMEhisto_DeltaPhi_RecObj() {return JetPhiDifference_;}
00358 MonitorElement * getMEhisto_AveragePt_HLTObj() {return HLTAveragePt_;}
00359 MonitorElement * getMEhisto_AverageEta_HLTObj() {return HLTAverageEta_;}
00360 MonitorElement * getMEhisto_DeltaPhi_HLTObj() {return HLTPhiDifference_;}
00361 MonitorElement * getMEhisto_AveragePt_L1Obj() {return L1AveragePt_;}
00362 MonitorElement * getMEhisto_AverageEta_L1Obj() {return L1AverageEta_;}
00363 MonitorElement * getMEhisto_DeltaPhi_L1Obj() {return L1PhiDifference_;}
00364
00365 MonitorElement * getMEhisto_NumeratorPt() { return NumeratorPt_;}
00366 MonitorElement * getMEhisto_NumeratorPtBarrel() { return NumeratorPtBarrel_;}
00367 MonitorElement * getMEhisto_NumeratorPtEndcap() { return NumeratorPtEndcap_;}
00368 MonitorElement * getMEhisto_NumeratorPtForward() { return NumeratorPtForward_;}
00369 MonitorElement * getMEhisto_NumeratorEta() { return NumeratorEta_; }
00370 MonitorElement * getMEhisto_NumeratorPhi() { return NumeratorPhi_; }
00371 MonitorElement * getMEhisto_NumeratorEtaPhi() { return NumeratorEtaPhi_; }
00372 MonitorElement * getMEhisto_DenominatorPt() { return DenominatorPt_;}
00373 MonitorElement * getMEhisto_DenominatorPtBarrel() { return DenominatorPtBarrel_;}
00374 MonitorElement * getMEhisto_DenominatorPtEndcap() { return DenominatorPtEndcap_;}
00375 MonitorElement * getMEhisto_DenominatorPtForward() { return DenominatorPtForward_;}
00376 MonitorElement * getMEhisto_DenominatorEta() { return DenominatorEta_; }
00377 MonitorElement * getMEhisto_DenominatorPhi() { return DenominatorPhi_; }
00378 MonitorElement * getMEhisto_DenominatorEtaPhi() { return DenominatorEtaPhi_; }
00379
00380 MonitorElement * getMEhisto_TriggerSummary() {return TriggerSummary_;}
00381 MonitorElement * getMEhisto_JetSize() {return JetSize_;}
00382 MonitorElement * getMEhisto_JetPt() {return JetPt_;}
00383 MonitorElement * getMEhisto_EtavsPt(){return EtavsPt_;}
00384 MonitorElement * getMEhisto_PhivsPt(){return PhivsPt_;}
00385 MonitorElement * getMEhisto_Pt12() {return Pt12_;}
00386 MonitorElement * getMEhisto_Eta12() {return Eta12_;}
00387 MonitorElement * getMEhisto_Phi12() {return Phi12_;}
00388 MonitorElement * getMEhisto_Pt3() {return Pt3_;}
00389 MonitorElement * getMEhisto_Pt12Pt3() {return Pt12Pt3_;}
00390 MonitorElement * getMEhisto_Pt12Phi12() {return Pt12Phi12_;}
00391
00392 const std::string getLabel(void ) const {
00393 return filterName_;
00394 }
00395 const std::string getDenomLabel(void ) const {
00396 return DenomfilterName_;
00397 }
00398
00399 void setLabel(std::string labelName){
00400 filterName_ = labelName;
00401 return;
00402 }
00403 void setDenomLabel(std::string labelName){
00404 DenomfilterName_ = labelName;
00405 return;
00406 }
00407 const std::string getPath(void ) const {
00408 return pathName_;
00409 }
00410 const std::string getl1Path(void ) const {
00411 return l1pathName_;
00412 }
00413 const std::string getDenomPath(void ) const {
00414 return denomPathName_;
00415 }
00416 const int getprescaleUsed(void) const {
00417 return prescaleUsed_;
00418 }
00419 const std::string getProcess(void ) const {
00420 return processName_;
00421 }
00422 const int getObjectType(void ) const {
00423 return objectType_;
00424 }
00425 const std::string getTriggerType(void ) const {
00426 return triggerType_;
00427 }
00428
00429
00430 const edm::InputTag getTag(void) const{
00431 edm::InputTag tagName(filterName_,"",processName_);
00432 return tagName;
00433 }
00434 const edm::InputTag getDenomTag(void) const{
00435 edm::InputTag tagName(DenomfilterName_,"",processName_);
00436 return tagName;
00437 }
00438 bool operator==(const std::string v)
00439 {
00440 return v==pathName_;
00441 }
00442 private:
00443 int pathIndex_;
00444 int prescaleUsed_;
00445 std::string denomPathName_;
00446 std::string pathName_;
00447 std::string l1pathName_;
00448 std::string filterName_;
00449 std::string DenomfilterName_;
00450 std::string processName_;
00451 int objectType_;
00452 std::string triggerType_;
00453
00454 MonitorElement* N_;
00455 MonitorElement* Pt_;
00456 MonitorElement* PtBarrel_;
00457 MonitorElement* PtEndcap_;
00458 MonitorElement* PtForward_;
00459 MonitorElement* Eta_;
00460 MonitorElement* Phi_;
00461 MonitorElement* EtaPhi_;
00462 MonitorElement* N_L1_;
00463 MonitorElement* Pt_L1_;
00464 MonitorElement* PtBarrel_L1_;
00465 MonitorElement* PtEndcap_L1_;
00466 MonitorElement* PtForward_L1_;
00467 MonitorElement* Eta_L1_;
00468 MonitorElement* Phi_L1_;
00469 MonitorElement* EtaPhi_L1_;
00470 MonitorElement* N_HLT_;
00471 MonitorElement* Pt_HLT_;
00472 MonitorElement* PtBarrel_HLT_;
00473 MonitorElement* PtEndcap_HLT_;
00474 MonitorElement* PtForward_HLT_;
00475 MonitorElement* Eta_HLT_;
00476 MonitorElement* Phi_HLT_;
00477 MonitorElement* EtaPhi_HLT_;
00478
00479 MonitorElement* PtResolution_L1HLT_;
00480 MonitorElement* EtaResolution_L1HLT_;
00481 MonitorElement* PhiResolution_L1HLT_;
00482 MonitorElement* PtResolution_HLTRecObj_;
00483 MonitorElement* EtaResolution_HLTRecObj_;
00484 MonitorElement* PhiResolution_HLTRecObj_;
00485 MonitorElement* PtCorrelation_L1HLT_;
00486 MonitorElement* EtaCorrelation_L1HLT_;
00487 MonitorElement* PhiCorrelation_L1HLT_;
00488 MonitorElement* PtCorrelation_HLTRecObj_;
00489 MonitorElement* EtaCorrelation_HLTRecObj_;
00490 MonitorElement* PhiCorrelation_HLTRecObj_;
00491
00492 MonitorElement* JetAveragePt_;
00493 MonitorElement* JetAverageEta_;
00494 MonitorElement* JetPhiDifference_;
00495 MonitorElement* HLTAveragePt_;
00496 MonitorElement* HLTAverageEta_;
00497 MonitorElement* HLTPhiDifference_;
00498 MonitorElement* L1AveragePt_;
00499 MonitorElement* L1AverageEta_;
00500 MonitorElement* L1PhiDifference_;
00501
00502 MonitorElement* NumeratorPt_;
00503 MonitorElement* NumeratorPtBarrel_;
00504 MonitorElement* NumeratorPtEndcap_;
00505 MonitorElement* NumeratorPtForward_;
00506 MonitorElement* NumeratorEta_;
00507 MonitorElement* NumeratorPhi_;
00508 MonitorElement* NumeratorEtaPhi_;
00509 MonitorElement* DenominatorPt_;
00510 MonitorElement* DenominatorPtBarrel_;
00511 MonitorElement* DenominatorPtEndcap_;
00512 MonitorElement* DenominatorPtForward_;
00513 MonitorElement* DenominatorEta_;
00514 MonitorElement* DenominatorPhi_;
00515 MonitorElement* DenominatorEtaPhi_;
00516
00517 MonitorElement* TriggerSummary_;
00518 MonitorElement* JetSize_;
00519 MonitorElement* JetPt_;
00520 MonitorElement* EtavsPt_;
00521 MonitorElement* PhivsPt_;
00522 MonitorElement* Pt12_;
00523 MonitorElement* Eta12_;
00524 MonitorElement* Phi12_;
00525 MonitorElement* Pt3_;
00526 MonitorElement* Pt12Pt3_;
00527 MonitorElement* Pt12Phi12_;
00528 };
00529
00530
00531 class PathInfoCollection: public std::vector<PathInfo> {
00532 public:
00533 PathInfoCollection(): std::vector<PathInfo>()
00534 {};
00535 std::vector<PathInfo>::iterator find(std::string pathName) {
00536 return std::find(begin(), end(), pathName);
00537 }
00538 };
00539 PathInfoCollection hltPathsAllTriggerSummary_;
00540 PathInfoCollection hltPathsAll_;
00541 PathInfoCollection hltPathsAllWrtMu_;
00542 PathInfoCollection hltPathsEff_;
00543 PathInfoCollection hltPathsEffWrtMu_;
00544 PathInfoCollection hltPathsEffWrtMB_;
00545
00546 MonitorElement* rate_All;
00547 MonitorElement* rate_AllWrtMu;
00548 MonitorElement* rate_AllWrtMB;
00549
00550 MonitorElement* correlation_All;
00551 MonitorElement* correlation_AllWrtMu;
00552 MonitorElement* correlation_AllWrtMB;
00553
00554
00555
00556
00557 };
00558 #endif
00559