From 175ff55f5c1832f6ff28bffa992aa9434d9e2aad Mon Sep 17 00:00:00 2001
From: Shaun Roe <shaun.roe@cern.ch>
Date: Wed, 23 Jun 2021 16:12:50 +0200
Subject: [PATCH 1/3] whitespace and cosmetics

---
 .../src/TRT_SeededTrackFinder.cxx             | 597 ++++++++----------
 1 file changed, 255 insertions(+), 342 deletions(-)

diff --git a/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx b/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
index 7c0c581b4622..c1a55d8601ce 100644
--- a/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
+++ b/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
@@ -29,6 +29,7 @@
 #include "RoiDescriptor/RoiDescriptor.h"
 
 #include <memory>
+#include <cmath>
 using namespace std;
 
 ///////////////////////////////////////////////////////////////////
@@ -84,9 +85,6 @@ InDet::TRT_SeededTrackFinder::TRT_SeededTrackFinder
 
 StatusCode InDet::TRT_SeededTrackFinder::initialize()
 {
-  StatusCode  sc;
-
-  msg(MSG::DEBUG) << "Initializing TRT_SeededTrackFinder" << endmsg;
 
   //Get the TRT seeded track maker tool
   //
@@ -125,8 +123,7 @@ StatusCode InDet::TRT_SeededTrackFinder::initialize()
   }
    //Global counters. See the include file for definitions
   m_totalStat = Stat_t();
-  return sc;
-
+  return StatusCode::SUCCESS;
 }
 
 namespace InDet {
@@ -159,40 +156,31 @@ StatusCode InDet::TRT_SeededTrackFinder::execute() {
    return execute_r( Gaudi::Hive::currentContext() );
 }
 
-StatusCode InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) const
-{
-
+StatusCode 
+InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) const{
   //Counters. See the include file for definitions
   Stat_t ev_stat;
-
   // counter
   int nTrtSegCur = 0;
-
   SG::ReadHandle<Trk::SegmentCollection>  segments(m_SegmentsKey,ctx);
   if(!segments.isValid()){
     ATH_MSG_FATAL ("No segment with name " << segments.name() << " found in StoreGate!");
     return StatusCode::FAILURE;
-  }else{
+  } else {
     ATH_MSG_DEBUG ("Found segments collection " << segments.name() << " in StoreGate!");
   }
-
-
   // number of segments + statistics
   ev_stat.m_counter[Stat_t::kNTrtSeg] = int(segments->size());
   ATH_MSG_DEBUG ("TRT track container size " << ev_stat.m_counter[Stat_t::kNTrtSeg]);
   if(ev_stat.m_counter[Stat_t::kNTrtSeg]>m_MaxSegNum) {
     ATH_MSG_DEBUG ("TRT track container size huge; will process event partially if number of max segments reached !!!");
   }
-
   // Event dependent data of SiCombinatorialTrackFinder_xk
   InDet::ExtendedSiCombinatorialTrackFinderData_xk combinatorialData(m_prdToTrackMap);
-
   std::unique_ptr<InDet::ITRT_SeededTrackFinder::IEventData> event_data_p;
-
   if(m_caloSeededRoI ) {
     SG::ReadHandle calo(m_caloKey,ctx);
     std::unique_ptr<RoiDescriptor> roiComp = std::make_unique<RoiDescriptor>(true);
-
     if (calo.isValid()) {
       RoiDescriptor * roi =nullptr;
       SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey, ctx };
@@ -200,10 +188,9 @@ StatusCode InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) con
       roiComp->clear();
       roiComp->setComposite();
       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;
         }
-
         double eta = c->globalPosition().eta();
         double phi = c->globalPosition().phi();
         double roiPhiMin = phi -m_deltaPhi;
@@ -225,10 +212,7 @@ StatusCode InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) con
   }
 
   std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData> ext_event_data_p( m_trtExtension->newEvent(ctx) );
-
-//  TrackCollection* outTracks  = new TrackCollection;           //Tracks to be finally output
   std::unique_ptr<TrackCollection> outTracks = std::make_unique<TrackCollection>();
-
   std::vector<Trk::Track*> tempTracks;                           //Temporary track collection
   tempTracks.reserve(128);
   // loop over event
