From a71cb5b5d82f37c560e9ef7c38ef6b9a5057498e Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Mon, 29 Mar 2021 15:02:32 +0200 Subject: [PATCH 01/10] change interface --- .../TRT_DetElementsRoadMaker_xk.h | 15 +++++---- .../src/TRT_DetElementsRoadMaker_xk.cxx | 31 +++++++------------ 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h index 6febd736fd52..fce39ec5c421 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h @@ -87,17 +87,16 @@ namespace InDet { // Main methods for road builder /////////////////////////////////////////////////////////////////// - virtual void detElementsRoad - (const EventContext& ctx, + + virtual std::vector<const InDetDD::TRT_BaseElement*> + detElementsRoad(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters&,Trk::PropDirection, - std::vector<const InDetDD::TRT_BaseElement*>&) const; + const Trk::TrackParameters&,Trk::PropDirection) const; - virtual void detElementsRoad - (const EventContext& ctx, + virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> + detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters&,Trk::PropDirection, - std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> >&) const; + const Trk::TrackParameters&,Trk::PropDirection) const; /////////////////////////////////////////////////////////////////// // Print internal tool parameters and status diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx index ca71f7adf9ed..47bd68fe7db0 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx @@ -276,53 +276,43 @@ std::ostream& InDet::TRT_DetElementsRoadMaker_xk::dump( std::ostream& out ) cons // Main methods for road builder /////////////////////////////////////////////////////////////////// -void InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad +std::vector<const InDetDD::TRT_BaseElement*> +InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad (const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters& Tp,Trk::PropDirection D, - std::vector<const InDetDD::TRT_BaseElement*>& R) const + const Trk::TrackParameters& Tp,Trk::PropDirection D) const { - double qp = std::abs(500.*Tp.parameters()[4]) ; if( qp < 1.e-10 ) qp = 1.e-10; double S = m_step/qp ; if( S > 200. ) S = 200. ; if(D<0) S=-S; - Trk::CylinderBounds CB = getBound(fieldCache, Tp); - double rminTRT = getTRTMinR(); - + std::vector<const InDetDD::TRT_BaseElement*> result; if( CB.r() > rminTRT) { Trk::MagneticFieldMode fieldModeEnum(m_fieldModeEnum); if(!fieldCache.solenoidOn()) fieldModeEnum = Trk::NoField; Trk::MagneticFieldProperties fieldprop(fieldModeEnum); - std::list<Amg::Vector3D> G; m_proptool->globalPositions(ctx, G,Tp,fieldprop,CB,S,Trk::pion); - if(G.size() > 1 ) { - detElementsRoadATL(G,R); + detElementsRoadATL(G,result); } } - - if (msgLvl(MSG::VERBOSE)) { - dumpEvent(msg(MSG::VERBOSE),R.size()); - dumpConditions(msg(MSG::VERBOSE)); - msg(MSG::VERBOSE) << endmsg; - } + return result; } /////////////////////////////////////////////////////////////////// // Main methods for road builder /////////////////////////////////////////////////////////////////// -void -InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad +std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > +InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters (const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters& trackParams, - Trk::PropDirection direction, std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > & result) const + Trk::PropDirection direction) const { std::vector<const InDetDD::TRT_BaseElement*> baseElementPointers; detElementsRoad(ctx, fieldCache, trackParams,direction,baseElementPointers); @@ -333,6 +323,8 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad Trk::MagneticFieldProperties fieldprop(fieldModeEnum); // const Trk::TrackParameters* tp0 = &trackParams; + std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > result; + result.reserve(baseElementPointers.size()); for(const auto pThisElement : baseElementPointers) { const auto & thisSurface = pThisElement->surface(); auto tp = m_proptool->propagate(ctx, (*tp0),thisSurface,direction,false,fieldprop,Trk::pion); @@ -341,6 +333,7 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad //ownership of tp given to the vector result.emplace_back(pThisElement, tp.release()); } + return result; } /////////////////////////////////////////////////////////////////// -- GitLab From 6dad64f2d351911c146bc6649778311fc96c82e0 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Mon, 29 Mar 2021 15:28:14 +0200 Subject: [PATCH 02/10] compiles ok --- .../ITRT_DetElementsRoadMaker.h | 14 ++++++-------- .../TRT_DetElementsRoadMaker_xk.h | 2 +- .../src/TRT_DetElementsRoadMaker_xk.cxx | 12 +++++------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h index df3c74e18ff8..e089582e01cd 100755 --- a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h +++ b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h @@ -58,17 +58,15 @@ namespace InDet { // Main methods for road builder /////////////////////////////////////////////////////////////////// - virtual void detElementsRoad - (const EventContext& ctx, + virtual std::vector<const InDetDD::TRT_BaseElement*> + detElementsRoad(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters&,Trk::PropDirection, - std::vector<const InDetDD::TRT_BaseElement*>&) const = 0; + const Trk::TrackParameters&,Trk::PropDirection) const = 0; - virtual void detElementsRoad - (const EventContext& ctx, + virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > + detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters&,Trk::PropDirection, - std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> >&) const =0; + const Trk::TrackParameters&,Trk::PropDirection) const =0; /////////////////////////////////////////////////////////////////// // Print internal tool parameters and status diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h index fce39ec5c421..9295758bff15 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h @@ -93,7 +93,7 @@ namespace InDet { MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; - virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> + virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx index 47bd68fe7db0..010d76b0174b 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx @@ -308,27 +308,25 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad /////////////////////////////////////////////////////////////////// std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > -InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters -(const EventContext& ctx, +InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters& trackParams, Trk::PropDirection direction) const { - std::vector<const InDetDD::TRT_BaseElement*> baseElementPointers; - detElementsRoad(ctx, fieldCache, trackParams,direction,baseElementPointers); - if (baseElementPointers.empty()) return; + std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > result; + auto baseElementPointers = detElementsRoad(ctx, fieldCache, trackParams,direction); + if (baseElementPointers.empty()) return result; // Trk::MagneticFieldMode fieldModeEnum(m_fieldModeEnum); if(!fieldCache.solenoidOn()) fieldModeEnum = Trk::NoField; Trk::MagneticFieldProperties fieldprop(fieldModeEnum); // const Trk::TrackParameters* tp0 = &trackParams; - std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > result; result.reserve(baseElementPointers.size()); for(const auto pThisElement : baseElementPointers) { const auto & thisSurface = pThisElement->surface(); auto tp = m_proptool->propagate(ctx, (*tp0),thisSurface,direction,false,fieldprop,Trk::pion); - if(!tp) return; + if(!tp) return result; tp0=tp.get(); //ownership of tp given to the vector result.emplace_back(pThisElement, tp.release()); -- GitLab From 2013c978b722be55e9581d724f9704453fc8ec80 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Mon, 29 Mar 2021 16:05:38 +0200 Subject: [PATCH 03/10] compiling client TRT_TrackSegmentsFinder --- .../src/TRT_TrackSegmentsFinder.cxx | 54 ++++++------------- 1 file changed, 16 insertions(+), 38 deletions(-) diff --git a/InnerDetector/InDetRecAlgs/TRT_TrackSegmentsFinder/src/TRT_TrackSegmentsFinder.cxx b/InnerDetector/InDetRecAlgs/TRT_TrackSegmentsFinder/src/TRT_TrackSegmentsFinder.cxx index 4851b857cbd7..d56103c9a7b3 100644 --- a/InnerDetector/InDetRecAlgs/TRT_TrackSegmentsFinder/src/TRT_TrackSegmentsFinder.cxx +++ b/InnerDetector/InDetRecAlgs/TRT_TrackSegmentsFinder/src/TRT_TrackSegmentsFinder.cxx @@ -61,49 +61,33 @@ StatusCode InDet::TRT_TrackSegmentsFinder::initialize() StatusCode InDet::TRT_TrackSegmentsFinder::execute(const EventContext &ctx) const { std::unique_ptr<Trk::SegmentCollection> found_segments(std::make_unique<Trk::SegmentCollection>()); - std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData> event_data_p; if(!m_useCaloSeeds) { - event_data_p = m_segmentsMakerTool->newEvent(ctx); m_segmentsMakerTool->find (ctx, *event_data_p); - // Loop through all segments and reconsrtucted segments collection preparation // Trk::Segment* segment = nullptr; while((segment = m_segmentsMakerTool->next(*event_data_p))) { found_segments->push_back(segment); } - } - else { - + } else { Amg::Vector3D PSV(0.,0.,0.); Trk::PerigeeSurface PS(PSV); - std::vector<IdentifierHash> vTR; - SG::ReadHandle calo(m_caloKey,ctx); if(calo.isValid()) { - // CaloClusterROI_Collection::const_iterator c = m_calo->begin(), ce = m_calo->end(); - // for(; c!=ce; ++c) { - for (const Trk::CaloClusterROI *c: *calo) { - if ( c->energy()/cosh(c->globalPosition().eta()) < m_ClusterEt) { + if ( c->energy()/std::cosh(c->globalPosition().eta()) < m_ClusterEt) { continue; } - - std::vector<const InDetDD::TRT_BaseElement*> DE; - { Amg::Vector3D global_pos(c->globalPosition()); double x = global_pos.x(); double y = global_pos.y(); double z = global_pos.z(); - std::unique_ptr<Trk::TrackParameters> par = PS.createUniqueTrackParameters( - 0., 0., atan2(y, x), atan2(1., z / sqrt(x * x + y * y)), 0., nullptr); - + 0., 0., std::atan2(y, x), std::atan2(1., z / std::sqrt(x * x + y * y)), 0., nullptr); // Get AtlasFieldCache MagField::AtlasFieldCache fieldCache; - SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCondObjInputKey, ctx}; const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; if (fieldCondObj == nullptr) { @@ -111,30 +95,24 @@ StatusCode InDet::TRT_TrackSegmentsFinder::execute(const EventContext &ctx) cons return StatusCode::FAILURE; } fieldCondObj->getInitializedCache (fieldCache); - - // TRT detector elements road builder - // - m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum, DE); - } - if(int(DE.size()) < m_minNumberDCs) continue; - - vTR.clear(); + // TRT detector elements road builder + // + const auto & DE = m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum); + if(int(DE.size()) < m_minNumberDCs) continue; + vTR.clear(); vTR.reserve(DE.size()); for (const InDetDD::TRT_BaseElement*d: DE) { vTR.push_back(d->identifyHash()); } - - event_data_p = m_segmentsMakerTool->newRegion(ctx, vTR); - m_segmentsMakerTool->find(ctx, *event_data_p); - - // Loop through all segments and reconsrtucted segments collection preparation - // + event_data_p = m_segmentsMakerTool->newRegion(ctx, vTR); + m_segmentsMakerTool->find(ctx, *event_data_p); + // Loop through all segments and reconsrtucted segments collection preparation Trk::Segment* segment = nullptr; - while((segment = m_segmentsMakerTool->next(*event_data_p))) { - found_segments->push_back(segment); - } - } - }else{ + while((segment = m_segmentsMakerTool->next(*event_data_p))) { + found_segments->push_back(segment); + } + }//end of loopover *calo + } else { ATH_MSG_WARNING("Could not find calo cluster seeds in container " << m_caloKey.key()); return StatusCode::SUCCESS; // @TODO correct ? } -- GitLab From 80e7de3c29a3f159f71ade6dc16fafb8a0198b73 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Mon, 29 Mar 2021 16:14:06 +0200 Subject: [PATCH 04/10] conform to new interface --- .../src/TRT_TrackExtensionTool_DAF.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_DAF/src/TRT_TrackExtensionTool_DAF.cxx b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_DAF/src/TRT_TrackExtensionTool_DAF.cxx index 3b14950f1248..e33b0482070d 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_DAF/src/TRT_TrackExtensionTool_DAF.cxx +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_DAF/src/TRT_TrackExtensionTool_DAF.cxx @@ -225,8 +225,7 @@ InDet::TRT_TrackExtensionTool_DAF::extendTrack(const EventContext& ctx, fieldCondObj->getInitializedCache (fieldCache); // ---------------------------------- // start the TRT detector elements road maker to get a list of possibly interesting detector elements - std::vector<const InDetDD::TRT_BaseElement*> detElements; - m_roadtool->detElementsRoad(ctx, fieldCache, *event_data.m_siliconTrkParams, Trk::alongMomentum, detElements); + const std::vector<const InDetDD::TRT_BaseElement*> detElements = m_roadtool->detElementsRoad(ctx, fieldCache, *event_data.m_siliconTrkParams, Trk::alongMomentum); ATH_MSG_DEBUG("TRT detector elements road maker found "<< detElements.size()<< " detElements" ); if(detElements.empty()) { ATH_MSG_DEBUG("TRT_DetElementsRoadMaker found no road, stop!"); -- GitLab From 436dbb3521b97ec7048b1f516888cccb849cece2 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Mon, 29 Mar 2021 16:32:24 +0200 Subject: [PATCH 05/10] could use const ? --- .../src/TRT_TrackExtensionTool_xk.cxx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrackExtensionTool_xk.cxx b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrackExtensionTool_xk.cxx index 67f5de99ba8f..f226806fd18b 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrackExtensionTool_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrackExtensionTool_xk.cxx @@ -28,7 +28,7 @@ namespace{ constexpr size_t MAX_ROAD_SIZE(399); std::list<const Trk::Surface*> - listOfSurfacesFromVectorOfElements(std::vector<const InDetDD::TRT_BaseElement*> & v){ + listOfSurfacesFromVectorOfElements(const std::vector<const InDetDD::TRT_BaseElement*> & v){ size_t roadsize{0}; std::list<const Trk::Surface*> surfaces; for(const auto &pThisElement: v) { @@ -385,8 +385,7 @@ InDet::TRT_TrackExtensionTool_xk::findSegment(const EventContext& ctx, // TRT detector elements road builder // - std::vector<const InDetDD::TRT_BaseElement*> detectorElements; - m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum,detectorElements); + const std::vector<const InDetDD::TRT_BaseElement*> & detectorElements = m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum); if(int(detectorElements.size())< nCut) return nullptr; @@ -475,8 +474,7 @@ InDet::TRT_TrackExtensionTool_xk::isGoodExtension(const EventContext& ctx, fieldCondObj->getInitializedCache (fieldCache); // TRT detector elements road builder // - std::vector<const InDetDD::TRT_BaseElement*> detectorElements; - m_roadtool->detElementsRoad(ctx, fieldCache, *par,Trk::alongMomentum,detectorElements); + const std::vector<const InDetDD::TRT_BaseElement*> & detectorElements = m_roadtool->detElementsRoad(ctx, fieldCache, *par,Trk::alongMomentum); if(int(detectorElements.size()) < m_minNumberDCs) return false; // Array pointers to surface preparation // -- GitLab From 5fabdb7bc2a5631abcf345ffdb78d7d234e87ec4 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Tue, 30 Mar 2021 10:31:05 +0200 Subject: [PATCH 06/10] small cleanups --- .../TRT_TrajectoryElement_xk.h | 4 +- .../TRT_Trajectory_xk.h | 6 +- .../src/TRT_TrajectoryElement_xk.cxx | 4 +- .../src/TRT_Trajectory_xk.cxx | 82 +++++++++---------- 4 files changed, 44 insertions(+), 52 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_TrajectoryElement_xk.h b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_TrajectoryElement_xk.h index 277f9e6be1d5..13149cf4d183 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_TrajectoryElement_xk.h +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_TrajectoryElement_xk.h @@ -72,12 +72,12 @@ namespace InDet{ void set (const Trk::MagneticFieldProperties&, const AtlasFieldCacheCondObj* ); - bool initiateForPrecisionSeed (bool,const InDetDD::TRT_BaseElement*&, + bool initiateForPrecisionSeed (bool,const InDetDD::TRT_BaseElement*, InDet::TRT_DriftCircleCollection::const_iterator&, InDet::TRT_DriftCircleCollection::const_iterator&, std::pair<Amg::Vector3D,double>&, const double*,double); - bool initiateForTRTSeed (bool,const InDetDD::TRT_BaseElement*&, + bool initiateForTRTSeed (bool,const InDetDD::TRT_BaseElement*, InDet::TRT_DriftCircleCollection::const_iterator&, InDet::TRT_DriftCircleCollection::const_iterator&, std::pair<Amg::Vector3D,double>&, const double*,double); diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_Trajectory_xk.h b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_Trajectory_xk.h index de198d294df5..92928bf80c1c 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_Trajectory_xk.h +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/TRT_TrackExtensionTool_xk/TRT_Trajectory_xk.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ ///////////////////////////////////////////////////////////////////////////////// @@ -77,13 +77,13 @@ namespace InDet{ void initiateForPrecisionSeed (std::list< std::pair<Amg::Vector3D,double> >&, - std::vector<const InDetDD::TRT_BaseElement*>&, + const std::vector<const InDetDD::TRT_BaseElement*>&, const TRT_DriftCircleContainer*&, const Trk::PatternTrackParameters&); void initiateForTRTSeed (std::list< std::pair<Amg::Vector3D,double> >&, - std::vector<const InDetDD::TRT_BaseElement*>&, + const std::vector<const InDetDD::TRT_BaseElement*>&, const TRT_DriftCircleContainer*&, const Trk::PatternTrackParameters&); diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrajectoryElement_xk.cxx b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrajectoryElement_xk.cxx index 67815fcfc2b2..dac5a1cb34b3 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrajectoryElement_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_TrajectoryElement_xk.cxx @@ -39,7 +39,7 @@ void InDet::TRT_TrajectoryElement_xk::set /////////////////////////////////////////////////////////////////// bool InDet::TRT_TrajectoryElement_xk::initiateForPrecisionSeed -(bool st,const InDetDD::TRT_BaseElement*& de, +(bool st,const InDetDD::TRT_BaseElement* de, InDet::TRT_DriftCircleCollection::const_iterator& sb, InDet::TRT_DriftCircleCollection::const_iterator& se, std::pair<Amg::Vector3D,double>& gp, @@ -63,7 +63,7 @@ bool InDet::TRT_TrajectoryElement_xk::initiateForPrecisionSeed /////////////////////////////////////////////////////////////////// bool InDet::TRT_TrajectoryElement_xk::initiateForTRTSeed -(bool st,const InDetDD::TRT_BaseElement*& de, +(bool st,const InDetDD::TRT_BaseElement* de, InDet::TRT_DriftCircleCollection::const_iterator& sb, InDet::TRT_DriftCircleCollection::const_iterator& se, std::pair<Amg::Vector3D,double>& gp, diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx index a389a327ded1..6151e1b0f5d6 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ #include <iostream> @@ -30,9 +30,9 @@ void InDet::TRT_Trajectory_xk::set m_proptool = pr ; m_updatortool = up ; m_roadwidth2 = roadwidth*roadwidth; - m_zVertexWidth = fabs(zvertexwidth) ; - m_impact = fabs(impact ) ; - m_scale_error = fabs(scale ) ; + m_zVertexWidth = std::abs(zvertexwidth) ; + m_impact = std::abs(impact ) ; + m_scale_error = std::abs(scale ) ; for(int i=0; i!=400; ++i) m_elements[i].set(m,pr,up,riod,rion,m_scale_error); m_minTRTSegmentpT = minTRTSegmentpT ; } @@ -51,7 +51,7 @@ void InDet::TRT_Trajectory_xk::set void InDet::TRT_Trajectory_xk::initiateForPrecisionSeed (std::list< std::pair<Amg::Vector3D,double> > & Gp , - std::vector<const InDetDD::TRT_BaseElement*> & De , + const std::vector<const InDetDD::TRT_BaseElement*> & De , const TRT_DriftCircleContainer* & TRTc, const Trk::PatternTrackParameters & Tp ) { @@ -69,38 +69,33 @@ void InDet::TRT_Trajectory_xk::initiateForPrecisionSeed InDet::TRT_DriftCircleCollection::const_iterator ti,te; - std::vector<const InDetDD::TRT_BaseElement*>::iterator d=De.begin(),de=De.end(); + std::vector<const InDetDD::TRT_BaseElement*>::const_iterator d=De.begin(),de=De.end(); std::list< std::pair<Amg::Vector3D,double> >::iterator i=Gp.begin(),i0=Gp.begin(),ie=Gp.end(); if(i0==ie) return; // Primary trajectory direction calculation // - double A[4]; A[3]=Tp.parameters()[4]; - + double A[4]={0., 0., 0., Tp.parameters()[4]}; for(++i; i!=ie; ++i) { if( (*i).second-(*i0).second > 1.) { - A[0] = (*i).first.x()-(*i0).first.x(); A[1] = (*i).first.y()-(*i0).first.y(); A[2] = (*i).first.z()-(*i0).first.z(); - double As = 1./sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); + double As = 1./std::sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); A[0]*=As; A[1]*=As; A[2]*=As; i0=i; break; } } for(i=Gp.begin(); i!=ie; ++i) { - - IdentifierHash id = (*d)->identifyHash(); auto w=(*TRTc).indexFindPtr(id); + IdentifierHash id = (*d)->identifyHash(); + auto w=(*TRTc).indexFindPtr(id); bool q; if(w!=nullptr && w->begin()!=w->end()) { ti = w->begin(); te = w->end (); - q = m_elements[m_nElements].initiateForPrecisionSeed(true,(*d),ti,te,(*i),A,m_roadwidth2); if(q && m_elements[m_nElements].isCluster()) ++m_naElements; - - } - else { + } else { q = m_elements[m_nElements].initiateForPrecisionSeed(false,(*d),ti,te,(*i),A,m_roadwidth2); } @@ -110,11 +105,10 @@ void InDet::TRT_Trajectory_xk::initiateForPrecisionSeed // New trajectory direction calculation // if( (*i).second-(*i0).second > 50.) { - A[0] = (*i).first.x()-(*i0).first.x(); A[1] = (*i).first.y()-(*i0).first.y(); A[2] = (*i).first.z()-(*i0).first.z(); - double As = 1./sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); + double As = 1./std::sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); A[0]*=As; A[1]*=As; A[2]*=As; i0=i; } } @@ -130,7 +124,7 @@ void InDet::TRT_Trajectory_xk::initiateForPrecisionSeed void InDet::TRT_Trajectory_xk::initiateForTRTSeed (std::list< std::pair<Amg::Vector3D,double> > & Gp , - std::vector<const InDetDD::TRT_BaseElement*> & De , + const std::vector<const InDetDD::TRT_BaseElement*> & De , const TRT_DriftCircleContainer* & TRTc, const Trk::PatternTrackParameters & Tp ) { @@ -151,22 +145,20 @@ void InDet::TRT_Trajectory_xk::initiateForTRTSeed InDet::TRT_DriftCircleCollection::const_iterator ti,te; - std::vector<const InDetDD::TRT_BaseElement*>::iterator d=De.begin(),de=De.end(); + std::vector<const InDetDD::TRT_BaseElement*>::const_iterator d=De.begin(),de=De.end(); std::list< std::pair<Amg::Vector3D,double> >::iterator i=Gp.begin(),i0=Gp.begin(),ie=Gp.end(); if(i0==ie) return; // Primary trajectory direction calculation // - double A[4]; A[3]=Tp.parameters()[4]; - + double A[4]={0.,0.,0.,Tp.parameters()[4]}; for(++i; i!=ie; ++i) { if( (*i).second-(*i0).second > 1.) { - A[0] = (*i).first.x()-(*i0).first.x(); A[1] = (*i).first.y()-(*i0).first.y(); A[2] = (*i).first.z()-(*i0).first.z(); - double As = 1./sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); + double As = 1./std::sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); A[0]*=As; A[1]*=As; A[2]*=As; i0=i; break; } } @@ -203,7 +195,7 @@ void InDet::TRT_Trajectory_xk::initiateForTRTSeed A[0] = (*i).first.x()-(*i0).first.x(); A[1] = (*i).first.y()-(*i0).first.y(); A[2] = (*i).first.z()-(*i0).first.z(); - double As = 1./sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); + double As = 1./std::sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); A[0]*=As; A[1]*=As; A[2]*=As; i0=i; } } @@ -228,7 +220,7 @@ void InDet::TRT_Trajectory_xk::trackFindingWithDriftTime(double DA) double dmin = m_elements[i].dnegative()-.01; double dmax = m_elements[i].dpositive()+.01; - if(fabs(dmin) < rcut || fabs(dmax) < rcut) {dmin = -rcut; dmax = rcut;} + if(std::abs(dmin) < rcut || std::abs(dmax) < rcut) {dmin = -rcut; dmax = rcut;} for(int j=0; j!=nl; ++j) { @@ -281,7 +273,7 @@ void InDet::TRT_Trajectory_xk::trackFindingWithoutDriftTime(double DA) double dmin = m_elements[i].dnegative()-.01; double dmax = m_elements[i].dpositive()+.01; - if(fabs(dmin) < rcut || fabs(dmax) < rcut) {dmin = -rcut; dmax = rcut;} + if(std::abs(dmin) < rcut || std::abs(dmax) < rcut) {dmin = -rcut; dmax = rcut;} for(int j=0; j!=nl; ++j) { @@ -291,7 +283,7 @@ void InDet::TRT_Trajectory_xk::trackFindingWithoutDriftTime(double DA) double di= m_elements[i].link(j).distance(); if(di < dmin || di > dmax) continue; - double d = rs+fabs(m_elements[i].link(j).sdistance()*sr); + double d = rs+std::abs(m_elements[i].link(j).sdistance()*sr); double s = d *ui; double v = di*ui; m_U[n] = u; m_V[n++] = v-s; m_U[n] = u; m_V[n++] = v+s; @@ -358,7 +350,7 @@ void InDet::TRT_Trajectory_xk::trackFindingWithoutDriftTimeBL(double DA) if( l<0 || !m_elements[i].link(l).cluster()) continue; double u = m_elements[i].link(l).way(); if(u==0.) continue; double ui = 1./u; - double d = rs+fabs(m_elements[i].link(l).sdistance()*sr); + double d = rs+std::abs(m_elements[i].link(l).sdistance()*sr); double s = d*ui; double v = m_elements[i].link(l).distance()*ui; m_U[n] = u; m_V[n++] = v-s; m_U[n] = u; m_V[n++] = v+s; @@ -382,7 +374,7 @@ bool InDet::TRT_Trajectory_xk::searchStartStop() double D = m_elements[e].findCloseLink(m_A,m_B); int b = m_elements[e].bestlink(); w[e] = 0; - if( D < rs+fabs(m_elements[e].link(b).sdistance()*sr)) { + if( D < rs+std::abs(m_elements[e].link(b).sdistance()*sr)) { if (m_elements[e].link(b).cluster()) w[e] = 1; else if( D < rse ) w[e] =-1; @@ -484,7 +476,7 @@ void InDet::TRT_Trajectory_xk::radiusCorrection() double z0 = m_elements[e ].z (); double r1 = m_elements[el].radiusMax(); double z1 = m_elements[el].z (); - double dz = z1-z0; if(fabs(dz) < 1.) return; + double dz = z1-z0; if(std::abs(dz) < 1.) return; double rz = (r1-r0)/dz; double zv = z0 - r0/rz; @@ -520,7 +512,7 @@ Trk::TrackSegment* InDet::TRT_Trajectory_xk::convert() { // Test quality of propagation to perigee - if(fabs(m_parameters.pT()) < m_minTRTSegmentpT) return 0; + if(std::abs(m_parameters.pT()) < m_minTRTSegmentpT) return 0; const Trk::Surface* sur = &m_parameters.associatedSurface(); @@ -540,7 +532,7 @@ Trk::TrackSegment* InDet::TRT_Trajectory_xk::convert() const Trk::MeasurementBase* r = m_elements[e].rioOnTrack(); if(r) { - if (fabs(r->associatedSurface().transform()(2,2)) <.5) nendcap++; + if (std::abs(r->associatedSurface().transform()(2,2)) <.5) nendcap++; else { nbarrel++; //lastbarrelsurf=&r->associatedSurface(); @@ -556,7 +548,7 @@ Trk::TrackSegment* InDet::TRT_Trajectory_xk::convert() pms=pseudoMeasurements(&(**rio->begin()).associatedSurface(),&(**rio->rbegin()).associatedSurface(),bec); if(pms.first) rio->insert(rio->begin(),pms.first); if(pms.second) { - if (fabs((**rio->rbegin()).associatedSurface().center().z())<2650.) rio->push_back(pms.second); + if (std::abs((**rio->rbegin()).associatedSurface().center().z())<2650.) rio->push_back(pms.second); else rio->insert(rio->begin()+1,pms.second); } // Track segment production @@ -608,7 +600,7 @@ InDet::TRT_Trajectory_xk::pseudoMeasurements(const Trk::Surface *firstsurf, cons pseudopoint = Amg::Vector3D(lastsurf->center().x(),lastsurf->center().y(),tempz); pseudorot = lastsurf->transform().rotation(); } - else if (fabs(lastsurf->center().z())<2650.) { + else if (std::abs(lastsurf->center().z())<2650.) { //std::cout << "sur center: " << sur->center() << " halfz: " << halfz << " firstsur center: " << firstsur->center() << " halfzfirst: " << halfzfirst << std::endl; tempr= lastsurf->center().perp()+halfz; tempz=lastsurf->center().z(); @@ -623,7 +615,7 @@ InDet::TRT_Trajectory_xk::pseudoMeasurements(const Trk::Surface *firstsurf, cons pseudorot = firstsurf->transform().rotation(); } - pseudotheta=atan2(tempr,fabs(tempz)); + pseudotheta=atan2(tempr,std::abs(tempz)); //std::cout << "bec: " << bec << " pseudotheta: " << pseudotheta << std::endl; if (lastsurf->center().z()<0) pseudotheta=M_PI-pseudotheta; @@ -773,7 +765,7 @@ bool InDet::TRT_Trajectory_xk::fitter() void InDet::TRT_Trajectory_xk::stabline(int Np,double DA) { m_A=m_B=0; if(Np<2) return; - double Amax =fabs(DA); + double Amax =std::abs(DA); int i=0; @@ -802,26 +794,26 @@ void InDet::TRT_Trajectory_xk::stabline(int Np,double DA) { double U1=-1000., d=0.; int m=0; while(i<Np-1) { if (m_U[i]==U1) { - if(fabs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; - if(fabs(m_SS[m].m_F=(m_V[i+1]-v0)*d)<Amax) m_SS[m++].m_NA=i+1; + if(std::abs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; + if(std::abs(m_SS[m].m_F=(m_V[i+1]-v0)*d)<Amax) m_SS[m++].m_NA=i+1; } else { d=1./((U1=m_U[i])-u0); - if(fabs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; - if(fabs(m_SS[m].m_F=(m_V[i+1]-v0)*d)<Amax) m_SS[m++].m_NA=i+1; + if(std::abs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; + if(std::abs(m_SS[m].m_F=(m_V[i+1]-v0)*d)<Amax) m_SS[m++].m_NA=i+1; } i+=2; } (i=l); while(--i>0) {if(m_U[i]!=u0) {break;}} U1=-1000.; while(i>0) { if (m_U[i]==U1) { - if(fabs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; - if(fabs(m_SS[m].m_F=(m_V[i-1]-v0)*d)<Amax) m_SS[m++].m_NA=i-1; + if(std::abs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; + if(std::abs(m_SS[m].m_F=(m_V[i-1]-v0)*d)<Amax) m_SS[m++].m_NA=i-1; } else { d=1./((U1=m_U[i])-u0); - if(fabs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; - if(fabs(m_SS[m].m_F=(m_V[i-1]-v0)*d)<Amax) m_SS[m++].m_NA=i-1; + if(std::abs(m_SS[m].m_F=(m_V[i ]-v0)*d)<Amax) m_SS[m++].m_NA=i; + if(std::abs(m_SS[m].m_F=(m_V[i-1]-v0)*d)<Amax) m_SS[m++].m_NA=i-1; } i-=2; } -- GitLab From 273faa03d11a1630672d96cb32dd1199566311e0 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Tue, 30 Mar 2021 11:06:45 +0200 Subject: [PATCH 07/10] small cleanups --- .../src/TRT_Trajectory_xk.cxx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx index 6151e1b0f5d6..cea07716723e 100755 --- a/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_TrackExtensionTool_xk/src/TRT_Trajectory_xk.cxx @@ -75,15 +75,17 @@ void InDet::TRT_Trajectory_xk::initiateForPrecisionSeed if(i0==ie) return; // Primary trajectory direction calculation - // - double A[4]={0., 0., 0., Tp.parameters()[4]}; + // Tp.parameters()[4] is the (signed) q/p + double A[4]={0., 0., 0., Tp.parameters()[4]}; for(++i; i!=ie; ++i) { - if( (*i).second-(*i0).second > 1.) { + if((*i).second-(*i0).second > 1.) { A[0] = (*i).first.x()-(*i0).first.x(); A[1] = (*i).first.y()-(*i0).first.y(); A[2] = (*i).first.z()-(*i0).first.z(); double As = 1./std::sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]); - A[0]*=As; A[1]*=As; A[2]*=As; i0=i; break; + A[0]*=As; A[1]*=As; A[2]*=As; + i0=i; + break; } } @@ -96,7 +98,6 @@ void InDet::TRT_Trajectory_xk::initiateForPrecisionSeed q = m_elements[m_nElements].initiateForPrecisionSeed(true,(*d),ti,te,(*i),A,m_roadwidth2); if(q && m_elements[m_nElements].isCluster()) ++m_naElements; } else { - q = m_elements[m_nElements].initiateForPrecisionSeed(false,(*d),ti,te,(*i),A,m_roadwidth2); } if(q && m_elements[m_nElements].nlinks()) ++m_nElements; -- GitLab From 895ce3b8cca17b8d300f45bdbb3a0302b1bfccf1 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Tue, 30 Mar 2021 14:03:00 +0200 Subject: [PATCH 08/10] commit compling version using uniqe_ptr --- .../InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h | 2 +- .../TRT_DetElementsRoadMaker_xk.h | 2 +- .../src/TRT_DetElementsRoadMaker_xk.cxx | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h index e089582e01cd..a37e51583d53 100755 --- a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h +++ b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h @@ -63,7 +63,7 @@ namespace InDet { MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const = 0; - virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > + virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const =0; diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h index 9295758bff15..57586f949a20 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h @@ -93,7 +93,7 @@ namespace InDet { MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; - virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > + virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx index 010d76b0174b..c9db419763f5 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx @@ -307,13 +307,13 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad // Main methods for road builder /////////////////////////////////////////////////////////////////// -std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > +std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters& trackParams, Trk::PropDirection direction) const { - std::vector<std::pair<const InDetDD::TRT_BaseElement*,const Trk::TrackParameters*> > result; + std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > result; auto baseElementPointers = detElementsRoad(ctx, fieldCache, trackParams,direction); if (baseElementPointers.empty()) return result; // @@ -329,7 +329,7 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters(const EventCon if(!tp) return result; tp0=tp.get(); //ownership of tp given to the vector - result.emplace_back(pThisElement, tp.release()); + result.emplace_back(pThisElement, std::move(tp)); } return result; } -- GitLab From 0d09efa04c89e1ee21422245e096e60610bfa0c9 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Tue, 30 Mar 2021 14:11:30 +0200 Subject: [PATCH 09/10] having realised this method is *never* called --- .../InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h | 4 ++-- .../TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h | 4 ++-- .../src/TRT_DetElementsRoadMaker_xk.cxx | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h index a37e51583d53..d35adf93ae7b 100755 --- a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h +++ b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h @@ -62,12 +62,12 @@ namespace InDet { detElementsRoad(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const = 0; - +/** virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const =0; - +**/ /////////////////////////////////////////////////////////////////// // Print internal tool parameters and status /////////////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h index 57586f949a20..f706d2b8a77f 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h @@ -92,12 +92,12 @@ namespace InDet { detElementsRoad(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; - +/** virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; - +**/ /////////////////////////////////////////////////////////////////// // Print internal tool parameters and status /////////////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx index c9db419763f5..2a9271f578e9 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx @@ -306,7 +306,7 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad /////////////////////////////////////////////////////////////////// // Main methods for road builder /////////////////////////////////////////////////////////////////// - +/** std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, @@ -333,7 +333,7 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters(const EventCon } return result; } - +**/ /////////////////////////////////////////////////////////////////// // Main methods for road builder using input list global positions // for Atlas geometry -- GitLab From 4c262b9af1b4ac5c19dc5fe13dba0aa227170e07 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Tue, 30 Mar 2021 14:26:01 +0200 Subject: [PATCH 10/10] having realised this method is *never* called --- .../ITRT_DetElementsRoadMaker.h | 7 +--- .../TRT_DetElementsRoadMaker_xk.h | 7 +--- .../src/TRT_DetElementsRoadMaker_xk.cxx | 32 +------------------ 3 files changed, 3 insertions(+), 43 deletions(-) diff --git a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h index d35adf93ae7b..ea2cb1db6b9f 100755 --- a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h +++ b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ITRT_DetElementsRoadMaker.h @@ -62,12 +62,7 @@ namespace InDet { detElementsRoad(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const = 0; -/** - virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > - detElementsRoadWithParameters(const EventContext& ctx, - MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters&,Trk::PropDirection) const =0; -**/ + /////////////////////////////////////////////////////////////////// // Print internal tool parameters and status /////////////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h index f706d2b8a77f..b1e6044e1ea1 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h @@ -92,12 +92,7 @@ namespace InDet { detElementsRoad(const EventContext& ctx, MagField::AtlasFieldCache& fieldCache, const Trk::TrackParameters&,Trk::PropDirection) const; -/** - virtual std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > - detElementsRoadWithParameters(const EventContext& ctx, - MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters&,Trk::PropDirection) const; -**/ + /////////////////////////////////////////////////////////////////// // Print internal tool parameters and status /////////////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx index 2a9271f578e9..75384af860e0 100755 --- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx +++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx @@ -303,37 +303,7 @@ InDet::TRT_DetElementsRoadMaker_xk::detElementsRoad return result; } -/////////////////////////////////////////////////////////////////// -// Main methods for road builder -/////////////////////////////////////////////////////////////////// -/** -std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > -InDet::TRT_DetElementsRoadMaker_xk::detElementsRoadWithParameters(const EventContext& ctx, - MagField::AtlasFieldCache& fieldCache, - const Trk::TrackParameters& trackParams, - Trk::PropDirection direction) const -{ - std::vector<std::pair<const InDetDD::TRT_BaseElement*,std::unique_ptr<Trk::TrackParameters>> > result; - auto baseElementPointers = detElementsRoad(ctx, fieldCache, trackParams,direction); - if (baseElementPointers.empty()) return result; - // - Trk::MagneticFieldMode fieldModeEnum(m_fieldModeEnum); - if(!fieldCache.solenoidOn()) fieldModeEnum = Trk::NoField; - Trk::MagneticFieldProperties fieldprop(fieldModeEnum); - // - const Trk::TrackParameters* tp0 = &trackParams; - result.reserve(baseElementPointers.size()); - for(const auto pThisElement : baseElementPointers) { - const auto & thisSurface = pThisElement->surface(); - auto tp = m_proptool->propagate(ctx, (*tp0),thisSurface,direction,false,fieldprop,Trk::pion); - if(!tp) return result; - tp0=tp.get(); - //ownership of tp given to the vector - result.emplace_back(pThisElement, std::move(tp)); - } - return result; -} -**/ + /////////////////////////////////////////////////////////////////// // Main methods for road builder using input list global positions // for Atlas geometry -- GitLab