15 const std::string&
name,
24 return StatusCode::SUCCESS;
29 const EventContext& ctx )
const {
42 std::unique_ptr<TrigRoiDescriptor> superRoI = std::make_unique<TrigRoiDescriptor>();
55 const std::vector<TrigCompositeUtils::LinkInfo<xAOD::IParticleContainer>> myFeature = TrigCompositeUtils::findLinks<xAOD::IParticleContainer>(decision,
m_iParticleLinkName, TrigDefs::lastFeatureOfType);
58 if (myFeature.size() != 1) {
60 <<
", found " << myFeature.size());
61 return StatusCode::FAILURE;
70 if (!(
muon &&
muon->primaryTrackParticle()) ) {
71 ATH_MSG_ERROR(
"NO PRIMARY muon from decision object! " << myFeature.at(0).link);
72 return StatusCode::FAILURE;
76 " eta=" <<
muon->eta() <<
77 " phi=" <<
muon->phi() );
80 double muonEta{
muon->eta()}, muonPhi{
muon->phi()};
90 std::unique_ptr<TrigRoiDescriptor> newROI =
nullptr;
92 if (
muon->primaryTrackParticle() ) {
93 muonZed =
muon->primaryTrackParticle()->z0() +
muon->primaryTrackParticle()->vz();
103 zMinus = zMinus < -225. ? -225. : zMinus;
104 zPlus = zPlus > 225. ? 225. : zPlus;
106 ATH_MSG_DEBUG(
"eta- " << etaMinus <<
" eta+ " << etaPlus <<
" phi- " << phiMinus <<
" phi+ " << phiPlus <<
" zed- " << zMinus <<
" zed+ " << zPlus);
109 muonPhi, phiMinus, phiPlus,
110 muonZed, zMinus, zPlus ) );
117 ATH_MSG_DEBUG(
"eta- " << etaMinus <<
" eta+ " << etaPlus <<
" phi- " << phiMinus <<
" phi+ " << phiPlus);
120 muonPhi, phiMinus, phiPlus) );
131 roisWriteHandle->
push_back(superRoI.release());
141 return StatusCode::SUCCESS;