Skip to content
Snippets Groups Projects
Commit d7acfdc9 authored by John Derek Chapman's avatar John Derek Chapman
Browse files

Merge branch 'cherry-pick-0a7cad67' into '21.3'

Fixes randomness issue with PRD_TruthTrajectories

See merge request atlas/athena!9822

Former-commit-id: 9e38c183b60bc6192f86c8c7a1c51a81630c1063
parents beba7ef0 94122882
37 merge requests!46457Draft: Adding the tools to run over data,!46454Draft: Adding the tools to be able to run over data,!44869Draft: Update to candidate store,!4217921.9-first_steps-InDetTrackingGeometryXML,!39162Draft: Insert BCM' support,!38765Bis78 cabling,!36893Fix size of RPC active region in BIS78 and strip material,!3645821.9: Improving material map description (ATLITKSW-127),!36293WIP pixel updates,!34993KF-input adding jXERHO to the AOD outputs,!34864LH rings in front ot HR rigs,!34763Fix L1_4jJ15.0ETA25 item definition (ATR-21261),!33996WIP: Correct MM zpositions,!3291021.3 salva s0,!3217421.9 - Bug fix for test stream creation in RD53BEncodingTool,!3135321.3,!3134821.9 README Update,!31136added also PUsub for LargeR jets,!31123WIP: Master ttmdev,!3036121.9 fixing bug with layer indices in PixelRDOAnalysis,!28623Overlay as part of FastChain transform in 21.3,!28497ART tests - fixing the bugs,!27668Massimos 21.3 bis78,!27254WIP: Exclusive jets request -- Fix ExclusiveJets algo / ATR-17320,!26790Fixes for Simulation ART jobs (ATLASSIM-4309),!26747Update frozen shower generation scripts and code to be compatible with recent developments,!25405Add new ART test: test_physics_pp_v8_chainorder_build.sh,!2420321.3 l1 muon 00 - new MuCTPI_RDO.h,!23377WIP pixel ID scheme for ITk,!22214add an utility function to TrigT1TGCRecRoiSvc for storing ROI position and the eta/phi size,!22172changes related to 1-3 points in ATR-19579,!22124Changes related to ticket 19579,!22118Remove cabling information for new thresholds,!21304WIP: Fix ATR-19377 L1Topo vbs alg,!2117721.3 po bugfixes,!2060121.0 fix nightly test,!20518Mydev
...@@ -59,7 +59,7 @@ namespace iFatras { ...@@ -59,7 +59,7 @@ namespace iFatras {
StatusCode finalize(); StatusCode finalize();
/** return a vector of PrepRawData trajectories - uses internal cache**/ /** return a vector of PrepRawData trajectories - uses internal cache**/
const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& truthTrajectories() const; const std::vector< Trk::PRD_TruthTrajectory >& truthTrajectories() const;
/** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */ /** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */
StatusCode refreshEvent(); StatusCode refreshEvent();
...@@ -85,6 +85,7 @@ namespace iFatras { ...@@ -85,6 +85,7 @@ namespace iFatras {
//!< Track geantinos or not //!< Track geantinos or not
bool m_geantinos; bool m_geantinos;
//!< the cache for the return (cleared by Incident) //!< the cache for the return (cleared by Incident)
mutable std::vector< Trk::PRD_TruthTrajectory > m_prdTruthTrajectories;
mutable std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory > m_gpPrdTruthTrajectories; mutable std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory > m_gpPrdTruthTrajectories;
}; };
......
...@@ -73,6 +73,7 @@ StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::refreshEvent() { ...@@ -73,6 +73,7 @@ StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::refreshEvent() {
ATH_MSG_VERBOSE("Calling refreshEvent() to reset cache and retrieve collections"); ATH_MSG_VERBOSE("Calling refreshEvent() to reset cache and retrieve collections");
// clear the cache & reserve // clear the cache & reserve
m_prdTruthTrajectories.clear();
m_gpPrdTruthTrajectories.clear(); m_gpPrdTruthTrajectories.clear();
m_prdPlanarMultiTruthCollections.clear(); m_prdPlanarMultiTruthCollections.clear();
m_prdPlanarMultiTruthCollections.reserve(m_prdPlanarMultiTruthCollectionNames.size()); m_prdPlanarMultiTruthCollections.reserve(m_prdPlanarMultiTruthCollectionNames.size());
...@@ -105,12 +106,13 @@ StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::refreshEvent() { ...@@ -105,12 +106,13 @@ StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::refreshEvent() {
} }
const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& iFatras::PRD_PlanarTruthTrajectoryBuilder::truthTrajectories() const { const std::vector< Trk::PRD_TruthTrajectory >& iFatras::PRD_PlanarTruthTrajectoryBuilder::truthTrajectories() const {
// ndof // ndof
size_t ndofTotal = 0; size_t ndofTotal = 0;
size_t ndof = 0; size_t ndof = 0;
// PART 1 for Planar clusters-------------------------------------------------------------------------------------------------------- // PART 1 for Planar clusters--------------------------------------------------------------------------------------------------------
std::vector<const HepMC::GenParticle*> vecGP; //vector storing the initial order of GenParticles
// loop over the PRD_MultiTruthCollection, search for the PRD and create (if necessary and entry in the return map) // loop over the PRD_MultiTruthCollection, search for the PRD and create (if necessary and entry in the return map)
std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtPlanarCollIter = m_prdPlanarMultiTruthCollections.begin(); std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtPlanarCollIter = m_prdPlanarMultiTruthCollections.begin();
std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtPlanarCollIterE = m_prdPlanarMultiTruthCollections.end(); std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtPlanarCollIterE = m_prdPlanarMultiTruthCollections.end();
...@@ -149,6 +151,7 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& iFatras:: ...@@ -149,6 +151,7 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& iFatras::
newPrdTruthTrajectory.genParticle = curGenP; newPrdTruthTrajectory.genParticle = curGenP;
// fill into map // fill into map
m_gpPrdTruthTrajectories[curGenP] = newPrdTruthTrajectory; m_gpPrdTruthTrajectories[curGenP] = newPrdTruthTrajectory;
if (std::find(vecGP.begin(),vecGP.end(),curGenP)==vecGP.end()) vecGP.push_back(curGenP);
ndofTotal = ndof; ndofTotal = ndof;
} else { } else {
// this PRD_TruthTrajectory already exists // this PRD_TruthTrajectory already exists
...@@ -162,28 +165,36 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& iFatras:: ...@@ -162,28 +165,36 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& iFatras::
} }
} }
//Create the output vector of Trk::PRD_TruthTrajectory ordered like the input GenParticles
for (auto gp : vecGP) {
std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >::iterator prdTrajIter = m_gpPrdTruthTrajectories.find(gp);
if ( prdTrajIter != m_gpPrdTruthTrajectories.end() )
m_prdTruthTrajectories.push_back(prdTrajIter->second);
}
// PART 2 -------------------------------------------------------------------------------------------------------- // PART 2 --------------------------------------------------------------------------------------------------------
// loop through the provided list of manipulators ( sorter is included ) // loop through the provided list of manipulators ( sorter is included )
std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >::iterator prdTruthTrajIter = m_gpPrdTruthTrajectories.begin(); std::vector< Trk::PRD_TruthTrajectory >::iterator prdTruthTrajIter = m_prdTruthTrajectories.begin();
std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >::iterator prdTruthTrajIterE = m_gpPrdTruthTrajectories.end(); std::vector< Trk::PRD_TruthTrajectory >::iterator prdTruthTrajIterE = m_prdTruthTrajectories.end();
for ( ; prdTruthTrajIter != prdTruthTrajIterE; ++prdTruthTrajIter ){ for ( ; prdTruthTrajIter != prdTruthTrajIterE; ++prdTruthTrajIter ){
//std::cout << "sorting, barcode: " << prdTruthTrajIter->first->barcode() << std::endl; //std::cout << "sorting, barcode: " << prdTruthTrajIter->first->barcode() << std::endl;
if ( m_prdTruthTrajectoryManipulators.size() ){ if ( m_prdTruthTrajectoryManipulators.size() ){
ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIter = m_prdTruthTrajectoryManipulators.begin(); ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIter = m_prdTruthTrajectoryManipulators.begin();
ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIterE = m_prdTruthTrajectoryManipulators.end(); ToolHandleArray<Trk::IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIterE = m_prdTruthTrajectoryManipulators.end();
for ( ; prdTTMIter != prdTTMIterE; ++prdTTMIter ){ for ( ; prdTTMIter != prdTTMIterE; ++prdTTMIter ){
if ((*prdTTMIter)->manipulateTruthTrajectory((*prdTruthTrajIter).second)) if ((*prdTTMIter)->manipulateTruthTrajectory(*prdTruthTrajIter))
ATH_MSG_VERBOSE("PRD truth trajectory got manipulated by: " << (*prdTTMIter).name() ); ATH_MSG_VERBOSE("PRD truth trajectory got manipulated by: " << (*prdTTMIter).name() );
} }
} }
} }
// return the truth trajectories and leave it to the TruthTrack creation to proceed further // return the truth trajectories and leave it to the TruthTrack creation to proceed further
return m_gpPrdTruthTrajectories; return m_prdTruthTrajectories;
} }
StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::finalize() StatusCode iFatras::PRD_PlanarTruthTrajectoryBuilder::finalize()
{ {
// clear the cache a last time // clear the cache a last time
m_prdTruthTrajectories.clear();
m_gpPrdTruthTrajectories.clear(); m_gpPrdTruthTrajectories.clear();
//m_prdPlanarMultiTruthCollections.clear(); //m_prdPlanarMultiTruthCollections.clear();
ATH_MSG_VERBOSE("Finalizing ..."); ATH_MSG_VERBOSE("Finalizing ...");
......
...@@ -119,13 +119,13 @@ StatusCode Trk::TruthTrackCreation::execute() ...@@ -119,13 +119,13 @@ StatusCode Trk::TruthTrackCreation::execute()
// ----------------------------------- main loop ------------------------------------------------------------------ // ----------------------------------- main loop ------------------------------------------------------------------
// get the PRD truth trajectories // get the PRD truth trajectories
const std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >& truthTraj = const std::vector< PRD_TruthTrajectory >& truthTraj =
m_prdTruthTrajectoryBuilder->truthTrajectories(); m_prdTruthTrajectoryBuilder->truthTrajectories();
// some screen output // some screen output
ATH_MSG_VERBOSE("PRD_TruthTrajectoryBuilder delivered " << truthTraj.size() << " PRD truth trajectories, starting track creation."); ATH_MSG_VERBOSE("PRD_TruthTrajectoryBuilder delivered " << truthTraj.size() << " PRD truth trajectories, starting track creation.");
// loop over truth trajectories and create track // loop over truth trajectories and create track
std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >::const_iterator ttIter = truthTraj.begin(); std::vector< PRD_TruthTrajectory >::const_iterator ttIter = truthTraj.begin();
std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >::const_iterator ttIterE = truthTraj.end(); std::vector< PRD_TruthTrajectory >::const_iterator ttIterE = truthTraj.end();
for ( ; ttIter != ttIterE; ++ttIter){ for ( ; ttIter != ttIterE; ++ttIter){
// run through the selector chain // run through the selector chain
if (m_prdTruthTrajectorySelectors.size()){ if (m_prdTruthTrajectorySelectors.size()){
...@@ -133,7 +133,7 @@ StatusCode Trk::TruthTrackCreation::execute() ...@@ -133,7 +133,7 @@ StatusCode Trk::TruthTrackCreation::execute()
ToolHandleArray<Trk::IPRD_TruthTrajectorySelector>::const_iterator prdTTSelIterE = m_prdTruthTrajectorySelectors.end(); ToolHandleArray<Trk::IPRD_TruthTrajectorySelector>::const_iterator prdTTSelIterE = m_prdTruthTrajectorySelectors.end();
bool passed = true; bool passed = true;
for ( ; prdTTSelIter != prdTTSelIterE && passed; ++prdTTSelIter ){ for ( ; prdTTSelIter != prdTTSelIterE && passed; ++prdTTSelIter ){
if (!(*prdTTSelIter)->pass((*ttIter).second)){ if (!(*prdTTSelIter)->pass(*ttIter)){
ATH_MSG_VERBOSE("PRD truth trajectory did not pass the selection cuts. Skipping ... "); ATH_MSG_VERBOSE("PRD truth trajectory did not pass the selection cuts. Skipping ... ");
passed = false; passed = false;
} }
...@@ -142,12 +142,12 @@ StatusCode Trk::TruthTrackCreation::execute() ...@@ -142,12 +142,12 @@ StatusCode Trk::TruthTrackCreation::execute()
if (!passed) continue; if (!passed) continue;
} }
// create the truth track // create the truth track
Trk::Track* truthTrack = m_truthTrackBuilder->createTrack(ttIter->second,outputSegmentCollection); Trk::Track* truthTrack = m_truthTrackBuilder->createTrack(*ttIter,outputSegmentCollection);
if (!truthTrack){ if (!truthTrack){
ATH_MSG_VERBOSE("Track creation for PRD truth trajectory with size " << (*ttIter).second.prds.size() << " failed. Skipping ..."); ATH_MSG_VERBOSE("Track creation for PRD truth trajectory with size " << (*ttIter).prds.size() << " failed. Skipping ...");
continue; continue;
} }
ATH_MSG_VERBOSE("Track creation for PRD truth trajectory with size " << (*ttIter).second.prds.size() << " successful."); ATH_MSG_VERBOSE("Track creation for PRD truth trajectory with size " << (*ttIter).prds.size() << " successful.");
// If configured : update the track summary // If configured : update the track summary
if (!m_trackSummaryTool.empty()){ if (!m_trackSummaryTool.empty()){
ATH_MSG_VERBOSE("Updating the TrackSummary."); ATH_MSG_VERBOSE("Updating the TrackSummary.");
......
...@@ -40,7 +40,7 @@ namespace Trk { ...@@ -40,7 +40,7 @@ namespace Trk {
static const InterfaceID& interfaceID() { return IID_IPRD_TruthTrajectoryBuilder; } static const InterfaceID& interfaceID() { return IID_IPRD_TruthTrajectoryBuilder; }
/** return a vector of PrepRawData trajectories - uses internal cache**/ /** return a vector of PrepRawData trajectories - uses internal cache**/
virtual const std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >& truthTrajectories() const = 0; virtual const std::vector< PRD_TruthTrajectory >& truthTrajectories() const = 0;
/** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */ /** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */
virtual StatusCode refreshEvent() = 0; virtual StatusCode refreshEvent() = 0;
...@@ -49,4 +49,4 @@ namespace Trk { ...@@ -49,4 +49,4 @@ namespace Trk {
} // end of namespace } // end of namespace
#endif // TRK_TRKTRUTHTRACKS_IPRD_TRUTHTRAJECTORYBUILDER_H #endif // TRK_TRKTRUTHTRACKS_IPRD_TRUTHTRAJECTORYBUILDER_H
\ No newline at end of file
...@@ -75,6 +75,7 @@ StatusCode Trk::PRD_TruthTrajectoryBuilder::refreshEvent() { ...@@ -75,6 +75,7 @@ StatusCode Trk::PRD_TruthTrajectoryBuilder::refreshEvent() {
ATH_MSG_VERBOSE("Calling refreshEvent() to reset cache and retrieve collections"); ATH_MSG_VERBOSE("Calling refreshEvent() to reset cache and retrieve collections");
// clear the cache & reserve // clear the cache & reserve
m_prdTruthTrajectories.clear();
m_gpPrdTruthTrajectories.clear(); m_gpPrdTruthTrajectories.clear();
m_prdMultiTruthCollections.clear(); m_prdMultiTruthCollections.clear();
m_prdMultiTruthCollections.reserve(m_prdMultiTruthCollectionNames.size()); m_prdMultiTruthCollections.reserve(m_prdMultiTruthCollectionNames.size());
...@@ -105,11 +106,12 @@ StatusCode Trk::PRD_TruthTrajectoryBuilder::refreshEvent() { ...@@ -105,11 +106,12 @@ StatusCode Trk::PRD_TruthTrajectoryBuilder::refreshEvent() {
} }
const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& Trk::PRD_TruthTrajectoryBuilder::truthTrajectories() const { const std::vector< Trk::PRD_TruthTrajectory >& Trk::PRD_TruthTrajectoryBuilder::truthTrajectories() const {
// ndof // ndof
size_t ndofTotal = 0; size_t ndofTotal = 0;
size_t ndof = 0; size_t ndof = 0;
// PART 1 -------------------------------------------------------------------------------------------------------- // PART 1 --------------------------------------------------------------------------------------------------------
std::vector<const HepMC::GenParticle*> vecGP; //vector storing the initial order of GenParticles
// loop over the PRD_MultiTruthCollection, search for the PRD and create (if necessary and entry in the return map) // loop over the PRD_MultiTruthCollection, search for the PRD and create (if necessary and entry in the return map)
std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtCollIter = m_prdMultiTruthCollections.begin(); std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtCollIter = m_prdMultiTruthCollections.begin();
std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtCollIterE = m_prdMultiTruthCollections.end(); std::vector<const PRD_MultiTruthCollection*>::const_iterator pmtCollIterE = m_prdMultiTruthCollections.end();
...@@ -141,6 +143,7 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& Trk::PRD_ ...@@ -141,6 +143,7 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& Trk::PRD_
newPrdTruthTrajectory.genParticle = curGenP; newPrdTruthTrajectory.genParticle = curGenP;
// fill into map // fill into map
m_gpPrdTruthTrajectories[curGenP] = newPrdTruthTrajectory; m_gpPrdTruthTrajectories[curGenP] = newPrdTruthTrajectory;
if (std::find(vecGP.begin(),vecGP.end(),curGenP)==vecGP.end()) vecGP.push_back(curGenP);
ndofTotal = ndof; ndofTotal = ndof;
} else { } else {
// this PRD_TruthTrajectory already exists // this PRD_TruthTrajectory already exists
...@@ -153,23 +156,31 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& Trk::PRD_ ...@@ -153,23 +156,31 @@ const std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >& Trk::PRD_
} }
} }
} }
//Create the output vector of Trk::PRD_TruthTrajectory ordered like the input GenParticles
for (auto gp : vecGP) {
std::map< const HepMC::GenParticle*, Trk::PRD_TruthTrajectory >::iterator prdTrajIter = m_gpPrdTruthTrajectories.find(gp);
if ( prdTrajIter != m_gpPrdTruthTrajectories.end() )
m_prdTruthTrajectories.push_back(prdTrajIter->second);
}
// PART 2 -------------------------------------------------------------------------------------------------------- // PART 2 --------------------------------------------------------------------------------------------------------
// loop through the provided list of manipulators ( sorter is included ) // loop through the provided list of manipulators ( sorter is included )
std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >::iterator prdTruthTrajIter = m_gpPrdTruthTrajectories.begin(); std::vector< PRD_TruthTrajectory >::iterator prdTruthTrajIter = m_prdTruthTrajectories.begin();
std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >::iterator prdTruthTrajIterE = m_gpPrdTruthTrajectories.end(); std::vector< PRD_TruthTrajectory >::iterator prdTruthTrajIterE = m_prdTruthTrajectories.end();
for ( ; prdTruthTrajIter != prdTruthTrajIterE; ++prdTruthTrajIter ){ for ( ; prdTruthTrajIter != prdTruthTrajIterE; ++prdTruthTrajIter ){
//std::cout << "sorting, barcode: " << prdTruthTrajIter->first->barcode() << std::endl; //std::cout << "sorting, barcode: " << prdTruthTrajIter->first->barcode() << std::endl;
if ( m_prdTruthTrajectoryManipulators.size() ){ if ( m_prdTruthTrajectoryManipulators.size() ){
ToolHandleArray<IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIter = m_prdTruthTrajectoryManipulators.begin(); ToolHandleArray<IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIter = m_prdTruthTrajectoryManipulators.begin();
ToolHandleArray<IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIterE = m_prdTruthTrajectoryManipulators.end(); ToolHandleArray<IPRD_TruthTrajectoryManipulator>::const_iterator prdTTMIterE = m_prdTruthTrajectoryManipulators.end();
for ( ; prdTTMIter != prdTTMIterE; ++prdTTMIter ){ for ( ; prdTTMIter != prdTTMIterE; ++prdTTMIter ){
if ((*prdTTMIter)->manipulateTruthTrajectory((*prdTruthTrajIter).second)) if ((*prdTTMIter)->manipulateTruthTrajectory(*prdTruthTrajIter))
ATH_MSG_VERBOSE("PRD truth trajectory got manipulated by: " << (*prdTTMIter).name() ); ATH_MSG_VERBOSE("PRD truth trajectory got manipulated by: " << (*prdTTMIter).name() );
} }
} }
} }
// return the truth trajectories and leave it to the TruthTrack creation to proceed further // return the truth trajectories and leave it to the TruthTrack creation to proceed further
return m_gpPrdTruthTrajectories; return m_prdTruthTrajectories;
} }
StatusCode Trk::PRD_TruthTrajectoryBuilder::finalize() StatusCode Trk::PRD_TruthTrajectoryBuilder::finalize()
......
...@@ -55,7 +55,7 @@ namespace Trk { ...@@ -55,7 +55,7 @@ namespace Trk {
StatusCode finalize(); StatusCode finalize();
/** return a vector of PrepRawData trajectories - uses internal cache**/ /** return a vector of PrepRawData trajectories - uses internal cache**/
const std::map< const HepMC::GenParticle*, PRD_TruthTrajectory >& truthTrajectories() const; const std::vector< PRD_TruthTrajectory >& truthTrajectories() const;
/** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */ /** Event refresh - can't be an IIncident, because it has to run after PRD creation and PRD truth creation */
StatusCode refreshEvent(); StatusCode refreshEvent();
...@@ -73,6 +73,7 @@ namespace Trk { ...@@ -73,6 +73,7 @@ namespace Trk {
double m_minPt; //!< minimum pT to be even considered double m_minPt; //!< minimum pT to be even considered
bool m_geantinos; //!< Track geantinos or not bool m_geantinos; //!< Track geantinos or not
mutable std::vector< PRD_TruthTrajectory > m_prdTruthTrajectories; //!< the cache for the return (cleared by Incident)
mutable std::map< const HepMC::GenParticle*, PRD_TruthTrajectory > m_gpPrdTruthTrajectories; //!< the cache for the return (cleared by Incident) mutable std::map< const HepMC::GenParticle*, PRD_TruthTrajectory > m_gpPrdTruthTrajectories; //!< the cache for the return (cleared by Incident)
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment