12 const IInterface* p) :
32 return StatusCode::SUCCESS;
40 return StatusCode::SUCCESS;
50 size_t nTaus =
taus->size();
59 trackLargeD0Particles.
thinAll();
68 std::vector<const xAOD::TauJet*> tausToKeep;
72 std::vector<int>
entries = m_parser->evaluateAsVector();
73 size_t nEntries =
entries.size();
74 if (nTaus != nEntries) {
75 ATH_MSG_ERROR(
"Incompatible sizes: " << nTaus <<
" vs " << nEntries <<
"! Please check your selection string uses the appropriate tau container.");
76 return StatusCode::FAILURE;
79 for (
size_t i=0; i<nTaus; ++i)
if (
entries[i]==1) tausToKeep.push_back(
taus->at(i));
83 for (
size_t i=0; i<nTaus; ++i) tausToKeep.push_back(
taus->at(i));
87 if( tausToKeep.size() > 0){
88 for(
size_t i=0; i < tausToKeep.size()-1; i++){
89 const auto* aTau=tausToKeep[i];
90 auto it =
std::remove_if(tausToKeep.begin()+i+1,tausToKeep.end(),[aTau](
const xAOD::TauJet* bTau) {return aTau->p4().DeltaR(bTau->p4()) < 0.01;});
91 tausToKeep.erase (it, tausToKeep.end());
96 for (
const auto* tau : tausToKeep) {
98 taus.keep(tau->index());
102 tauTracks.
keep(track->index());
107 trackParticles.
keep(track->track()->index());
109 trackLargeD0Particles.
keep(track->track()->index());
114 for (
size_t i=0; i<tau->nNeutralPFOs(); i++) {
115 neutralPFOs.
keep(tau->neutralPFO(i)->index());
119 if (tau->secondaryVertex() !=
nullptr) {
120 secondaryVertices.
keep(tau->secondaryVertex()->index());
128 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".