CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
BTagPerformanceHarvester Class Reference

#include <BTagPerformanceHarvester.h>

Inheritance diagram for BTagPerformanceHarvester:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 BTagPerformanceHarvester (const edm::ParameterSet &pSet)
 
 ~BTagPerformanceHarvester () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
EtaPtBin getEtaPtBin (const int &iEta, const int &iPt)
 

Private Attributes

std::vector< std::vector< std::shared_ptr< JetTagPlotter > > > binJetTagPlotters
 
std::vector< std::vector< std::unique_ptr< TagCorrelationPlotter > > > binTagCorrelationPlotters
 
std::vector< std::vector< std::unique_ptr< BaseTagInfoPlotter > > > binTagInfoPlotters
 
std::vector< std::vector< std::unique_ptr< BTagDifferentialPlot > > > differentialPlots
 
std::string epsBaseName
 
std::vector< double > etaRanges
 
std::string flavPlots_
 
std::vector< edm::InputTagjetTagInputTags
 
bool makeDiffPlots_
 
unsigned int mcPlots_
 
std::vector< edm::ParameterSetmoduleConfig
 
bool produceEps
 
bool producePs
 
std::string psBaseName
 
std::vector< double > ptRanges
 
std::vector< std::pair< edm::InputTag, edm::InputTag > > tagCorrelationInputTags
 
std::vector< std::vector< edm::InputTag > > tagInfoInputTags
 
std::vector< std::string > tiDataFormatType
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Top level steering routine for b tag performance harvesting.

Definition at line 18 of file BTagPerformanceHarvester.h.

Constructor & Destructor Documentation

BTagPerformanceHarvester::BTagPerformanceHarvester ( const edm::ParameterSet pSet)
explicit

Definition at line 12 of file BTagPerformanceHarvester.cc.

References binJetTagPlotters, binTagCorrelationPlotters, binTagInfoPlotters, differentialPlots, etaRanges, flavPlots_, edm::ParameterSet::getParameter(), jetTagInputTags, makeDiffPlots_, mcPlots_, moduleConfig, ptRanges, tagCorrelationInputTags, tagInfoInputTags, and tiDataFormatType.

12  :
13  etaRanges(pSet.getParameter< vector<double> >("etaRanges")),
14  ptRanges(pSet.getParameter< vector<double> >("ptRanges")),
15  produceEps(pSet.getParameter< bool >("produceEps")),
16  producePs(pSet.getParameter< bool >("producePs")),
17  moduleConfig(pSet.getParameter< vector<edm::ParameterSet> >("tagConfig")),
18  flavPlots_(pSet.getParameter< std::string >("flavPlots")),
19  makeDiffPlots_(pSet.getParameter< bool >("differentialPlots"))
20 {
21  //mcPlots_ : 1=b+c+l+ni; 2=all+1; 3=1+d+u+s+g; 4=3+all . Default is 2. Don't use 0.
22  if (flavPlots_.find("dusg")<15) {
23  if (flavPlots_.find("all")<15)
24  mcPlots_ = 4;
25  else
26  mcPlots_ = 3;
27  } else if (flavPlots_.find("bcl")<15) {
28  if (flavPlots_.find("all")<15)
29  mcPlots_ = 2;
30  else
31  mcPlots_ = 1;
32  } else
33  mcPlots_ = 0;
34 
35  if (etaRanges.size() <= 1)
36  etaRanges = { pSet.getParameter<double>("etaMin"), pSet.getParameter<double>("etaMax") };
37  if (ptRanges.size() <= 1)
38  ptRanges = { pSet.getParameter<double>("ptRecJetMin"), pSet.getParameter<double>("ptRecJetMax") };
39 
40  for (vector<edm::ParameterSet>::const_iterator iModule = moduleConfig.begin();
41  iModule != moduleConfig.end(); ++iModule) {
42  const string& dataFormatType = iModule->exists("type") ?
43  iModule->getParameter<string>("type") :
44  "JetTag";
45  if (dataFormatType == "JetTag") {
46  const InputTag& moduleLabel = iModule->getParameter<InputTag>("label");
47  jetTagInputTags.push_back(moduleLabel);
48  binJetTagPlotters.push_back(vector<std::shared_ptr<JetTagPlotter>>());
49  if (mcPlots_ && makeDiffPlots_) {
50  differentialPlots.push_back(vector<std::unique_ptr<BTagDifferentialPlot>>());
51  }
52  } else if (dataFormatType == "TagCorrelation") {
53  const InputTag& label1 = iModule->getParameter<InputTag>("label1");
54  const InputTag& label2 = iModule->getParameter<InputTag>("label2");
55  tagCorrelationInputTags.push_back(std::pair<edm::InputTag, edm::InputTag>(label1, label2));
56  binTagCorrelationPlotters.push_back(vector<std::unique_ptr<TagCorrelationPlotter>>());
57  } else {
58  tagInfoInputTags.push_back(vector<edm::InputTag>());
59  tiDataFormatType.push_back(dataFormatType);
60  binTagInfoPlotters.push_back(vector<std::unique_ptr<BaseTagInfoPlotter>>());
61  }
62  }
63 
64 }
T getParameter(std::string const &) const
std::vector< std::pair< edm::InputTag, edm::InputTag > > tagCorrelationInputTags
std::vector< std::vector< edm::InputTag > > tagInfoInputTags
std::vector< std::vector< std::shared_ptr< JetTagPlotter > > > binJetTagPlotters
std::vector< edm::InputTag > jetTagInputTags
std::vector< std::vector< std::unique_ptr< BaseTagInfoPlotter > > > binTagInfoPlotters
std::vector< std::string > tiDataFormatType
std::vector< edm::ParameterSet > moduleConfig
std::vector< std::vector< std::unique_ptr< BTagDifferentialPlot > > > differentialPlots
std::vector< double > etaRanges
std::vector< std::vector< std::unique_ptr< TagCorrelationPlotter > > > binTagCorrelationPlotters
std::vector< double > ptRanges
BTagPerformanceHarvester::~BTagPerformanceHarvester ( )
override

