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