diff --git a/Tracking/Acts/ActsObjectDecoration/src/PixelClusterSiHitDecoratorAlg.cxx b/Tracking/Acts/ActsObjectDecoration/src/PixelClusterSiHitDecoratorAlg.cxx
index 41231d48a3f2e76b441a5df7cbe9fe91ee3a866a..edcce4804b1048017cefe56f54667764129a1295 100644
--- a/Tracking/Acts/ActsObjectDecoration/src/PixelClusterSiHitDecoratorAlg.cxx
+++ b/Tracking/Acts/ActsObjectDecoration/src/PixelClusterSiHitDecoratorAlg.cxx
@@ -164,22 +164,22 @@ namespace ActsTrk {
 	const xAOD::TrackMeasurementValidation* measurement = measurements->at(cluster->index());
 	ATH_CHECK(measurement->identifier() == cluster->identifier() );
 
-	auto [word, depositsBarcode, depositsEnergy] = ActsTrk::detail::getSDOInformation(cluster->rdoList(), *sdos); // FIXME barcode-based
-	std::vector<SiHit> compatibleSiHits = findAllHitsCompatibleWithCluster(*cluster, *element, siHitsWithCurrentHash, depositsBarcode);
+	auto [word, depositsUniqueID, depositsEnergy] = ActsTrk::detail::getSDOInformation(cluster->rdoList(), *sdos);
+	std::vector<SiHit> compatibleSiHits = findAllHitsCompatibleWithCluster(*cluster, *element, siHitsWithCurrentHash, depositsUniqueID);
 
-	auto [energyDeposit, meanTime, barcode, pdgid,
+	auto [energyDeposit, meanTime, uniqueID, pdgid,
 	      startPosX, startPosY, startPosZ,
-	      endPosX, endPosY, endPosZ] = ActsTrk::detail::getSiHitInformation(*element, compatibleSiHits); // FIXME barcode-based
+	      endPosX, endPosY, endPosZ] = ActsTrk::detail::getSiHitInformation(*element, compatibleSiHits);
 	
 	// attach SDO decorations
 	decor_sdo_words(*measurement) = std::move(word);
-	decor_sdo_depositsBarcode(*measurement) = std::move(depositsBarcode);
+	decor_sdo_depositsBarcode(*measurement) = std::move(depositsUniqueID);
 	decor_sdo_depositsEnergy(*measurement) = std::move(depositsEnergy);
 
 	// attach SiHit decorations
 	decor_sihit_energyDeposit(*measurement) = std::move(energyDeposit);
 	decor_sihit_meanTime(*measurement) = std::move(meanTime);
-	decor_sihit_barcode(*measurement) = std::move(barcode);
+	decor_sihit_barcode(*measurement) = std::move(uniqueID);
 	decor_sihit_pdgid(*measurement) = std::move(pdgid);
 	
 	decor_sihit_startPosX(*measurement) = std::move(startPosX);
@@ -223,9 +223,9 @@ namespace ActsTrk {
 	} // list on rdos
 	
       } else { // not m_useSiHitsGeometryMatching
-	auto siHitBarcode = HepMC::barcode(siHit->particleLink()); // FIXME barcode-based
-	for ( const std::vector<int>& barcodeSDOColl : sdoTracks ) {
-	  if (std::find(barcodeSDOColl.begin(), barcodeSDOColl.end(), siHitBarcode) == barcodeSDOColl.end()) continue; // FIXME barcode-based
+	auto siHitUniqueID = HepMC::uniqueID(siHit->particleLink());
+	for ( const std::vector<int>& uniqueIDSDOColl : sdoTracks ) {
+	  if (std::find(uniqueIDSDOColl.begin(), uniqueIDSDOColl.end(), siHitUniqueID) == uniqueIDSDOColl.end()) continue;
 	  multiMatchingHits.push_back(siHit);	
 	  break;
 	}	
@@ -298,7 +298,7 @@ namespace ActsTrk {
 				  highestXPos->localEndPosition(),
 				  energyDep,
 				  time,
-				  HepMC::barcode((*siHitIter)->particleLink()), // FIXME barcode-based
+				  (*siHitIter)->particleLink(),
 				  0, // 0 for pixel 1 for strip
 				  (*siHitIter)->getBarrelEndcap(),
 				  (*siHitIter)->getLayerDisk(),
diff --git a/Tracking/Acts/ActsObjectDecoration/src/StripClusterSiHitDecoratorAlg.cxx b/Tracking/Acts/ActsObjectDecoration/src/StripClusterSiHitDecoratorAlg.cxx
index b8cc81ab871a5ccb49b2791f4b432a29853292a0..ac6b66424662d009839ff5c3c3033968b3824448 100644
--- a/Tracking/Acts/ActsObjectDecoration/src/StripClusterSiHitDecoratorAlg.cxx
+++ b/Tracking/Acts/ActsObjectDecoration/src/StripClusterSiHitDecoratorAlg.cxx
@@ -164,22 +164,22 @@ namespace ActsTrk {
 	const xAOD::TrackMeasurementValidation* measurement = measurements->at(cluster->index());
 	ATH_CHECK(measurement->identifier() == cluster->identifier() );
 
-	auto [word, depositsBarcode, depositsEnergy] = ActsTrk::detail::getSDOInformation(cluster->rdoList(), *sdos); // FIXME barcode-based
+	auto [word, depositsUniqueID, depositsEnergy] = ActsTrk::detail::getSDOInformation(cluster->rdoList(), *sdos);
 	std::vector<SiHit> compatibleSiHits = findAllHitsCompatibleWithCluster(*cluster, *element, siHitsWithCurrentHash);
 
-	auto [energyDeposit, meanTime, barcode, pdgid,
+	auto [energyDeposit, meanTime, uniqueID, pdgid,
 	      startPosX, startPosY, startPosZ,
-	      endPosX, endPosY, endPosZ] = ActsTrk::detail::getSiHitInformation(*element, compatibleSiHits); // FIXME barcode-based
+	      endPosX, endPosY, endPosZ] = ActsTrk::detail::getSiHitInformation(*element, compatibleSiHits);
 	
 	// attach SDO decorations
 	decor_sdo_words(*measurement) = std::move(word);
-	decor_sdo_depositsBarcode(*measurement) = std::move(depositsBarcode);
+	decor_sdo_depositsBarcode(*measurement) = std::move(depositsUniqueID);
 	decor_sdo_depositsEnergy(*measurement) = std::move(depositsEnergy);
 
 	// attach SiHit decorations
 	decor_sihit_energyDeposit(*measurement) = std::move(energyDeposit);
 	decor_sihit_meanTime(*measurement) = std::move(meanTime);
-	decor_sihit_barcode(*measurement) = std::move(barcode);
+	decor_sihit_barcode(*measurement) = std::move(uniqueID);
 	decor_sihit_pdgid(*measurement) = std::move(pdgid);
 	
 	decor_sihit_startPosX(*measurement) = std::move(startPosX);
@@ -285,7 +285,7 @@ namespace ActsTrk {
 				  highestXPos->localEndPosition(),
 				  energyDep,
 				  time,
-				  HepMC::barcode((*siHitIter)->particleLink()), // FIXME barcode-based
+				  (*siHitIter)->particleLink(),
 				  1, // 0 for pixel 1 for strip
 				  (*siHitIter)->getBarrelEndcap(),
 				  (*siHitIter)->getLayerDisk(),
diff --git a/Tracking/Acts/ActsObjectDecoration/src/detail/Utilities.cxx b/Tracking/Acts/ActsObjectDecoration/src/detail/Utilities.cxx
index c48ca71acf86c6a481bc6d7274fbe5da0b51a370..f7e9a54c23167a8092659edbdd46996604f23a60 100644
--- a/Tracking/Acts/ActsObjectDecoration/src/detail/Utilities.cxx
+++ b/Tracking/Acts/ActsObjectDecoration/src/detail/Utilities.cxx
@@ -14,7 +14,7 @@ namespace ActsTrk::detail {
 		     const InDetSimDataCollection& sdoCollection )
   {
     std::vector<int> sdo_word {};
-    std::vector< std::vector< int > > sdo_depositsBarcode {};
+    std::vector< std::vector< int > > sdo_depositsUniqueID {};
     std::vector< std::vector< float > > sdo_depositsEnergy {};
 
     for (const Identifier hitIdentifier : rdoList) {
@@ -23,22 +23,22 @@ namespace ActsTrk::detail {
 
       sdo_word.push_back( pos->second.word() ) ;
 
-      std::vector<int> sdoDepBC(pos->second.getdeposits().size(), HepMC::INVALID_PARTICLE_ID);
+      std::vector<int> sdoDepUID(pos->second.getdeposits().size(), HepMC::INVALID_PARTICLE_ID);
       std::vector<float> sdoDepEnergy(pos->second.getdeposits().size());
 
       unsigned int nDepos {0};
       for (const auto& deposit: pos->second.getdeposits()) {
-	if (deposit.first) sdoDepBC[nDepos] = HepMC::barcode(deposit.first); // FIXME barcode-based
+	if (deposit.first) sdoDepUID[nDepos] = HepMC::uniqueID(deposit.first);
 	sdoDepEnergy[nDepos] = deposit.second;
 	++nDepos;
       }
 
-      sdo_depositsBarcode.push_back( std::move(sdoDepBC) );
+      sdo_depositsUniqueID.push_back( std::move(sdoDepUID) );
       sdo_depositsEnergy.push_back( std::move(sdoDepEnergy) );
     }
     
     return std::make_tuple(std::move(sdo_word),
-                           std::move(sdo_depositsBarcode),
+                           std::move(sdo_depositsUniqueID),
                            std::move(sdo_depositsEnergy));
   }
   
@@ -61,7 +61,7 @@ namespace ActsTrk::detail {
     
     std::vector<float> sihit_energyDeposit(numHits, 0);
     std::vector<float> sihit_meanTime(numHits, 0);
-    std::vector<int>   sihit_barcode(numHits, 0);
+    std::vector<int>   sihit_uniqueID(numHits, 0);
     std::vector<int>   sihit_pdgid(numHits, 0);
 
     std::vector<float> sihit_startPosX(numHits, 0);
@@ -78,7 +78,7 @@ namespace ActsTrk::detail {
       sihit_meanTime[hitNumber] =  sihit.meanTime() ;
 
       const HepMcParticleLink& HMPL = sihit.particleLink();
-      sihit_barcode[hitNumber] = HepMC::barcode(HMPL); // FIXME barcode-based
+      sihit_uniqueID[hitNumber] = HepMC::uniqueID(HMPL);
       if( HMPL.isValid() ){
         sihit_pdgid[hitNumber] = HMPL->pdg_id();
       }
@@ -99,7 +99,7 @@ namespace ActsTrk::detail {
       ++hitNumber;
     }
 
-    return std::make_tuple(std::move(sihit_energyDeposit), std::move(sihit_meanTime), std::move(sihit_barcode), std::move(sihit_pdgid),
+    return std::make_tuple(std::move(sihit_energyDeposit), std::move(sihit_meanTime), std::move(sihit_uniqueID), std::move(sihit_pdgid),
                            std::move(sihit_startPosX), std::move(sihit_startPosY), std::move(sihit_startPosZ),
                            std::move(sihit_endPosX), std::move(sihit_endPosY), std::move(sihit_endPosZ));
   }