72 return StatusCode::SUCCESS;
78 execute (
const EventContext &ctx)
const
114 auto decorateWithNumber = [&truthParticle, &tau]<
typename T>(T & writeHandles, T::mapped_type::accessor_t::element_type
v)->
void{
115 for (
auto& [
acc, writeHandle] : writeHandles) {
116 if ((!truthParticle) or (!
acc->isAvailable(*truthParticle)) ) {
117 writeHandle(*tau) =
v;
119 writeHandle(*tau) = (*acc)(*truthParticle);
123 decorateWithNumber(doubleWriteHandles, -999.
f);
124 decorateWithNumber(floatWriteHandles, -999.
f);
125 decorateWithNumber(intWriteHandles, 0);
126 decorateWithNumber(unsignedIntWriteHandles, 0);
127 decorateWithNumber(charWriteHandles, 0);
133 const xAOD::Jet *truthJet = xAOD::TauHelpers::getLink<xAOD::Jet>(tau,
"truthJetLink");
134 if (truthJet !=
nullptr) {
135 partonTruthLabelIDHandle(*tau) = acc_PartonTruthLabelID(*truthJet);
139 return StatusCode::SUCCESS;