CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/DQM/L1TMonitor/interface/L1TDTTF.h

Go to the documentation of this file.
00001 #ifndef L1TDTTF_H
00002 #define L1TDTTF_H
00003 
00004 /*
00005  * \file L1TDTTF.h
00006  *
00007  * $Date: 2010/11/01 11:27:53 $
00008  * $Revision: 1.14 $
00009  * \author J. Berryhill
00010  *
00011  */
00012 
00013 
00014 // system include files
00015 #include <string>
00016 
00017 // user include files
00018 #include "FWCore/Framework/interface/EDAnalyzer.h"
00019 #include "FWCore/Framework/interface/Event.h"
00020 
00021 //
00022 // class declaration
00023 //
00024 
00025 
00026 class DQMStore;
00027 class MonitorElement;
00028 class L1MuDTTrackCand;
00029 class L1MuRegionalCand;
00030 
00031 class L1TDTTF : public edm::EDAnalyzer {
00032 
00033  public:
00034 
00035   // Constructor
00036   L1TDTTF(const edm::ParameterSet& ps);
00037 
00038   // Destructor
00039   virtual ~L1TDTTF();
00040 
00041  protected:
00042   // Analyze
00043   void analyze(const edm::Event& e, const edm::EventSetup& c);
00044 
00045   // BeginJob
00046   void beginJob(void);
00047 
00048   // EndJob
00049   void endJob(void);
00050 
00051   void beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg,
00052                             edm::EventSetup const& context){};
00053 
00054   void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg,
00055                           edm::EventSetup const& context){};
00056 
00057  private:
00058 
00059 
00060   void fillMEs( std::vector<L1MuDTTrackCand> * trackContainer,
00061                 std::vector<L1MuRegionalCand> & gmtDttfCands );
00062   void setWheelLabel(MonitorElement *me);
00063   void setQualLabel(MonitorElement *me, int axis);
00064   void bookEta( int wh, int & nbins, float & start, float & stop );
00065 
00066   // ----------member data ---------------------------
00067   edm::InputTag dttpgSource_;
00068   edm::InputTag gmtSource_ ;
00069   edm::InputTag muonCollectionLabel_;
00070   std::string l1tsubsystemfolder_;
00071   bool online_;
00072   bool verbose_;
00073   DQMStore * dbe_;
00074   std::string outputFile_; //file name for ROOT ouput
00075   edm::InputTag trackInputTag_;
00076 
00077   MonitorElement* dttf_nTracksPerEvent_wheel[6];
00078   MonitorElement* dttf_quality_wheel_2ndTrack[6];
00079   MonitorElement* dttf_quality_summary_wheel_2ndTrack[6];
00080   MonitorElement* dttf_phi_eta_fine_wheel[6];
00081   MonitorElement* dttf_phi_eta_coarse_wheel[6];
00082   MonitorElement* dttf_phi_eta_wheel_2ndTrack[6];
00083   MonitorElement* dttf_eta_wheel_2ndTrack[6];
00084   MonitorElement* dttf_phi_wheel_2ndTrack[6];
00085   MonitorElement* dttf_pt_wheel_2ndTrack[6];
00086   MonitorElement* dttf_q_wheel_2ndTrack[6];
00087 
00088   MonitorElement* dttf_nTracksPerEv[6][12];
00089   MonitorElement* dttf_bx[6][12];
00090   MonitorElement* dttf_bx_2ndTrack[6][12];
00091   MonitorElement* dttf_qual[6][12];
00092   MonitorElement* dttf_eta_fine_fraction[6][12];
00093   MonitorElement* dttf_eta[6][12];
00094   MonitorElement* dttf_phi[6][12];
00095   MonitorElement* dttf_pt[6][12];
00096   MonitorElement* dttf_q[6][12];
00097 
00098   MonitorElement* dttf_nTracksPerEvent_integ;
00099   MonitorElement* dttf_spare;
00100 
00101   MonitorElement* dttf_gmt_match;
00102   MonitorElement* dttf_gmt_missed;
00103   MonitorElement* dttf_gmt_ghost;
00104   // MonitorElement* dttf_gmt_ghost_phys;
00105 
00106   int nev_; // Number of events processed
00107   int nev_dttf_; //Number of events with at least one DTTF track
00108   int nev_dttf_track2_; //Number of events with at least one DTTF 2nd track
00109   int numTracks[6][12];
00110 };
00111 
00112 #endif