diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp index 88d71d3c05c70a4e57d64454cc8f2ed7847d44e3..a3fde79c5e4ffb9894c9d9d70450152c44155dbd 100644 --- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp +++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp @@ -660,7 +660,7 @@ int SiliconTrackingAlg::InitialiseVTX() { for (int ielem=0; ielem<nelem; ++ielem) { //for(auto hit : *hitVTXCol){ - edm4hep::TrackerHit hit = hitVTXCol->at(ielem); + auto hit = hitVTXCol->at(ielem); //gear::Vector3D U(1.0,hit->getU()[1],hit->getU()[0],gear::Vector3D::spherical); //gear::Vector3D V(1.0,hit->getV()[1],hit->getV()[0],gear::Vector3D::spherical); gear::Vector3D U(1.0,hit.getCovMatrix()[1],hit.getCovMatrix()[0],gear::Vector3D::spherical); diff --git a/Reconstruction/SiliconTracking/src/SpacePointBuilderAlg.cpp b/Reconstruction/SiliconTracking/src/SpacePointBuilderAlg.cpp index 956b425122cb65927647ffa885bb3e3524b7e96e..fdd5118dab14d0c693f674335ee01f415bb853d0 100644 --- a/Reconstruction/SiliconTracking/src/SpacePointBuilderAlg.cpp +++ b/Reconstruction/SiliconTracking/src/SpacePointBuilderAlg.cpp @@ -108,10 +108,17 @@ StatusCode SpacePointBuilderAlg::execute(){ unsigned nHits = hitCol->size(); debug() << "Number of hits: " << nHits << endmsg; + + if (!nHits) { + return sc; + } + + auto tmpHit0 = hitCol->at(0); //store hits in map according to their CellID0 - std::map<long long, std::vector<edm4hep::TrackerHit> > map_cellID0_hits; - std::map<long long, std::vector<edm4hep::TrackerHit> >::iterator it; + + std::map<long long, std::vector<decltype(tmpHit0)> > map_cellID0_hits; + decltype(map_cellID0_hits)::iterator it; for(auto trkHit : *hitCol){ debug() << "Add hit with CellID0 = " << trkHit.getCellID() << " " << getCellID0Info( trkHit.getCellID() ) << endmsg; map_cellID0_hits[ trkHit.getCellID() ].push_back( trkHit ); @@ -121,14 +128,14 @@ StatusCode SpacePointBuilderAlg::execute(){ // now loop over all CellID0s for( it= map_cellID0_hits.begin(); it!= map_cellID0_hits.end(); it++ ){ rawStripHits += it->second.size(); - std::vector<edm4hep::TrackerHit>& hitsFront = it->second; + auto hitsFront = it->second; unsigned long long cellID0 = it->first; //get the CellID0s at the back of this sensor std::vector<int> cellID0sBack = getCellID0sAtBack( cellID0 ); for( unsigned i=0; i< cellID0sBack.size(); i++ ){ int cellID0Back = cellID0sBack[i]; - std::vector<edm4hep::TrackerHit>& hitsBack = map_cellID0_hits[ cellID0Back ]; + auto hitsBack = map_cellID0_hits[ cellID0Back ]; debug() << "strips: CellID0 " << cellID0 << " " << getCellID0Info( cellID0 ) << "(" << hitsFront.size() << " hits) <---> CellID0 " << cellID0Back << getCellID0Info( cellID0Back ) << "(" << hitsBack.size() << " hits)" << endmsg @@ -137,9 +144,9 @@ StatusCode SpacePointBuilderAlg::execute(){ possibleSpacePoints += hitsFront.size() * hitsBack.size(); // Now iterate over all combinations and store those that make sense for( unsigned ifront=0; ifront<hitsFront.size(); ifront++ ){ - edm4hep::TrackerHit& hitFront = hitsFront[ifront]; + auto hitFront = hitsFront[ifront]; for( unsigned j=0; j<hitsBack.size(); j++ ){ - edm4hep::TrackerHit& hitBack = hitsBack[j]; + auto hitBack = hitsBack[j]; std::vector<edm4hep::ConstSimTrackerHit> simHitsFront; std::vector<edm4hep::ConstSimTrackerHit> simHitsBack; diff --git a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp index 2efe0f52c1fae8cbb0f154b88844469b568d4540..3d049e6ae8e318eef46cff80e71fc1e49ff1abe6 100644 --- a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp +++ b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.cpp @@ -96,7 +96,7 @@ StatusCode TrackSubsetAlg::finalize(){ } StatusCode TrackSubsetAlg::execute(){ - std::vector<edm4hep::Track> tracks; + std::vector<edm4hep::ConstTrack> tracks; auto trkCol = _outColHdl.createAndPut(); /**********************************************************************************************/ @@ -151,9 +151,9 @@ StatusCode TrackSubsetAlg::execute(){ debug() << "The tracks and their qualities (and their hits ): " << endmsg; - std::vector<edm4hep::Track*> tracks_p; + std::vector<edm4hep::ConstTrack*> tracks_p; for( unsigned i=0; i < tracks.size(); i++ ){ - edm4hep::Track* track = &tracks[i]; + auto* track = &tracks[i]; tracks_p.push_back(track); double qi = trackQI( track ); debug() << "Track " << track->id() << " address " << track << "\t" << qi << "( "; @@ -174,14 +174,14 @@ StatusCode TrackSubsetAlg::execute(){ TrackCompatibility comp; - SubsetHopfieldNN<edm4hep::Track*> subset; + SubsetHopfieldNN<edm4hep::ConstTrack*> subset; //SubsetSimple<edm4hep::Track* > subset; subset.add( tracks_p ); subset.setOmega( _omega ); subset.calculateBestSet( comp, trackQI ); - std::vector<edm4hep::Track*> accepted = subset.getAccepted(); - std::vector<edm4hep::Track*> rejected = subset.getRejected(); + auto accepted = subset.getAccepted(); + auto rejected = subset.getRejected(); debug() << "\tThe accepted tracks:" << endmsg; for( unsigned i=0; i < accepted.size(); i++ ){ @@ -203,7 +203,7 @@ StatusCode TrackSubsetAlg::execute(){ for( unsigned i=0; i < accepted.size(); i++ ){ edm4hep::Track trackImpl; - edm4hep::Track* track = accepted[i]; + auto track = accepted[i]; std::vector<edm4hep::ConstTrackerHit> trackerHitsObj; std::vector<edm4hep::ConstTrackerHit> trackerHits; diff --git a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h index c6e59d81799a82a49936153a2d15d4d5778995b6..e6f710ddf096c4a1fda91d546bb222e3b850a00b 100644 --- a/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h +++ b/Reconstruction/SiliconTracking/src/TrackSubsetAlg.h @@ -5,6 +5,7 @@ #include "GaudiAlg/GaudiAlgorithm.h" #include "edm4hep/TrackCollection.h" +#include "edm4hep/TrackerHitCollection.h" //#include "edm4hep/Track.h" #include "TrackSystemSvc/IMarlinTrkSystem.h" @@ -83,7 +84,7 @@ class TrackSubsetAlg : public GaudiAlgorithm { /** A functor to return whether two tracks are compatible: The criterion is if the share a TrackerHit or more */ class TrackCompatibility{ public: - inline bool operator()( edm4hep::Track* trackA, edm4hep::Track* trackB ){ + inline bool operator()( edm4hep::ConstTrack* trackA, edm4hep::ConstTrack* trackB ){ unsigned nHitsA = trackA->trackerHits_size(); unsigned nHitsB = trackB->trackerHits_size(); for( unsigned i=0; i < nHitsA; i++){ @@ -103,7 +104,7 @@ class TrackQI{ /** @param trkSystem a pointer to an IMarlinTrkSystem, needed for fitting of tracks */ TrackQI( MarlinTrk::IMarlinTrkSystem* trkSystem ): _trkSystem(trkSystem){} - inline double operator()( edm4hep::Track* track ){ + inline double operator()( edm4hep::ConstTrack* track ){ return ROOT::Math::chisquared_cdf_c( track->getChi2() , track->getNdf() ); } diff --git a/Utilities/KiTrack/include/ILDImpl/FTDHit01.h b/Utilities/KiTrack/include/ILDImpl/FTDHit01.h index 6750231efe04a04032f1e90a987f689ff7ed1771..66b975e5d27e5a0b423ad7c4b8f5d921efe0438a 100644 --- a/Utilities/KiTrack/include/ILDImpl/FTDHit01.h +++ b/Utilities/KiTrack/include/ILDImpl/FTDHit01.h @@ -14,7 +14,7 @@ namespace KiTrackMarlin{ class FTDHit01 : public IFTDHit{ public: - FTDHit01( edm4hep::TrackerHit trackerHit , const SectorSystemFTD* const sectorSystemFTD ); + FTDHit01( edm4hep::ConstTrackerHit trackerHit , const SectorSystemFTD* const sectorSystemFTD ); }; } #endif diff --git a/Utilities/KiTrack/include/ILDImpl/IFTDHit.h b/Utilities/KiTrack/include/ILDImpl/IFTDHit.h index 33b817bf5bc5f0aaa73edb6188574977dbb757fe..cb497dfafabb9e99d954feb980f12893991fedc7 100644 --- a/Utilities/KiTrack/include/ILDImpl/IFTDHit.h +++ b/Utilities/KiTrack/include/ILDImpl/IFTDHit.h @@ -16,7 +16,7 @@ namespace KiTrackMarlin{ class IFTDHit : public IHit{ public: - edm4hep::TrackerHit* getTrackerHit() { return &_trackerHit; }; + edm4hep::ConstTrackerHit* getTrackerHit() { return &_trackerHit; }; int getSide() { return _side; } unsigned getModule() { return _module; } @@ -31,7 +31,7 @@ namespace KiTrackMarlin{ protected: - edm4hep::TrackerHit _trackerHit; + edm4hep::ConstTrackerHit _trackerHit; int _side; unsigned _layer; diff --git a/Utilities/KiTrack/src/ILDImpl/FTDHit01.cc b/Utilities/KiTrack/src/ILDImpl/FTDHit01.cc index a5eaab1ca29a184eb0ff8cc2e457ee7f03450b42..5d53538cac4f9c9d9c42ee666a99928ac4aaa9ee 100644 --- a/Utilities/KiTrack/src/ILDImpl/FTDHit01.cc +++ b/Utilities/KiTrack/src/ILDImpl/FTDHit01.cc @@ -6,7 +6,7 @@ using namespace KiTrackMarlin; -FTDHit01::FTDHit01( edm4hep::TrackerHit trackerHit , const SectorSystemFTD* const sectorSystemFTD ){ +FTDHit01::FTDHit01( edm4hep::ConstTrackerHit trackerHit , const SectorSystemFTD* const sectorSystemFTD ){ _sectorSystemFTD = sectorSystemFTD;