00001 #ifndef DTLocalTriggerSynchTask_H 00002 #define DTLocalTriggerSynchTask_H 00003 00004 /* 00005 * \file DTLocalTriggerSynchTask.h 00006 * 00007 * $Date: 2010/03/05 09:11:52 $ 00008 * $Revision: 1.4 $ 00009 * \author C. Battilana - CIEMAT 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 00031 #include <vector> 00032 #include <string> 00033 #include <map> 00034 00035 class DTGeometry; 00036 class DTChamberId; 00037 class DTRecSegment4D; 00038 class DTTTrigBaseSync; 00039 class DTLocalTrigger; 00040 class L1MuDTChambPhDigi; 00041 class L1MuDTChambThDigi; 00042 00043 00044 class DTLocalTriggerSynchTask: public edm::EDAnalyzer{ 00045 00046 friend class DTMonitorModule; 00047 00048 public: 00049 00051 DTLocalTriggerSynchTask(const edm::ParameterSet& ps ); 00052 00054 virtual ~DTLocalTriggerSynchTask(); 00055 00056 protected: 00057 00058 // BeginJob 00059 void beginJob(); 00060 00062 void bookHistos(const DTChamberId& dtCh ); 00063 00065 void analyze(const edm::Event& event, const edm::EventSetup& context); 00066 00068 void beginRun(const edm::Run& run, const edm::EventSetup& context); 00069 00071 void endJob(void); 00072 00073 std::string & baseDir() { return baseDirectory; } 00074 00075 private: 00076 00077 int nevents; 00078 00079 int phCodeBestDCC[6][5][13]; 00080 int phCodeBXDCC[6][5][13][3]; 00081 int phCodeBestDDU[6][5][13]; 00082 int thCodeBestDDU[6][5][13]; 00083 int segHitBest[6][5][13]; 00084 00085 float bxTime; 00086 bool rangeInBX; 00087 int nBXLow; 00088 int nBXHigh; 00089 float angleRange; 00090 float minHitsPhi; 00091 int fineDelay; 00092 DTTTrigBaseSync *tTrigSync; 00093 00094 std::string baseDirectory; 00095 00096 DQMStore* dbe; 00097 edm::ParameterSet parameters; 00098 edm::ESHandle<DTGeometry> muonGeom; 00099 std::map<uint32_t, std::map<std::string, MonitorElement*> > triggerHistos; 00100 MonitorElement* dcc_IDDataErrorPlot; 00101 00102 }; 00103 00104 #endif