18 valid [s.
arg].insert(t.begin(), t.end());
34 for (
auto const&
e : efficiency) {
37 auto valid_it =
valid [s.
arg].find(values);
39 edm::LogError(
"SiPixelPhase1TrackEfficiencyHarvester") <<
"Want to do Efficiencies but 'valid' or 'missing' counts are missing.";
42 auto num = missing_it->second.th1;
43 auto denom = valid_it->second.th1;
46 assert(
num->GetDimension() == denom->GetDimension());
50 assert(out.th1->GetDimension() ==
num->GetDimension());
52 if (
num->GetDimension() == 1) {
53 auto xbins =
num->GetXaxis()->GetNbins();
54 assert(denom->GetXaxis()->GetNbins() ==
xbins || out.th1->GetXaxis()->GetNbins());
57 auto sum =
num->GetBinContent(
x) + denom->GetBinContent(
x);
58 if (sum == 0.0)
continue;
59 out.th1->SetBinContent(
x, 1 - (
num->GetBinContent(
x) / sum));
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());
68 for (
int y = 1;
y <= ybins;
y++) {
70 auto sum =
num->GetBinContent(
x,
y) + denom->GetBinContent(
x,
y);
71 if (sum == 0.0)
continue;
72 out.th1->SetBinContent(
x,
y, 1 - (
num->GetBinContent(
x,
y) / sum));
#define DEFINE_FWK_MODULE(type)
void doHarvesting(SummationStep &s, HistogramManager::Table &efficiency)
std::map< std::string, HistogramManager::Table > missing
SiPixelPhase1TrackEfficiencyHarvester(const edm::ParameterSet &conf)
std::map< GeometryInterface::Values, AbstractHistogram > Table
std::vector< HistogramManager > histo
std::map< std::string, HistogramManager::Table > valid