@@ -236,289 +220,218 @@ StatusCode InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) con
   Trk::SegmentCollection::const_iterator iseg    = segments->begin();
   Trk::SegmentCollection::const_iterator isegEnd = segments->end();
   for(; iseg != isegEnd; ++ iseg) {
-
     // Get the track segment
     const Trk::TrackSegment *trackTRT = dynamic_cast<const Trk::TrackSegment*>(*iseg);
     if(!trackTRT){
       ATH_MSG_ERROR ("No pointer to segment !");
       continue;
-    }else{
-
+    } else {
       // the segment finder is applying a TRT(eta) cut and a pt preselection, so we don't do that here
-
       //Ask for at least 10 TRT hits in order to process
       if(trackTRT->numberOfMeasurementBases() < m_minTRTonSegment) {
-	ATH_MSG_DEBUG ("TRT segment fails nTRT hit cut, reject.");
-
-	// statistics
-	ev_stat.m_counter[Stat_t::kNTrtFailSel]++;
-
-      }	else {
-
-	// do we continue to process ?
-	nTrtSegCur++;
-	if(nTrtSegCur>=m_MaxSegNum) {
-	  ATH_MSG_INFO ("====> Reached maximal number of segments in event, stop !!!");
-	  // statistics
-	  ev_stat.m_counter[Stat_t::kNTrtLimit]++;
-	  break;
-	}
-
-	// Get the number of the TRT track segment ROTs
-	ATH_MSG_DEBUG ("=> New segment to process, number Of TRT ROTs : " << (trackTRT->numberOfMeasurementBases()));
-
-	// statistics
+        ATH_MSG_DEBUG ("TRT segment fails nTRT hit cut, reject.");
+        // statistics
+        ev_stat.m_counter[Stat_t::kNTrtFailSel]++;
+      } else {
+        // do we continue to process ?
+        nTrtSegCur++;
+        if(nTrtSegCur>=m_MaxSegNum) {
+          ATH_MSG_INFO ("====> Reached maximal number of segments in event, stop !!!");
+          // statistics
+          ev_stat.m_counter[Stat_t::kNTrtLimit]++;
+          break;
+        }
+        // Get the number of the TRT track segment ROTs
+        ATH_MSG_DEBUG ("=> New segment to process, number Of TRT ROTs : " << (trackTRT->numberOfMeasurementBases()));
+        // statistics
         ev_stat.m_counter[Stat_t::Stat_t::kNTrtSegGood]++;
-
-	// ok, call track maker and get list of possible track candidates
+        // ok, call track maker and get list of possible track candidates
         std::list<Trk::Track*> trackSi = m_trackmaker->getTrack(ctx, *event_data_p, *trackTRT); //Get the possible Si extensions
-
         if (trackSi.empty()) {
           ATH_MSG_DEBUG ("No Si track candidates associated to the TRT track ");
-
-	  // statistics
-	  ev_stat.m_counter[Stat_t::kNTrtNoSiExt]++;
-
-	  // obsolete backup of TRT only
+          // statistics
+          ev_stat.m_counter[Stat_t::kNTrtNoSiExt]++;
+          // obsolete backup of TRT only
           if(m_saveTRT && trackTRT->numberOfMeasurementBases() > m_minTRTonly){
             ///Transform the original TRT segment into a track
             Trk::Track* trtSeg = nullptr;trtSeg = segToTrack(ctx, *trackTRT);
             if(!trtSeg) {
-	      ATH_MSG_DEBUG ("Failed to make a track out of the TRT segment!");
-	      continue;
-	    }
-	    // statistics
+              ATH_MSG_DEBUG ("Failed to make a track out of the TRT segment!");
+              continue;
+            }
+            // statistics
             ev_stat.m_counter[Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkTrt]++;
-	    // add track to output list
-	    outTracks->push_back(trtSeg);
+            // add track to output list
+            outTracks->push_back(trtSeg);
           }
           continue;
-
         } else {
-
-	  // Found useful extensions
+          // Found useful extensions
           ATH_MSG_DEBUG ("Found " << (trackSi.size()) << " Si tracks associated to the TRT track ");
-
           // Merge the resolved Si extensions with the original TRT track segment
           std::list<Trk::Track*>::const_iterator itt    = trackSi.begin();
           std::list<Trk::Track*>::const_iterator ittEnd = trackSi.end();
           for (; itt != ittEnd ; ++itt){
-
-	    tempTracks.push_back(*itt);
-
-	    // get list of TSOS
+            tempTracks.push_back(*itt);
+            // get list of TSOS
             const DataVector<const Trk::TrackStateOnSurface>* temptsos = (*itt)->trackStateOnSurfaces();
             if (!temptsos) {
-	      ATH_MSG_DEBUG ("Silicon extension empty ???");
-	      // cleanup
-	      //delete *itt;
-	      continue;
-	    }
-
-	    // Add the track to the list of tracks in the event
-	    ATH_MSG_DEBUG ("Silicon extension found has length of : " << temptsos->size());
-
-	    // do we do a preselection ?
-	    if (m_SiExtensionCuts) {
-
-             // get parameters without errors
-	      const Trk::TrackParameters* input = (*itt)->trackParameters()->front()->clone();
-
-	      // cuts on parameters
-	      if (fabs(input->pT()) < m_minPt) {
-	      	ATH_MSG_DEBUG ("Track pt < "<<m_minPt<<", reject it");
-	        // cleanup
-	        // delete *itt;
-	        delete input;
-	        // statistics
-	        ev_stat.m_counter[Stat_t::kNExtCut]++;
-	        continue;
-	      }
-	      if (fabs(input->eta()) > m_maxEta) {
-	        ATH_MSG_DEBUG ("Track eta > "<<m_maxEta<<", reject it");
-	        // cleanup
-	        // delete *itt;
-	        delete input;
-	        // statistics
-	        ev_stat.m_counter[Stat_t::kNExtCut]++;
-	        continue;
-	      }
-
-	      // --- beam spot position
-	      Amg::Vector3D beamSpotPosition(0,0,0);
-	      if (m_SiExtensionCuts){
-                 SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey, ctx };
-                 beamSpotPosition = beamSpotHandle->beamVtx().position();
+              ATH_MSG_DEBUG ("Silicon extension empty ???");
+              continue;
+            }
+            // Add the track to the list of tracks in the event
+            ATH_MSG_DEBUG ("Silicon extension found has length of : " << temptsos->size());
+            // do we do a preselection ?
+            if (m_SiExtensionCuts) {
+              // get parameters without errors
+              const Trk::TrackParameters* input = (*itt)->trackParameters()->front()->clone();
+              // cuts on parameters
+              if (std::abs(input->pT()) < m_minPt) {
+                ATH_MSG_DEBUG ("Track pt < "<<m_minPt<<", reject it");
+                delete input;
+                // statistics
+                ev_stat.m_counter[Stat_t::kNExtCut]++;
+                continue;
+              }
+              if (std::abs(input->eta()) > m_maxEta) {
+                ATH_MSG_DEBUG ("Track eta > "<<m_maxEta<<", reject it");
+                delete input;
+                // statistics
+                ev_stat.m_counter[Stat_t::kNExtCut]++;
+                continue;
+              }
+              // --- beam spot position
+              Amg::Vector3D beamSpotPosition(0,0,0);
+              if (m_SiExtensionCuts){
+                       SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey, ctx };
+                       beamSpotPosition = beamSpotHandle->beamVtx().position();
+              }
+              // --- create surface
+              Trk::PerigeeSurface perigeeSurface(beamSpotPosition);
+
+              // uses perigee on track or extrapolates, no material in any case, we cut on impacts
+              const Trk::TrackParameters* parm = m_extrapolator->extrapolateDirectly(*input, perigeeSurface);
+              delete input;
+              const Trk::Perigee*extrapolatedPerigee = dynamic_cast<const Trk::Perigee*> (parm );
+              if (!extrapolatedPerigee) {
+                ATH_MSG_WARNING("Extrapolation of perigee failed, this should never happen" );
+                delete parm;
+                // statistics
+                ev_stat.m_counter[Stat_t::kNExtCut]++;
+                continue;
               }
-	      // --- create surface
-	      Trk::PerigeeSurface perigeeSurface(beamSpotPosition);
-
-	      // uses perigee on track or extrapolates, no material in any case, we cut on impacts
-	      const Trk::TrackParameters* parm = m_extrapolator->extrapolateDirectly(*input, perigeeSurface);
-	      delete input;
-
-	      const Trk::Perigee*extrapolatedPerigee = dynamic_cast<const Trk::Perigee*> (parm );
-	      if (!extrapolatedPerigee) {
-	        msg(MSG::WARNING) << "Extrapolation of perigee failed, this should never happen" << endmsg;
-	        // cleanup
-	        // delete *itt;
-	        delete parm;
-	        // statistics
-	        ev_stat.m_counter[Stat_t::kNExtCut]++;
-	        continue;
-	      }
-
-	      ATH_MSG_VERBOSE ("extrapolated perigee: "<<*extrapolatedPerigee);
-
-	      //if (fabs(extrapolatedPerigee->parameters()[Trk::d0]*extrapolatedPerigee->sinTheta()) > m_maxRPhiImp) {
-	      if (fabs(extrapolatedPerigee->parameters()[Trk::d0]) > m_maxRPhiImp) {
-	        ATH_MSG_DEBUG ("Track Rphi impact > "<<m_maxRPhiImp<<", reject it");
-	        // cleanup
-	        // delete *itt;
-	        delete extrapolatedPerigee;
-	        // statistics
-	        ev_stat.m_counter[Stat_t::kNExtCut]++;
-	        continue;
-	      }
-	      // if (fabs(extrapolatedPerigee->parameters()[Trk::z0]*extrapolatedPerigee->sinTheta()) > m_maxZImp) {
-	      if (fabs(extrapolatedPerigee->parameters()[Trk::z0]) > m_maxZImp) {
-	        ATH_MSG_DEBUG ("Track Z impact > "<<m_maxZImp<<", reject it");
-	        // cleanup
-	        // delete *itt;
-	        delete extrapolatedPerigee;
-	        // statistics
-	        ev_stat.m_counter[Stat_t::kNExtCut]++;
-	        continue;
-	      }
-	      delete extrapolatedPerigee;
-	    }
-
-	    // do re run a Track extension into TRT ?
-	    Trk::Track* globalTrackNew = nullptr;
-
-	    // do we have 4 and extension is enabled ?
-            if(int(temptsos->size())>=4 && m_doExtension){
-
-	      // Add the track to the list of tracks in the event
-	      ATH_MSG_DEBUG ("Try to improve TRT calling extension tool.");
 
-	      // statistics
-	      ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtCalls]++;
+              ATH_MSG_VERBOSE ("extrapolated perigee: "<<*extrapolatedPerigee);
+              if (std::abs(extrapolatedPerigee->parameters()[Trk::d0]) > m_maxRPhiImp) {
+                ATH_MSG_DEBUG ("Track Rphi impact > "<<m_maxRPhiImp<<", reject it");
+                delete extrapolatedPerigee;
+                // statistics
+                ev_stat.m_counter[Stat_t::kNExtCut]++;
+                continue;
+              }
+              if (std::abs(extrapolatedPerigee->parameters()[Trk::z0]) > m_maxZImp) {
+                ATH_MSG_DEBUG ("Track Z impact > "<<m_maxZImp<<", reject it");
+                delete extrapolatedPerigee;
+                // statistics
+                ev_stat.m_counter[Stat_t::kNExtCut]++;
+                continue;
+              }
+              delete extrapolatedPerigee;
+            }
 
-	      // call extension tool
+            // do re run a Track extension into TRT ?
+            Trk::Track* globalTrackNew = nullptr;
+            // do we have 4 and extension is enabled ?
+            if(int(temptsos->size())>=4 && m_doExtension){
+              // Add the track to the list of tracks in the event
+              ATH_MSG_DEBUG ("Try to improve TRT calling extension tool.");
+              // statistics
+              ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtCalls]++;
+              // call extension tool
               std::vector<const Trk::MeasurementBase*>& tn = m_trtExtension->extendTrack(ctx, *(*itt), *ext_event_data_p);
-
               if(tn.empty()) {
-
-		// Fallback if extension failed
-		ATH_MSG_DEBUG ("No new segment found, use input segment as fallback.");
-
-		// statistics
-		ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtFail]++;
-
-		// merge Si with input track segments
-		globalTrackNew = mergeSegments(**itt,*trackTRT);
-
-	      } else if (!m_rejectShortExten || tn.size() >= trackTRT->numberOfMeasurementBases() ) {
-
- 		// Use the extension to instead of the segment
-		ATH_MSG_DEBUG ("Successful extension, number of TRT hits : " << tn.size() << " was : " << (trackTRT->numberOfMeasurementBases()));
-
-		// merge the extension with the Si track
+                // Fallback if extension failed
+                ATH_MSG_DEBUG ("No new segment found, use input segment as fallback.");
+                // statistics
+                ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtFail]++;
+                // merge Si with input track segments
+                globalTrackNew = mergeSegments(**itt,*trackTRT);
+              } else if (!m_rejectShortExten || tn.size() >= trackTRT->numberOfMeasurementBases() ) {
+                // Use the extension to instead of the segment
+                ATH_MSG_DEBUG ("Successful extension, number of TRT hits : " << tn.size() << " was : " << (trackTRT->numberOfMeasurementBases()));
+                // merge the extension with the Si track
                 globalTrackNew = mergeExtension(**itt,tn);
-
-		// Add the track to the list of tracks in the event
-		ATH_MSG_DEBUG ("Merged extension with Si segment");
-		// statistics
-		ev_stat.m_counter[Stat_t::kNTrtExt]++;
-
-		// clean up
-		std::vector<const Trk::MeasurementBase*>::const_iterator iv, ive=tn.end();
+                // Add the track to the list of tracks in the event
+                ATH_MSG_DEBUG ("Merged extension with Si segment");
+                // statistics
+                ev_stat.m_counter[Stat_t::kNTrtExt]++;
+                // clean up
+                std::vector<const Trk::MeasurementBase*>::const_iterator iv, ive=tn.end();
                 for(iv=tn.begin(); iv!=ive; ++iv) delete (*iv);
-
-	      } else {
-
- 		// Extension is shorter, let's fall back onto the original
-		ATH_MSG_DEBUG ("Extension too short, number of TRT hits : " << tn.size() << " was : " << (trackTRT->numberOfMeasurementBases()) << ". Use Segement !");
-
-		// merge segments
-		globalTrackNew = mergeSegments(**itt,*trackTRT);
-
-		// Add the track to the list of tracks in the event
-		ATH_MSG_DEBUG ("Merged TRT segment with Si segment");
-
-		// statistics
-		ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtBad]++;
-
-		// clean up
-		std::vector<const Trk::MeasurementBase*>::const_iterator iv, ive=tn.end();
+              } else {
+                // Extension is shorter, let's fall back onto the original
+                ATH_MSG_DEBUG ("Extension too short, number of TRT hits : " << tn.size() << " was : " << (trackTRT->numberOfMeasurementBases()) << ". Use Segement !");
+                // merge segments
+                globalTrackNew = mergeSegments(**itt,*trackTRT);
+                // Add the track to the list of tracks in the event
+                ATH_MSG_DEBUG ("Merged TRT segment with Si segment");
+                // statistics
+                ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtBad]++;
+                // clean up
+                std::vector<const Trk::MeasurementBase*>::const_iterator iv, ive=tn.end();
                 for(iv=tn.begin(); iv!=ive; ++iv) delete (*iv);
