Go to the documentation of this file.00001
00002
00003
00007
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
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;
00077
00078 GenericTriggerEventFlag* genTriggerEventFlag_;
00079
00080 };