Go to the documentation of this file.00001 #ifndef TrackingMonitor_H
00002 #define TrackingMonitor_H
00003
00004
00005
00006
00007
00011
00012
00013
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 setMaxMinBin(std::vector<double> & ,std::vector<double> & ,std::vector<int> & ,double, double, int, double, double, int);
00041 virtual void setNclus(const edm::Event&, std::vector<int> & );
00042
00043 virtual void beginLuminosityBlock(const edm::LuminosityBlock& lumi, const edm::EventSetup& eSetup);
00044 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00045 virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00046 virtual void endRun(const edm::Run&, const edm::EventSetup&);
00047
00048 private:
00049 void doProfileX(TH2 * th2, MonitorElement* me);
00050 void doProfileX(MonitorElement * th2m, MonitorElement* me);
00051
00052
00053
00054
00055 std::string histname;
00056
00057 DQMStore * dqmStore_;
00058 edm::ParameterSet conf_;
00059
00060
00061 edm::InputTag bsSrc;
00062
00063 TrackAnalyzer * theTrackAnalyzer;
00064 TrackBuildingAnalyzer * theTrackBuildingAnalyzer;
00065
00066
00067 MonitorElement * NumberOfTracks;
00068 MonitorElement * NumberOfMeanRecHitsPerTrack;
00069 MonitorElement * NumberOfMeanLayersPerTrack;
00070
00071
00072 MonitorElement * NumberOfGoodTracks;
00073 MonitorElement * FractionOfGoodTracks;
00074
00075
00076 MonitorElement * NumberOfSeeds;
00077 std::vector<MonitorElement *> SeedsVsClusters;
00078 std::vector<std::string> ClusterLabels;
00079
00080
00081
00082 MonitorElement * NumberOfTrackCandidates;
00083
00084
00085 MonitorElement* NumberOfPixelClus;
00086 MonitorElement* NumberOfStripClus;
00087 MonitorElement* RatioOfPixelAndStripClus;
00088 MonitorElement* NumberOfTrkVsClus;
00089
00090
00091 MonitorElement* GoodTracksFractionVsLS;
00092 MonitorElement* GoodTracksNumberOfRecHitsPerTrackVsLS;
00093
00094 std::string builderName;
00095 edm::ESHandle<TransientTrackingRecHitBuilder> theTTRHBuilder;
00096
00097 bool doTrackerSpecific_;
00098 bool doLumiAnalysis;
00099 bool doProfilesVsLS_;
00100 bool doAllSeedPlots;
00101 bool doAllPlots;
00102 bool doDCAPlots_;
00103 bool doGeneralPropertiesPlots_;
00104 bool doHitPropertiesPlots_;
00105 bool doTkCandPlots;
00106 bool doSeedNumberPlot;
00107 bool doSeedVsClusterPlot;
00108 bool runTrackBuildingAnalyzerForSeed;
00109
00110 GenericTriggerEventFlag* genTriggerEventFlag_;
00111 };
00112
00113 #endif //define TrackingMonitor_H