-
-	      }
-
-	    } else {
-	      // no extension tool, jsut add the two
-	      ATH_MSG_DEBUG ("Do not try to extend Si track, merging it with input TRT.");
-
-	      // merge segments
-	      globalTrackNew = mergeSegments(**itt,*trackTRT);
-	    }
-
-	    // do we have an track candidate ?
+              }
+            } else {
+              // no extension tool, jsut add the two
+              ATH_MSG_DEBUG ("Do not try to extend Si track, merging it with input TRT.");
+              // merge segments
+              globalTrackNew = mergeSegments(**itt,*trackTRT);
+            }
+            // do we have an track candidate ?
             if(!globalTrackNew){
               ATH_MSG_DEBUG ("Failed to merge TRT+Si track segment !");
-
-	      if(m_saveTRT && trackTRT->numberOfMeasurementBases() > m_minTRTonly) {
+              if(m_saveTRT && trackTRT->numberOfMeasurementBases() > m_minTRTonly) {
                 Trk::Track* trtSeg = nullptr;trtSeg = segToTrack(ctx, *trackTRT);
                 if(!trtSeg){
-		  ATH_MSG_DEBUG ("Failed to make a track out of the  TRT segment!");
-		  continue;
-		}
-		ATH_MSG_DEBUG ("Add TRT only to output list");
-
-		// statistis
+                  ATH_MSG_DEBUG ("Failed to make a track out of the  TRT segment!");
+                  continue;
+                }
+                ATH_MSG_DEBUG ("Add TRT only to output list");
+                // statistis
                 ev_stat.m_counter[Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkTrt]++;
-
-		// add it to output list
+                // add it to output list
                 if (m_trackSummaryTool.isEnabled()) {
-                   m_trackSummaryTool->computeAndReplaceTrackSummary(*trtSeg,
-                                                                     combinatorialData.PRDtoTrackMap(),
-                                                                     false /* DO NOT suppress hole search*/);
+                  m_trackSummaryTool->computeAndReplaceTrackSummary(*trtSeg,
+                                      combinatorialData.PRDtoTrackMap(),
+                                      false /* DO NOT suppress hole search*/);
                 }
-		outTracks->push_back(trtSeg);
+                outTracks->push_back(trtSeg);
               }
-
-	    } else {
-
+            } else {
               ATH_MSG_DEBUG ("Save merged TRT+Si track segment!");
-
-	      // statistics
-	      ev_stat.m_counter[Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkSi]++;
-
-	      // add it to output list
+              // statistics
+              ev_stat.m_counter[Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkSi]++;
+              // add it to output list
               if (m_trackSummaryTool.isEnabled()) {
-                 m_trackSummaryTool->computeAndReplaceTrackSummary(*globalTrackNew,
-                                                                   combinatorialData.PRDtoTrackMap(),
-                                                                   false /* DO NOT suppress hole search*/);
+                m_trackSummaryTool->computeAndReplaceTrackSummary(*globalTrackNew,
+                                    combinatorialData.PRDtoTrackMap(),
+                                    false /* DO NOT suppress hole search*/);
               }
-	      outTracks->push_back(globalTrackNew);
+              outTracks->push_back(globalTrackNew);
             }
