00001 #ifndef DTLocalTriggerLutTask_H 00002 #define DTLocalTriggerLutTask_H 00003 00004 /* 00005 * \file DTLocalTriggerLutTask.h 00006 * 00007 * $Date: 2011/06/10 13:23:26 $ 00008 * $Revision: 1.1 $ 00009 * \author D. Fasanella - INFN Bologna 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 #include "FWCore/Utilities/interface/InputTag.h" 00028 00029 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h" 00030 00031 #include <vector> 00032 #include <string> 00033 #include <map> 00034 00035 class DTGeometry; 00036 class DTTrigGeomUtils; 00037 class DTChamberId; 00038 class L1MuDTChambPhDigi; 00039 00040 00041 class DTLocalTriggerLutTask: public edm::EDAnalyzer{ 00042 00043 friend class DTMonitorModule; 00044 00045 public: 00046 00048 DTLocalTriggerLutTask(const edm::ParameterSet& ps ); 00049 00051 virtual ~DTLocalTriggerLutTask(); 00052 00053 protected: 00054 00055 // BeginJob 00056 void beginJob(); 00057 00059 void beginRun(const edm::Run& , const edm::EventSetup&); 00060 00062 void searchDccBest(std::vector<L1MuDTChambPhDigi>* trigs); 00063 00065 void analyze(const edm::Event& e, const edm::EventSetup& c); 00066 00068 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context) ; 00069 00071 void endJob(void); 00072 00073 private: 00074 00076 std::string& topFolder() { return baseFolder; } 00077 00079 void bookHistos(DTChamberId chId); 00080 00081 private : 00082 00083 int nEvents; 00084 int nLumis; 00085 int nPhiBins, nPhibBins; 00086 double rangePhi, rangePhiB; 00087 00088 std::string baseFolder; 00089 bool detailedAnalysis; 00090 bool overUnderIn; 00091 00092 edm::InputTag dccInputTag; 00093 edm::InputTag segInputTag; 00094 00095 int trigQualBest[6][5][13]; 00096 const L1MuDTChambPhDigi* trigBest[6][5][13]; 00097 bool track_ok[6][5][15]; // CB controlla se serve 00098 00099 DQMStore* dbe; 00100 edm::ParameterSet parameters; 00101 edm::ESHandle<DTGeometry> muonGeom; 00102 std::string theGeomLabel; 00103 DTTrigGeomUtils* trigGeomUtils; 00104 00105 std::map<uint32_t, std::map<std::string, MonitorElement*> > chHistos; 00106 std::map<int, std::map<std::string, MonitorElement*> > whHistos; 00107 00108 }; 00109 00110 #endif