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