29 const EventContext& ctx )
const {
38 ATH_MSG_DEBUG(
"In MuonSuperROITool - got decisions, size: " << decisions.size());
42 std::unique_ptr<TrigRoiDescriptor> superRoI = std::make_unique<TrigRoiDescriptor>();
43 superRoI->setComposite(
true);
44 superRoI->manageConstituents(
false);
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 ) );
112 superRoI->manageConstituents(
true);
117 ATH_MSG_DEBUG(
"eta- " << etaMinus <<
" eta+ " << etaPlus <<
" phi- " << phiMinus <<
" phi+ " << phiPlus);
120 muonPhi, phiMinus, phiPlus) );
122 superRoI->manageConstituents(
true);
131 roisWriteHandle->push_back(superRoI.release());
141 return StatusCode::SUCCESS;
void findLinks(const Decision *start, const std::string &linkName, std::vector< LinkInfo< T > > &links, unsigned int behaviour=TrigDefs::allFeaturesOfType, std::set< const xAOD::TrigComposite * > *fullyExploredFrom=nullptr)
search back the TC links for the object of type T linked to the one of TC (recursively) Populates pro...