CMS 3D CMS Logo

MultiTrackValidator.h

Go to the documentation of this file.
00001 #ifndef MultiTrackValidator_h
00002 #define MultiTrackValidator_h
00003 
00011 #include "FWCore/Framework/interface/Frameworkfwd.h"
00012 #include "FWCore/Framework/interface/EDAnalyzer.h"
00013 #include "Validation/RecoTrack/interface/MultiTrackValidatorBase.h"
00014 
00015 class MultiTrackValidator : public edm::EDAnalyzer, protected MultiTrackValidatorBase {
00016  public:
00018   MultiTrackValidator(const edm::ParameterSet& pset):MultiTrackValidatorBase(pset){
00019     dirName_ = pset.getParameter<std::string>("dirName");
00020     associatormap = pset.getParameter< edm::InputTag >("associatormap");
00021     UseAssociators = pset.getParameter< bool >("UseAssociators");
00022     tpSelector = TrackingParticleSelector(pset.getParameter<double>("ptMinTP"),
00023                                           pset.getParameter<double>("minRapidityTP"),
00024                                           pset.getParameter<double>("maxRapidityTP"),
00025                                           pset.getParameter<double>("tipTP"),
00026                                           pset.getParameter<double>("lipTP"),
00027                                           pset.getParameter<int>("minHitTP"),
00028                                           pset.getParameter<bool>("signalOnlyTP"),
00029                                           pset.getParameter<bool>("chargedOnlyTP"),
00030                                           pset.getParameter<std::vector<int> >("pdgIdTP"));
00031     minPhi = pset.getParameter<double>("minPhi"); 
00032     maxPhi = pset.getParameter<double>("maxPhi");
00033     nintPhi = pset.getParameter<int>("nintPhi");
00034     
00035     if (!UseAssociators) {
00036       associators.clear();
00037       associators.push_back(associatormap.label());
00038     }
00039   }
00040 
00042   virtual ~MultiTrackValidator(){ }
00043 
00045   void beginRun(edm::Run const&, edm::EventSetup const&);
00047   void analyze(const edm::Event&, const edm::EventSetup& );
00049   void endRun(edm::Run const&, edm::EventSetup const&);
00050 
00051  private:
00052   std::string dirName_;
00053   edm::InputTag associatormap;
00054   bool UseAssociators;
00055   double minPhi, maxPhi;
00056   int nintPhi;
00057   // select tracking particles 
00058   //(i.e. "denominator" of the efficiency ratio)
00059   TrackingParticleSelector tpSelector;                                
00060 
00061   //1D
00062   std::vector<MonitorElement*> h_nchi2, h_nchi2_prob, h_losthits;
00063 
00064   //2D  
00065   std::vector<MonitorElement*> chi2_vs_nhits, etares_vs_eta;
00066   std::vector<MonitorElement*> h_ptshifteta;
00067   std::vector<MonitorElement*> ptres_vs_phi, chi2_vs_phi, nhits_vs_phi, phires_vs_phi;
00068 
00069   //Profile2D
00070   std::vector<MonitorElement*> ptmean_vs_eta_phi, phimean_vs_eta_phi;
00071 
00072   //assoc chi2
00073   std::vector<MonitorElement*> h_assochi2, h_assochi2_prob;
00074 
00075   //chi2 and # lost hits vs eta: to be used with doProfileX
00076   std::vector<MonitorElement*> chi2_vs_eta, nlosthits_vs_eta;
00077   std::vector<MonitorElement*> h_chi2meanh, h_losthits_eta;
00078   std::vector<MonitorElement*> h_hits_phi, h_ptresmean_vs_phi, h_phiresmean_vs_phi; 
00079   std::vector<MonitorElement*> h_chi2meanhitsh, h_ptresmean_vs_eta, h_phiresmean_vs_eta, h_chi2mean_vs_phi;
00080 
00081   //resolution of track params: to be used with fitslicesytool
00082   std::vector<MonitorElement*> dxyres_vs_eta, ptres_vs_eta, dzres_vs_eta, phires_vs_eta, cotThetares_vs_eta;
00083   std::vector<MonitorElement*> dxyres_vs_pt, ptres_vs_pt, dzres_vs_pt, phires_vs_pt, cotThetares_vs_pt;
00084   std::vector<MonitorElement*> h_dxyrmsh, h_ptrmsh, h_dzrmsh, h_phirmsh, h_cotThetarmsh;
00085   std::vector<MonitorElement*> h_dxyrmshPt, h_ptrmshPt, h_dzrmshPt, h_phirmshPt, h_cotThetarmshPt;
00086   std::vector<MonitorElement*> h_ptrmshPhi, h_phirmshPhi;
00087 
00088   //pulls of track params vs eta: to be used with fitslicesytool
00089   std::vector<MonitorElement*> dxypull_vs_eta, ptpull_vs_eta, dzpull_vs_eta, phipull_vs_eta, thetapull_vs_eta;
00090   std::vector<MonitorElement*> ptpull_vs_phi, phipull_vs_phi, thetapull_vs_phi;
00091   std::vector<MonitorElement*> h_dxypulleta, h_ptpulleta, h_dzpulleta, h_phipulleta, h_thetapulleta;
00092   std::vector<MonitorElement*> h_ptpullphi, h_phipullphi, h_thetapullphi;
00093 };
00094 
00095 
00096 #endif

Generated on Tue Jun 9 17:49:36 2009 for CMSSW by  doxygen 1.5.4