File indexing completed on 2024-04-06 12:09:47
0001 #ifndef BTagPerformanceHarvester_H
0002 #define BTagPerformanceHarvester_H
0003
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0006 #include "DQMOffline/RecoB/interface/BaseBTagPlotter.h"
0007 #include "DQMOffline/RecoB/interface/JetTagPlotter.h"
0008 #include "DQMOffline/RecoB/interface/TagCorrelationPlotter.h"
0009 #include "DQMOffline/RecoB/interface/BaseTagInfoPlotter.h"
0010 #include "DQMOffline/RecoB/interface/BTagDifferentialPlot.h"
0011
0012
0013
0014
0015
0016
0017
0018 class BTagPerformanceHarvester : public DQMEDHarvester {
0019 public:
0020 explicit BTagPerformanceHarvester(const edm::ParameterSet& pSet);
0021 ~BTagPerformanceHarvester() override;
0022
0023 private:
0024 void dqmEndJob(DQMStore::IBooker&, DQMStore::IGetter&) override;
0025 EtaPtBin getEtaPtBin(const int& iEta, const int& iPt);
0026
0027
0028 std::vector<double> etaRanges, ptRanges;
0029 bool produceEps, producePs;
0030 std::string psBaseName, epsBaseName;
0031 std::vector<std::string> tiDataFormatType;
0032
0033 std::vector<std::vector<std::shared_ptr<JetTagPlotter>>> binJetTagPlotters;
0034 std::vector<std::vector<std::unique_ptr<TagCorrelationPlotter>>> binTagCorrelationPlotters;
0035 std::vector<std::vector<std::unique_ptr<BaseTagInfoPlotter>>> binTagInfoPlotters;
0036 std::vector<edm::InputTag> jetTagInputTags;
0037 std::vector<std::pair<edm::InputTag, edm::InputTag>> tagCorrelationInputTags;
0038 std::vector<std::vector<edm::InputTag>> tagInfoInputTags;
0039
0040 std::vector<std::vector<std::unique_ptr<BTagDifferentialPlot>>> differentialPlots;
0041 std::vector<edm::ParameterSet> moduleConfig;
0042
0043 std::string flavPlots_;
0044 unsigned int mcPlots_;
0045 bool makeDiffPlots_;
0046 };
0047
0048 #endif