CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/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.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