30 testInvariant ()
const
35 for (std::size_t form = 0, end = m_cuts.size(); form != end; ++ form)
45 RCU_INVARIANT (m_cuts.size() == std::size_t (m_hist->GetNbinsX()));
53 : m_outputStream (
"output"),
54 m_hist (0), m_formSvc (0), m_skim (0)
62 AlgSelect (
const std::string& val_outputStream,
const std::string& cut)
63 : m_outputStream (val_outputStream),
64 m_hist (0), m_formSvc (0), m_skim (0)
69 m_cuts.push_back (cut);
76 const std::string& AlgSelect ::
80 return m_outputStream;
85 const std::string& AlgSelect ::
95 histName (
const std::string& val_histName)
98 m_histName = val_histName;
104 addCut (
const std::string& cut)
108 m_cuts.push_back (cut);
118 return StatusCode::SUCCESS;
131 if (!m_cuts.empty() && !m_histName.empty())
133 m_hist =
new TH1D (m_histName.c_str(), 0, m_cuts.size(), 0, m_cuts.size());
134 wk()->addOutput (m_hist);
136 for (std::size_t form = 0, end = m_cuts.size(); form != end; ++ form)
138 m_index.push_back (m_formSvc->addForm (m_cuts[form]));
139 m_hist->GetXaxis()->SetBinLabel (1 + form, m_cuts[form].c_str());
148 return StatusCode::SUCCESS;
161 for (std::size_t form = 0; form != m_cuts.size() && weight != 0; ++ form)
164 if (m_index[form])
switch (m_index[form]->ndim())
168 return StatusCode::FAILURE;
170 myweight = m_index[form]->value (0);
174 return StatusCode::FAILURE;
176 ATH_MSG_ERROR (
"unknown formula dimension: " << m_cuts[form]);
177 return StatusCode::FAILURE;
181 if (m_hist && weight != 0)
186 m_skim->setFilterPassed ();
187 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: ...