![]() |
![]() |
00001 #ifndef TrackingMonitor_H 00002 #define TrackingMonitor_H 00003 // -*- C++ -*- 00004 // 00005 // Package: TrackingMonitor 00006 // Class: TrackingMonitor 00007 // 00011 // Original Author: Suchandra Dutta, Giorgia Mila 00012 // Created: Thu 28 22:45:30 CEST 2008 00013 // $Id: TrackingMonitor.h,v 1.12 2011/05/22 17:38:15 borrell Exp $ 00014 00015 #include <memory> 00016 #include <fstream> 00017 #include "FWCore/Framework/interface/Frameworkfwd.h" 00018 #include "FWCore/Framework/interface/EDAnalyzer.h" 00019 #include "FWCore/Framework/interface/Event.h" 00020 #include "FWCore/Framework/interface/MakerMacros.h" 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 #include "FWCore/ServiceRegistry/interface/Service.h" 00023 #include "DQMServices/Core/interface/MonitorElement.h" 00024 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" 00025 00026 class DQMStore; 00027 class TrackAnalyzer; 00028 class TrackBuildingAnalyzer; 00029 class TProfile; 00030 class GenericTriggerEventFlag; 00031 00032 class TrackingMonitor : public edm::EDAnalyzer 00033 { 00034 public: 00035 explicit TrackingMonitor(const edm::ParameterSet&); 00036 ~TrackingMonitor(); 00037 virtual void beginJob(void); 00038 virtual void endJob(void); 00039 00040 virtual void beginLuminosityBlock(const edm::LuminosityBlock& lumi, const edm::EventSetup& eSetup); 00041 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00042 virtual void beginRun(const edm::Run&, const edm::EventSetup&); 00043 virtual void endRun(const edm::Run&, const edm::EventSetup&); 00044 00045 private: 00046 void doProfileX(TH2 * th2, MonitorElement* me); 00047 void doProfileX(MonitorElement * th2m, MonitorElement* me); 00048 00049 00050 // ----------member data --------------------------- 00051 00052 std::string histname; //for naming the histograms according to algorithm used 00053 00054 DQMStore * dqmStore_; 00055 edm::ParameterSet conf_; 00056 00057 // the track analyzer 00058 edm::InputTag bsSrc; 00059 00060 TrackAnalyzer * theTrackAnalyzer; 00061 TrackBuildingAnalyzer * theTrackBuildingAnalyzer; 00062 00063 // Tracks 00064 MonitorElement * NumberOfTracks; 00065 MonitorElement * NumberOfMeanRecHitsPerTrack; 00066 MonitorElement * NumberOfMeanLayersPerTrack; 00067 00068 // Good Tracks 00069 MonitorElement * NumberOfGoodTracks; 00070 MonitorElement * FractionOfGoodTracks; 00071 00072 // Track Seeds 00073 MonitorElement * NumberOfSeeds; 00074 00075 // Track Candidates 00076 MonitorElement * NumberOfTrackCandidates; 00077 00078 // Cluster Properties 00079 MonitorElement* NumberOfPixelClus; 00080 MonitorElement* NumberOfStripClus; 00081 MonitorElement* RatioOfPixelAndStripClus; 00082 MonitorElement* NumberOfTrkVsClus; 00083 00084 // Monitoring vs LS 00085 MonitorElement* GoodTracksFractionVsLS; 00086 MonitorElement* GoodTracksNumberOfRecHitsPerTrackVsLS; 00087 00088 std::string builderName; 00089 edm::ESHandle<TransientTrackingRecHitBuilder> theTTRHBuilder; 00090 00091 bool doTrackerSpecific_; 00092 bool doLumiAnalysis; 00093 bool doProfilesVsLS_; 00094 00095 GenericTriggerEventFlag* genTriggerEventFlag_; 00096 }; 00097 00098 #endif //define TrackingMonitor_H