-	  }
+          }
         }
       }
     }
   }
-
   // further debugging of results
   if(m_doStat){
     Analyze(outTracks.get());
   }
-
   if (SG::WriteHandle<TrackCollection>(m_outTracksKey,ctx).record(std::move(outTracks)).isFailure()){
      ATH_MSG_ERROR("Failed to record " << m_outTracksKey.key());
      return StatusCode::FAILURE;
   }
-
   // Update the total counters
   {
      std::lock_guard<std::mutex> lock(m_statMutex);
@@ -632,61 +545,61 @@ MsgStream& InDet::TRT_SeededTrackFinder::dumpevent( MsgStream& out, const InDet:
 ///////////////////////////////////////////////////////////////////
 
 Trk::Track* InDet::TRT_SeededTrackFinder::mergeSegments(const Trk::Track& tT, const Trk::TrackSegment& tS) const {
-	// TSOS from the track
-	const DataVector<const Trk::TrackStateOnSurface>* stsos = tT.trackStateOnSurfaces();
-	// fitQuality from track
-	const Trk::FitQuality* fq = tT.fitQuality()->clone();
-	// output datavector of TSOS
-	auto ntsos = DataVector<const Trk::TrackStateOnSurface>();
-
-	int siHits = 0;
-	// copy track Si states into track
-	DataVector<const Trk::TrackStateOnSurface>::const_iterator p_stsos;
-	for (p_stsos=stsos->begin(); p_stsos != stsos->end(); ++p_stsos) {
-		ntsos.push_back( (*p_stsos)->clone() );
-		if ((*p_stsos)->type(Trk::TrackStateOnSurface::Measurement)) siHits++;
-	}
-
-	// loop over segment
-	for (int it = 0; it < int(tS.numberOfMeasurementBases()); it++) {
-		//test if it is a pseudo measurement
-		if ( dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(tS.measurement(it)) ) {
-			if (siHits < 4) {
-				ATH_MSG_DEBUG ("Too few Si hits.Will keep pseudomeasurement...");
-				const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr);
-				ntsos.push_back(seg_tsos);
-			}
-		} else {
-			std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
-			typePattern.set(Trk::TrackStateOnSurface::Measurement);
-			// Possible memory leak
-			const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr, nullptr, nullptr, typePattern);
-			ntsos.push_back(seg_tsos);
-		}
-	}
-
-	///Construct the new track
-	Trk::TrackInfo info;
-	info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
+  // TSOS from the track
+  const DataVector<const Trk::TrackStateOnSurface>* stsos = tT.trackStateOnSurfaces();
+  // fitQuality from track
+  const Trk::FitQuality* fq = tT.fitQuality()->clone();
+  // output datavector of TSOS
+  auto ntsos = DataVector<const Trk::TrackStateOnSurface>();
+
+  int siHits = 0;
+  // copy track Si states into track
+  DataVector<const Trk::TrackStateOnSurface>::const_iterator p_stsos;
+  for (p_stsos=stsos->begin(); p_stsos != stsos->end(); ++p_stsos) {
+    ntsos.push_back( (*p_stsos)->clone() );
+    if ((*p_stsos)->type(Trk::TrackStateOnSurface::Measurement)) siHits++;
+  }
+
+  // loop over segment
+  for (int it = 0; it < int(tS.numberOfMeasurementBases()); it++) {
+    //test if it is a pseudo measurement
+    if ( dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(tS.measurement(it)) ) {
+      if (siHits < 4) {
+        ATH_MSG_DEBUG ("Too few Si hits.Will keep pseudomeasurement...");
+        const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr);
+        ntsos.push_back(seg_tsos);
+      }
+    } else {
+      std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
+      typePattern.set(Trk::TrackStateOnSurface::Measurement);
+      // Possible memory leak
+      const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr, nullptr, nullptr, typePattern);
+      ntsos.push_back(seg_tsos);
+    }
+  }
+
+  ///Construct the new track
+  Trk::TrackInfo info;
+  info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
         std::unique_ptr<Trk::Track> newTrack(std::make_unique<Trk::Track>(info, std::move(ntsos), fq));
 
