File indexing completed on 2024-04-06 12:33:34
0001 #ifndef Validation_RecoVertex_BSvsPVHistogramMaker_H
0002 #define Validation_RecoVertex_BSvsPVHistogramMaker_H
0003
0004 #include <string>
0005 #include "FWCore/Framework/interface/ConsumesCollector.h"
0006 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "DPGAnalysis/SiStripTools/interface/RunHistogramManager.h"
0009
0010 namespace edm {
0011 class ParameterSet;
0012 class Event;
0013 }
0014
0015 namespace reco {
0016 class BeamSpot;
0017 }
0018
0019 class TH1F;
0020 class TH2F;
0021 class TProfile;
0022 class TFileDirectory;
0023
0024 class BSvsPVHistogramMaker {
0025 public:
0026 BSvsPVHistogramMaker(edm::ConsumesCollector&& iC);
0027 BSvsPVHistogramMaker(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC);
0028
0029 ~BSvsPVHistogramMaker();
0030
0031 void book(const std::string dirname = "");
0032 void beginRun(const unsigned int nrun);
0033 void fill(const unsigned int orbit, const int bx, const reco::VertexCollection& vertices, const reco::BeamSpot& bs);
0034 void fill(const edm::Event& iEvent, const reco::VertexCollection& vertices, const reco::BeamSpot& bs);
0035
0036 double x(const reco::BeamSpot& bs, const double z) const;
0037 double y(const reco::BeamSpot& bs, const double z) const;
0038
0039 private:
0040 TFileDirectory* _currdir;
0041 const unsigned int m_maxLS;
0042 const bool useSlope_;
0043 const bool _trueOnly;
0044 const bool _runHisto;
0045 const bool _runHistoProfile;
0046 const bool _runHistoBXProfile;
0047 const bool _runHistoBX2D;
0048 const edm::ParameterSet _histoParameters;
0049
0050 RunHistogramManager _rhm;
0051 TH1F* _hdeltax;
0052 TH1F* _hdeltay;
0053 TH1F* _hdeltaz;
0054 TProfile* _hdeltaxvsz;
0055 TProfile* _hdeltayvsz;
0056 TH1F** _hdeltaxrun;
0057 TH1F** _hdeltayrun;
0058 TH1F** _hdeltazrun;
0059 TProfile** _hdeltaxvszrun;
0060 TProfile** _hdeltayvszrun;
0061 TProfile** _hdeltaxvsorbrun;
0062 TProfile** _hdeltayvsorbrun;
0063 TProfile** _hdeltazvsorbrun;
0064
0065 TProfile** _hdeltaxvsbxrun;
0066 TProfile** _hdeltayvsbxrun;
0067 TProfile** _hdeltazvsbxrun;
0068
0069 TH2F** _hdeltaxvsbx2drun;
0070 TH2F** _hdeltayvsbx2drun;
0071 TH2F** _hdeltazvsbx2drun;
0072 };
0073
0074 #endif