CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DQM/TrackingMonitor/interface/dEdxAnalyzer.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // 
00007 // Original Author: Loic Quertenmont 2012/07/25 
00008 
00009 #include <memory>
00010 #include <fstream>
00011 
00012 #include "FWCore/Framework/interface/Frameworkfwd.h"
00013 #include "FWCore/Framework/interface/EDAnalyzer.h"
00014 
00015 #include "FWCore/Framework/interface/Event.h"
00016 #include "FWCore/Framework/interface/EventSetup.h"
00017 #include "FWCore/Framework/interface/MakerMacros.h"
00018 
00019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00020 
00021 #include "FWCore/ServiceRegistry/interface/Service.h"
00022 #include "DQMServices/Core/interface/MonitorElement.h"
00023 
00024 class DQMStore;
00025 class GenericTriggerEventFlag;
00026 
00027 class dEdxAnalyzer : public edm::EDAnalyzer {
00028  public:
00029   explicit dEdxAnalyzer(const edm::ParameterSet&);
00030   ~dEdxAnalyzer();
00031   
00032   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
00033   
00034   virtual void beginJob();
00035   virtual void analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup);
00036   virtual void endJob() ;
00037 
00038   double mass(double P, double I);
00039   
00040   virtual void beginRun(const edm::Run&, const edm::EventSetup&); 
00041   virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
00042   virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
00043   
00044  private:
00045   // ----------member data ---------------------------
00046   DQMStore * dqmStore_;
00047   edm::ParameterSet fullconf_;
00048   edm::ParameterSet conf_;
00049   
00050   bool doAllPlots_;
00051   bool doDeDxPlots_;
00052   
00053   struct dEdxMEs 
00054   {
00055     MonitorElement* ME_MipDeDx;
00056     MonitorElement* ME_MipDeDxNHits;
00057     MonitorElement* ME_MipDeDxNSatHits;
00058     MonitorElement* ME_MipDeDxMass;
00059     MonitorElement* ME_HipDeDxMass;
00060     
00061     dEdxMEs()
00062       :ME_MipDeDx(NULL)
00063       ,ME_MipDeDxNHits(NULL)
00064       ,ME_MipDeDxNSatHits(NULL)
00065       ,ME_MipDeDxMass(NULL)
00066       ,ME_HipDeDxMass(NULL)
00067     {}
00068   };
00069   
00070   double TrackHitMin, HIPdEdxMin;
00071   double dEdxK, dEdxC;
00072   
00073   std::string TrackName ;
00074   std::vector< std::string  > AlgoNames;
00075   std::vector< dEdxMEs > dEdxMEsVector;
00076   std::string histname;  //for naming the histograms according to algorithm used
00077   
00078   GenericTriggerEventFlag* genTriggerEventFlag_;
00079   
00080 };