19 return StatusCode::SUCCESS;
25 return StatusCode::SUCCESS;
28 std::vector<int> counts;
30 std::vector<float> pTcuts;
31 std::vector<float> d0mincuts;
32 std::vector<float> d0maxcuts;
33 std::vector<float> xi2maxcuts;
40 float countForConfiguredPtThreshold{};
43 ATH_MSG_DEBUG(
"this tool is configured for pT"<<
m_min_pt<<
" have nPt:"<<pTcuts.size()<<
" nd0min: "<<d0mincuts.size()<<
" nd0max: "<<d0maxcuts.size()<<
" xi2cuts "<<xi2maxcuts.size());
45 for (
size_t i = 0; i < counts.size(); ++i ) {
46 if ( std::abs( pTcuts[i] -
m_min_pt ) < 0.001 && std::abs( d0mincuts[i] -
m_min_d0 ) < 0.001 && std::abs( d0maxcuts[i] -
m_max_d0 ) < 0.001 && std::abs( xi2maxcuts[i] -
m_max_xi2 ) < 0.001 ) {
48 countForConfiguredPtThreshold = counts[i];
52 ATH_MSG_ERROR (
"Unable to find tracks count for requested pT threshold " <<
m_min_pt <<
" need to fix hypo tool configuratio or add new threshold in tracks counting");
53 for (
float pt : pTcuts ) {
54 ATH_MSG_ERROR(
"Count of tracks of pT above " << pt <<
" is available");
56 return StatusCode::FAILURE;
61 std::vector<bool> decisionCuts({
66 if(
m_logicAnd && !std::all_of(decisionCuts.begin(),decisionCuts.end(),[](
bool k ){return k; }) ){
68 return StatusCode::SUCCESS;
69 }
else if(
m_logicAnd==
false && !std::any_of(decisionCuts.begin(),decisionCuts.end(),[](
bool k ){return k; }) ){
70 return StatusCode::SUCCESS;
75 return StatusCode::SUCCESS;
Header file to be included by clients of the Monitored infrastructure.
bool getDetail(const std::string &name, TYPE &value) const
Get an TYPE detail from the object.
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.