diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt b/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt index 03f673d859784e177fb82a8c854de30e3e35769d..fe604fe59ec0e666bfa20da71d05c298114b894f 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt @@ -8,8 +8,9 @@ atlas_subdir( TrkAmbiguityProcessor ) # Declare the package's dependencies: atlas_depends_on_subdirs( PRIVATE Control/AthenaBaseComps + Control/SGTools DetectorDescription/AtlasDetDescr - GaudiKernel + GaudiKernel InnerDetector/InDetRecEvent/InDetPrepRawData InnerDetector/InDetRecTools/InDetRecToolInterfaces Tracking/TrkDetDescr/TrkDetElementBase @@ -20,7 +21,7 @@ atlas_depends_on_subdirs( PRIVATE Tracking/TrkEvent/TrkTrackSummary Tracking/TrkFitter/TrkFitterInterfaces Tracking/TrkTools/TrkToolInterfaces - Tracking/TrkValidation/TrkValInterfaces + Tracking/TrkValidation/TrkValInterfaces Tracking/TrkExtrapolation/TrkExInterfaces ) # External dependencies: diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements b/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements index 5edc1e896cca8d359af2cb713f0f5f5a182d8785..170b0267bb52d7c63a8584ff6e70e2df6f11ca2e 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements @@ -3,7 +3,10 @@ package TrkAmbiguityProcessor author Edward Moyse <edward.moyse@cern.ch> public -use AtlasPolicy AtlasPolicy-* +use AtlasPolicy AtlasPolicy-* +use SGTools SGTools-* Control +use InDetPrepRawData InDetPrepRawData-* InnerDetector/InDetRecEvent + private use AthenaBaseComps AthenaBaseComps-* Control use AtlasCLHEP AtlasCLHEP-* External @@ -23,6 +26,7 @@ use TrkTrackSummary TrkTrackSummary-* Tracking/TrkEven use InDetRecToolInterfaces InDetRecToolInterfaces-* InnerDetector/InDetRecTools use TrkValInterfaces TrkValInterfaces-* Tracking/TrkValidation + # uncomment this line if you do want to build the ntuple writing code in # apply_tag use_trkambproc_ntuple diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx index 20a7d3a26fdef75338f7bcaea5f4beafed2bdc45..94130e19942bbaa9825df70a09af63c4cdf9cd96 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx @@ -52,7 +52,6 @@ Trk::DenseEnvironmentsAmbiguityProcessorTool::DenseEnvironmentsAmbiguityProcesso m_splitProbTool("InDet::NnPixelClusterSplitProbTool/NnPixelClusterSplitProbTool"), m_assoTool("Trk::PRD_AssociationTool/DEAmbi_PRD_AssociationTool"), m_finalTracks(0), - m_refitTracks(0), m_Nevents(0), m_Ncandidates(4), m_NcandScoreZero(4), m_NcandDouble(4), m_NscoreOk(4),m_NscoreZeroBremRefit(4),m_NscoreZeroBremRefitFailed(4), @@ -494,13 +493,12 @@ TrackCollection* Trk::DenseEnvironmentsAmbiguityProcessorTool::process(const Tr if(m_applydRcorrection) { + TrackCollection refit_tracks; // create map of track dRs - storeTrkDistanceMapdR(*m_finalTracks); - if(m_refitTracks){ - for(auto track : *m_refitTracks) - { + storeTrkDistanceMapdR(*m_finalTracks,refit_tracks); + for(const Trk::Track* track : refit_tracks) + { refitTrack(track); - } } } @@ -532,8 +530,6 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::reset() //final copy - ownership is passed out of algorithm m_finalTracks = new TrackCollection; - m_refitTracks = new TrackCollection; - if (m_monitorTracks) m_observerTool->reset(); @@ -1471,7 +1467,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::dumpTracks( const TrackCollec //================================================================================================== -void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( const TrackCollection& tracks ) +void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( const TrackCollection& tracks, TrackCollection &refit_tracks_out ) { ATH_MSG_VERBOSE ("Creating track Distance dR map"); m_dRMap = new InDet::DRMap; @@ -1568,7 +1564,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( const } } } - if(refit) m_refitTracks->push_back(track); + if(refit) refit_tracks_out.push_back(track); } return; } diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h index 1cf026f942c3d316815201369dd9d7e17e7555e8..28e29fb6389fcf2f5faab92ce86f847206ce500a 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h @@ -121,7 +121,7 @@ namespace Trk { void dumpTracks(const TrackCollection& tracks); /** stores the minimal dist(trk,trk) for covariance correction*/ - void storeTrkDistanceMapdR(const TrackCollection& tracks ); + void storeTrkDistanceMapdR(const TrackCollection& tracks, TrackCollection &refit_tracks_out ); /** Find SiS Tracks that share hits in the track score map*/ void overlapppingTracks(); @@ -207,8 +207,6 @@ namespace Trk { Recreated anew each time process() is called*/ TrackCollection* m_finalTracks; - TrackCollection* m_refitTracks; - /**NN split sprob cut for 2 particle clusters */ float m_sharedProbCut;