File indexing completed on 2023-03-17 10:58:22
0001 #ifndef DQMOffline_RecoB_TagCorrelationPlotter_h
0002 #define DQMOffline_RecoB_TagCorrelationPlotter_h
0003
0004 #include <string>
0005
0006 #include "DQMOffline/RecoB/interface/FlavourHistorgrams2D.h"
0007 #include "DQMOffline/RecoB/interface/BaseBTagPlotter.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "DataFormats/BTauReco/interface/JetTag.h"
0010 #include "DQMOffline/RecoB/interface/EffPurFromHistos2D.h"
0011
0012 class TagCorrelationPlotter : public BaseBTagPlotter {
0013 public:
0014 TagCorrelationPlotter(const std::string& tagName1,
0015 const std::string& tagName2,
0016 const EtaPtBin& etaPtBin,
0017 const edm::ParameterSet& pSet,
0018 unsigned int mc,
0019 bool doCTagPlots,
0020 bool finalize,
0021 DQMStore::IBooker& ibook);
0022
0023 ~TagCorrelationPlotter() override;
0024
0025 void finalize(DQMStore::IBooker& ibook_, DQMStore::IGetter& igetter_) override;
0026
0027 void epsPlot(const std::string& name) override;
0028 void psPlot(const std::string& name) override {}
0029
0030 void analyzeTags(const reco::JetTag& jetTag1, const reco::JetTag& jetTag2, int jetFlavour, float w = 1);
0031 void analyzeTags(float discr1, float discr2, int jetFlavour, float w = 1);
0032
0033 protected:
0034 double lowerBound1_, lowerBound2_;
0035 double upperBound1_, upperBound2_;
0036 int nBinEffPur_;
0037 double startEffPur_;
0038 double endEffPur_;
0039 bool createProfile_;
0040
0041 std::vector<double> fixedEff_;
0042
0043 unsigned int mcPlots_;
0044 bool doCTagPlots_;
0045 bool finalize_;
0046
0047 std::unique_ptr<FlavourHistograms2D<double, double>> correlationHisto_;
0048
0049 std::unique_ptr<EffPurFromHistos2D> effPurFromHistos2D;
0050 };
0051
0052 #endif