87 std::map< HepMC::ConstGenParticlePtr, PRD_TruthTrajectory > gpPrdTruthTrajectories;
93 for ( ; pmtCollIter != pmtCollIterE; ++pmtCollIter ){
95 PRD_MultiTruthCollection::const_iterator prdMtCIter = (*pmtCollIter)->begin();
96 PRD_MultiTruthCollection::const_iterator prdMtCIterE = (*pmtCollIter)->end();
97 for ( ; prdMtCIter != prdMtCIterE; ++ prdMtCIter ){
106 Identifier curIdentifier = (*prdMtCIter).first;
108 if ( curGenP->momentum().perp() <
m_minPt )
continue;
110 if (!
m_geantinos && std::abs(curGenP->pdg_id())==999)
continue;
117 auto prdTrajIter = gpPrdTruthTrajectories.find(curGenP);
118 if ( prdTrajIter == gpPrdTruthTrajectories.end() ){
121 newPrdTruthTrajectory.
prds.push_back(prd);
122 newPrdTruthTrajectory.
nDoF = ndof-5;
126 gpPrdTruthTrajectories[curGenP] = newPrdTruthTrajectory;
130 (prdTrajIter->second).prds.push_back(prd);
131 (prdTrajIter->second).nDoF += ndof;
132 ndofTotal = (prdTrajIter->second).nDoF;
134 ATH_MSG_DEBUG(
" Associating PRD with " << ndof <<
" degrees of freedom, total N.d.o.F : " << ndofTotal );
135 ATH_MSG_DEBUG(
" Associating Identifier " << curIdentifier <<
" with particle at [ " << curGenP <<
" ]." );
136 std::string prdtype =
m_idHelper->is_pixel(curIdentifier) ?
"Pixel" :
m_idHelper->is_sct(curIdentifier) ?
"SCT" :
"TRT";
139 std::string prdtype =
m_idHelper->is_pixel(curIdentifier) ?
"Pixel" :
m_idHelper->is_sct(curIdentifier) ?
"SCT" :
"TRT";
146 auto prdTruthTrajIter = gpPrdTruthTrajectories.begin();
147 auto prdTruthTrajIterE = gpPrdTruthTrajectories.end();
148 for ( ; prdTruthTrajIter != prdTruthTrajIterE; ++prdTruthTrajIter ){
152 for ( ; prdTTMIter != prdTTMIterE; ++prdTTMIter ){
153 if ((*prdTTMIter)->manipulateTruthTrajectory((*prdTruthTrajIter).second))
154 ATH_MSG_DEBUG(
"PRD truth trajectory got manipulated by: " << (*prdTTMIter).name() );
159 return gpPrdTruthTrajectories;