Back to home page

Project CMSSW displayed by LXR

 
 

    


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 /** \class BTagPerformanceHarvester
0013  *
0014  *  Top level steering routine for b tag performance harvesting.
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   // Get histogram plotting options from configuration.
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   // Contains plots for each bin of rapidity and pt.
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