EF-style pattern recognition to create prototracks.
29 std::vector<const PRD_MultiTruthCollection*> prdMultiTruthCollections;
36 if (!curColl.isValid())
38 ATH_MSG_WARNING(
"Could not retrieve " << pmtCollNameIter <<
". Ignoring ... ");
42 ATH_MSG_INFO(
"Added " << pmtCollNameIter <<
" to collection list for truth track creation.");
43 prdMultiTruthCollections.push_back(curColl.cptr());
48 std::map<Identifier, HepMC::ConstGenParticlePtr> identToHepMCMap;
49 for (
auto & PRD_truthCollec: prdMultiTruthCollections )
52 PRD_MultiTruthCollection::const_iterator prdMtCIter = PRD_truthCollec->begin();
53 PRD_MultiTruthCollection::const_iterator prdMtCIterE = PRD_truthCollec->end();
54 for ( ; prdMtCIter != prdMtCIterE; ++ prdMtCIter ){
63 Identifier curIdentifier = (*prdMtCIter).first;
66 if ( curGenP->momentum().perp() < 500. )
continue;
70 identToHepMCMap[curIdentifier] = curGenP;
75 std::map<HepMC::ConstGenParticlePtr, std::vector<ActsTrk::ATLASUncalibSourceLink>> trackCollections;
80 auto identifierList = cluster->rdoList();
83 for(
auto&
id: identifierList)
86 if(identToHepMCMap.find(
id) != identToHepMCMap.end())
88 auto truthParticle = identToHepMCMap.at(
id);
97 auto identifierList = cluster->rdoList();
100 for(
auto&
id: identifierList)
103 if(identToHepMCMap.find(
id) != identToHepMCMap.end())
105 auto truthParticle = identToHepMCMap.at(
id);
111 for(
const auto&
var: trackCollections)
114 if(
var.second.size() < 3)
continue;
118 ATH_MSG_INFO(
"Found " <<
var.second.size() <<
" clusters for truth partcle "<<
var.first);
119 foundProtoTracks.push_back({
var.second,std::move(inputPerigee)});
124 return StatusCode::SUCCESS;