00001 00002 #ifndef DTSegmentAnalysisTask_H 00003 #define DTSegmentAnalysisTask_H 00004 00020 #include "FWCore/Framework/interface/Frameworkfwd.h" 00021 #include "DataFormats/MuonDetId/interface/DTChamberId.h" 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 #include <FWCore/Framework/interface/EDAnalyzer.h> 00024 #include <FWCore/Framework/interface/ESHandle.h> 00025 00026 #include <string> 00027 #include <map> 00028 #include <vector> 00029 00030 00031 class DTGeometry; 00032 class DQMStore; 00033 class MonitorElement; 00034 class DTTimeEvolutionHisto; 00035 00036 class DTSegmentAnalysisTask: public edm::EDAnalyzer{ 00037 public: 00039 DTSegmentAnalysisTask(const edm::ParameterSet& pset); 00040 00042 virtual ~DTSegmentAnalysisTask(); 00043 00045 void beginJob(const edm::EventSetup& c); 00046 00048 void endJob(); 00049 00050 // Operations 00051 void analyze(const edm::Event& event, const edm::EventSetup& setup); 00052 00054 void beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& eSetup); 00055 void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& eSetup); 00056 00057 protected: 00058 00059 private: 00060 00061 // The BE interface 00062 DQMStore* theDbe; 00063 00064 // Switch for detailed analysis 00065 bool detailedAnalysis; 00066 00067 // Get the DT Geometry 00068 edm::ESHandle<DTGeometry> dtGeom; 00069 00070 // Lable of 4D segments in the event 00071 std::string theRecHits4DLabel; 00072 00073 // Get the map of noisy channels 00074 bool checkNoisyChannels; 00075 00076 edm::ParameterSet parameters; 00077 00078 // book the histos 00079 void bookHistos(DTChamberId chamberId); 00080 // Fill a set of histograms for a given chamber 00081 void fillHistos(DTChamberId chamberId, 00082 int nHits, 00083 float chi2); 00084 00085 // the histos 00086 std::map<DTChamberId, std::vector<MonitorElement*> > histosPerCh; 00087 std::map< int, MonitorElement* > summaryHistos; 00088 std::map<int, std::map<int, DTTimeEvolutionHisto*> > histoTimeEvol; 00089 00090 int nEventsInLS; 00091 DTTimeEvolutionHisto*hNevtPerLS; 00092 00093 // # of bins in the time histos 00094 int nTimeBins; 00095 // # of LS per bin in the time histos 00096 int nLSTimeBin; 00097 // switch on/off sliding bins in time histos 00098 bool slideTimeBins; 00099 }; 00100 #endif 00101