-	//Careful refitting at the end
-	if (m_doRefit) {
+  //Careful refitting at the end
+  if (m_doRefit) {
                 newTrack=std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion) );
-		if (!newTrack) {
-			ATH_MSG_DEBUG ("Refit of TRT+Si track segment failed!");
-			return nullptr;
-		}
+    if (!newTrack) {
+      ATH_MSG_DEBUG ("Refit of TRT+Si track segment failed!");
+      return nullptr;
+    }
 
-		//Protect for tracks that have no really defined locz and theta parameters
-		//const Trk::MeasuredPerigee* perTrack=dynamic_cast<const Trk::MeasuredPerigee*>(newTrack->perigeeParameters());
+    //Protect for tracks that have no really defined locz and theta parameters
+    //const Trk::MeasuredPerigee* perTrack=dynamic_cast<const Trk::MeasuredPerigee*>(newTrack->perigeeParameters());
 
-		const Trk::Perigee* perTrack=newTrack->perigeeParameters();
+    const Trk::Perigee* perTrack=newTrack->perigeeParameters();
 
-		if (perTrack) {
-			//const Trk::CovarianceMatrix& CM = perTrack->localErrorMatrix().covariance();
-			const AmgSymMatrix(5)* CM = perTrack->covariance();
-			if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
+    if (perTrack) {
+      //const Trk::CovarianceMatrix& CM = perTrack->localErrorMatrix().covariance();
+      const AmgSymMatrix(5)* CM = perTrack->covariance();
+      if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
                                 return nullptr;
                         }
                 }
@@ -699,15 +612,15 @@ Trk::Track* InDet::TRT_SeededTrackFinder::mergeSegments(const Trk::Track& tT, co
 ///////////////////////////////////////////////////////////////////
 
 Trk::Track* InDet::TRT_SeededTrackFinder::segToTrack(const EventContext&, const Trk::TrackSegment& tS) const {
-	ATH_MSG_DEBUG ("Transforming the TRT segment into a track...");
+  ATH_MSG_DEBUG ("Transforming the TRT segment into a track...");
 
-	//Get the track segment information and build the initial track parameters
-	const Trk::StraightLineSurface* surf = dynamic_cast<const Trk::StraightLineSurface*>(&(tS.associatedSurface()));
-	if (!surf) {
-		throw std::logic_error("Unhandled surface.");
-	}
-	const AmgVector(5)& p = tS.localParameters();
-	AmgSymMatrix(5) ep = AmgSymMatrix(5)(tS.localCovariance());
+  //Get the track segment information and build the initial track parameters
+  const Trk::StraightLineSurface* surf = dynamic_cast<const Trk::StraightLineSurface*>(&(tS.associatedSurface()));
+  if (!surf) {
+    throw std::logic_error("Unhandled surface.");
+  }
+  const AmgVector(5)& p = tS.localParameters();
+  AmgSymMatrix(5) ep = AmgSymMatrix(5)(tS.localCovariance());
 
   auto ntsos = DataVector<const Trk::TrackStateOnSurface>();
 
@@ -716,47 +629,47 @@ Trk::Track* InDet::TRT_SeededTrackFinder::segToTrack(const EventContext&, const
       p(0), p(1), p(2), p(3), p(4), std::move(ep));
 
   if (segPar) {
-		if (msgLvl(MSG::DEBUG)) {
-			msg(MSG::DEBUG) << "Initial TRT Segment Parameters for refitting " << (*segPar) << endmsg;
-		}
-	} else {
-		if (msgLvl(MSG::DEBUG)) {
-			msg(MSG::DEBUG) << "Could not get initial TRT segment parameters! " << endmsg;
-		}
-		return nullptr;
-	}
-
-	for (int it = 0; it < int(tS.numberOfMeasurementBases()); it++) {
-		// on first measurement add parameters
-		const Trk::TrackStateOnSurface* seg_tsos = nullptr;
-		std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
-		typePattern.set(Trk::TrackStateOnSurface::Measurement);
-		if (it == 0)
-			seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), segPar.release(), nullptr, nullptr, typePattern);
-		else
-			seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr, nullptr, nullptr, typePattern);
-		ntsos.push_back(seg_tsos);
-	}
-
-	// Construct the new track
-	//  Trk::Track* newTrack = new Trk::Track(Trk::Track::TRT_SeededTrackFinder, ntsos, 0);
-
-	Trk::TrackInfo info;
-	info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
+    if (msgLvl(MSG::DEBUG)) {
+      msg(MSG::DEBUG) << "Initial TRT Segment Parameters for refitting " << (*segPar) << endmsg;
+    }
+  } else {
+    if (msgLvl(MSG::DEBUG)) {
+      msg(MSG::DEBUG) << "Could not get initial TRT segment parameters! " << endmsg;
+    }
+    return nullptr;
+  }
+
+  for (int it = 0; it < int(tS.numberOfMeasurementBases()); it++) {
+    // on first measurement add parameters
+    const Trk::TrackStateOnSurface* seg_tsos = nullptr;
+    std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
+    typePattern.set(Trk::TrackStateOnSurface::Measurement);
+    if (it == 0)
+      seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), segPar.release(), nullptr, nullptr, typePattern);
+    else
+      seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr, nullptr, nullptr, typePattern);
+    ntsos.push_back(seg_tsos);
+  }
+
+  // Construct the new track
+  //  Trk::Track* newTrack = new Trk::Track(Trk::Track::TRT_SeededTrackFinder, ntsos, 0);
+
+  Trk::TrackInfo info;
+  info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
         std::unique_ptr<Trk::Track> newTrack = std::make_unique<Trk::Track>(info, std::move(ntsos), nullptr);
 
-	// Careful refitting of the TRT stand alone track
-	if (m_doRefit) {
+  // Careful refitting of the TRT stand alone track
+  if (m_doRefit) {
                 newTrack = std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion));
-		if (!newTrack) {
-			ATH_MSG_DEBUG ("Refit of TRT track segment failed!");
-			return nullptr;
-		}
-
-		//Protect for tracks that have no really defined locz and theta parameters
-		const Trk::Perigee* perTrack=newTrack->perigeeParameters();
-		if (perTrack) {
-			const AmgSymMatrix(5)* CM = perTrack->covariance();
+    if (!newTrack) {
+      ATH_MSG_DEBUG ("Refit of TRT track segment failed!");
+      return nullptr;
+    }
+
+    //Protect for tracks that have no really defined locz and theta parameters
+    const Trk::Perigee* perTrack=newTrack->perigeeParameters();
+    if (perTrack) {
+      const AmgSymMatrix(5)* CM = perTrack->covariance();
                         if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
                            return nullptr;
                         }
@@ -814,7 +727,7 @@ mergeExtension(const Trk::Track& tT, std::vector<const Trk::MeasurementBase*>& t
     if (perTrack) {
       const AmgSymMatrix(5)* CM = perTrack->covariance();
       if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
-	      return nullptr;
+        return nullptr;
       }
     }
   }
