7#include "GaudiKernel/ThreadLocalContext.h"
14 const IInterface* p) :
33 return StatusCode::SUCCESS;
41 return StatusCode::SUCCESS;
47 const EventContext& ctx = Gaudi::Hive::currentContext();
52 size_t nTaus =
taus->size();
67 std::vector<const xAOD::TauJet*> tausToKeep;
71 std::vector<int>
entries = m_parser->evaluateAsVector();
72 size_t nEntries =
entries.size();
73 if (nTaus != nEntries) {
74 ATH_MSG_ERROR(
"Incompatible sizes: " << nTaus <<
" vs " << nEntries <<
"! Please check your selection string uses the appropriate tau container.");
75 return StatusCode::FAILURE;
78 for (
size_t i=0; i<nTaus; ++i)
if (
entries[i]==1) tausToKeep.push_back(
taus->at(i));
82 for (
size_t i=0; i<nTaus; ++i) tausToKeep.push_back(
taus->at(i));
86 if( tausToKeep.size() > 0){
87 for(
size_t i=0; i < tausToKeep.size()-1; i++){
88 const auto* aTau=tausToKeep[i];
89 auto it =
std::remove_if(tausToKeep.begin()+i+1,tausToKeep.end(),[aTau](
const xAOD::TauJet* bTau) {return aTau->p4().DeltaR(bTau->p4()) < 0.01;});
90 tausToKeep.erase (it, tausToKeep.end());
95 for (
const auto* tau : tausToKeep) {
97 taus.keep(tau->index());
101 tauTracks.
keep(track->index());
104 trackParticles.
keep(track->track()->index());
108 for (
size_t i=0; i<tau->nNeutralPFOs(); i++) {
109 neutralPFOs.
keep(tau->neutralPFO(i)->index());
113 if (tau->secondaryVertex() !=
nullptr) {
114 secondaryVertices.
keep(tau->secondaryVertex()->index());
122 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Handle for requesting thinning for a data object.
void thinAll()
Mark that all elements should be thinned away.
void keep(size_t ndx)
Mark that index ndx in the container should be kept (not thinned away).
Handle for requesting thinning for a data object.
DataModel_detail::iterator< DVL > remove_if(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
Specialization of remove_if for DataVector/List.
TauTrack_v1 TauTrack
Definition of the current version.
TauJet_v3 TauJet
Definition of the current "tau version".