Definition at line 96 of file BTagPerformanceHarvester.cc.

96 {}

Member Function Documentation

void BTagPerformanceHarvester::dqmEndJob ( DQMStore::IBooker ibook,
DQMStore::IGetter iget 
)
overrideprivatevirtual

Implements DQMEDHarvester.

Definition at line 98 of file BTagPerformanceHarvester.cc.

References binJetTagPlotters, binTagCorrelationPlotters, binTagInfoPlotters, TagInfoPlotterFactory::buildPlotter(), BTagDifferentialPlot::constETA, BTagDifferentialPlot::constPT, DEFINE_FWK_MODULE, differentialPlots, epsBaseName, etaRanges, getEtaPtBin(), edm::InputTag::label(), makeDiffPlots_, mcPlots_, moduleConfig, eostools::move(), produceEps, producePs, psBaseName, ptRanges, and plotscripts::setTDRStyle().

99 {
100  // Book all histograms.
101 
102  // iterate over ranges:
103  const int iEtaStart = -1 ; // this will be the inactive one
104  const int iEtaEnd = etaRanges.size() > 2 ? etaRanges.size() - 1 : 0; // if there is only one bin defined, leave it as the inactive one
105  const int iPtStart = -1 ; // this will be the inactive one
106  const int iPtEnd = ptRanges.size() > 2 ? ptRanges.size() - 1 : 0; // if there is only one bin defined, leave it as the inactive one
107  setTDRStyle();
108 
109  TagInfoPlotterFactory theFactory;
110  int iTag = -1; int iTagCorr = -1; int iInfoTag = -1;
111  for (vector<edm::ParameterSet>::const_iterator iModule = moduleConfig.begin();
112  iModule != moduleConfig.end(); ++iModule) {
113 
114  const string& dataFormatType = iModule->exists("type") ?
115  iModule->getParameter<string>("type") :
116  "JetTag";
117  const bool& doCTagPlots = iModule->exists("doCTagPlots") ?
118  iModule->getParameter<bool>("doCTagPlots") :
119  false;
120 
121  if (dataFormatType == "JetTag") {
122  iTag++;
123  const string& folderName = iModule->getParameter<string>("folder");
124 
125  // Contains plots for each bin of rapidity and pt.
126  auto differentialPlotsConstantEta = std::make_unique< std::vector<std::unique_ptr<BTagDifferentialPlot>> >();
127  auto differentialPlotsConstantPt = std::make_unique< std::vector<std::unique_ptr<BTagDifferentialPlot>> >();
128  if (mcPlots_ && makeDiffPlots_) {
129  // the constant b-efficiency for the differential plots versus pt and eta
130  const double& effBConst =
131  iModule->getParameter<edm::ParameterSet>("parameters").getParameter<double>("effBConst");
132 
133  // the objects for the differential plots vs. eta,pt for
134  for (int iEta = iEtaStart; iEta < iEtaEnd; iEta++) {
135  std::unique_ptr<BTagDifferentialPlot> etaConstDifferentialPlot = std::make_unique<BTagDifferentialPlot>(effBConst, BTagDifferentialPlot::constETA, folderName, mcPlots_);
136  differentialPlotsConstantEta->push_back(std::move(etaConstDifferentialPlot));
137  }
138 
139  for (int iPt = iPtStart; iPt < iPtEnd; iPt++) {
140  // differentialPlots for this pt bin
141  std::unique_ptr<BTagDifferentialPlot> ptConstDifferentialPlot = std::make_unique<BTagDifferentialPlot>(effBConst, BTagDifferentialPlot::constPT, folderName, mcPlots_);
142  differentialPlotsConstantPt->push_back(std::move(ptConstDifferentialPlot));
143  }
144  }
145  // eta loop
146  for (int iEta = iEtaStart; iEta < iEtaEnd; iEta++) {
147  // pt loop
148  for (int iPt = iPtStart; iPt < iPtEnd; iPt++) {
149 
150  const EtaPtBin& etaPtBin = getEtaPtBin(iEta, iPt);
151 
152  // Instantiate the generic b tag plotter
153  bool doDifferentialPlots = iModule->exists("differentialPlots") && iModule->getParameter<bool>("differentialPlots") == true;
154  std::shared_ptr<JetTagPlotter> jetTagPlotter = std::make_shared<JetTagPlotter>(folderName, etaPtBin,
155  iModule->getParameter<edm::ParameterSet>("parameters"),mcPlots_,true, ibook, doCTagPlots, doDifferentialPlots);
156  binJetTagPlotters.at(iTag).push_back(jetTagPlotter);
157 
158  // Add to the corresponding differential plotters
159  if (mcPlots_ && makeDiffPlots_) {
160  (*differentialPlotsConstantEta)[iEta+1]->addBinPlotter(jetTagPlotter);
161  (*differentialPlotsConstantPt)[iPt+1] ->addBinPlotter(jetTagPlotter);
162  }
163  }
164  }
165  // the objects for the differential plots vs. eta, pt: collect all from constant eta and constant pt
166  if (mcPlots_ && makeDiffPlots_) {
167  differentialPlots.at(iTag).reserve(differentialPlotsConstantEta->size() + differentialPlotsConstantPt->size());
168  differentialPlots.at(iTag).insert(differentialPlots.at(iTag).end(), std::make_move_iterator(differentialPlotsConstantEta->begin()), std::make_move_iterator(differentialPlotsConstantEta->end()));
169  differentialPlots.at(iTag).insert(differentialPlots.at(iTag).end(), std::make_move_iterator(differentialPlotsConstantPt->begin()), std::make_move_iterator(differentialPlotsConstantPt->end()));
170 
171  edm::LogInfo("Info")
172  << "====>>>> ## sizeof differentialPlots = " << differentialPlots.size();
173  }
174  } else if (dataFormatType == "TagCorrelation") {
175  iTagCorr++;
176  const InputTag& label1 = iModule->getParameter<InputTag>("label1");
177  const InputTag& label2 = iModule->getParameter<InputTag>("label2");
178 
179  // eta loop
180  for (int iEta = iEtaStart; iEta != iEtaEnd; ++iEta) {
181  // pt loop
182  for (int iPt = iPtStart; iPt != iPtEnd; ++iPt) {
183  const EtaPtBin& etaPtBin = getEtaPtBin(iEta, iPt);
184  // Instantiate the generic b tag correlation plotter
185  std::unique_ptr<TagCorrelationPlotter> tagCorrelationPlotter = std::make_unique<TagCorrelationPlotter>(label1.label(), label2.label(), etaPtBin,
186  iModule->getParameter<edm::ParameterSet>("parameters"),
187  mcPlots_, doCTagPlots, true, ibook);
188  binTagCorrelationPlotters.at(iTagCorr).push_back(std::move(tagCorrelationPlotter));
189  }
190  }
191  } else {
192  iInfoTag++;
193  // tag info retrievel is deferred(needs availability of EventSetup)
194  const InputTag& moduleLabel = iModule->getParameter<InputTag>("label");
195  const string& folderName = iModule->getParameter<string>("folder");
196  // eta loop
197  for (int iEta = iEtaStart; iEta < iEtaEnd; iEta++) {
198  // pt loop
199  for (int iPt = iPtStart; iPt < iPtEnd; iPt++) {
200  const EtaPtBin& etaPtBin = getEtaPtBin(iEta, iPt);
201 
202  // Instantiate the tagInfo plotter
203 
204  std::unique_ptr<BaseTagInfoPlotter> jetTagPlotter = theFactory.buildPlotter(dataFormatType, moduleLabel.label(),
205  etaPtBin, iModule->getParameter<edm::ParameterSet>("parameters"), folderName,
206  mcPlots_, true, ibook);
207  binTagInfoPlotters.at(iInfoTag).push_back(std::move(jetTagPlotter));
208  }
209  }
210  edm::LogInfo("Info")
211  << "====>>>> ## sizeof differentialPlots = " << differentialPlots.size();
212  }
213  }
214 
215  setTDRStyle();
216  for (unsigned int iJetLabel = 0; iJetLabel != binJetTagPlotters.size(); ++iJetLabel) {
217  int plotterSize = binJetTagPlotters[iJetLabel].size();
218  for (int iPlotter = 0; iPlotter != plotterSize; ++iPlotter) {
219  binJetTagPlotters[iJetLabel][iPlotter]->finalize(ibook, iget);
220  if (producePs) (*binJetTagPlotters[iJetLabel][iPlotter]).psPlot(psBaseName);
221  if (produceEps)(*binJetTagPlotters[iJetLabel][iPlotter]).epsPlot(epsBaseName);
222  }
223 
224  if (makeDiffPlots_) {
225  for (auto& iPlotter: differentialPlots[iJetLabel]) {
226  iPlotter->process(ibook);
227  if (producePs) iPlotter->psPlot(psBaseName);
228  if (produceEps) iPlotter->epsPlot(epsBaseName);
229  }
230  }
231  }
232 
233  for (auto& iJetLabel: binTagInfoPlotters) {
234  for (auto& iPlotter: iJetLabel) {
235  iPlotter->finalize(ibook, iget);
236  if (producePs) iPlotter->psPlot(psBaseName);
237  if (produceEps) iPlotter->epsPlot(epsBaseName);
238  }
239  }
240  for (unsigned int iJetLabel = 0; iJetLabel != binTagCorrelationPlotters.size(); ++iJetLabel) {
241  int plotterSize = binTagCorrelationPlotters[iJetLabel].size();
242  for (int iPlotter = 0; iPlotter != plotterSize; ++iPlotter) {
243  binTagCorrelationPlotters[iJetLabel][iPlotter]->finalize(ibook, iget);
244  if (producePs) (*binTagCorrelationPlotters[iJetLabel][iPlotter]).psPlot(psBaseName);
245  if (produceEps)(*binTagCorrelationPlotters[iJetLabel][iPlotter]).epsPlot(epsBaseName);
246  }
247  }
248 
249 }
std::vector< std::vector< std::shared_ptr< JetTagPlotter > > > binJetTagPlotters
EtaPtBin getEtaPtBin(const int &iEta, const int &iPt)
def setTDRStyle()
Definition: plotscripts.py:89
std::string const & label() const
Definition: InputTag.h:36
std::vector< std::vector< std::unique_ptr< BaseTagInfoPlotter > > > binTagInfoPlotters
std::vector< edm::ParameterSet > moduleConfig
std::unique_ptr< BaseTagInfoPlotter > buildPlotter(const std::string &dataFormatType, const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, const std::string &folderName, unsigned int mc, bool wf, DQMStore::IBooker &ibook)
std::vector< std::vector< std::unique_ptr< BTagDifferentialPlot > > > differentialPlots
std::vector< double > etaRanges
std::vector< std::vector< std::unique_ptr< TagCorrelationPlotter > > > binTagCorrelationPlotters
def move(src, dest)
Definition: eostools.py:511
std::vector< double > ptRanges
EtaPtBin BTagPerformanceHarvester::getEtaPtBin ( const int &  iEta,
const int &  iPt 
)
private