-- 
GitLab


From a3fde6ef5d22036a18d2509612997cefef441b2f Mon Sep 17 00:00:00 2001
From: Shaun Roe <shaun.roe@cern.ch>
Date: Wed, 23 Jun 2021 16:37:36 +0200
Subject: [PATCH 2/3] convert to unique_ptr version of TSoS c'tor

---
 .../src/TRT_SeededTrackFinder.cxx             | 81 +++++++------------
 1 file changed, 27 insertions(+), 54 deletions(-)

diff --git a/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx b/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
index c1a55d8601ce..25ff7c7d2352 100644
--- a/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
+++ b/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
@@ -284,18 +284,16 @@ InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) const{
             // do we do a preselection ?
             if (m_SiExtensionCuts) {
               // get parameters without errors
-              const Trk::TrackParameters* input = (*itt)->trackParameters()->front()->clone();
+              auto input = (*itt)->trackParameters()->front()->uniqueClone();
               // cuts on parameters
               if (std::abs(input->pT()) < m_minPt) {
                 ATH_MSG_DEBUG ("Track pt < "<<m_minPt<<", reject it");
-                delete input;
                 // statistics
                 ev_stat.m_counter[Stat_t::kNExtCut]++;
                 continue;
               }
               if (std::abs(input->eta()) > m_maxEta) {
                 ATH_MSG_DEBUG ("Track eta > "<<m_maxEta<<", reject it");
-                delete input;
                 // statistics
                 ev_stat.m_counter[Stat_t::kNExtCut]++;
                 continue;
@@ -311,8 +309,7 @@ InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) const{
 
               // uses perigee on track or extrapolates, no material in any case, we cut on impacts
               const Trk::TrackParameters* parm = m_extrapolator->extrapolateDirectly(*input, perigeeSurface);
-              delete input;
-              const Trk::Perigee*extrapolatedPerigee = dynamic_cast<const Trk::Perigee*> (parm );
+              const Trk::Perigee* extrapolatedPerigee = dynamic_cast<const Trk::Perigee*> (parm );
               if (!extrapolatedPerigee) {
                 ATH_MSG_WARNING("Extrapolation of perigee failed, this should never happen" );
                 delete parm;
@@ -460,7 +457,6 @@ StatusCode InDet::TRT_SeededTrackFinder::finalize()
   if(msgLvl(MSG::INFO)){
      msg(MSG::INFO) << std::endl;
      dumpevent(msg(MSG::INFO), m_totalStat);
-     // dumptools(msg(MSG::INFO));
      msg(MSG::INFO) << endmsg;
   }
   return StatusCode::SUCCESS;
@@ -551,7 +547,6 @@ Trk::Track* InDet::TRT_SeededTrackFinder::mergeSegments(const Trk::Track& tT, co
   const Trk::FitQuality* fq = tT.fitQuality()->clone();
   // output datavector of TSOS
   auto ntsos = DataVector<const Trk::TrackStateOnSurface>();
-
   int siHits = 0;
   // copy track Si states into track
   DataVector<const Trk::TrackStateOnSurface>::const_iterator p_stsos;
@@ -559,21 +554,19 @@ Trk::Track* InDet::TRT_SeededTrackFinder::mergeSegments(const Trk::Track& tT, co
     ntsos.push_back( (*p_stsos)->clone() );
     if ((*p_stsos)->type(Trk::TrackStateOnSurface::Measurement)) siHits++;
   }
-
   // loop over segment
   for (int it = 0; it < int(tS.numberOfMeasurementBases()); it++) {
     //test if it is a pseudo measurement
     if ( dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(tS.measurement(it)) ) {
       if (siHits < 4) {
         ATH_MSG_DEBUG ("Too few Si hits.Will keep pseudomeasurement...");
-        const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr);
+        const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->uniqueClone(), nullptr);
         ntsos.push_back(seg_tsos);
       }
     } else {
       std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
       typePattern.set(Trk::TrackStateOnSurface::Measurement);
-      // Possible memory leak
-      const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr, nullptr, nullptr, typePattern);
+      const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->uniqueClone(), nullptr, nullptr, nullptr, typePattern);
       ntsos.push_back(seg_tsos);
     }
   }
@@ -581,30 +574,24 @@ Trk::Track* InDet::TRT_SeededTrackFinder::mergeSegments(const Trk::Track& tT, co
   ///Construct the new track
   Trk::TrackInfo info;
   info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
-        std::unique_ptr<Trk::Track> newTrack(std::make_unique<Trk::Track>(info, std::move(ntsos), fq));
+  std::unique_ptr<Trk::Track> newTrack(std::make_unique<Trk::Track>(info, std::move(ntsos), fq));
 
   //Careful refitting at the end
   if (m_doRefit) {
-                newTrack=std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion) );
+    newTrack=std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion) );
     if (!newTrack) {
       ATH_MSG_DEBUG ("Refit of TRT+Si track segment failed!");
       return nullptr;
     }
-
-    //Protect for tracks that have no really defined locz and theta parameters
-    //const Trk::MeasuredPerigee* perTrack=dynamic_cast<const Trk::MeasuredPerigee*>(newTrack->perigeeParameters());
-
     const Trk::Perigee* perTrack=newTrack->perigeeParameters();
-
     if (perTrack) {
-      //const Trk::CovarianceMatrix& CM = perTrack->localErrorMatrix().covariance();
       const AmgSymMatrix(5)* CM = perTrack->covariance();
-      if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
-                                return nullptr;
-                        }
-                }
-        }
-        return newTrack.release();
+      if (!CM || std::sqrt((*CM)(1,1)) == 0. || std::sqrt((*CM)(3,3)) == 0.) {
+        return nullptr;
+      }
+    }
+  }
+  return newTrack.release();
 }
 
 ///////////////////////////////////////////////////////////////////
@@ -621,62 +608,48 @@ Trk::Track* InDet::TRT_SeededTrackFinder::segToTrack(const EventContext&, const
   }
   const AmgVector(5)& p = tS.localParameters();
   AmgSymMatrix(5) ep = AmgSymMatrix(5)(tS.localCovariance());
-
   auto ntsos = DataVector<const Trk::TrackStateOnSurface>();
-
   std::unique_ptr<const Trk::TrackParameters> segPar =
     surf->createUniqueParameters<5, Trk::Charged>(
       p(0), p(1), p(2), p(3), p(4), std::move(ep));
