Go to the documentation of this file.00001 #ifndef DTTriggerEfficiencyTask_H
00002 #define DTTriggerEfficiencyTask_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "FWCore/Framework/interface/Frameworkfwd.h"
00014 #include "FWCore/Framework/interface/EDAnalyzer.h"
00015 #include "DataFormats/Common/interface/Handle.h"
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 #include <FWCore/Framework/interface/LuminosityBlock.h>
00018
00019 #include "FWCore/Framework/interface/Event.h"
00020 #include "FWCore/Framework/interface/MakerMacros.h"
00021
00022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00023
00024 #include "DQMServices/Core/interface/DQMStore.h"
00025 #include "DQMServices/Core/interface/MonitorElement.h"
00026 #include "FWCore/ServiceRegistry/interface/Service.h"
00027
00028 #include "DataFormats/DTDigi/interface/DTLocalTriggerCollection.h"
00029 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
00030 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
00031 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
00032
00033 #include <vector>
00034 #include <string>
00035 #include <map>
00036
00037 class DTGeometry;
00038 class DTChamberId;
00039 class DTRecSegment4D;
00040 class DTLocalTrigger;
00041 class DTTrigGeomUtils;
00042 class L1MuDTChambPhDigi;
00043 class L1MuDTChambThDigi;
00044
00045 class DTTriggerEfficiencyTask: public edm::EDAnalyzer{
00046
00047 public:
00048
00050 DTTriggerEfficiencyTask(const edm::ParameterSet& ps );
00051
00053 virtual ~DTTriggerEfficiencyTask();
00054
00055 protected:
00056
00057
00058 void beginJob();
00059
00061 void beginRun(const edm::Run& run, const edm::EventSetup& context);
00062
00064 void bookChamberHistos(const DTChamberId& dtCh, std::string histoTag, std::string folder="");
00065
00067 void bookWheelHistos(int wheel, std::string histoTag, std::string folder="");
00068
00070 bool hasRPCTriggers(const edm::Event& e);
00071
00073 std::string topFolder(bool source) { return source ? "DT/03-LocalTrigger-DCC/" : "DT/04-LocalTrigger-DDU/"; }
00074
00076 void analyze(const edm::Event& e, const edm::EventSetup& c);
00077
00079 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context) ;
00080
00082 void endJob(void);
00083
00084 private:
00085
00086 int nevents;
00087
00088 bool processDCC, processDDU, detailedPlots;
00089 int minBXDDU, maxBXDDU;
00090
00091 int phCodeBestDCC[6][5][13];
00092 int phCodeBestDDU[6][5][13];
00093 const L1MuDTChambPhDigi* phBestDCC[6][5][13];
00094 const DTLocalTrigger* phBestDDU[6][5][13];
00095
00096 DQMStore* dbe;
00097 edm::ParameterSet parameters;
00098 edm::ESHandle<DTGeometry> muonGeom;
00099 DTTrigGeomUtils* trigGeomUtils;
00100 std::map<uint32_t, std::map<std::string, MonitorElement*> > chamberHistos;
00101 std::map<int, std::map<std::string, MonitorElement*> > wheelHistos;
00102
00103 };
00104
00105 #endif