CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DQM/TrackingMonitor/plugins/TrackingMonitor.h

Go to the documentation of this file.
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.14 2011/07/18 14:32:48 fiori 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 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         // ----------member data ---------------------------
00054 
00055         std::string histname;  //for naming the histograms according to algorithm used
00056 
00057         DQMStore * dqmStore_;
00058         edm::ParameterSet conf_;
00059 
00060         // the track analyzer
00061         edm::InputTag bsSrc;
00062 
00063         TrackAnalyzer * theTrackAnalyzer;
00064         TrackBuildingAnalyzer  * theTrackBuildingAnalyzer;
00065 
00066         // Tracks 
00067         MonitorElement * NumberOfTracks;
00068         MonitorElement * NumberOfMeanRecHitsPerTrack;
00069         MonitorElement * NumberOfMeanLayersPerTrack;  
00070 
00071         // Good Tracks 
00072         MonitorElement * NumberOfGoodTracks;
00073         MonitorElement * FractionOfGoodTracks;
00074 
00075         // Track Seeds 
00076         MonitorElement * NumberOfSeeds;
00077         std::vector<MonitorElement *> SeedsVsClusters;
00078         std::vector<std::string> ClusterLabels;
00079         
00080 
00081         // Track Candidates
00082         MonitorElement * NumberOfTrackCandidates;
00083 
00084         // Cluster Properties
00085         MonitorElement* NumberOfPixelClus;
00086         MonitorElement* NumberOfStripClus;
00087         MonitorElement* RatioOfPixelAndStripClus;
00088         MonitorElement* NumberOfTrkVsClus;
00089 
00090         // Monitoring vs LS
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