-
   if (segPar) {
-    if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << "Initial TRT Segment Parameters for refitting " << (*segPar) << endmsg;
-    }
+    ATH_MSG_DEBUG( "Initial TRT Segment Parameters for refitting " << (*segPar) );
   } else {
-    if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << "Could not get initial TRT segment parameters! " << endmsg;
-    }
+    ATH_MSG_DEBUG( "Could not get initial TRT segment parameters! " );
     return nullptr;
   }
-
   for (int it = 0; it < int(tS.numberOfMeasurementBases()); it++) {
     // on first measurement add parameters
     const Trk::TrackStateOnSurface* seg_tsos = nullptr;
     std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
     typePattern.set(Trk::TrackStateOnSurface::Measurement);
-    if (it == 0)
-      seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), segPar.release(), nullptr, nullptr, typePattern);
-    else
-      seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->clone(), nullptr, nullptr, nullptr, typePattern);
+    if (it == 0){
+      seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->uniqueClone(), std::move(segPar), nullptr, nullptr, typePattern);
+    } else {
+      seg_tsos = new Trk::TrackStateOnSurface(tS.measurement(it)->uniqueClone(), nullptr, nullptr, nullptr, typePattern);
+    }
     ntsos.push_back(seg_tsos);
   }
-
-  // Construct the new track
-  //  Trk::Track* newTrack = new Trk::Track(Trk::Track::TRT_SeededTrackFinder, ntsos, 0);
-
   Trk::TrackInfo info;
   info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
-        std::unique_ptr<Trk::Track> newTrack = std::make_unique<Trk::Track>(info, std::move(ntsos), nullptr);
-
+  std::unique_ptr<Trk::Track> newTrack = std::make_unique<Trk::Track>(info, std::move(ntsos), nullptr);
   // Careful refitting of the TRT stand alone track
   if (m_doRefit) {
-                newTrack = std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion));
+    newTrack = std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion));
     if (!newTrack) {
       ATH_MSG_DEBUG ("Refit of TRT track segment failed!");
       return nullptr;
     }
-
     //Protect for tracks that have no really defined locz and theta parameters
     const Trk::Perigee* perTrack=newTrack->perigeeParameters();
     if (perTrack) {
       const AmgSymMatrix(5)* CM = perTrack->covariance();
-                        if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
-                           return nullptr;
-                        }
-                }
-        }
-
-        return newTrack.release();
+      if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
+         return nullptr;
+      }
+    }
+  }
+  return newTrack.release();
 }
 
 ///////////////////////////////////////////////////////////////////
-- 
GitLab


From db034c465a72e0edc1357019b751a4bfc66bef36 Mon Sep 17 00:00:00 2001
From: Shaun Roe <shaun.roe@cern.ch>
Date: Wed, 23 Jun 2021 17:05:52 +0200
Subject: [PATCH 3/3] additional cosmetic changes

---
 .../src/TRT_SeededTrackFinder.cxx             | 103 ++++++++----------
 1 file changed, 46 insertions(+), 57 deletions(-)