Definition at line 66 of file BTagPerformanceHarvester.cc.

References histoStyle::EtaPtBin, etaRanges, and ptRanges.

Referenced by dqmEndJob().

67 {
68  // DEFINE BTagBin:
69  bool etaActive_ , ptActive_;
70  double etaMin_, etaMax_, ptMin_, ptMax_;
71 
72  if (iEta != -1) {
73  etaActive_ = true;
74  etaMin_ = etaRanges[iEta];
75  etaMax_ = etaRanges[iEta+1];
76  }
77  else {
78  etaActive_ = false;
79  etaMin_ = etaRanges[0];
80  etaMax_ = etaRanges[etaRanges.size() - 1];
81  }
82 
83  if (iPt != -1) {
84  ptActive_ = true;
85  ptMin_ = ptRanges[iPt];
86  ptMax_ = ptRanges[iPt+1];
87  }
88  else {
89  ptActive_ = false;
90  ptMin_ = ptRanges[0];
91  ptMax_ = ptRanges[ptRanges.size() - 1];
92  }
93  return EtaPtBin(etaActive_, etaMin_, etaMax_, ptActive_, ptMin_, ptMax_);
94 }
std::vector< double > etaRanges
std::vector< double > ptRanges

Member Data Documentation

std::vector< std::vector<std::shared_ptr<JetTagPlotter> > > BTagPerformanceHarvester::binJetTagPlotters
private

