test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Attributes
SiPixelPhase1TrackEfficiencyHarvester Class Reference

#include <SiPixelPhase1TrackEfficiency.h>

Inheritance diagram for SiPixelPhase1TrackEfficiencyHarvester:
SiPixelPhase1Harvester DQMEDHarvester HistogramManagerHolder edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void doHarvesting (SummationStep &s, HistogramManager::Table &efficiency)
 
 SiPixelPhase1TrackEfficiencyHarvester (const edm::ParameterSet &conf)
 
- Public Member Functions inherited from SiPixelPhase1Harvester
void dqmEndJob (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
 
void dqmEndLuminosityBlock (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &eSetup)
 
 SiPixelPhase1Harvester (const edm::ParameterSet &iConfig)
 
- Public Member Functions inherited from DQMEDHarvester
virtual void analyze (edm::Event const &, edm::EventSetup const &) final
 
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDHarvester (void)
 
virtual void endJob () final
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
virtual void endRun (edm::Run const &, edm::EventSetup const &)
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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 & 
itemsToGetFromEvent () 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
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 
- Public Member Functions inherited from HistogramManagerHolder
 HistogramManagerHolder (const edm::ParameterSet &iConfig)
 

Private Types

enum  { CLUSTER_PROB, VALID, MISSING, EFFICIENCY }
 

Private Attributes

std::map< std::string,
HistogramManager::Table
missing
 
std::map< std::string,
HistogramManager::Table
valid
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
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 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 HistogramManagerHolder
GeometryInterface geometryInterface
 
std::vector< HistogramManagerhisto
 

Detailed Description

Definition at line 34 of file SiPixelPhase1TrackEfficiency.h.

Member Enumeration Documentation

anonymous enum
private

Constructor & Destructor Documentation

SiPixelPhase1TrackEfficiencyHarvester::SiPixelPhase1TrackEfficiencyHarvester ( const edm::ParameterSet conf)
explicit

Definition at line 12 of file SiPixelPhase1TrackEfficiencyHarvester.cc.

References SummationStep::arg, doHarvesting(), EFFICIENCY, HistogramManagerHolder::histo, MISSING, missing, alignCSCRings::s, t, VALID, and valid.

12  :
13  SiPixelPhase1Harvester(iConfig)
14 {
15  // We collect _all_ (all specs/all custom calls) histos from missing/valid in our table
16  histo[VALID ].setCustomHandler([&] (SummationStep& s, HistogramManager::Table& t,
18  valid [s.arg].insert(t.begin(), t.end());
19  });
20  histo[MISSING ].setCustomHandler([&] (SummationStep& s, HistogramManager::Table& t,
22  missing[s.arg].insert(t.begin(), t.end());
23  });
24 
25  // ... and then take those that we need to fill the EFFICIENCY
26  // note: we don't need the iBooker here, since the eff. histograms are booked with a HistogramManager
27  histo[EFFICIENCY].setCustomHandler([&] (SummationStep& s, HistogramManager::Table& t,
29  doHarvesting(s, t);
30  });
31 }
void doHarvesting(SummationStep &s, HistogramManager::Table &efficiency)
std::map< std::string, HistogramManager::Table > missing
SiPixelPhase1Harvester(const edm::ParameterSet &iConfig)
std::map< GeometryInterface::Values, AbstractHistogram > Table
std::vector< HistogramManager > histo
std::map< std::string, HistogramManager::Table > valid

Member Function Documentation

void SiPixelPhase1TrackEfficiencyHarvester::doHarvesting ( SummationStep s,
HistogramManager::Table efficiency 
)

Definition at line 33 of file SiPixelPhase1TrackEfficiencyHarvester.cc.

References SummationStep::arg, assert(), alignCSCRings::e, missing, pileupDistInMC::num, GenerateHcalLaserBadRunList::out, valid, makeHLTPrescaleTable::values, x, fw3dlego::xbins, and y.

Referenced by SiPixelPhase1TrackEfficiencyHarvester().

33  {
34  for (auto const& e : efficiency) {
35  GeometryInterface::Values const& values = e.first;
36  auto missing_it = missing[s.arg].find(values);
37  auto valid_it = valid [s.arg].find(values);
38  if (missing_it == missing[s.arg].end() || valid_it == valid[s.arg].end()) {
39  edm::LogError("SiPixelPhase1TrackEfficiencyHarvester") << "Want to do Efficiencies but 'valid' or 'missing' counts are missing.";
40  continue;
41  }
42  auto num = missing_it->second.th1;
43  auto denom = valid_it->second.th1;
44  assert(num);
45  assert(denom);
46  assert(num->GetDimension() == denom->GetDimension());
47 
48  auto& out = efficiency[values];
49  assert(out.th1);
50  assert(out.th1->GetDimension() == num->GetDimension());
51 
52  if (num->GetDimension() == 1) {
53  auto xbins = num->GetXaxis()->GetNbins();
54  assert(denom->GetXaxis()->GetNbins() == xbins || out.th1->GetXaxis()->GetNbins());
55 
56  for (int x = 1; x <= xbins; x++) {
57  auto sum = num->GetBinContent(x) + denom->GetBinContent(x);
58  if (sum == 0.0) continue; // avoid div by zero
59  out.th1->SetBinContent(x, 1 - (num->GetBinContent(x) / sum));
60  }
61 
62  } else /* 2D */ {
63  auto xbins = num->GetXaxis()->GetNbins();
64  auto ybins = num->GetYaxis()->GetNbins();
65  assert(denom->GetXaxis()->GetNbins() == xbins || out.th1->GetXaxis()->GetNbins());
66  assert(denom->GetYaxis()->GetNbins() == ybins || out.th1->GetYaxis()->GetNbins());
67 
68  for (int y = 1; y <= ybins; y++) {
69  for (int x = 1; x <= xbins; x++) {
70  auto sum = num->GetBinContent(x,y) + denom->GetBinContent(x,y);
71  if (sum == 0.0) continue; // avoid div by zero
72  out.th1->SetBinContent(x, y, 1 - (num->GetBinContent(x,y) / sum));
73  }
74  }
75  }
76  }
77 }
const double xbins[]
assert(m_qm.get())
std::map< std::string, HistogramManager::Table > missing
std::map< std::string, HistogramManager::Table > valid

Member Data Documentation

std::map<std::string, HistogramManager::Table> SiPixelPhase1TrackEfficiencyHarvester::missing
private
std::map<std::string, HistogramManager::Table> SiPixelPhase1TrackEfficiencyHarvester::valid
private