diff --git a/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePointCollection_p0.h b/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePointCollection_p0.h
index a8ce9a2c0d9ee6b6c37020d302b505602646b4b0..56f1b8574a1f08458ab37132687093b79b70ad5b 100644
--- a/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePointCollection_p0.h
+++ b/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePointCollection_p0.h
@@ -13,13 +13,17 @@ class FaserSCT_SpacePointCollection_p0 {
   friend class FaserSCT_SpacePointClusterCnv_p0;
 
   unsigned int m_idHash;
-  unsigned int m_id;
+  unsigned long long m_id;
   unsigned int m_begin;
   unsigned int m_end;
   unsigned short m_size;
 };
 
 inline
-FaserSCT_SpacePointCollection_p0::FaserSCT_SpacePointCollection_p0() : m_idHash(0) { }
+FaserSCT_SpacePointCollection_p0::FaserSCT_SpacePointCollection_p0() : m_idHash(0),
+m_id(0),
+m_begin(0),
+m_end(0),
+m_size(0){ }
 
 #endif  // SPACEPOINTCOLLECTION_P0_H
diff --git a/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePoint_p0.h b/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePoint_p0.h
index 588ddbca90c768bb964516958d403121fd467c8c..4e3a4e0c14dfc4757a424cb4a6b6976c11f40a2e 100644
--- a/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePoint_p0.h
+++ b/Tracker/TrackerEventCnv/TrackerEventTPCnv/TrackerEventTPCnv/FaserSCT_SpacePoint_p0.h
@@ -15,8 +15,8 @@ class FaserSCT_SpacePoint_p0 {
  private:
   unsigned int m_idHash0;
   unsigned int m_idHash1;
-  unsigned long long int m_id0;
-  unsigned long long int m_id1;
+  unsigned long long m_id0;
+  unsigned long long m_id1;
 
   float m_localpos_x;
   float m_localpos_y;
diff --git a/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointCnv_p0.cxx b/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointCnv_p0.cxx
index 19c30140f2fe0d16e5611c09a32f3173c110029c..b6cbc9da2508bd734634af3702165b262885ceff 100644
--- a/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointCnv_p0.cxx
+++ b/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointCnv_p0.cxx
@@ -55,7 +55,7 @@ FaserSCT_SpacePointCnv_p0::persToTrans(const FaserSCT_SpacePoint_p0* persObj, Tr
   } else {
     log<<MSG::DEBUG<<"SCT Cluster Container found" <<endmsg;
   }
-  const Tracker::FaserSCT_ClusterCollection *ptr = h_sctClusCont->indexFindPtr(persObj->m_idHash0);
+  const Tracker::FaserSCT_ClusterCollection *ptr = h_sctClusCont->indexFindPtr(IdentifierHash(persObj->m_idHash0));
   // if we find PRD, then recreate link
   if (ptr!=nullptr) {
     //loop though collection to find matching PRD.
@@ -67,7 +67,7 @@ FaserSCT_SpacePointCnv_p0::persToTrans(const FaserSCT_SpacePoint_p0* persObj, Tr
     }
   }
 
-  const Tracker::FaserSCT_ClusterCollection *ptr1 = h_sctClusCont->indexFindPtr(persObj->m_idHash1);
+  const Tracker::FaserSCT_ClusterCollection *ptr1 = h_sctClusCont->indexFindPtr(IdentifierHash(persObj->m_idHash1));
   // if we find PRD, then recreate link
   if (ptr1!=nullptr) {
     //loop though collection to find matching PRD.
diff --git a/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointContainerCnv_p0.cxx b/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointContainerCnv_p0.cxx
index 10866dd79e39ca79333d318d93ae4fd285cb8142..80fc411dcd1469d3af8a1c7bc5c5f781ead630e3 100644
--- a/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointContainerCnv_p0.cxx
+++ b/Tracker/TrackerEventCnv/TrackerEventTPCnv/src/FaserSCT_SpacePointContainerCnv_p0.cxx
@@ -17,11 +17,14 @@ void FaserSCT_SpacePointContainerCnv_p0::persToTrans(const FaserSCT_SpacePointCo
   FaserSCT_SpacePointCnv_p0 chanCnv;
   unsigned int collBegin(0);
 
+  log<<MSG::VERBOSE<<" create Spacepoint container with "<<persObj->m_spacepoint_collections.size()<<" collections"<<endmsg;
+
   for (unsigned int icoll = 0; icoll < persObj->m_spacepoint_collections.size(); ++icoll) {
     const FaserSCT_SpacePointCollection_p0& pcoll = persObj->m_spacepoint_collections[icoll];
     IdentifierHash collIDHash(IdentifierHash(pcoll.m_idHash));
     coll = new FaserSCT_SpacePointCollection(collIDHash);
     coll->setIdentifier(Identifier(pcoll.m_id));
+    log<<MSG::VERBOSE<<" create Spacepoint collection with identifier "<<pcoll.m_id<<" , and hash "<<pcoll.m_idHash<<" , and size ="<<pcoll.m_end - pcoll.m_begin<<endmsg;
     unsigned int nchans           = pcoll.m_end - pcoll.m_begin;
     coll->resize(nchans);
     for (unsigned int ichan = 0; ichan < nchans; ++ ichan) {
@@ -69,6 +72,7 @@ void FaserSCT_SpacePointContainerCnv_p0::transToPers(const FaserSCT_SpacePointCo
     pcollection.m_size = collection.size();
     pcollection.m_idHash = (unsigned int)collection.identifyHash();
     pcollection.m_id = collection.identify().get_compact();
+    log<<MSG::VERBOSE<<"Trans to Pers:  create Spacepoint collection with identifier "<<collection.identify().get_compact()<<" , and hash "<<collection.identifyHash()<<" , and size ="<<collection.size()<<endmsg;
     //lastIdHash = collection.identifyHash();
 
     spId = nextSpId;
@@ -89,7 +93,7 @@ void FaserSCT_SpacePointContainerCnv_p0::transToPers(const FaserSCT_SpacePointCo
 //================================================================
 FaserSCT_SpacePointContainer* FaserSCT_SpacePointContainerCnv_p0::createTransient(const FaserSCT_SpacePointContainer_p0* persObj, MsgStream& log) {
   log << MSG::DEBUG << "FaserSCT_SpacePointContainerCnv_p3::createTransient called " << endmsg;
-  std::unique_ptr<FaserSCT_SpacePointContainer> trans(std::make_unique<FaserSCT_SpacePointContainer>(1000));
+  std::unique_ptr<FaserSCT_SpacePointContainer> trans(std::make_unique<FaserSCT_SpacePointContainer>(persObj->m_spacepoint_collections.size()));
   persToTrans(persObj, trans.get(), log);
   return(trans.release());
 }
diff --git a/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.cxx b/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.cxx
index 8fc7fed94789b55930656ee6ec16e6fd10213329..27023a94b43fc8a3388b09e36aa7e465ddd417ea 100755
--- a/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.cxx
+++ b/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.cxx
@@ -318,17 +318,19 @@ namespace Tracker
     }
     // save all the cluster information
     if(m_saveallcluster){
-      msg(MSG::INFO) << "reading the cluster container" << endmsg;
+      ATH_MSG_DEBUG( "SCT cluster container found: " << sct_clcontainer->size() << " collections" );
       Tracker::FaserSCT_ClusterContainer::const_iterator clusit = sct_clcontainer->begin();
-       Tracker::FaserSCT_ClusterContainer::const_iterator clusend = sct_clcontainer->end();
-       for (; clusit != clusend; ++clusit){
-	 const Tracker::FaserSCT_ClusterCollection *colNext=&(**clusit);
-	 FaserSCT_ClusterCollection::const_iterator clusters {colNext->begin()}    ;
-	 FaserSCT_ClusterCollection::const_iterator clustersEnd {colNext->end()    };
-	 for (; clusters != clustersEnd; ++clusters)
-	 {
-	   const Tracker::FaserSCT_Cluster* clus=&(**clusters);
-	   m_cluster_all_global_x.push_back(clus->globalPosition().x());
+      Tracker::FaserSCT_ClusterContainer::const_iterator clusend = sct_clcontainer->end();
+      for (; clusit != clusend; ++clusit){
+	++m_numberOfClusterCol;
+	const Tracker::FaserSCT_ClusterCollection *colNext=&(**clusit);
+	FaserSCT_ClusterCollection::const_iterator clusters {colNext->begin()}    ;
+	FaserSCT_ClusterCollection::const_iterator clustersEnd {colNext->end()    };
+	for (; clusters != clustersEnd; ++clusters)
+	{
+	  ++m_numberOfCluster;
+	  const Tracker::FaserSCT_Cluster* clus=&(**clusters);
+	  m_cluster_all_global_x.push_back(clus->globalPosition().x());
 	   m_cluster_all_global_y.push_back(clus->globalPosition().y());
 	   m_cluster_all_global_z.push_back(clus->globalPosition().z());
 	   m_cluster_all_local_x.push_back(clus->localPosition().x());
@@ -364,11 +366,13 @@ namespace Tracker
       FaserSCT_SpacePointContainer::const_iterator itend = sct_spcontainer->end();
 
       for (; it != itend; ++it){
+	++m_numberOfSPCol;
 	const FaserSCT_SpacePointCollection *colNext=&(**it);
 	FaserSCT_SpacePointCollection::const_iterator sp_begin= colNext->begin();
 	FaserSCT_SpacePointCollection::const_iterator sp_end= colNext->end();
 	Identifier elementID = colNext->identify();
 	for (; sp_begin != sp_end; ++sp_begin){
+	  ++m_numberOfSP;
 	  const Tracker::FaserSCT_SpacePoint* sp=&(**sp_begin);
 	  m_sp_all_x.push_back(sp->globalPosition().x());
 	  m_sp_all_y.push_back(sp->globalPosition().y());
@@ -391,10 +395,8 @@ namespace Tracker
       }
     }
 
-
     // register the IdentifiableContainer into StoreGate
 
-
     ATH_MSG_DEBUG( "SCT spacepoint container found: " << sct_spcontainer->size() << " collections" );
     FaserSCT_SpacePointContainer::const_iterator it = sct_spcontainer->begin();
     FaserSCT_SpacePointContainer::const_iterator itend = sct_spcontainer->end();
@@ -412,6 +414,8 @@ namespace Tracker
       // Create SpacePointCollection
       // IdentifierHash idHash = colNext->identifyHash();
       Identifier elementID = colNext->identify();
+
+      ATH_MSG_VERBOSE("reading SpacePoints collection "<<elementID.get_compact()<<" , and hash = "<<colNext->identifyHash() );
       int istation = m_idHelper->station(elementID);
       int ilayer = m_idHelper->layer(elementID);
       int ietamodule = m_idHelper->eta_module(elementID);
@@ -423,7 +427,7 @@ namespace Tracker
       m_hist_layer->Fill(ilayer);
       size_t size = colNext->size();
       if (size == 0){
-	ATH_MSG_VERBOSE( "TrackerSPFit algorithm found no space points" );
+	ATH_MSG_DEBUG( "TrackerSPFit algorithm found no space points" );
       } else {
 	//In a MT environment the cache maybe filled by another thread in which case this will delete the duplicate
 	FaserSCT_SpacePointCollection::const_iterator sp_begin= colNext->begin();
@@ -438,11 +442,12 @@ namespace Tracker
 	  m_hist_y->Fill(gloPos.y());
 	  m_hist_z->Fill(gloPos.z());
 	  struct SP_Seed tmp{gloPos,sp->globCovariance(),ilayer,imodule};
-	  if(istation<=1)
+	ATH_MSG_DEBUG( "TrackerSPFit algorithm found no space points" );
+	  if(istation==1)
 	    sp_sta0.push_back(tmp);
-	  if(istation==2)
+	  else if(istation==2)
 	    sp_sta1.push_back(tmp);
-	  if(istation==3)
+	  else
 	    sp_sta2.push_back(tmp);
 
 	  if ( ((istation-1)*3+ilayer) == 0 ) m_hist_x_y_plane0->Fill(gloPos.x(),gloPos.y());
@@ -578,6 +583,8 @@ namespace Tracker
 
     if(ifTrack)
       m_tree->Fill();
+    else if(m_saveallcluster||m_saveallsp)
+      m_tree->Fill();
     return StatusCode::SUCCESS;
   }
 
@@ -586,8 +593,10 @@ namespace Tracker
   {
     ATH_MSG_INFO( "TrackerSPFit::finalize()" );
     ATH_MSG_INFO( m_numberOfEvents << " events processed" );
-    ATH_MSG_INFO( m_numberOfSCT << " sct collections processed" );
-    ATH_MSG_INFO( m_numberOfSP<< " sct SP collections processed" );
+    ATH_MSG_INFO( m_numberOfClusterCol<< " sct Cluster collections processed" );
+    ATH_MSG_INFO( m_numberOfCluster<< " sct Cluster processed" );
+    ATH_MSG_INFO( m_numberOfSPCol<< " sct SP collections processed" );
+    ATH_MSG_INFO( m_numberOfSP<< " sct SP processed" );
     return StatusCode::SUCCESS;
   }
 
diff --git a/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.h b/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.h
index b0a6eeefab2657668648aba478cc787a146c2a7d..df503c840131dc742af5c95b608af0640fc0e0a1 100755
--- a/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.h
+++ b/Tracker/TrackerRecAlgs/TrackerSPFit/src/TrackerSPFit.h
@@ -117,6 +117,9 @@ namespace Tracker
       mutable std::atomic<int> m_numberOfSCT{0};
       mutable std::atomic<int> m_numberOfTrack{0};
       mutable std::atomic<int> m_numberOfSP{0};
+      mutable std::atomic<int> m_numberOfCluster{0};
+      mutable std::atomic<int> m_numberOfSPCol{0};
+      mutable std::atomic<int> m_numberOfClusterCol{0};
       //@}
       TH1* m_hist_x;
       TH1* m_hist_y;