diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp index 25589fad93f0265746c4fddcfb3fe71055b7fa24..7fbb98e9fe962a79542bbbd31b789f3a057f3c32 100644 --- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp +++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp @@ -2698,7 +2698,7 @@ void SiliconTrackingAlg::FinalRefit(edm4hep::TrackCollection* trk_col) { // setup initial dummy covariance matrix //std::vector<float> covMatrix; //covMatrix.resize(15); - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; diff --git a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp index d918cf3831636acb238ac87a4ea0e7064e64f910..792685092237ca9248c16bc63dd7fca8a8ce9f1f 100644 --- a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp +++ b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp @@ -214,7 +214,7 @@ StatusCode TrackSubsetAlg::execute(){ trackerHits.push_back(Navigation::Instance()->GetTrackerHit(trackerHitsObj[i].getObjectID())); } // setup initial dummy covariance matrix - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; } diff --git a/Reconstruction/Tracking/include/Tracking/TrackingHelper.h b/Reconstruction/Tracking/include/Tracking/TrackingHelper.h index beed38e6231ae56a7dd6e45c13f9df4eb98bc0a4..4724fb02c7a077ef4fd64f587359dc4e025fe97a 100644 --- a/Reconstruction/Tracking/include/Tracking/TrackingHelper.h +++ b/Reconstruction/Tracking/include/Tracking/TrackingHelper.h @@ -27,9 +27,9 @@ inline edm4hep::TrackState getTrackStateAt(edm4hep::Track track, int location) { return edm4hep::TrackState(); } -inline std::array<float,15> getCovMatrix(const edm4hep::Track &track) { +inline decltype(edm4hep::TrackState::covMatrix) getCovMatrix(const edm4hep::Track &track) { if(track.trackStates_size()>0) return track.getTrackStates(0).covMatrix; - std::array<float,15> dummy{}; + decltype(edm4hep::TrackState::covMatrix) dummy{}; return dummy; } inline float getTanLambda(const edm4hep::Track &track) { diff --git a/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp b/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp index 9d57f09cae8a4f8a25bd1a811b571638ec15cb30..c4ed1fed79fad18e61d46ae29e7afcb338f79abe 100644 --- a/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp +++ b/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp @@ -1361,7 +1361,7 @@ start: tsBase.Z0 = 0; tsBase.tanLambda = 0; tsBase.referencePoint = edm4hep::Vector3f(0,0,0); - tsBase.covMatrix = std::array<float, 15>{}; + tsBase.covMatrix = decltype(edm4hep::TrackState::covMatrix){}; edm4hep::TrackState tsIP(tsBase); edm4hep::TrackState tsFH(tsBase); edm4hep::TrackState tsLH(tsBase); diff --git a/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.cpp b/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.cpp index f5a986328dd86bf39acd24f0bfad6607c11d3fec..b00f1d051256fc450499a21e30d90ed74e982243 100755 --- a/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.cpp +++ b/Reconstruction/Tracking/src/FullLDCTracking/FullLDCTrackingAlg.cpp @@ -288,7 +288,7 @@ void FullLDCTrackingAlg::AddTrackColToEvt(TrackExtendedVec & trkVec, edm4hep::Tr edm4hep::MutableTrack track;// = new edm4hep::Track; // setup initial dummy covariance matrix - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; @@ -1115,9 +1115,10 @@ void FullLDCTrackingAlg::prepareVectors() { //param[3] = getD0(tpcTrack); //param[4] = getZ0(tpcTrack); - std::array<float, 15> Cov = getCovMatrix(tpcTrack); + auto Cov = getCovMatrix(tpcTrack); int NC = int(Cov.size()); for (int ic=0;ic<NC;ic++) { + if (ic>=(sizeof(cov)/sizeof(float))) break; cov[ic] = Cov[ic]; } @@ -1179,9 +1180,10 @@ void FullLDCTrackingAlg::prepareVectors() { //param[3] = getD0(siTrack); //param[4] = getZ0(siTrack); - std::array<float, 15> Cov = getCovMatrix(siTrack); + auto Cov = getCovMatrix(siTrack); int NC = int(Cov.size()); for (int ic=0;ic<NC;ic++) { + if (ic>=(sizeof(cov)/sizeof(float))) break; cov[ic] = Cov[ic]; } trackExt->setCovMatrix(cov); @@ -1571,7 +1573,7 @@ TrackExtended * FullLDCTrackingAlg::CombineTracks(TrackExtended * tpcTrack, Trac } // setup initial dummy covariance matrix - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; @@ -3628,7 +3630,7 @@ void FullLDCTrackingAlg::AssignOuterHitsToTracks(TrackerHitExtendedVec hitVec, f pre_fit.location = 1/*lcio::TrackState::AtIP*/; // setup initial dummy covariance matrix - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; @@ -4134,7 +4136,7 @@ void FullLDCTrackingAlg::AssignSiHitsToTracks(TrackerHitExtendedVec hitVec, pre_fit.location = 1/*lcio::TrackState::AtIP*/; // setup initial dummy covariance matrix - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; diff --git a/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp b/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp index 29e714e3b4ec2ddc5281c8f08700a117c2439102..977dde6470f74e85953f9ea5493ed1529c4ef0dc 100644 --- a/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp +++ b/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp @@ -207,8 +207,8 @@ StatusCode TruthTrackerAlg::execute() trackState.Z0=helix.getZ0(); trackState.tanLambda=helix.getTanLambda(); trackState.referencePoint=helix.getReferencePoint(); - std::array<float,15> covMatrix; - for(int i=0;i<15;i++){covMatrix[i]=999.;}//FIXME + decltype(trackState.covMatrix) covMatrix; + for(int i=0;i<covMatrix.size();i++){covMatrix[i]=999.;}//FIXME trackState.covMatrix=covMatrix; dcTrack.addToTrackStates(trackState); //dcTrack.setType();//TODO diff --git a/Service/TrackSystemSvc/include/TrackSystemSvc/MarlinTrkUtils.h b/Service/TrackSystemSvc/include/TrackSystemSvc/MarlinTrkUtils.h index 68498fe0dd6ff433882733ec36da023602edae25..70303ae34a3c9547e2cfbe359e7cc651aace6287 100644 --- a/Service/TrackSystemSvc/include/TrackSystemSvc/MarlinTrkUtils.h +++ b/Service/TrackSystemSvc/include/TrackSystemSvc/MarlinTrkUtils.h @@ -55,7 +55,7 @@ namespace MarlinTrk{ std::vector<edm4hep::TrackerHit>& hit_list, edm4hep::MutableTrack* track, bool fit_backwards, - const std::array<float,15>& initial_cov_for_prefit, + const decltype(edm4hep::TrackState::covMatrix)& initial_cov_for_prefit, float bfield_z, double maxChi2Increment=DBL_MAX); diff --git a/Service/TrackSystemSvc/src/LCIOTrackPropagators.cc b/Service/TrackSystemSvc/src/LCIOTrackPropagators.cc index 22fb8665f77fe8dfb162997685f86224514d2218..a5ab0265dd3d21e32dcab7c48eb543da39d6968e 100644 --- a/Service/TrackSystemSvc/src/LCIOTrackPropagators.cc +++ b/Service/TrackSystemSvc/src/LCIOTrackPropagators.cc @@ -100,7 +100,7 @@ namespace LCIOTrackPropagators{ CLHEP::HepSymMatrix covPrime = cov0.similarity(propagatorMatrix); - std::array<float,15> cov; + decltype(edm4hep::TrackState::covMatrix) cov; icov = 0 ; diff --git a/Service/TrackSystemSvc/src/MarlinKalTestTrack.cc b/Service/TrackSystemSvc/src/MarlinKalTestTrack.cc index 7979379267aa921069505248c3a65aa6ebaffd44..ffedd64edb8558338e69a028ddcdcbf8021d42e1 100644 --- a/Service/TrackSystemSvc/src/MarlinKalTestTrack.cc +++ b/Service/TrackSystemSvc/src/MarlinKalTestTrack.cc @@ -376,7 +376,7 @@ namespace MarlinTrk { bfield_z ); TMatrixD cov(5,5) ; - std::array<float, 15> covLCIO = ts.covMatrix; + auto covLCIO = ts.covMatrix; cov( 0 , 0 ) = covLCIO[ 0] ; // d0, d0 cov( 0 , 1 ) = - covLCIO[ 1] ; // d0, phi @@ -1599,7 +1599,7 @@ namespace MarlinTrk { Double_t cpa = helix.GetKappa(); double alpha = omega / cpa ; // conversion factor for omega (1/R) to kappa (1/Pt) - std::array<float, 15> covLCIO; + decltype(ts.covMatrix) covLCIO; covLCIO[ 0] = covK( 0 , 0 ) ; // d0, d0 covLCIO[ 1] = - covK( 1 , 0 ) ; // phi0, d0 diff --git a/Service/TrackSystemSvc/src/MarlinTrkUtils.cc b/Service/TrackSystemSvc/src/MarlinTrkUtils.cc index 3c2dead214e4fda49a0730fd13b8ee2843e19178..ffa0f7f9395accd360f1efce633308447873d258 100644 --- a/Service/TrackSystemSvc/src/MarlinTrkUtils.cc +++ b/Service/TrackSystemSvc/src/MarlinTrkUtils.cc @@ -94,7 +94,7 @@ namespace MarlinTrk { int createTrackStateAtCaloFace( IMarlinTrack* marlinTrk, edm4hep::TrackState* track, edm4hep::TrackerHit trkhit, bool tanL_is_positive ); - int createFinalisedLCIOTrack( IMarlinTrack* marlinTrk, std::vector<edm4hep::TrackerHit>& hit_list, edm4hep::MutableTrack* track, bool fit_backwards, const std::array<float,15>& initial_cov_for_prefit, float bfield_z, double maxChi2Increment){ + int createFinalisedLCIOTrack( IMarlinTrack* marlinTrk, std::vector<edm4hep::TrackerHit>& hit_list, edm4hep::MutableTrack* track, bool fit_backwards, const decltype(edm4hep::TrackState::covMatrix)& initial_cov_for_prefit, float bfield_z, double maxChi2Increment){ /////////////////////////////////////////////////////// // check inputs diff --git a/Utilities/KiTrack/src/Tools/Fitter.cc b/Utilities/KiTrack/src/Tools/Fitter.cc index b7a0c156d760041719a7ddf0b095fa96a6265057..37651b9007a221fdfae0ccb3e50f8988c72533b6 100644 --- a/Utilities/KiTrack/src/Tools/Fitter.cc +++ b/Utilities/KiTrack/src/Tools/Fitter.cc @@ -166,7 +166,7 @@ void Fitter::fitVXD(){ /**********************************************************************************************/ /* Create a TrackStateImpl from the helix values and use it to initalise the fit */ /**********************************************************************************************/ - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; @@ -349,7 +349,7 @@ void Fitter::fit(){ /**********************************************************************************************/ /* Create a TrackStateImpl from the helix values and use it to initalise the fit */ /**********************************************************************************************/ - std::array<float,15> covMatrix; + decltype(edm4hep::TrackState::covMatrix) covMatrix; for (unsigned icov = 0; icov<covMatrix.size(); ++icov) { covMatrix[icov] = 0; }