File indexing completed on 2023-03-17 11:29:06
0001 #ifndef Validation_RecoVertex_VertexHistogramMaker_H
0002 #define Validation_RecoVertex_VertexHistogramMaker_H
0003
0004 #include <string>
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"
0006 #include "FWCore/Framework/interface/ConsumesCollector.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/Utilities/interface/EDGetToken.h"
0009 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0010 #include "DPGAnalysis/SiStripTools/interface/RunHistogramManager.h"
0011
0012 class TH1F;
0013 class TH2F;
0014 class TProfile;
0015 class TFileDirectory;
0016
0017 namespace edm {
0018 class ConsumesCollector;
0019 }
0020
0021 class LumiDetails;
0022
0023 class VertexHistogramMaker {
0024 public:
0025 VertexHistogramMaker(edm::ConsumesCollector&& iC);
0026 VertexHistogramMaker(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC);
0027
0028 ~VertexHistogramMaker();
0029
0030 void book(const std::string dirname = "");
0031 void beginRun(const edm::Run& iRun);
0032 void fill(const edm::Event& iEvent, const reco::VertexCollection& vertices, const double weight = 1.);
0033
0034 private:
0035 void fill(const unsigned int orbit,
0036 const int bx,
0037 const float bxlumi,
0038 const reco::VertexCollection& vertices,
0039 const double weight = 1.);
0040
0041 TFileDirectory* m_currdir;
0042 const unsigned int m_maxLS;
0043 const double m_weightThreshold;
0044 const bool m_trueOnly;
0045 const bool m_runHisto;
0046 const bool m_runHistoProfile;
0047 const bool m_runHistoBXProfile;
0048 const bool m_runHistoBXProfile2D;
0049 const bool m_runHisto2D;
0050 const bool m_bsConstrained;
0051 const edm::ParameterSet m_histoParameters;
0052 edm::EDGetTokenT<LumiDetails> m_lumiDetailsToken;
0053
0054 RunHistogramManager m_rhm;
0055 RunHistogramManager m_fhm;
0056 TH1F* m_hnvtx;
0057 TH1F* m_hntruevtx;
0058 TProfile* m_hntruevtxvslumi;
0059 TH2D* m_hntruevtxvslumi2D;
0060 TH1F* m_hntracks;
0061 TH1F* m_hsqsumptsq;
0062 TH1F* m_hsqsumptsqheavy;
0063 TH1F* m_hnheavytracks;
0064 TH1F* m_hndof;
0065 TH1F* m_haveweight;
0066 TH2F* m_hndofvstracks;
0067 TProfile* m_hndofvsvtxz;
0068 TProfile* m_hntracksvsvtxz;
0069 TProfile* m_haveweightvsvtxz;
0070 TProfile* m_haveweightvsvtxzchk;
0071 TH1F* m_hweights;
0072 TH1F* m_hvtxx;
0073 TH1F* m_hvtxy;
0074 TH1F* m_hvtxz;
0075 TH1F** m_hvtxxrun;
0076 TH1F** m_hvtxyrun;
0077 TH1F** m_hvtxzrun;
0078 TProfile** m_hvtxxvsorbrun;
0079 TProfile** m_hvtxyvsorbrun;
0080 TProfile** m_hvtxzvsorbrun;
0081 TProfile** m_hnvtxvsorbrun;
0082 TProfile2D** m_hnvtxvsbxvsorbrun;
0083 TH2F** m_hnvtxvsorbrun2D;
0084
0085 TProfile** m_hvtxxvsbxrun;
0086 TProfile** m_hvtxyvsbxrun;
0087 TProfile** m_hvtxzvsbxrun;
0088 TProfile** m_hnvtxvsbxrun;
0089
0090 TProfile2D** m_hnvtxvsbxvslumirun;
0091
0092 TH2F** m_hvtxxvsbx2drun;
0093 TH2F** m_hvtxyvsbx2drun;
0094 TH2F** m_hvtxzvsbx2drun;
0095 };
0096
0097 #endif