CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef TrackSplittingMonitor_H
00002 #define TrackSplittingMonitor_H
00003 // -*- C++ -*-
00004 //
00005 // Package:    TrackSplittingMonitor
00006 // Class:      TrackSplittingMonitor
00007 // 
00011 // Original Author:  Nhan Tran
00012 //         Created:  Thu 28 22:45:30 CEST 2008
00013 // $Id: TrackSplittingMonitor.h,v 1.2 2009/11/05 17:07:51 boudoul 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 #include "Geometry/DTGeometry/interface/DTGeometry.h"
00027 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
00028 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
00029 #include "Geometry/Records/interface/MuonGeometryRecord.h"
00030 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00031 
00032 class DQMStore;
00033 class TrackAnalyzer;
00034 class TProfile;
00035 
00036 class TrackSplittingMonitor : public edm::EDAnalyzer {
00037 public:
00038         explicit TrackSplittingMonitor(const edm::ParameterSet&);
00039         ~TrackSplittingMonitor();
00040         virtual void beginJob(void);
00041         virtual void endJob(void);
00042         
00043         virtual void analyze(const edm::Event&, 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         //  unsigned int minTracks_;
00053         
00054         std::string histname;  //for naming the histograms according to algorithm used
00055         
00056         DQMStore * dqmStore_;
00057         edm::ParameterSet conf_;
00058         
00059         edm::ESHandle<TrackerGeometry> theGeometry;
00060         edm::ESHandle<MagneticField>   theMagField;
00061         edm::ESHandle<DTGeometry>             dtGeometry;
00062         edm::ESHandle<CSCGeometry>            cscGeometry;
00063         edm::ESHandle<RPCGeometry>            rpcGeometry;
00064         
00065         edm::InputTag splitTracks_;
00066         edm::InputTag splitMuons_;
00067         
00068         
00069         bool plotMuons_;
00070         int pixelHitsPerLeg_;
00071         int totalHitsPerLeg_;
00072         double d0Cut_;
00073         double dzCut_;
00074         double ptCut_;
00075         double norchiCut_;
00076         
00077         
00078         // histograms
00079         MonitorElement* ddxyAbsoluteResiduals_tracker_;
00080         MonitorElement* ddzAbsoluteResiduals_tracker_;
00081         MonitorElement* dphiAbsoluteResiduals_tracker_;
00082         MonitorElement* dthetaAbsoluteResiduals_tracker_;
00083         MonitorElement* dptAbsoluteResiduals_tracker_;
00084         MonitorElement* dcurvAbsoluteResiduals_tracker_;
00085 
00086         MonitorElement* ddxyNormalizedResiduals_tracker_;
00087         MonitorElement* ddzNormalizedResiduals_tracker_;
00088         MonitorElement* dphiNormalizedResiduals_tracker_;
00089         MonitorElement* dthetaNormalizedResiduals_tracker_;
00090         MonitorElement* dptNormalizedResiduals_tracker_;
00091         MonitorElement* dcurvNormalizedResiduals_tracker_;
00092         
00093         MonitorElement* ddxyAbsoluteResiduals_global_;
00094         MonitorElement* ddzAbsoluteResiduals_global_;
00095         MonitorElement* dphiAbsoluteResiduals_global_;
00096         MonitorElement* dthetaAbsoluteResiduals_global_;
00097         MonitorElement* dptAbsoluteResiduals_global_;
00098         MonitorElement* dcurvAbsoluteResiduals_global_;
00099         
00100         MonitorElement* ddxyNormalizedResiduals_global_;
00101         MonitorElement* ddzNormalizedResiduals_global_;
00102         MonitorElement* dphiNormalizedResiduals_global_;
00103         MonitorElement* dthetaNormalizedResiduals_global_;
00104         MonitorElement* dptNormalizedResiduals_global_;
00105         MonitorElement* dcurvNormalizedResiduals_global_;
00106         
00107 
00108 };
00109 #endif