27 "Turn on removal of overlapping calo muons");
29 "Remove electrons in DR cone of muons");
31 "Delta-R cone for flagging overlaps");
33 "Calculate delta-R using rapidity");
43 ATH_MSG_DEBUG(
"Configuring removal of overlapping calo muons");
53 return StatusCode::SUCCESS;
69 return StatusCode::SUCCESS;
91 for(
const auto electron : electrons){
98 for(
const auto muon : muons) {
100 if(muon(acc.m_muonTypeAcc) != xAOD::Muon::CaloTagged)
continue;
103 auto muTrk = muon(acc.m_muonTrkAcc);
113 for(
const auto muon : muons){
117 auto muTrk = muon(acc.m_muonTrkAcc);
120 for(
const auto electron : electrons) {
128 bool removeEle = (elTrk == muTrk);
138 return StatusCode::SUCCESS;
145 auto elGsfTrk = electron(acc.m_eleTrackAcc);
146 if (elGsfTrk.size() == 0 || !elGsfTrk[0].has_value())
147 throw std::runtime_error(
"Electron has no associated track");
148 return elGsfTrk[0].value()(acc.m_gsfOriginalTrackAcc);
#define ATH_CHECK
Evaluate an expression and check for errors.
DataVector adapter that acts like it holds const pointers.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ObjectId< ContainerId::particle1 > Particle1Id
ObjectId< ContainerId::eventContext > EventContextId
ObjectRange< ContainerId::particle2 > Particle2Range
ObjectRange< ContainerId::particle1 > Particle1Range
@ Muon
The object is a muon.
@ Electron
The object is an electron.