diff --git a/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx b/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
index 25ff7c7d2352..256eca8db02a 100644
--- a/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
+++ b/InnerDetector/InDetRecAlgs/TRT_SeededTrackFinder/src/TRT_SeededTrackFinder.cxx
@@ -455,7 +455,7 @@ InDet::TRT_SeededTrackFinder::execute_r (const EventContext& ctx) const{
 StatusCode InDet::TRT_SeededTrackFinder::finalize()
 {
   if(msgLvl(MSG::INFO)){
-     msg(MSG::INFO) << std::endl;
+     msg(MSG::INFO) << "\n";
      dumpevent(msg(MSG::INFO), m_totalStat);
      msg(MSG::INFO) << endmsg;
   }
@@ -644,7 +644,7 @@ Trk::Track* InDet::TRT_SeededTrackFinder::segToTrack(const EventContext&, const
     const Trk::Perigee* perTrack=newTrack->perigeeParameters();
     if (perTrack) {
       const AmgSymMatrix(5)* CM = perTrack->covariance();
-      if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
+      if (!CM || std::sqrt((*CM)(1,1)) == 0. || std::sqrt((*CM)(3,3)) == 0.) {
          return nullptr;
       }
     }
@@ -664,7 +664,6 @@ mergeExtension(const Trk::Track& tT, std::vector<const Trk::MeasurementBase*>& t
   const Trk::FitQuality* fq = tT.fitQuality()->clone();
   // output datavector of TSOS
   auto ntsos = DataVector<const Trk::TrackStateOnSurface>();
-
   int siHits = 0;
   // copy track Si states into track
   DataVector<const Trk::TrackStateOnSurface>::const_iterator p_stsos;
@@ -672,21 +671,17 @@ mergeExtension(const Trk::Track& tT, std::vector<const Trk::MeasurementBase*>& t
     ntsos.push_back((*p_stsos)->clone());
     if ((*p_stsos)->type(Trk::TrackStateOnSurface::Measurement)) siHits++;
   }
-
   // loop over TRT track extension
   for (int it = 0; it < int(tS.size()); it++) {
     std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
     typePattern.set(Trk::TrackStateOnSurface::Measurement);
-    const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS[it]->clone(), nullptr, nullptr, nullptr, typePattern);
+    const Trk::TrackStateOnSurface* seg_tsos = new Trk::TrackStateOnSurface(tS[it]->uniqueClone(), nullptr, nullptr, nullptr, typePattern);
     ntsos.push_back(seg_tsos);
   }
-
   ///Construct the new track
-
   Trk::TrackInfo info;
   info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
   std::unique_ptr<Trk::Track> newTrack( std::make_unique<Trk::Track>(info, std::move(ntsos), fq) );
-
   //Careful refitting at the end
   if (m_doRefit) {
     newTrack = std::unique_ptr<Trk::Track>( m_fitterTool->fit(*newTrack, false, Trk::pion) ) ;
@@ -694,12 +689,11 @@ mergeExtension(const Trk::Track& tT, std::vector<const Trk::MeasurementBase*>& t
       ATH_MSG_DEBUG ("Refit of TRT+Si track segment failed!");
       return nullptr;
     }
-
     //Protect for tracks that have no really defined locz and theta parameters
     const Trk::Perigee* perTrack=newTrack->perigeeParameters();
     if (perTrack) {
       const AmgSymMatrix(5)* CM = perTrack->covariance();
-      if (!CM || sqrt((*CM)(1,1)) == 0. || sqrt((*CM)(3,3)) == 0.) {
+      if (!CM || std::sqrt((*CM)(1,1)) == 0. || std::sqrt((*CM)(3,3)) == 0.) {
         return nullptr;
       }
     }
@@ -712,56 +706,51 @@ mergeExtension(const Trk::Track& tT, std::vector<const Trk::MeasurementBase*>& t
 // Analysis of tracks
 ///////////////////////////////////////////////////////////////////
 
-void InDet::TRT_SeededTrackFinder::Analyze(TrackCollection* tC) const
-{
-
+void 
+InDet::TRT_SeededTrackFinder::Analyze(TrackCollection* tC) const{
   if(msgLvl(MSG::DEBUG)) {
-  if(msgLvl(MSG::DEBUG)) {msg(MSG::DEBUG) << "Analyzing tracks..." << endmsg;}
-
-  if(msgLvl(MSG::DEBUG)) {msg(MSG::DEBUG) << "Number of back tracks " << (tC->size()) << endl;}
-  int tc = 0; //Track counter
-  int nsct1, nsct2, nsct3, nsct4; //SCT layer counters
-  int nsctTot1, nsctTot2, nsctTot3, nsctTot4; //SCT layer counters
-  nsctTot1=nsctTot2=nsctTot3=nsctTot4=0;
-  int npix1, npix2, npix3; //Pixel layer counters
-  int npixTot1, npixTot2, npixTot3; //Pixel layer counters
-  npixTot1=npixTot2=npixTot3=0;
-  int nhits, nholes, noutl;
-  ///Loop over tracks in track collection
-  TrackCollection::const_iterator r    = tC->begin();
-  TrackCollection::const_iterator re = tC->end();
-  for (; r != re ; ++r){
-    tc++; nsct1=nsct2=nsct3=nsct4=0; npix1=npix2=npix3=0; nhits=nholes=noutl=0;
-    const DataVector<const Trk::TrackStateOnSurface>* newtsos = (*r)->trackStateOnSurfaces();
-    if(!newtsos) continue;
-    DataVector<const Trk::TrackStateOnSurface>::const_iterator itp, itpe=newtsos->end();
-    for(itp=newtsos->begin(); itp!=itpe; ++itp){
-      ///Concentrate on the Si component of the track
-      const InDet::SiClusterOnTrack* clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*itp)->measurementOnTrack());
-      if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Measurement))){  //Count the number of hits used in the track
-        double rc = clus->globalPosition().perp();
-        if((40.<=rc)&&(rc<80.)){npix1++;}    //1st pixel layer
-        if((80.<=rc)&&(rc<100.)){npix2++;}   //2nd pixel layer
-        if((100.<=rc)&&(rc<150.)){npix3++;}  //3rd pixel layer
-        if((280.<=rc)&&(rc<340.)){nsct1++;}  //1st SCT layer
-        if((340.<=rc)&&(rc<390.)){nsct2++;}  //2nd SCT layer
-        if((390.<=rc)&&(rc<460.)){nsct3++;}  //3rd SCT layer
-        if((460.<=rc)&&(rc<550.)){nsct4++;}  //4th SCT layer
-        nhits++;
-      }
-      if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Outlier))){  //Count the total number of outliers per track
-        noutl++;
-      }
-      if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Hole))){     //Count the total number of holes per track
-        nholes++;
+    ATH_MSG_DEBUG( "Analyzing tracks..." );
+    ATH_MSG_DEBUG( "Number of back tracks " << (tC->size()) );
+    int tc = 0; //Track counter
+    int nsct1{}, nsct2{}, nsct3{}, nsct4{}; //SCT layer counters
+    int nsctTot1{}, nsctTot2{}, nsctTot3{}, nsctTot4{}; //SCT layer counters
+    int npix1{}, npix2{}, npix3{}; //Pixel layer counters
+    int npixTot1{}, npixTot2{}, npixTot3{}; //Pixel layer counters
+    int nhits{}, nholes{}, noutl{};
+    ///Loop over tracks in track collection
+    TrackCollection::const_iterator r    = tC->begin();
+    TrackCollection::const_iterator re = tC->end();
+    for (; r != re ; ++r){
+      tc++; nsct1=nsct2=nsct3=nsct4=0; npix1=npix2=npix3=0; nhits=nholes=noutl=0;
+      const DataVector<const Trk::TrackStateOnSurface>* newtsos = (*r)->trackStateOnSurfaces();
+      if(!newtsos) continue;
+      DataVector<const Trk::TrackStateOnSurface>::const_iterator itp, itpe=newtsos->end();
+      for(itp=newtsos->begin(); itp!=itpe; ++itp){
+        ///Concentrate on the Si component of the track
+        const InDet::SiClusterOnTrack* clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*itp)->measurementOnTrack());
+        if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Measurement))){  //Count the number of hits used in the track
+          double rc = clus->globalPosition().perp();
+          if((40.<=rc)&&(rc<80.)){npix1++;}    //1st pixel layer
+          if((80.<=rc)&&(rc<100.)){npix2++;}   //2nd pixel layer
+          if((100.<=rc)&&(rc<150.)){npix3++;}  //3rd pixel layer
+          if((280.<=rc)&&(rc<340.)){nsct1++;}  //1st SCT layer
+          if((340.<=rc)&&(rc<390.)){nsct2++;}  //2nd SCT layer
+          if((390.<=rc)&&(rc<460.)){nsct3++;}  //3rd SCT layer
+          if((460.<=rc)&&(rc<550.)){nsct4++;}  //4th SCT layer
+          nhits++;
+        }
+        if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Outlier))){  //Count the total number of outliers per track
+          noutl++;
+        }
+        if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Hole))){     //Count the total number of holes per track
+          nholes++;
+        }
       }
+      nsctTot1+=nsct1; nsctTot2+=nsct2; nsctTot3+=nsct3; nsctTot4+=nsct4;
+      npixTot1+=npix1; npixTot2+=npix2; npixTot3+=npix3;
     }
-    nsctTot1+=nsct1; nsctTot2+=nsct2; nsctTot3+=nsct3; nsctTot4+=nsct4;
-    npixTot1+=npix1; npixTot2+=npix2; npixTot3+=npix3;
+    ATH_MSG_DEBUG("Total hits on 1st SCT: "<<nsctTot1<<" 2nd SCT: "<<nsctTot2<<" 3rd SCT: "<<nsctTot3<<" 4th SCT: "<<nsctTot4);
+    ATH_MSG_DEBUG("Total hits on 1st Pixel: "<<npixTot1<<" 2nd Pixel: "<<npixTot2<<" 3rd Pixel: "<<npixTot3);
   }
-  msg(MSG::DEBUG)<<"Total hits on 1st SCT: "<<nsctTot1<<" 2nd SCT: "<<nsctTot2<<" 3rd SCT: "<<nsctTot3<<" 4th SCT: "<<nsctTot4<<endmsg;
-  msg(MSG::DEBUG)<<"Total hits on 1st Pixel: "<<npixTot1<<" 2nd Pixel: "<<npixTot2<<" 3rd Pixel: "<<npixTot3<<endmsg;
-  }
-
 }
 
-- 
GitLab