Definition at line 33 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

std::vector< std::vector<std::unique_ptr<TagCorrelationPlotter> > > BTagPerformanceHarvester::binTagCorrelationPlotters
private

Definition at line 34 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

std::vector< std::vector<std::unique_ptr<BaseTagInfoPlotter> > > BTagPerformanceHarvester::binTagInfoPlotters
private

Definition at line 35 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

std::vector< std::vector<std::unique_ptr<BTagDifferentialPlot> > > BTagPerformanceHarvester::differentialPlots
private

Definition at line 40 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

std::string BTagPerformanceHarvester::epsBaseName
private

Definition at line 30 of file BTagPerformanceHarvester.h.

Referenced by dqmEndJob().

std::vector<double> BTagPerformanceHarvester::etaRanges
private

Definition at line 28 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), dqmEndJob(), and getEtaPtBin().

std::string BTagPerformanceHarvester::flavPlots_
private

Definition at line 43 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester().

std::vector<edm::InputTag> BTagPerformanceHarvester::jetTagInputTags
private

Definition at line 36 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester().

bool BTagPerformanceHarvester::makeDiffPlots_
private

Definition at line 45 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

unsigned int BTagPerformanceHarvester::mcPlots_
private

Definition at line 44 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

std::vector<edm::ParameterSet> BTagPerformanceHarvester::moduleConfig
private

Definition at line 41 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), and dqmEndJob().

bool BTagPerformanceHarvester::produceEps
private

Definition at line 29 of file BTagPerformanceHarvester.h.

Referenced by dqmEndJob().

bool BTagPerformanceHarvester::producePs
private

Definition at line 29 of file BTagPerformanceHarvester.h.

Referenced by dqmEndJob().

std::string BTagPerformanceHarvester::psBaseName
private

Definition at line 30 of file BTagPerformanceHarvester.h.

Referenced by dqmEndJob().

std::vector<double> BTagPerformanceHarvester::ptRanges
private

Definition at line 28 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester(), dqmEndJob(), and getEtaPtBin().

std::vector< std::pair<edm::InputTag, edm::InputTag> > BTagPerformanceHarvester::tagCorrelationInputTags
private

Definition at line 37 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester().

std::vector< std::vector<edm::InputTag> > BTagPerformanceHarvester::tagInfoInputTags
private

Definition at line 38 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester().

std::vector<std::string> BTagPerformanceHarvester::tiDataFormatType
private

Definition at line 31 of file BTagPerformanceHarvester.h.

Referenced by BTagPerformanceHarvester().