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;