00001 #ifndef Validation_MuonDTDigis_h 00002 #define Validation_MuonDTDigis_h 00003 00011 #include <FWCore/Framework/interface/Event.h> 00012 #include "FWCore/Framework/interface/EventSetup.h" 00013 #include <FWCore/Framework/interface/EDAnalyzer.h> 00014 #include "FWCore/Framework/interface/ESHandle.h" 00015 00016 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00017 #include "FWCore/ServiceRegistry/interface/Service.h" 00018 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00019 00020 #include "DQMServices/Core/interface/DQMStore.h" 00021 00022 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" 00023 #include "SimDataFormats/TrackingHit/interface/PSimHit.h" 00024 00025 #include "Geometry/Records/interface/MuonGeometryRecord.h" 00026 #include "Geometry/DTGeometry/interface/DTGeometry.h" 00027 #include "Geometry/DTGeometry/interface/DTLayer.h" 00028 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00029 00030 #include "DataFormats/DTDigi/interface/DTDigi.h" 00031 #include "DataFormats/DTDigi/interface/DTDigiCollection.h" 00032 #include "DataFormats/MuonDetId/interface/DTWireId.h" 00033 #include "DataFormats/MuonDetId/interface/DTLayerId.h" 00034 00035 #include "SimMuon/DTDigitizer/test/Histograms.h" 00036 00037 #include<vector> 00038 #include "DQMServices/Core/interface/MonitorElement.h" 00039 00040 class TH1F; 00041 class TFile; 00042 00043 class PSimHit; 00044 00045 class hDigis; 00046 00047 namespace edm { 00048 class ParameterSet; class Event; class EventSetup;} 00049 00050 class MuonDTDigis : public edm::EDAnalyzer{ 00051 00052 public: 00053 // Constructor 00054 explicit MuonDTDigis(const edm::ParameterSet& pset); 00055 00056 // Destructor 00057 virtual ~MuonDTDigis(); 00058 00059 protected: 00060 // Analysis 00061 void analyze(const edm::Event & event, const edm::EventSetup& eventSetup); 00062 00063 hDigis* WheelHistos(int wheel); 00064 00065 // BeginJob 00066 //void beginJob(); 00067 00068 // EndJob 00069 //void endJob(void); 00070 00071 00072 private: 00073 typedef std::map<DTWireId, std::vector<const PSimHit*> > DTWireIdMap; 00074 00075 std::string SimHitLabel; 00076 std::string DigiLabel; 00077 std::string outputFile_; 00078 00079 // Switch for debug output 00080 bool verbose_; 00081 00082 // DaqMonitor element 00083 DQMStore* dbe_; 00084 00085 // Monitor elements 00086 MonitorElement* meDigiTimeBox_; 00087 MonitorElement* meDigiTimeBox_wheel2m_; 00088 MonitorElement* meDigiTimeBox_wheel1m_; 00089 MonitorElement* meDigiTimeBox_wheel0_; 00090 MonitorElement* meDigiTimeBox_wheel1p_; 00091 MonitorElement* meDigiTimeBox_wheel2p_; 00092 MonitorElement* meDigiEfficiency_; 00093 MonitorElement* meDigiEfficiencyMu_; 00094 MonitorElement* meDoubleDigi_; 00095 MonitorElement* meSimvsDigi_; 00096 MonitorElement* meWire_DoubleDigi_; 00097 00098 MonitorElement* meMB1_sim_occup_; 00099 MonitorElement* meMB1_digi_occup_; 00100 MonitorElement* meMB2_sim_occup_; 00101 MonitorElement* meMB2_digi_occup_; 00102 MonitorElement* meMB3_sim_occup_; 00103 MonitorElement* meMB3_digi_occup_; 00104 MonitorElement* meMB4_sim_occup_; 00105 MonitorElement* meMB4_digi_occup_; 00106 00107 std::vector<MonitorElement*> meDigiTimeBox_SL_; 00108 MonitorElement* meDigiHisto_; 00109 00110 TH1F *hMuonDigis; 00111 // TH1F *DigiTimeBox; 00112 // TFile *file_more_plots; 00113 00114 hDigis *hDigis_global; 00115 hDigis *hDigis_W0; 00116 hDigis *hDigis_W1; 00117 hDigis *hDigis_W2; 00118 hHits *hAllHits; 00119 00120 }; 00121 00122 #endif