Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:33:34

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  //  Validation_RecoVertex_VertexHistogramMaker_H