CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DQM/DTMonitorModule/src/DTLocalTriggerLutTask.h

Go to the documentation of this file.
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