30 testInvariant ()
const
33 for (std::size_t form = 0, end = m_cuts.size(); form != end; ++ form)
43 RCU_INVARIANT (m_cuts.size() == std::size_t (m_hist->GetNbinsX()));
51 : m_outputStream (
"output"),
52 m_hist (0), m_formSvc (0), m_skim (0)
60 AlgSelect (
const std::string& val_outputStream,
const std::string& cut)
61 : m_outputStream (val_outputStream),
62 m_hist (0), m_formSvc (0), m_skim (0)
67 m_cuts.push_back (cut);
74 const std::string& AlgSelect ::
78 return m_outputStream;
83 const std::string& AlgSelect ::
93 histName (
const std::string& val_histName)
96 m_histName = val_histName;
102 addCut (
const std::string& cut)
106 m_cuts.push_back (cut);
116 return StatusCode::SUCCESS;
129 if (!m_cuts.empty() && !m_histName.empty())
131 m_hist =
new TH1D (m_histName.c_str(), 0, m_cuts.size(), 0, m_cuts.size());
132 wk()->addOutput (m_hist);
134 for (std::size_t form = 0, end = m_cuts.size(); form != end; ++ form)
136 m_index.push_back (m_formSvc->addForm (m_cuts[form]));
137 m_hist->GetXaxis()->SetBinLabel (1 + form, m_cuts[form].c_str());
146 return StatusCode::SUCCESS;
159 for (std::size_t form = 0; form != m_cuts.size() && weight != 0; ++ form)
162 if (m_index[form])
switch (m_index[form]->ndim())
166 return StatusCode::FAILURE;
168 myweight = m_index[form]->value (0);
172 return StatusCode::FAILURE;
174 ATH_MSG_ERROR (
"unknown formula dimension: " << m_cuts[form]);
175 return StatusCode::FAILURE;
179 if (m_hist && weight != 0)
184 m_skim->setFilterPassed ();
185 return StatusCode::SUCCESS;
NTupleSvc * getNTupleSvc(IWorker *worker, const std::string &outputStream, const std::string &treeName="")
effects: get the skimming algorithm for the given output for this worker guarantee: strong failures: ...