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()};
94 std::unique_ptr<TrigRoiDescriptor> newROI =
nullptr;
96 if ( muon->primaryTrackParticle() ) {
97 muonZed = muon->primaryTrackParticle()->z0() + muon->primaryTrackParticle()->vz();
107 zMinus = zMinus < -225. ? -225. : zMinus;
108 zPlus = zPlus > 225. ? 225. : zPlus;
110 ATH_MSG_DEBUG(
"eta- " << etaMinus <<
" eta+ " << etaPlus <<
" phi- " << phiMinus <<
" phi+ " << phiPlus <<
" zed- " << zMinus <<
" zed+ " << zPlus);
113 muonPhi, phiMinus, phiPlus,
114 muonZed, zMinus, zPlus ) );
116 superRoI->manageConstituents(
true);
121 ATH_MSG_DEBUG(
"eta- " << etaMinus <<
" eta+ " << etaPlus <<
" phi- " << phiMinus <<
" phi+ " << phiPlus);
124 muonPhi, phiMinus, phiPlus) );
126 superRoI->manageConstituents(
true);
135 roisWriteHandle->push_back(superRoI.release());
145 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...