diff --git a/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx b/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
index c85c0c2a146683c2d73b2bdb56edeb51770c7b01..af765e1584b619a1bfe2767bb13f0702f695cf0e 100644
--- a/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
+++ b/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
@@ -1741,7 +1741,7 @@ Bool_t CbmDeviceHitBuilderTof::CalibRawDigis()
   }  // for( Int_t iDigInd = 0; iDigInd < nTofDigi; iDigInd++ )
 
   iNbTofDigi = fTofCalDigiVec->size();
-  //  fTofCalDigisColl->GetEntries();  // update because of added duplicted digis
+  //  fTofCalDigisColl->GetEntriesFast();  // update because of added duplicted digis
   LOG(debug) << "CbmTofHitBuilder: Sort " << fTofCalDigiVec->size() << " calibrated digis ";
   if (iNbTofDigi > 1) {
     //    fTofCalDigisColl->Sort(iNbTofDigi); // Time order again, in case modified by the calibration
@@ -2255,7 +2255,7 @@ Bool_t CbmDeviceHitBuilderTof::BuildHits()
                 fStorDigiInd[iSmType][iSm * iNbRpc + iRpc][iCh].clear();
               }  // for( Int_t iCh = 0; iCh < iNbCh; iCh++ )
               //LOG(debug2)<<"finished V-RPC"
-              //		  << Form(" %3d %3d %3d %d %f %fx",iSmType,iSm,iRpc,fTofHitsColl->GetEntries(),dLastPosX,dLastPosY);
+              //		  << Form(" %3d %3d %3d %d %f %fx",iSmType,iSm,iRpc,fTofHitsColl->GetEntriesFast(),dLastPosX,dLastPosY);
             }  // else of if( 1 == fDigiBdfPar->GetChanOrient( iSmType, iRpc ) )
           }    // if( 0 == iChType)
           else {
@@ -2980,7 +2980,7 @@ Bool_t CbmDeviceHitBuilderTof::SendAll() { return kTRUE; }
 
 Bool_t CbmDeviceHitBuilderTof::FillHistos()
 {
-  Int_t iNbTofHits = fTofHitsColl->GetEntries();
+  Int_t iNbTofHits = fTofHitsColl->GetEntriesFast();
   CbmTofHit* pHit;
   //gGeoManager->SetTopVolume( gGeoManager->FindVolumeFast("tof_v14a") );
   gGeoManager->CdTop();
@@ -3343,12 +3343,12 @@ Bool_t CbmDeviceHitBuilderTof::FillHistos()
       if (TMath::Abs(hitpos_local[1]) > fChannelInfo->GetSizey() * fPosYMaxScal) continue;
       /*
 	LOG(debug1)<<" TofDigiMatchColl entries:"
-                <<fTofDigiMatchColl->GetEntries()
+                <<fTofDigiMatchColl->GetEntriesFast()
                 ;
       */
-      if (iHitInd > fTofDigiMatchColl->GetEntries()) {
+      if (iHitInd > fTofDigiMatchColl->GetEntriesFast()) {
         LOG(error) << " Inconsistent DigiMatches for Hitind " << iHitInd
-                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntries();
+                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntriesFast();
       }
       CbmMatch* digiMatch = (CbmMatch*) fTofDigiMatchColl->At(iHitInd);
       /*
diff --git a/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx b/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx
index dacfe51a541a60e729912d9e94c8176db3463329..e1fba57a8fa68ebd1e3a4f075c940e6e50077fe5 100644
--- a/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx
+++ b/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx
@@ -609,7 +609,7 @@ void CbmAnaJpsiTask::FillRichRingNofHits() {
 }
 
 void CbmAnaJpsiTask::MCPairs() {
-  Int_t nMcTracks = fMcTracks->GetEntries();
+  Int_t nMcTracks = fMcTracks->GetEntriesFast();
   for (Int_t i = 0; i < nMcTracks; i++) {
     CbmMCTrack* mctrack = (CbmMCTrack*) fMcTracks->At(i);
     Bool_t isMcGammaElectron =
@@ -902,7 +902,7 @@ void CbmAnaJpsiTask::IsRecoTrackAccepted(CbmAnaJpsiCandidate* cand) {
 }
 
 void CbmAnaJpsiTask::SingleParticleAcceptance() {
-  Int_t nMcTracks = fMcTracks->GetEntries();
+  Int_t nMcTracks = fMcTracks->GetEntriesFast();
   for (Int_t i = 0; i < nMcTracks; i++) {
     CbmMCTrack* mctrack = (CbmMCTrack*) fMcTracks->At(i);
     if (CbmAnaJpsiUtils::IsMcSignalElectron(mctrack)) {
@@ -920,7 +920,7 @@ void CbmAnaJpsiTask::SingleParticleAcceptance() {
 }
 
 void CbmAnaJpsiTask::PairMcAndAcceptance() {
-  Int_t nMcTracks = fMcTracks->GetEntries();
+  Int_t nMcTracks = fMcTracks->GetEntriesFast();
   for (Int_t iP = 0; iP < nMcTracks; iP++) {
     CbmMCTrack* mctrackP       = (CbmMCTrack*) fMcTracks->At(iP);
     Bool_t isMcSignalElectronP = CbmAnaJpsiUtils::IsMcSignalElectron(mctrackP);
diff --git a/analysis/PWGDIL/dielectron/lmvm/CbmAnaDielectronTask.cxx b/analysis/PWGDIL/dielectron/lmvm/CbmAnaDielectronTask.cxx
index a52b54251602811cc5965ab01d5a943799ef4618..403b9a379912791a28d9e442d57ec7a3f6335a16 100644
--- a/analysis/PWGDIL/dielectron/lmvm/CbmAnaDielectronTask.cxx
+++ b/analysis/PWGDIL/dielectron/lmvm/CbmAnaDielectronTask.cxx
@@ -1286,7 +1286,7 @@ void CbmAnaDielectronTask::FillRichRingNofHits() {
 
 
 void CbmAnaDielectronTask::MCPairs() {
-  Int_t nMcTracks = fMCTracks->GetEntries();
+  Int_t nMcTracks = fMCTracks->GetEntriesFast();
   for (Int_t i = 0; i < nMcTracks; i++) {
     CbmMCTrack* mctrack = (CbmMCTrack*) fMCTracks->At(i);
     Int_t motherId      = mctrack->GetMotherId();
@@ -1400,7 +1400,7 @@ void CbmAnaDielectronTask::RichPmtXY() {
 }
 
 void CbmAnaDielectronTask::FillNofChargedParticlesPerEvent() {
-  Int_t nofMcTracks                 = fMCTracks->GetEntries();
+  Int_t nofMcTracks                 = fMCTracks->GetEntriesFast();
   Int_t nofChargedUrqmdParticles    = 0;
   Int_t nofChargedUrqmdParticlesAcc = 0;
   for (Int_t i = 0; i < nofMcTracks; i++) {
@@ -1435,7 +1435,7 @@ Bool_t CbmAnaDielectronTask::IsMcTrackAccepted(Int_t mcTrackInd) {
 }
 
 void CbmAnaDielectronTask::SingleParticleAcceptance() {
-  Int_t nMcTracks = fMCTracks->GetEntries();
+  Int_t nMcTracks = fMCTracks->GetEntriesFast();
   for (Int_t i = 0; i < nMcTracks; i++) {
     CbmMCTrack* mctrack = (CbmMCTrack*) fMCTracks->At(i);
     Int_t motherId      = mctrack->GetMotherId();
@@ -1472,7 +1472,7 @@ void CbmAnaDielectronTask::SingleParticleAcceptance() {
 }
 
 void CbmAnaDielectronTask::PairMcAndAcceptance() {
-  Int_t nMcTracks = fMCTracks->GetEntries();
+  Int_t nMcTracks = fMCTracks->GetEntriesFast();
   for (Int_t iP = 0; iP < nMcTracks; iP++) {
     CbmMCTrack* mctrackP = (CbmMCTrack*) fMCTracks->At(iP);
     //		Int_t motherIdP = mctrackP->GetMotherId();
@@ -1524,7 +1524,7 @@ void CbmAnaDielectronTask::PairMcAndAcceptance() {
 
 
 void CbmAnaDielectronTask::FillElPiMomHist() {
-  Int_t nMcTracks = fMCTracks->GetEntries();
+  Int_t nMcTracks = fMCTracks->GetEntriesFast();
   for (Int_t i = 0; i < nMcTracks; i++) {
     CbmMCTrack* mctrack = (CbmMCTrack*) fMCTracks->At(i);
     //       Int_t motherId = mctrack->GetMotherId();
@@ -2456,7 +2456,7 @@ void CbmAnaDielectronTask::IsElectron(Int_t globalTrackIndex,
   } else {
     // PID using MC information, a certain pi supression level can be set
     if (cand->fStsMcTrackId < 0
-        || cand->fStsMcTrackId >= fMCTracks->GetEntries()) {
+        || cand->fStsMcTrackId >= fMCTracks->GetEntriesFast()) {
       cand->fIsElectron = false;
     } else {
       CbmMCTrack* mcTrack = (CbmMCTrack*) fMCTracks->At(cand->fStsMcTrackId);
diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysis.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysis.cxx
index 633c2b5527a343ba17d1e501bc0abb23de1bed40..7883a856b0cc1fd2668c0183272c159d8209cade 100644
--- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysis.cxx
+++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysis.cxx
@@ -331,7 +331,7 @@ void PairAnalysis::ProcessMC()
 
   // signals to be studied
   if (!fSignalsMC) return;
-  Int_t nSignals = fSignalsMC->GetEntries();
+  Int_t nSignals = fSignalsMC->GetEntriesFast();
   if (!nSignals) return;
 
   //loop over all MC data and Fill the HF, CF containers and histograms if they exist
diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisHF.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisHF.cxx
index eca6af9f329939b549489fb3026f4604e77d77cb..0d1b120f1b8d272ca8293ba2187e6d53e6c03cbb 100644
--- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisHF.cxx
+++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisHF.cxx
@@ -208,7 +208,7 @@ void PairAnalysisHF::Fill(Int_t /*label1*/, Int_t /*label2*/, Int_t /*nSignal*/)
 
   // only OS at the moment
   if(part1->GetCharge()*part2->GetCharge()<0) {
-    Fill(istep+nSignal+fSignalsMC->GetEntries(), valuesPair,  valuesLeg1, valuesLeg2);
+    Fill(istep+nSignal+fSignalsMC->GetEntriesFast(), valuesPair,  valuesLeg1, valuesLeg2);
   }
 
   return;
@@ -247,7 +247,7 @@ void PairAnalysisHF::Fill(Int_t /*pairIndex*/, const PairAnalysisPair* /*particl
 
   // mc source steps (only OS SE pairs)
   if(fHasMC && fSignalsMC && pairIndex==PairAnalysis::kSEPM) {
-    for(Int_t i=0; i<fSignalsMC->GetEntries(); i++) {
+    for(Int_t i=0; i<fSignalsMC->GetEntriesFast(); i++) {
       ////////////      if(PairAnalysisMC::Instance()->IsMCTruth(particle, (PairAnalysisSignalMC*)fSignalsMC->At(i)))
 	Fill(istep+i, valuesPair,  valuesLeg1, valuesLeg2);
     }
@@ -258,7 +258,7 @@ void PairAnalysisHF::Fill(Int_t /*pairIndex*/, const PairAnalysisPair* /*particl
 
   // remove comments
   //// select correct step if we are looking at signals too
-  ////  if(fHasMC && fSignalsMC) pairIndex += ( fSignalsMC->GetEntries() * (fStepGenerated ? 2 : 1) );
+  ////  if(fHasMC && fSignalsMC) pairIndex += ( fSignalsMC->GetEntriesFast() * (fStepGenerated ? 2 : 1) );
   Fill(pairIndex, valuesPair,  valuesLeg1, valuesLeg2); 
 
   return;
diff --git a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
index b0e7e1ffeb2e3c41412f01d0ddf095e685adb9ba..8ef5b6558a6164567a173661769666880b8c7b4a 100644
--- a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
+++ b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
@@ -4113,7 +4113,7 @@ void CbmHadronAnalysis::ExecEvent(Option_t*) {
            Int_t iDigInd1=(digiMatch->GetLink(iLink+1)).GetIndex(); //vDigish.at(ivDigInd+1);
            LOG(debug1)<<" " << iDigInd0<<", "<<iDigInd1;
 
-           if (iDigInd0 < fTofDigisColl->GetEntries() && iDigInd1 < fTofDigisColl->GetEntries()){
+           if (iDigInd0 < fTofDigisColl->GetEntriesFast() && iDigInd1 < fTofDigisColl->GetEntriesFast()){
             CbmTofDigiExp *pDig0 = (CbmTofDigiExp*) (fTofDigisColl->At(iDigInd0));
             CbmTofDigiExp *pDig1 = (CbmTofDigiExp*) (fTofDigisColl->At(iDigInd1));
 	   }
@@ -4835,7 +4835,7 @@ void CbmHadronAnalysis::ExecEvent(Option_t*) {
         } else {  // NRIt>1; initialize from array
           if (NTHMUL[i] > 0) {
             Btt = IndTHMUL[i][0];
-            if (Btt < 0 || Btt > fTofTracks->GetEntries()) {
+            if (Btt < 0 || Btt > fTofTracks->GetEntriesFast()) {
               cout << "<E> invalid TofTrackIndex " << Btt << ", gt " << i
                    << ", NRIt " << NRIt << endl;
               Btt = -1;
diff --git a/analysis/common/analysis_tree_converter/CbmRichRingsConverter.cxx b/analysis/common/analysis_tree_converter/CbmRichRingsConverter.cxx
index 0463d1789acb8836c54bc04fc80dc768e242b7bd..974236dfa0707da80db4e9855657abfeeb17bc09 100644
--- a/analysis/common/analysis_tree_converter/CbmRichRingsConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmRichRingsConverter.cxx
@@ -62,9 +62,9 @@ void CbmRichRingsConverter::FillRichRings()
   if (it == indexes_map_->end()) { throw std::runtime_error(match_to_ + " is not found to match with TOF hits"); }
   auto rec_tracks_map = it->second;
 
-  rich_rings_->Reserve(cbm_global_tracks_->GetEntries());
+  rich_rings_->Reserve(cbm_global_tracks_->GetEntriesFast());
 
-  for (Int_t igt = 0; igt < cbm_global_tracks_->GetEntries(); igt++) {
+  for (Int_t igt = 0; igt < cbm_global_tracks_->GetEntriesFast(); igt++) {
     const auto* global_track = static_cast<const CbmGlobalTrack*>(cbm_global_tracks_->At(igt));
 
     Int_t i_rich = global_track->GetRichRingIndex();
diff --git a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx
index 6a434f5beb3684bcb3d0f2d918360c6ac6d819a0..6b3b4ceae2c8bd8f225b2da02fcd18c49a6b89c6 100644
--- a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx
@@ -38,7 +38,7 @@ void CbmSimTracksConverter::Exec()
   auto* out_config_  = AnalysisTree::TaskManager::GetInstance()->GetConfig();
   const auto& branch = out_config_->GetBranchConfig(out_branch_);
 
-  const int nMcTracks  = cbm_mc_tracks_->GetEntries();
+  const int nMcTracks  = cbm_mc_tracks_->GetEntriesFast();
   const int imother_id = branch.GetFieldId("mother_id");
   const int igeant_id  = branch.GetFieldId("geant_process_id");
   const int in_hits    = branch.GetFieldId("n_hits_mvd");
diff --git a/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx b/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx
index 31833c1c4bd58e1c966a9f1fac8fc69b35cfe531..341bb7b3b4eb23de8dccff885d38163afb77985b 100644
--- a/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx
@@ -77,9 +77,9 @@ void CbmTofHitsConverter::FillTofHits()
   if (it == indexes_map_->end()) { throw std::runtime_error(match_to_ + " is not found to match with TOF hits"); }
   auto rec_tracks_map = it->second;
 
-  tof_hits_->Reserve(cbm_global_tracks_->GetEntries());
+  tof_hits_->Reserve(cbm_global_tracks_->GetEntriesFast());
 
-  for (Int_t igt = 0; igt < cbm_global_tracks_->GetEntries(); igt++) {
+  for (Int_t igt = 0; igt < cbm_global_tracks_->GetEntriesFast(); igt++) {
     const auto* globalTrack = static_cast<const CbmGlobalTrack*>(cbm_global_tracks_->At(igt));
     const Int_t tofHitIndex = globalTrack->GetTofHitIndex();
     if (tofHitIndex < 0) continue;
diff --git a/analysis/common/analysis_tree_converter/CbmTrdTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmTrdTracksConverter.cxx
index 489bf2f1f16f6818cfa7b4b17ec0f10ca982c61c..98125e44dbc4865bc9ac3bd414a78df0f89b11ba 100644
--- a/analysis/common/analysis_tree_converter/CbmTrdTracksConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmTrdTracksConverter.cxx
@@ -63,9 +63,9 @@ void CbmTrdTracksConverter::FillTrdTracks()
   if (it == indexes_map_->end()) { throw std::runtime_error(match_to_ + " is not found to match with TOF hits"); }
   auto rec_tracks_map = it->second;
 
-  trd_tracks_->Reserve(cbm_global_tracks_->GetEntries());
+  trd_tracks_->Reserve(cbm_global_tracks_->GetEntriesFast());
 
-  for (Int_t igt = 0; igt < cbm_global_tracks_->GetEntries(); igt++) {
+  for (Int_t igt = 0; igt < cbm_global_tracks_->GetEntriesFast(); igt++) {
     const auto* global_track = static_cast<const CbmGlobalTrack*>(cbm_global_tracks_->At(igt));
 
     Int_t itrd = global_track->GetTrdTrackIndex();
diff --git a/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx b/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx
index 47fbb5d9dc1e61aa4e0de769f397557465798a43..c8a16f0193a1be58a4e59fab185676c691a4030b 100644
--- a/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx
+++ b/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx
@@ -272,7 +272,7 @@ void CbmPsdMCbmQaReal::Exec(Option_t* /*option*/) {
       }
     }
 
-    //     int nofT0Digis = fT0Digis->GetEntries();
+    //     int nofT0Digis = fT0Digis->GetEntriesFast();
     //     for (int i = 0; i < nofT0Digis; i++) {
     //         CbmDigi* digi = static_cast<CbmDigi*>(fT0Digis->At(i));
     //         fHM->H1("fhT0DigisTimeLog")->Fill(digi->GetTime() );
@@ -281,7 +281,7 @@ void CbmPsdMCbmQaReal::Exec(Option_t* /*option*/) {
     //     }
   }
 
-  int nofPsdHits = fPsdHits->GetEntries();
+  int nofPsdHits = fPsdHits->GetEntriesFast();
   fHM->H1("fhNofPsdHitsInTimeslice")->Fill(nofPsdHits);
   fHM->H1("fhHitsInTimeslice")->Fill(fEntryNum, nofPsdHits);
   for (int iH = 0; iH < nofPsdHits; iH++) {
diff --git a/analysis/detectors/tof/CbmTofAnaTestbeam.cxx b/analysis/detectors/tof/CbmTofAnaTestbeam.cxx
index 2b70c1c33195de8b8e60ebc7e7e0c5bdf6ff9eb5..97ead1b203654ba7bce00dcf1aa1af9709e3701a 100644
--- a/analysis/detectors/tof/CbmTofAnaTestbeam.cxx
+++ b/analysis/detectors/tof/CbmTofAnaTestbeam.cxx
@@ -4130,7 +4130,7 @@ Bool_t CbmTofAnaTestbeam::CreateHistos() {
 Bool_t CbmTofAnaTestbeam::FillHistos() {
   std::set<Int_t> DutHitSet;
 
-  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntries(); iHitInd++) {
+  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntriesFast(); iHitInd++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitsColl->At(iHitInd);
     Int_t iDetId    = (pHit->GetAddress() & DetMask);
 
@@ -4228,7 +4228,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
   Int_t iNbTofHits, iNbTofTracks;
 
   //   iNbTofDigis   = fTofDigisColl->GetEntriesFast();
-  iNbTofHits = fTofHitsColl->GetEntries();
+  iNbTofHits = fTofHitsColl->GetEntriesFast();
 
   /*
    LOG(info)<<Form("CbmTofAnaTestbeam::FillHistos for %d digis and %d Tof hits",iNbTofDigis,iNbTofHits)
@@ -4434,7 +4434,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
   vector<CbmTofHit*> vDutHit;
   vector<CbmTofHit*> vRefHit;
 
-  iNbTofHits = fTofHitsColl->GetEntries();
+  iNbTofHits = fTofHitsColl->GetEntriesFast();
   for (Int_t iHitInd = 0; iHitInd < iNbTofHits; iHitInd++) {
     pHit = (CbmTofHit*) fTofHitsColl->At(iHitInd);
     if (NULL == pHit) continue;
@@ -5993,7 +5993,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
     Int_t iBestTrklFitIndex(-1);
     Double_t dBestTrklFitRedChiSq(1.E300);
 
-    iNbTofTracks = fTofTrackColl->GetEntries();
+    iNbTofTracks = fTofTrackColl->GetEntriesFast();
     fhTIS_Ntrk->Fill((dTAv - fdStartSpillTime) / 1.E9, (Double_t) iNbTofTracks);
 
     Int_t NStations = fFindTracks->GetNStations();
@@ -7063,7 +7063,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
   std::map<std::tuple<Int_t, Int_t, Int_t>, std::map<Int_t, Int_t>>
     CounterNCellHits;
 
-  for (Int_t iHit = 0; iHit < fTofHitsColl->GetEntries(); iHit++) {
+  for (Int_t iHit = 0; iHit < fTofHitsColl->GetEntriesFast(); iHit++) {
     CbmTofHit* tHit     = dynamic_cast<CbmTofHit*>(fTofHitsColl->At(iHit));
     Int_t iHitAddress   = tHit->GetAddress();
     Int_t iModuleType   = CbmTofAddress::GetSmType(iHitAddress);
diff --git a/core/detectors/much/CbmMuchGeoScheme.cxx b/core/detectors/much/CbmMuchGeoScheme.cxx
index f5425451a88eacad4d9a3ae35539ecec4433feff..84e8628bb94a7b3e89996043b76a3c258a670b1b 100644
--- a/core/detectors/much/CbmMuchGeoScheme.cxx
+++ b/core/detectors/much/CbmMuchGeoScheme.cxx
@@ -122,7 +122,7 @@ void CbmMuchGeoScheme::Init(TObjArray* stations, Int_t flag) {
 
   if (!fInitialized) {
     fStations = stations;
-    //LOG(info) <<" enter ini loop  check"<<fStations->GetEntries()<<"    "<<stations->GetEntries();
+    //LOG(info) <<" enter ini loop  check"<<fStations->GetEntriesFast()<<"    "<<stations->GetEntriesFast();
     fGeoID       = flag;
     fInitialized = kTRUE;
   }
@@ -216,7 +216,7 @@ void CbmMuchGeoScheme::InitModules() {
 CbmMuchStation* CbmMuchGeoScheme::GetStation(Int_t iStation) const {
 
   if (!fStations) return nullptr;
-  Bool_t result = (iStation >= 0) || (iStation < fStations->GetEntries());
+  Bool_t result = (iStation >= 0) || (iStation < fStations->GetEntriesFast());
 
   return result ? (CbmMuchStation*) fStations->At(iStation) : nullptr;
 }
diff --git a/core/detectors/much/CbmMuchGeoScheme.h b/core/detectors/much/CbmMuchGeoScheme.h
index 837310f75ef32c838ef837b33120f62b5be36d30..784bb729c9297268ad8f4cd3580732388e76a98a 100644
--- a/core/detectors/much/CbmMuchGeoScheme.h
+++ b/core/detectors/much/CbmMuchGeoScheme.h
@@ -75,8 +75,8 @@ public:
     return CbmMuchAddress::GetElementId(address, kMuchLayerSide);
   }
 
-  //  fStations->GetEntries();
-  Int_t GetNStations() const { return fStations->GetEntries(); }
+  //  fStations->GetEntriesFast();
+  Int_t GetNStations() const { return fStations->GetEntriesFast(); }
   Int_t GetNAbsorbers() const { return fNabs; }
   TObjArray* GetStations() const { return fStations; }
   TObjArray* GetAbsorbers() const { return fAbsorbers; }
diff --git a/core/detectors/much/CbmMuchSegmentAuto.cxx b/core/detectors/much/CbmMuchSegmentAuto.cxx
index 672ee236bd3fc422f420b670692e7892c9937eae..1bd034ec2c3b0b1b7661377b9cd4ffe1f0568cc5 100644
--- a/core/detectors/much/CbmMuchSegmentAuto.cxx
+++ b/core/detectors/much/CbmMuchSegmentAuto.cxx
@@ -133,9 +133,9 @@ InitStatus CbmMuchSegmentAuto::Init() {
 
   fStations = fGeoPar->GetStations();
   if (!fStations) Fatal("Init", "No input array of MUCH stations.");
-  if (fNStations != fStations->GetEntries())
+  if (fNStations != fStations->GetEntriesFast())
     Fatal("Init", "Incorrect number of stations set.");
-  //fNStations = fStations->GetEntries();
+  //fNStations = fStations->GetEntriesFast();
   fHistHitDensity = new TH1D*[fNStations];
 
   for (Int_t i = 0; i < fNStations; i++) {
@@ -508,7 +508,7 @@ void CbmMuchSegmentAuto::Print(Option_t*) const {
   Int_t nTotStraws   = 0;
   printf("====================================================================="
          "============================\n");
-  for (Int_t iStation = 0; iStation < fStations->GetEntries(); ++iStation) {
+  for (Int_t iStation = 0; iStation < fStations->GetEntriesFast(); ++iStation) {
     CbmMuchStation* station = (CbmMuchStation*) fStations->At(iStation);
     Int_t nGems             = 0;
     Int_t nStraws           = 0;
diff --git a/core/detectors/much/CbmMuchSegmentManual.cxx b/core/detectors/much/CbmMuchSegmentManual.cxx
index 1162c38b47403d4dbf8f122ca98a0e8f369bdcb7..d5b7ecca69e70e154b53aa67dfd66fb63415ab10 100644
--- a/core/detectors/much/CbmMuchSegmentManual.cxx
+++ b/core/detectors/much/CbmMuchSegmentManual.cxx
@@ -222,7 +222,7 @@ InitStatus CbmMuchSegmentManual::Init() {
   // Get MUCH geometry parameter container
   fStations = fGeoPar->GetStations();
   if (!fStations) Fatal("Init", "No input array of MUCH stations.");
-  if (fStations->GetEntries() != fNStations)
+  if (fStations->GetEntriesFast() != fNStations)
     Fatal("Init", "Incorrect number of stations.");
 
   if (fDebug) {
@@ -247,7 +247,7 @@ InitStatus CbmMuchSegmentManual::Init() {
 
 // -----   Public method SegmentMuch  --------------------------------------
 void CbmMuchSegmentManual::SegmentMuch() {
-  for (Int_t iStation = 0; iStation < fStations->GetEntries(); ++iStation) {
+  for (Int_t iStation = 0; iStation < fStations->GetEntriesFast(); ++iStation) {
     CbmMuchStation* station = (CbmMuchStation*) fStations->At(iStation);
 
     Int_t nLayers = station->GetNLayers();
@@ -691,7 +691,7 @@ void CbmMuchSegmentManual::Print(Option_t*) const {
   Int_t nTotStraws   = 0;
   printf("====================================================================="
          "============================\n");
-  for (Int_t iStation = 0; iStation < fStations->GetEntries(); ++iStation) {
+  for (Int_t iStation = 0; iStation < fStations->GetEntriesFast(); ++iStation) {
     CbmMuchStation* station = (CbmMuchStation*) fStations->At(iStation);
     Int_t nGems             = 0;
     Int_t nStraws           = 0;
diff --git a/core/detectors/much/CbmMuchSegmentSector.cxx b/core/detectors/much/CbmMuchSegmentSector.cxx
index 24ec4dc9b0a97f144599f28814ec535af40d82bd..b5649baadfc6fee4539b51a6a68abaca4d3c642e 100644
--- a/core/detectors/much/CbmMuchSegmentSector.cxx
+++ b/core/detectors/much/CbmMuchSegmentSector.cxx
@@ -103,9 +103,9 @@ InitStatus CbmMuchSegmentSector::Init() {
 
   // Get MUCH geometry parameter container
   fStations = fGeoPar->GetStations();
-  // LOG(info)<<" Stations = "<<fStations->GetEntries()<<"     "<<fNStations;
+  // LOG(info)<<" Stations = "<<fStations->GetEntriesFast()<<"     "<<fNStations;
   if (!fStations) Fatal("Init", "No input array of MUCH stations.");
-  if (fStations->GetEntries() != fNStations)
+  if (fStations->GetEntriesFast() != fNStations)
     Fatal("Init", "Incorrect number of stations.");
 
   if (fDebug) {
@@ -126,7 +126,7 @@ InitStatus CbmMuchSegmentSector::Init() {
 
 // -----   Public method SegmentMuch  --------------------------------------
 void CbmMuchSegmentSector::SegmentMuch() {
-  for (Int_t iStation = 0; iStation < fStations->GetEntries(); ++iStation) {
+  for (Int_t iStation = 0; iStation < fStations->GetEntriesFast(); ++iStation) {
     CbmMuchStation* station = (CbmMuchStation*) fStations->At(iStation);
 
     Int_t nLayers = station->GetNLayers();
diff --git a/core/detectors/trd/CbmTrdParModGas.cxx b/core/detectors/trd/CbmTrdParModGas.cxx
index cd6af9f96b5d2ff22b5b7de5894c928ca6d6a937..dd24bc8135475d3db314a6680755b9c6fdcff314 100644
--- a/core/detectors/trd/CbmTrdParModGas.cxx
+++ b/core/detectors/trd/CbmTrdParModGas.cxx
@@ -49,7 +49,7 @@ CbmTrdParModGas::CbmTrdParModGas(const char* title)
   TString name;
   //  Int_t val;
   TObjArray* so = s.Tokenize("/");
-  for (Int_t ie(0); ie < so->GetEntries(); ie += 2) {
+  for (Int_t ie(0); ie < so->GetEntriesFast(); ie += 2) {
     name = ((TObjString*) (*so)[ie])->String();
     if (name.EqualTo("Module"))
       fModuleId = ((TObjString*) (*so)[ie + 1])->String().Atoi();
diff --git a/core/detectors/trd/CbmTrdSPADIC.cxx b/core/detectors/trd/CbmTrdSPADIC.cxx
index 80f89802f428d3b8395f887d16f288642694bc5f..1ca6c15e79fd6a246d6d291c944083485d00878a 100644
--- a/core/detectors/trd/CbmTrdSPADIC.cxx
+++ b/core/detectors/trd/CbmTrdSPADIC.cxx
@@ -197,7 +197,7 @@ void CbmTrdSPADIC::Exec(Option_t*) {
     moduleDigiNotTriggerMap;  //<ModuleAddress, <combiId, digiId> >
   std::map<Int_t, std::list<std::pair<Int_t, Int_t>>>
     moduleDigiTriggerMap;  //<ModuleAddress, <combiId, digiId> >
-  Int_t nDigis = fDigis->GetEntries();
+  Int_t nDigis = fDigis->GetEntriesFast();
 
   TH1D* spadicPulse =
     new TH1D("spadicPulse",
diff --git a/core/eventdisplay/CbmEvDisTracks.cxx b/core/eventdisplay/CbmEvDisTracks.cxx
index 82a45823df26112fcd08e61397a36a33f65553b1..ba9b0712a7939165f05221c45b81b63a9fb9ad6f 100644
--- a/core/eventdisplay/CbmEvDisTracks.cxx
+++ b/core/eventdisplay/CbmEvDisTracks.cxx
@@ -121,7 +121,7 @@ void CbmEvDisTracks::Exec(Option_t* option) {
 
     Reset();
 
-    LOG(debug4) << " CbmEvDisTracks:: NTrks " << fTrackList->GetEntries();
+    LOG(debug4) << " CbmEvDisTracks:: NTrks " << fTrackList->GetEntriesFast();
     Int_t TMul[10] = {10 * 0};  //FIXME - don't use constants in code
 
     for (Int_t iOpt = 0; iOpt < 2; iOpt++)
diff --git a/macro/rich/run_radius_correction.C b/macro/rich/run_radius_correction.C
index 7e0427de8a91d0bb4de5fecbbc2a6085b6c17ee3..a336feee56be076eb24489101fac572001284d4e 100644
--- a/macro/rich/run_radius_correction.C
+++ b/macro/rich/run_radius_correction.C
@@ -124,10 +124,10 @@ void run_radius_correction() {
     CbmRichRingMatch* match = NULL;
     t->GetEntry(ievent);
     t1->GetEntry(ievent);
-    Int_t nofRings = fRichRings->GetEntries();
+    Int_t nofRings = fRichRings->GetEntriesFast();
     cout << "  nofRings = " << nofRings;
-    cout << "  nofMatches = " << fRichMatches->GetEntries();
-    cout << "  nofMCTracks = " << fMCTracks->GetEntries() << endl;
+    cout << "  nofMatches = " << fRichMatches->GetEntriesFast();
+    cout << "  nofMCTracks = " << fMCTracks->GetEntriesFast() << endl;
 
     for (Int_t iRing = 0; iRing < nofRings; iRing++) {
       ring = (CbmRichRing*) fRichRings->At(iRing);
@@ -137,7 +137,7 @@ void run_radius_correction() {
 
       Int_t trackId = match->GetMCTrackID();
       if (trackId == -1) continue;
-      if (trackId > fMCTracks->GetEntries()) continue;
+      if (trackId > fMCTracks->GetEntriesFast()) continue;
 
       CbmMCTrack* mcTrack = (CbmMCTrack*) fMCTracks->At(trackId);
       if (!mcTrack) continue;
@@ -236,7 +236,7 @@ void run_radius_correction() {
     //t1->GetEntry(ievent);
     t->GetEntry(ievent);
     t1->GetEntry(ievent);
-    Int_t nofRings = fRichRings->GetEntries();
+    Int_t nofRings = fRichRings->GetEntriesFast();
 
     for (Int_t iRing = 0; iRing < nofRings; iRing++) {
 
@@ -247,7 +247,7 @@ void run_radius_correction() {
 
       Int_t trackId = match->GetMCTrackID();
       if (trackId == -1) continue;
-      if (trackId > fMCTracks->GetEntries()) continue;
+      if (trackId > fMCTracks->GetEntriesFast()) continue;
 
       CbmMCTrack* mcTrack = (CbmMCTrack*) fMCTracks->At(trackId);
       if (!mcTrack) continue;
diff --git a/reco/KF/Interface/CbmPVFinderKF.cxx b/reco/KF/Interface/CbmPVFinderKF.cxx
index 493527e19e3ef832090c321cf14c7789b26e3b77..631a8fe70ca462eb87cc64f4992b5be9e970b4ed 100644
--- a/reco/KF/Interface/CbmPVFinderKF.cxx
+++ b/reco/KF/Interface/CbmPVFinderKF.cxx
@@ -16,7 +16,7 @@ ClassImp(CbmPVFinderKF)
   Int_t CbmPVFinderKF::FindPrimaryVertex(TClonesArray* tracks,
                                          CbmVertex* vertex) {
 
-  Int_t NTracks = tracks->GetEntries();
+  Int_t NTracks = tracks->GetEntriesFast();
 
   CbmKFPrimaryVertexFinder Finder;
   CbmKFTrack* CloneArray = new CbmKFTrack[NTracks];
diff --git a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
index 581cbd5fd55a1fe8ff0303ff4c929063d4ca6278..784d1dd7082f337b229c91249be4694137c23fc1 100644
--- a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
+++ b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
@@ -459,8 +459,8 @@ void CbmStsFitPerformanceTask::Exec(Option_t* /*option*/) {
 
   if (0) {
     //    CbmKF &KF = *CbmKF::Instance();
-    int nStsHits = fStsHitArray->GetEntries();
-    int nMvdHits = fMvdHitArray->GetEntries();
+    int nStsHits = fStsHitArray->GetEntriesFast();
+    int nMvdHits = fMvdHitArray->GetEntriesFast();
     cout << "Mvd hit density..." << endl;
     for (int ih = 0; ih < nMvdHits; ih++) {
       if (ih % 100 == 0) cout << ih << endl;
diff --git a/reco/L1/CbmL1CATrdTrackFinderSA.cxx b/reco/L1/CbmL1CATrdTrackFinderSA.cxx
index 69a48c288250449149e29aa39b31c70f14170ac5..40d32ef5965c8f89e29eddff21af73490081dff8 100644
--- a/reco/L1/CbmL1CATrdTrackFinderSA.cxx
+++ b/reco/L1/CbmL1CATrdTrackFinderSA.cxx
@@ -1299,7 +1299,7 @@ void CbmL1CATrdTrackFinderSA::TrdLayout() {
 
   TrdPar = L1_DYNAMIC_CAST<CbmGeoTrdPar*>(rtdb->findContainer("CbmGeoTrdPar"));
   TObjArray* Nodes = TrdPar->GetGeoSensitiveNodes();
-  for (Int_t i = 0; i < Nodes->GetEntries(); i++) {
+  for (Int_t i = 0; i < Nodes->GetEntriesFast(); i++) {
     FairGeoNode* node = dynamic_cast<FairGeoNode*>(Nodes->At(i));
     //FairGeoNode *node = (FairGeoNode*) Nodes->At(i);
     if (!node) continue;
@@ -1375,7 +1375,7 @@ void CbmL1CATrdTrackFinderSA::TrdLayout() {
     TrdPar = (CbmGeoTrdPar*) (rtdb->findContainer("CbmGeoTrdPar"));
     //TObjArray *Nodes = TrdPar->GetGeoSensitiveNodes();
     Nodes = TrdPar->GetGeoSensitiveNodes();
-    for( Int_t i=0;i<Nodes->GetEntries(); i++) {
+    for( Int_t i=0;i<Nodes->GetEntriesFast(); i++) {
     FairGeoNode *node = dynamic_cast<FairGeoNode*> (Nodes->At(i));
     if ( !node ) continue;
 
diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index 2aba2178443dcd689c8533d3f010c6d6c5118549..458c83741d260b54e5f75bbb84fd1b44e1b05dd0 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -2407,7 +2407,7 @@ void CbmL1::InputPerformance() {
 
   map<unsigned int, unsigned int>::iterator it;
   Int_t nMC = -1;
-  if (listStsPts) { nMC = listStsPts->GetEntries(); }
+  if (listStsPts) { nMC = listStsPts->GetEntriesFast(); }
 
   if (listStsHits && listStsHitMatch) {
     for (unsigned int iH = 0; iH < vStsHits.size(); iH++) {
@@ -2508,7 +2508,7 @@ void CbmL1::InputPerformance() {
 
 
   if (listMvdHits && listMvdHitMatches) {
-    Int_t nEnt = listMvdHits->GetEntries();
+    Int_t nEnt = listMvdHits->GetEntriesFast();
     for (int j = 0; j < nEnt; j++) {
 
       CbmMvdHit* sh = L1_DYNAMIC_CAST<CbmMvdHit*>(listMvdHits->At(j));
@@ -2805,7 +2805,7 @@ void CbmL1::InputPerformance() {
 
   // strips   Not ended
   //   if( listCbmStsDigi ){
-  //     Int_t nEnt = listCbmStsDigi->GetEntries();
+  //     Int_t nEnt = listCbmStsDigi->GetEntriesFast();
   //     for (int j=0; j < nEnt; j++ ){
   //       CbmStsDigi *digi = (CbmStsDigi*) listCbmStsDigi->At(j);
   // //  = sh->GetNLinks(0);
diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx
index f6d80d31f843d6f1ed7ea7656f9d1b0e75cbdd84..29382f9ecfa4101354873e692ac2a1556a2e16d3 100644
--- a/reco/L1/CbmL1ReadEvent.cxx
+++ b/reco/L1/CbmL1ReadEvent.cxx
@@ -258,7 +258,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
       ToFPointsMatch.resize(0);
 
       if (fTofPoints) {
-        for (int j = 0; j < fTofHits->GetEntries(); j++) {
+        for (int j = 0; j < fTofHits->GetEntriesFast(); j++) {
 
           CbmTofHit* mh = L1_DYNAMIC_CAST<CbmTofHit*>(fTofHits->At(j));
 
@@ -368,7 +368,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
 
     int firstDetStrip = NStrips;
 
-    for (int j = 0; j < listMvdHits->GetEntries(); j++) {
+    for (int j = 0; j < listMvdHits->GetEntriesFast(); j++) {
       TmpHit th;
       {
         CbmMvdHit* mh = L1_DYNAMIC_CAST<CbmMvdHit*>(listMvdHits->At(j));
@@ -466,9 +466,11 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
   Int_t nEntSts = 0;
   if (listStsHits) {
 
-    if (fTimesliceMode) nEntSts = listStsHits->GetEntries();
-    else
-      nEntSts = (event ? event->GetNofData(ECbmDataType::kStsHit) : listStsHits->GetEntries());
+    if (fTimesliceMode){ 
+      nEntSts = listStsHits->GetEntriesFast();
+    } else {
+      nEntSts = (event ? event->GetNofData(ECbmDataType::kStsHit) : listStsHits->GetEntriesFast());
+    }
 
     int firstDetStrip = NStrips;
 
@@ -592,7 +594,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
 
   if (fMuchPixelHits) {
 
-    Int_t nEnt = fMuchPixelHits->GetEntries();
+    Int_t nEnt = fMuchPixelHits->GetEntriesFast();
 
     int firstDetStrip = NStrips;
 
@@ -701,7 +703,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
 
     int firstDetStrip = NStrips;
 
-    for (int j = 0; j < listTrdHits->GetEntries(); j++) {
+    for (int j = 0; j < listTrdHits->GetEntriesFast(); j++) {
       TmpHit th;
 
       CbmTrdHit* mh = L1_DYNAMIC_CAST<CbmTrdHit*>(listTrdHits->At(j));
@@ -792,7 +794,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
 
     int firstDetStrip = NStrips;
 
-    for (int j = 0; j < fTofHits->GetEntries(); j++) {
+    for (int j = 0; j < fTofHits->GetEntriesFast(); j++) {
       TmpHit th;
 
       CbmTofHit* mh = L1_DYNAMIC_CAST<CbmTofHit*>(fTofHits->At(j));
diff --git a/reco/L1/CbmL1TrdTrackFinderSts.cxx b/reco/L1/CbmL1TrdTrackFinderSts.cxx
index 69df8175ec87f83d5d8c8afa04409ea50435d058..0f10a10ffa4b2565642109099396a094f9f48dd7 100644
--- a/reco/L1/CbmL1TrdTrackFinderSts.cxx
+++ b/reco/L1/CbmL1TrdTrackFinderSts.cxx
@@ -363,7 +363,7 @@ void CbmL1TrdTrackFinderSts::MoveOut() {
   // Move the tracks from temporary array to the output array
   vector<CbmTrdTrack*>::iterator iter;
   CbmTrdTrack* track;
-  Int_t nOut = fArrayTrdTrack->GetEntries();
+  Int_t nOut = fArrayTrdTrack->GetEntriesFast();
   for (iter = fvTrdTrack.begin(); iter != fvTrdTrack.end(); iter++) {
     track = *iter;
     if (0 == track->GetFlag()) {
diff --git a/reco/L1/OffLineInterface/CbmL1MuchFinder.cxx b/reco/L1/OffLineInterface/CbmL1MuchFinder.cxx
index b51b1d67863356030efe3d312560783ecd685473..51240b58a50bb610c584f363f1a1cd549c6f9c34 100644
--- a/reco/L1/OffLineInterface/CbmL1MuchFinder.cxx
+++ b/reco/L1/OffLineInterface/CbmL1MuchFinder.cxx
@@ -116,7 +116,7 @@ void CbmL1MuchFinder::Exec(Option_t* /*option*/) {
 
   vector<CbmL1MuchTrack> vTracks;
 
-  int NStsTracks = fStsTracks->GetEntries();
+  int NStsTracks = fStsTracks->GetEntriesFast();
 
   CbmL1MuchTrack Branches[MaxBranches];
 
@@ -244,7 +244,7 @@ void CbmL1MuchFinder::Exec(Option_t* /*option*/) {
     vpTracks.push_back(&(vTracks[i]));
   sort(vpTracks.begin(), vpTracks.end(), CbmL1MuchTrack::Compare);
 
-  int NOutTracks = fTrackCollection->GetEntries();
+  int NOutTracks = fTrackCollection->GetEntriesFast();
 
   for (int it = 0; it < NTracks; it++) {
     CbmL1MuchTrack& tr = *vpTracks[it];
diff --git a/reco/L1/OffLineInterface/CbmL1MuchFinderQa.cxx b/reco/L1/OffLineInterface/CbmL1MuchFinderQa.cxx
index 822fe5634b6f0ffecebb8af332e8ec23c93387b0..0b6679d2adcc646821dd77bfa3a5956889707bb3 100644
--- a/reco/L1/OffLineInterface/CbmL1MuchFinderQa.cxx
+++ b/reco/L1/OffLineInterface/CbmL1MuchFinderQa.cxx
@@ -157,10 +157,10 @@ void CbmL1MuchFinderQa::Exec(Option_t* /*option*/) {
   if (!fSTSTrackMatch) return;
   if (!fMCTracks) return;
 
-  int NHits       = fMuchHits->GetEntries();
-  int NStsTracks  = fStsTracks->GetEntries();
-  int NMuchTracks = fMuchTracks->GetEntries();
-  //int NMCTracks = fMCTracks->GetEntries();
+  int NHits       = fMuchHits->GetEntriesFast();
+  int NStsTracks  = fStsTracks->GetEntriesFast();
+  int NMuchTracks = fMuchTracks->GetEntriesFast();
+  //int NMCTracks = fMCTracks->GetEntriesFast();
 
   bool was_problem = 0;
 
diff --git a/reco/L1/OffLineInterface/CbmL1SttTrackFinder.cxx b/reco/L1/OffLineInterface/CbmL1SttTrackFinder.cxx
index 6e9a19b8f999d621ca4c330b54f75495dcd29912..b3f440e52cfcd833f7b1c8d3b209b0a222051907 100644
--- a/reco/L1/OffLineInterface/CbmL1SttTrackFinder.cxx
+++ b/reco/L1/OffLineInterface/CbmL1SttTrackFinder.cxx
@@ -351,7 +351,7 @@ void CbmL1SttTrackFinder::Exec(Option_t* /*option*/) {
     vpTracks.push_back(&(vTracks[i]));
   sort(vpTracks.begin(), vpTracks.end(), CbmL1SttTrack::Compare);
 
-  int NOutTracks = fTrackCollection->GetEntries();
+  int NOutTracks = fTrackCollection->GetEntriesFast();
 
   for (int it = 0; it < NTracks; ++it) {
     CbmL1SttTrack& tr = *vpTracks[it];
diff --git a/reco/detectors/much/CbmMuchHitProducerIdeal.cxx b/reco/detectors/much/CbmMuchHitProducerIdeal.cxx
index f6182355c939c536a26e185b4532e12dcc19e150..765bca3e2f8e526263ba43f54800f598cd504903 100644
--- a/reco/detectors/much/CbmMuchHitProducerIdeal.cxx
+++ b/reco/detectors/much/CbmMuchHitProducerIdeal.cxx
@@ -91,8 +91,8 @@ void CbmMuchHitProducerIdeal::Exec(Option_t*) {
   }
   eventNo++;
   LOG(info) << "CbmMuchHitProducerIdeal::Exec: eventNo=" << eventNo
-            << " nofPoints=" << fMuchPoints->GetEntries()
-            << " nofHits=" << fMuchPixelHits->GetEntries();
+            << " nofPoints=" << fMuchPoints->GetEntriesFast()
+            << " nofHits=" << fMuchPixelHits->GetEntriesFast();
 }
 
 void CbmMuchHitProducerIdeal::Finish() {}
diff --git a/reco/detectors/rich/alignment/CbmRichAlignment.cxx b/reco/detectors/rich/alignment/CbmRichAlignment.cxx
index 81da33d0a43c5ec2badb1aed16997e1134b2bedd..399db902498da232115b84ba403f4e2da5c2e246 100644
--- a/reco/detectors/rich/alignment/CbmRichAlignment.cxx
+++ b/reco/detectors/rich/alignment/CbmRichAlignment.cxx
@@ -186,9 +186,9 @@ void CbmRichAlignment::Exec(Option_t* option) {
   //LOG(debug2) << "CbmRichAlignment : Event #" << fEventNum;
   cout << "CbmRichAlignment : Event #" << fEventNum << endl;
 
-  Int_t nofRingsInEvent = fRichRings->GetEntries();
-  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntries();
-  Int_t nofHitsInEvent  = fRichHits->GetEntries();
+  Int_t nofRingsInEvent = fRichRings->GetEntriesFast();
+  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+  Int_t nofHitsInEvent  = fRichHits->GetEntriesFast();
   Int_t NofMCTracks     = fMCTracks->GetEntriesFast();
   //	Int_t NofMCPoints = fRichMCPoints->GetEntriesFast();
   cout << "Nb of rings in evt = " << nofRingsInEvent
@@ -213,7 +213,7 @@ void CbmRichAlignment::CalculateAnglesAndDrawDistrib() {
   Double_t trackX = 0., trackY = 0.;
   GetTrackPosition(trackX, trackY);
 
-  Int_t nofRingsInEvent = fRichRings->GetEntries();
+  Int_t nofRingsInEvent = fRichRings->GetEntriesFast();
   Float_t DistCenters, Theta_Ch, Theta_0, Angles_0;
   Float_t Pi    = 3.14159265;
   Float_t TwoPi = 2. * 3.14159265;
@@ -273,7 +273,7 @@ void CbmRichAlignment::CalculateAnglesAndDrawDistrib() {
 }
 
 void CbmRichAlignment::GetTrackPosition(Double_t& x, Double_t& y) {
-  Int_t NofProjections = fRichProjections->GetEntries();
+  Int_t NofProjections = fRichProjections->GetEntriesFast();
   //cout << "!!! NB PROJECTIONS !!! " << NofProjections << endl;
   for (Int_t iP = 0; iP < NofProjections; iP++) {
     FairTrackParam* pr = (FairTrackParam*) fRichProjections->At(iP);
diff --git a/reco/detectors/rich/alignment/CbmRichCorrection.cxx b/reco/detectors/rich/alignment/CbmRichCorrection.cxx
index a730965f06f3589198d76a8c10a693eb9bd28c7f..b31a6e4d9ad647f6a113f5f9fefaea433112ed1e 100644
--- a/reco/detectors/rich/alignment/CbmRichCorrection.cxx
+++ b/reco/detectors/rich/alignment/CbmRichCorrection.cxx
@@ -246,9 +246,9 @@ void CbmRichCorrection::Exec(Option_t* /*option*/) {
   //LOG(debug2) << "CbmRichCorrection : Event #" << fEventNum;
   cout << "CbmRichCorrection : Event #" << fEventNum << endl;
 
-  Int_t nofRingsInEvent = fRichRings->GetEntries();
-  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntries();
-  Int_t nofHitsInEvent  = fRichHits->GetEntries();
+  Int_t nofRingsInEvent = fRichRings->GetEntriesFast();
+  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+  Int_t nofHitsInEvent  = fRichHits->GetEntriesFast();
   Int_t NofMCPoints     = fRichMCPoints->GetEntriesFast();
   Int_t NofMCTracks     = fMCTracks->GetEntriesFast();
   cout << "Nb of rings in evt = " << nofRingsInEvent
@@ -274,7 +274,7 @@ void CbmRichCorrection::ProjectionProducer() {
        << endl;
 
   Int_t NofMirrorPoints   = fRichMirrorPoints->GetEntriesFast();
-  Int_t NofRingsInEvent   = fRichRings->GetEntries();
+  Int_t NofRingsInEvent   = fRichRings->GetEntriesFast();
   Int_t NofGTracks        = fGlobalTracks->GetEntriesFast();
   Int_t NofRefPlanePoints = fRichRefPlanePoints->GetEntriesFast();
   Int_t NofPMTPoints      = fRichPoints->GetEntriesFast();
diff --git a/reco/detectors/rich/alignment/CbmRichCorrectionVector.cxx b/reco/detectors/rich/alignment/CbmRichCorrectionVector.cxx
index 9c791bfe903797377fc2c4ed5dda394a7445c01e..3dd0d65da9743b3599761c49f8c341d3d0c274ba 100644
--- a/reco/detectors/rich/alignment/CbmRichCorrectionVector.cxx
+++ b/reco/detectors/rich/alignment/CbmRichCorrectionVector.cxx
@@ -357,9 +357,9 @@ void CbmRichCorrectionVector::Exec(Option_t* /*option*/) {
   //LOG(debug2) << "CbmRichCorrectionVector : Event #" << fEventNum;
   cout << "CbmRichCorrectionVector : Event #" << fEventNum << endl;
 
-  Int_t nofRingsInEvent = fRichRings->GetEntries();
-  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntries();
-  Int_t nofHitsInEvent  = fRichHits->GetEntries();
+  Int_t nofRingsInEvent = fRichRings->GetEntriesFast();
+  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+  Int_t nofHitsInEvent  = fRichHits->GetEntriesFast();
   Int_t NofMCPoints     = fRichMCPoints->GetEntriesFast();
   Int_t NofMCTracks     = fMCTracks->GetEntriesFast();
   cout << "Nb of rings in evt = " << nofRingsInEvent
@@ -399,7 +399,7 @@ void CbmRichCorrectionVector::CalculateAnglesAndDrawDistrib() {
   Double_t trackX = 0., trackY = 0.;
   GetTrackPosition(trackX, trackY);
 
-  Int_t nofRingsInEvent = fRichRings->GetEntries();
+  Int_t nofRingsInEvent = fRichRings->GetEntriesFast();
   Float_t DistCenters, Theta_Ch, Theta_0, Angles_0;
   Float_t Pi    = 3.14159265;
   Float_t TwoPi = 2. * 3.14159265;
@@ -459,7 +459,7 @@ void CbmRichCorrectionVector::CalculateAnglesAndDrawDistrib() {
 }
 
 void CbmRichCorrectionVector::GetTrackPosition(Double_t& x, Double_t& y) {
-  Int_t NofProjections = fRichProjections->GetEntries();
+  Int_t NofProjections = fRichProjections->GetEntriesFast();
   //cout << "!!! NB PROJECTIONS !!! " << NofProjections << endl;
   for (Int_t iP = 0; iP < NofProjections; iP++) {
     FairTrackParam* pr = (FairTrackParam*) fRichProjections->At(iP);
@@ -480,11 +480,11 @@ void CbmRichCorrectionVector::MatchFinder() {
   cout << "//---------------------------------------- MATCH_FINDER Function "
           "----------------------------------------//"
        << endl;
-  Int_t NofMirrorPoints = fRichMirrorPoints->GetEntries();
-  Int_t NofRingsInEvent = fRichRings->GetEntries();
+  Int_t NofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+  Int_t NofRingsInEvent = fRichRings->GetEntriesFast();
   Int_t NofMCPoints     = fRichMCPoints->GetEntriesFast();
   Int_t NofMCTracks     = fMCTracks->GetEntriesFast();
-  //Int_t NofProjections = fRichProjections->GetEntries();
+  //Int_t NofProjections = fRichProjections->GetEntriesFast();
 
   Double_t x_Mirr = 0, y_Mirr = 0, z_Mirr = 0, x_PMT = 0, y_PMT = 0, z_PMT = 0;
   Double_t CenterX = 0, CenterY = 0;
@@ -608,7 +608,7 @@ void CbmRichCorrectionVector::ProjectionProducer(TClonesArray* projectedPoint) {
        << endl;
 
   Int_t NofMirrorPoints   = fRichMirrorPoints->GetEntriesFast();
-  Int_t NofRingsInEvent   = fRichRings->GetEntries();
+  Int_t NofRingsInEvent   = fRichRings->GetEntriesFast();
   Int_t NofGTracks        = fGlobalTracks->GetEntriesFast();
   Int_t NofRefPlanePoints = fRichRefPlanePoints->GetEntriesFast();
   Int_t NofPMTPoints      = fRichPoints->GetEntriesFast();
diff --git a/reco/detectors/rich/alignment/CbmRichMirrorSortingAlignment.cxx b/reco/detectors/rich/alignment/CbmRichMirrorSortingAlignment.cxx
index 9d77b7cacd2bdd1b1b952c018e5da965d88a2fd6..85d97a4d5d98d6d1e07a9d04f12d3ee8abc85acd 100644
--- a/reco/detectors/rich/alignment/CbmRichMirrorSortingAlignment.cxx
+++ b/reco/detectors/rich/alignment/CbmRichMirrorSortingAlignment.cxx
@@ -131,9 +131,9 @@ void CbmRichMirrorSortingAlignment::Exec(Option_t* Option) {
   TGeoNode* mirrNode;
   CbmRichPoint *mirrPoint, *refPlanePoint;
 
-  if (fRichRings->GetEntries() != 0) {
-    cout << "Nb of rings in evt = " << fRichRings->GetEntries() << endl << endl;
-    GetPmtNormal(fPmtPoints->GetEntries(), normalPMT, constantePMT);
+  if (fRichRings->GetEntriesFast() != 0) {
+    cout << "Nb of rings in evt = " << fRichRings->GetEntriesFast() << endl << endl;
+    GetPmtNormal(fPmtPoints->GetEntriesFast(), normalPMT, constantePMT);
     //cout << "Calculated normal vector to PMT plane = {" << normalPMT.at(0) << ", " << normalPMT.at(1) << ", " << normalPMT.at(2) << "} and constante d = " << constantePMT << endl;
 
     for (Int_t iGlobalTrack = 0; iGlobalTrack < fGlobalTracks->GetEntriesFast();
@@ -206,9 +206,9 @@ void CbmRichMirrorSortingAlignment::Exec(Option_t* Option) {
       Int_t trackMotherId = mcTrack->GetMotherId();
       Int_t pdg           = TMath::Abs(mcTrack->GetPdgCode());
       if (trackMotherId == -1) {
-        if (fMirrorPoints->GetEntries() > 0) {
+        if (fMirrorPoints->GetEntriesFast() > 0) {
           //loop on mirrorPoint and compare w/ TrackID->GetTrackId to get correct one
-          for (Int_t iMirrPt = 0; iMirrPt < fMirrorPoints->GetEntries();
+          for (Int_t iMirrPt = 0; iMirrPt < fMirrorPoints->GetEntriesFast();
                iMirrPt++) {
             mirrPoint = (CbmRichPoint*) fMirrorPoints->At(iMirrPt);
             if (mirrPoint == 0) { continue; }
@@ -252,7 +252,7 @@ void CbmRichMirrorSortingAlignment::Exec(Option_t* Option) {
                     "ideal = {"
                  << ptCIdeal.at(0) << ", " << ptCIdeal.at(1) << ", "
                  << ptCIdeal.at(2) << "}" << endl;
-            for (Int_t iRefPt = 0; iRefPt < fRefPlanePoints->GetEntries();
+            for (Int_t iRefPt = 0; iRefPt < fRefPlanePoints->GetEntriesFast();
                  iRefPt++) {
               refPlanePoint = (CbmRichPoint*) fRefPlanePoints->At(iRefPt);
               //cout << "Refl plane point track ID: " << refPlanePoint->GetTrackID() << endl;
diff --git a/reco/detectors/rich/alignment/CbmRichMirrorSortingCorrection.cxx b/reco/detectors/rich/alignment/CbmRichMirrorSortingCorrection.cxx
index 6e0a680d73fb0d750d8bb9425f7e21c6d3474cfc..cabec6dfecc83aaee311b7c9fed6c451c3e8cf94 100644
--- a/reco/detectors/rich/alignment/CbmRichMirrorSortingCorrection.cxx
+++ b/reco/detectors/rich/alignment/CbmRichMirrorSortingCorrection.cxx
@@ -455,9 +455,9 @@ void CbmRichMirrorSortingCorrection::Exec(Option_t* Option) {
   TGeoNode* mirrNode;
   CbmRichPoint *mirrPoint, *refPlanePoint;
 
-  if (fRichRings->GetEntries() != 0) {
-    cout << "Nb of rings in evt = " << fRichRings->GetEntries() << endl << endl;
-    GetPmtNormal(fPmtPoints->GetEntries(), normalPMT, constantePMT);
+  if (fRichRings->GetEntriesFast() != 0) {
+    cout << "Nb of rings in evt = " << fRichRings->GetEntriesFast() << endl << endl;
+    GetPmtNormal(fPmtPoints->GetEntriesFast(), normalPMT, constantePMT);
     //cout << "Calculated normal vector to PMT plane = {" << normalPMT.at(0) << ", " << normalPMT.at(1) << ", " << normalPMT.at(2) << "} and constante d = " << constantePMT << endl;
 
     for (Int_t iGlobalTrack = 0; iGlobalTrack < fGlobalTracks->GetEntriesFast();
@@ -523,9 +523,9 @@ void CbmRichMirrorSortingCorrection::Exec(Option_t* Option) {
       Int_t trackMotherId = mcTrack->GetMotherId();
       Int_t pdg           = TMath::Abs(mcTrack->GetPdgCode());
       if (trackMotherId == -1) {
-        if (fMirrorPoints->GetEntries() > 0) {
+        if (fMirrorPoints->GetEntriesFast() > 0) {
           //loop on mirrorPoint and compare w/ TrackID->GetTrackId to get correct one
-          for (Int_t iMirrPt = 0; iMirrPt < fMirrorPoints->GetEntries();
+          for (Int_t iMirrPt = 0; iMirrPt < fMirrorPoints->GetEntriesFast();
                iMirrPt++) {
             mirrPoint = (CbmRichPoint*) fMirrorPoints->At(iMirrPt);
             if (mirrPoint == 0) { continue; }
@@ -557,7 +557,7 @@ void CbmRichMirrorSortingCorrection::Exec(Option_t* Option) {
                     "ideal = {"
                  << ptCIdeal.at(0) << ", " << ptCIdeal.at(1) << ", "
                  << ptCIdeal.at(2) << "}" << endl;
-            for (Int_t iRefPt = 0; iRefPt < fRefPlanePoints->GetEntries();
+            for (Int_t iRefPt = 0; iRefPt < fRefPlanePoints->GetEntriesFast();
                  iRefPt++) {
               refPlanePoint = (CbmRichPoint*) fRefPlanePoints->At(iRefPt);
               //cout << "Refl plane point track ID: " << refPlanePoint->GetTrackID() << endl;
diff --git a/reco/detectors/rich/alignment/CbmRichPMTMapping.cxx b/reco/detectors/rich/alignment/CbmRichPMTMapping.cxx
index 1f8901700d1d679bdc5dd2310ea75753aa5a77c0..2dd05536a0ed97994d379f299f89a2421dcf4e66 100644
--- a/reco/detectors/rich/alignment/CbmRichPMTMapping.cxx
+++ b/reco/detectors/rich/alignment/CbmRichPMTMapping.cxx
@@ -289,9 +289,9 @@ void CbmRichPMTMapping::Exec(Option_t* /*option*/) {
   //LOG(debug2) << "CbmRichPMTMapping : Event #" << fEventNum;
   cout << "CbmRichPMTMapping : Event #" << fEventNum << endl;
 
-  Int_t nofRingsInEvent = fRichRings->GetEntries();
-  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntries();
-  Int_t nofHitsInEvent  = fRichHits->GetEntries();
+  Int_t nofRingsInEvent = fRichRings->GetEntriesFast();
+  Int_t nofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+  Int_t nofHitsInEvent  = fRichHits->GetEntriesFast();
   Int_t NofMCPoints     = fRichMCPoints->GetEntriesFast();
   Int_t NofMCTracks     = fMCTracks->GetEntriesFast();
   cout << "Nb of rings in evt = " << nofRingsInEvent
@@ -332,11 +332,11 @@ void CbmRichPMTMapping::MatchFinder() {
   cout << "//---------------------------------------- MATCH_FINDER Function "
           "----------------------------------------//"
        << endl;
-  Int_t NofMirrorPoints = fRichMirrorPoints->GetEntries();
-  Int_t NofRingsInEvent = fRichRings->GetEntries();
+  Int_t NofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+  Int_t NofRingsInEvent = fRichRings->GetEntriesFast();
   Int_t NofMCPoints     = fRichMCPoints->GetEntriesFast();
   Int_t NofMCTracks     = fMCTracks->GetEntriesFast();
-  //Int_t NofProjections = fRichProjections->GetEntries();
+  //Int_t NofProjections = fRichProjections->GetEntriesFast();
 
   Double_t x_Mirr = 0, y_Mirr = 0, z_Mirr = 0, x_PMT = 0, y_PMT = 0, z_PMT = 0;
   Double_t CenterX = 0, CenterY = 0;
@@ -460,7 +460,7 @@ void CbmRichPMTMapping::ProjectionProducer2() {
        << endl;
 
   Int_t NofMirrorPoints   = fRichMirrorPoints->GetEntriesFast();
-  Int_t NofRingsInEvent   = fRichRings->GetEntries();
+  Int_t NofRingsInEvent   = fRichRings->GetEntriesFast();
   Int_t NofGTracks        = fGlobalTracks->GetEntriesFast();
   Int_t NofRefPlanePoints = fRichRefPlanePoints->GetEntriesFast();
   Int_t NofPMTPoints      = fRichPoints->GetEntriesFast();
@@ -759,7 +759,7 @@ void CbmRichPMTMapping::ProjectionProducer() {
        << endl;
 
   Int_t NofMirrorPoints   = fRichMirrorPoints->GetEntriesFast();
-  Int_t NofRingsInEvent   = fRichRings->GetEntries();
+  Int_t NofRingsInEvent   = fRichRings->GetEntriesFast();
   Int_t NofGTracks        = fGlobalTracks->GetEntriesFast();
   Int_t NofRefPlanePoints = fRichRefPlanePoints->GetEntriesFast();
   Int_t NofPMTPoints      = fRichPoints->GetEntriesFast();
@@ -1500,8 +1500,8 @@ ClassImp(CbmRichPMTMapping)
 
   /* Old Code:
 Double_t x_PMT, y_PMT, z_PMT;
-Int_t nofMirrorPoints = fRichMirrorPoints->GetEntries();
-Int_t NofProjections = fRichProjections->GetEntries();
+Int_t nofMirrorPoints = fRichMirrorPoints->GetEntriesFast();
+Int_t NofProjections = fRichProjections->GetEntriesFast();
 cout << "Nb of Mirr_Pts: " << nofMirrorPoints << " and nb of Projections: " << NofProjections << endl;
 //FairVolume* vol;
 //vol->GetName();
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
index 4d8d7d85068a03cbb183e2d6550a3ed681ccc98e..0279040ea5138702c14b8d8663c892f17a358139 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
@@ -265,7 +265,7 @@ void CbmRichMCbmAerogelAna::Exec(Option_t* /*option*/) {
     }
   }
 
-  int nofRichHits = fRichHits->GetEntries();
+  int nofRichHits = fRichHits->GetEntriesFast();
   fHM->H1("fhNofRichHitsInTimeslice")->Fill(nofRichHits);
   fHM->H1("fhHitsInTimeslice")->Fill(fEventNum, nofRichHits);
   for (int iH = 0; iH < nofRichHits; iH++) {
@@ -292,7 +292,7 @@ void CbmRichMCbmAerogelAna::Exec(Option_t* /*option*/) {
       auto iRichHit = ev->GetIndex(ECbmDataType::kRichHit, j);
       evRichHitIndx.push_back(iRichHit);
 
-      int nofRichRings = fRichRings->GetEntries();
+      int nofRichRings = fRichRings->GetEntriesFast();
       for (int l = 0; l < nofRichRings; l++) {
         CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(l));
         auto NofRingHits  = ring->GetNofHits();
@@ -362,7 +362,7 @@ void CbmRichMCbmAerogelAna::Exec(Option_t* /*option*/) {
 }
 
 void CbmRichMCbmAerogelAna::RichRings() {
-  int nofRichRings = fRichRings->GetEntries();
+  int nofRichRings = fRichRings->GetEntriesFast();
   //fHM->H1("fhNofRichRingsInTimeslice")->Fill(nofRichRings);
   for (int i = 0; i < nofRichRings; i++) {
     CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(i));
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
index 302c048974239bb898d83b819d842ffe94a674da..0014fc8fe4442924fdf760005b50cab8979a2058 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
@@ -1093,7 +1093,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/) {
       CbmEvent* ev = static_cast<CbmEvent*>(fCbmEvent->At(0));
       /*if ((fDigiMan->GetNofDigis(ECbmModuleId::kRich)> 10) &&
              //(fDigiMan->GetNofDigis(ECbmModuleId::kSts) > 30) ||
-             //(fRichRings->GetEntries()> 0) ||
+             //(fRichRings->GetEntriesFast()> 0) ||
              (fDigiMan->GetNofDigis(ECbmModuleId::kTof) > 10)
             )*/
       if (ev != nullptr) {
@@ -1174,7 +1174,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/) {
       fHM->H1("fhRichDigisTimeLogZoom2")->Fill(digi->GetTime());
     }
 
-    int nofRichRings = fRichRings->GetEntries();
+    int nofRichRings = fRichRings->GetEntriesFast();
     for (int i = 0; i < nofRichRings; i++) {
       CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(i));
       fHM->H1("fhRichRingsTimeLog")->Fill(ring->GetTime());
@@ -1218,7 +1218,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/) {
     }
   }
 
-  int nofRichHits = fRichHits->GetEntries();
+  int nofRichHits = fRichHits->GetEntriesFast();
   fHM->H1("fhNofRichHitsInTimeslice")->Fill(nofRichHits);
   fHM->H1("fhHitsInTimeslice")->Fill(fEventNum, nofRichHits);
 
@@ -1302,7 +1302,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/) {
       if (richHit->GetTime() < startTime) {
         startTime = richHit->GetTime(); /*flagRich = 1;*/
       }
-      int nofRichRings2 = fRichRings->GetEntries();
+      int nofRichRings2 = fRichRings->GetEntriesFast();
       for (int l = 0; l < nofRichRings2; l++) {
         CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(l));
         auto NofRingHits  = ring->GetNofHits();
@@ -1770,7 +1770,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/) {
 }
 
 void CbmRichMCbmQaReal::RichRings() {
-  int nofRichRings = fRichRings->GetEntries();
+  int nofRichRings = fRichRings->GetEntriesFast();
   fHM->H1("fhNofRichRingsInTimeslice")->Fill(nofRichRings);
   for (int i = 0; i < nofRichRings; i++) {
     CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(i));
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx
index 178faf1011f62387ef2fbe33fdc00552191f174a..fe2514040147ad8b2c7eb44c8f8f3d302ccfffdb 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx
@@ -300,7 +300,7 @@ void CbmRichMCbmQaRichOnly::Exec(Option_t* /*option*/) {
     }
   }
 
-  int nofRichHits = fRichHits->GetEntries();
+  int nofRichHits = fRichHits->GetEntriesFast();
   for (int iH = 0; iH < nofRichHits; iH++) {
     CbmRichHit* richHit = static_cast<CbmRichHit*>(fRichHits->At(iH));
     fHM->H2("fhRichHitXY")->Fill(richHit->GetX(), richHit->GetY());
@@ -336,7 +336,7 @@ void CbmRichMCbmQaRichOnly::Exec(Option_t* /*option*/) {
                        + (((richHit->GetAddress()) >> 24) & 0xF) * 9;
       pmtHits[pmtId]++;
 
-      int nofRichRings = fRichRings->GetEntries();
+      int nofRichRings = fRichRings->GetEntriesFast();
       for (int l = 0; l < nofRichRings; l++) {
         CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(l));
 
@@ -405,7 +405,7 @@ void CbmRichMCbmQaRichOnly::Exec(Option_t* /*option*/) {
 }
 
 void CbmRichMCbmQaRichOnly::RichRings() {
-  int nofRichRings = fRichRings->GetEntries();
+  int nofRichRings = fRichRings->GetEntriesFast();
   for (int i = 0; i < nofRichRings; i++) {
     CbmRichRing* ring = static_cast<CbmRichRing*>(fRichRings->At(i));
     if (ring == nullptr) continue;
diff --git a/reco/detectors/rich/qa/CbmRichRecoTbQa.cxx b/reco/detectors/rich/qa/CbmRichRecoTbQa.cxx
index c7c7e11f8ebc4d5672c86e878d186a97033cfb06..fea21da2b822858dee012e679a5ebc0c4de1ae9e 100644
--- a/reco/detectors/rich/qa/CbmRichRecoTbQa.cxx
+++ b/reco/detectors/rich/qa/CbmRichRecoTbQa.cxx
@@ -255,8 +255,8 @@ void CbmRichRecoTbQa::Exec(Option_t* /*option*/) {
 
 void CbmRichRecoTbQa::Process() {
   Int_t nofRichDigis = fDigiMan->GetNofDigis(ECbmModuleId::kRich);
-  Int_t nofRichHits  = fRichHits->GetEntries();
-  Int_t nofRichRings = fRichRings->GetEntries();
+  Int_t nofRichHits  = fRichHits->GetEntriesFast();
+  Int_t nofRichRings = fRichRings->GetEntriesFast();
   fHM->H1("fhNofRichDigisPerTS")->Fill(nofRichDigis);
   fHM->H1("fhNofRichHitsPerTS")->Fill(nofRichHits);
   fHM->H1("fhNofRichRingsPerTS")->Fill(nofRichRings);
diff --git a/reco/detectors/tof/CbmTofCalibrator.cxx b/reco/detectors/tof/CbmTofCalibrator.cxx
index 7fd0eab20b04bbc594dcd6e3413cecd016aa9367..55763679ec885659674cbf2382f69a553d276453 100644
--- a/reco/detectors/tof/CbmTofCalibrator.cxx
+++ b/reco/detectors/tof/CbmTofCalibrator.cxx
@@ -267,9 +267,9 @@ void CbmTofCalibrator::FillCalHist(CbmTofTracklet* pTrk, Int_t iOpt, CbmEvent* t
     Int_t iEA  = pTrk->GetTofHitIndex(iHit);
     Int_t iTSA = fTofFindTracks->GetTofHitIndex(iEA);
 
-    if (iTSA > fTofDigiMatchColl->GetEntries()) {
+    if (iTSA > fTofDigiMatchColl->GetEntriesFast()) {
       LOG(error) << " Inconsistent DigiMatches for Hitind " << iTSA
-                 << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntries();
+                 << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntriesFast();
     }
     CbmMatch* digiMatch = (CbmMatch*) fTofDigiMatchColl->At(iTSA);
 
diff --git a/reco/detectors/tof/CbmTofCosmicClusterizer.cxx b/reco/detectors/tof/CbmTofCosmicClusterizer.cxx
index e3c8bb185ee6a5ab93bbf69dca0e4ed3656146c4..4d04e9e0f730c54176fd469a64b698a1a9e462a8 100644
--- a/reco/detectors/tof/CbmTofCosmicClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofCosmicClusterizer.cxx
@@ -291,7 +291,7 @@ void CbmTofCosmicClusterizer::Exec(Option_t* /*option*/) {
   fTofCalDigisColl->Clear("C");
   fTofHitsColl->Clear("C");
   //fTofHitsColl->Delete();  // Computationally costly!, but hopefully safe
-  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntries(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
+  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntriesFast(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
   //fTofDigiMatchColl->Clear("C+L");  // leads to memory leak
   fTofDigiMatchColl->Delete();
 
@@ -1988,7 +1988,7 @@ Bool_t CbmTofCosmicClusterizer::CreateHistos() {
 Bool_t CbmTofCosmicClusterizer::FillHistos() {
   fhClustBuildTime->Fill(fStop.GetSec() - fStart.GetSec()
                          + (fStop.GetNanoSec() - fStart.GetNanoSec()) / 1e9);
-  Int_t iNbTofHits = fTofHitsColl->GetEntries();
+  Int_t iNbTofHits = fTofHitsColl->GetEntriesFast();
   CbmTofHit* pHit;
   //gGeoManager->SetTopVolume( gGeoManager->FindVolumeFast("tof_v14a") );
   gGeoManager->CdTop();
@@ -2178,7 +2178,7 @@ Bool_t CbmTofCosmicClusterizer::FillHistos() {
                iLink += 2) {                             // loop over digis
             CbmLink L0     = digiMatch->GetLink(iLink);  //vDigish.at(ivDigInd);
             Int_t iDigInd0 = L0.GetIndex();
-            if (iDigInd0 < fTofCalDigisColl->GetEntries()) {
+            if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()) {
               CbmTofDigi* pDig0 =
                 (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
               TotSum += pDig0->GetTot();
@@ -2449,11 +2449,11 @@ Bool_t CbmTofCosmicClusterizer::FillHistos() {
       if (TMath::Abs(hitpos_local[1]) > fChannelInfo->GetSizey() * fPosYMaxScal)
         continue;
       LOG(debug1) << " TofDigiMatchColl entries:"
-                  << fTofDigiMatchColl->GetEntries();
+                  << fTofDigiMatchColl->GetEntriesFast();
 
-      if (iHitInd > fTofDigiMatchColl->GetEntries()) {
+      if (iHitInd > fTofDigiMatchColl->GetEntriesFast()) {
         LOG(error) << " Inconsistent DigiMatches for Hitind " << iHitInd
-                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntries();
+                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntriesFast();
       }
 
       CbmMatch* digiMatch = (CbmMatch*) fTofDigiMatchColl->At(iHitInd);
@@ -2488,7 +2488,7 @@ Bool_t CbmTofCosmicClusterizer::FillHistos() {
            iLink++) {                                // loop over digis
         CbmLink L0     = digiMatch->GetLink(iLink);  //vDigish.at(ivDigInd);
         Int_t iDigInd0 = L0.GetIndex();
-        if (iDigInd0 < fTofCalDigisColl->GetEntries()) {
+        if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()) {
           CbmTofDigi* pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
           TotSum += pDig0->GetTot();
         }
@@ -2511,8 +2511,8 @@ Bool_t CbmTofCosmicClusterizer::FillHistos() {
           (digiMatch->GetLink(iLink + 1)).GetIndex();  //vDigish.at(ivDigInd+1);
         //LOG(debug1)<<" " << iDigInd0<<", "<<iDigInd1;
 
-        if (iDigInd0 < fTofCalDigisColl->GetEntries()
-            && iDigInd1 < fTofCalDigisColl->GetEntries()) {
+        if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()
+            && iDigInd1 < fTofCalDigisColl->GetEntriesFast()) {
           CbmTofDigi* pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
           CbmTofDigi* pDig1 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd1));
           if ((Int_t) pDig0->GetType() != iSmType) {
@@ -2876,7 +2876,7 @@ Bool_t CbmTofCosmicClusterizer::FillHistos() {
           LOG(error)
             << "CbmTofCosmicClusterizer::FillHistos: invalid digi index "
             << iDetIndx << " digi0,1" << iDigInd0 << ", " << iDigInd1
-            << " - max:" << fTofCalDigisColl->GetEntries()
+            << " - max:" << fTofCalDigisColl->GetEntriesFast()
             //                       << " in event " << XXX
             ;
         }
@@ -4744,12 +4744,12 @@ Bool_t CbmTofCosmicClusterizer::BuildClusters() {
   }
   fiNevtBuild++;
   LOG(debug) << "CbmTofCosmicClusterizer::BuildClusters from "
-             << fTofDigisColl->GetEntries() << " digis in event "
+             << fTofDigisColl->GetEntriesFast() << " digis in event "
              << fiNevtBuild;
 
   fTRefHits = 0.;
 
-  Int_t iNbTofDigi = fTofDigisColl->GetEntries();
+  Int_t iNbTofDigi = fTofDigisColl->GetEntriesFast();
   if (kTRUE) {
     for (Int_t iDigInd = 0; iDigInd < iNbTofDigi; iDigInd++) {
       CbmTofDigi* pDigi = (CbmTofDigi*) fTofDigisColl->At(iDigInd);
@@ -5172,10 +5172,10 @@ Bool_t CbmTofCosmicClusterizer::BuildClusters() {
     }  // for( Int_t iDigInd = 0; iDigInd < nTofDigi; iDigInd++ )
 
     iNbTofDigi = fTofCalDigisColl
-                   ->GetEntries();  // update because of added duplicted digis
+                   ->GetEntriesFast();  // update because of added duplicted digis
     if (fTofCalDigisColl->IsSortable())
       LOG(debug) << "CbmTofCosmicClusterizer::BuildClusters: Sort "
-                 << fTofCalDigisColl->GetEntries() << " calibrated digis ";
+                 << fTofCalDigisColl->GetEntriesFast() << " calibrated digis ";
     if (iNbTofDigi > 1) {
       fTofCalDigisColl->Sort(
         iNbTofDigi);  // Time order again, in case modified by the calibration
@@ -5925,7 +5925,7 @@ Bool_t CbmTofCosmicClusterizer::BuildClusters() {
                                   iSmType,
                                   iSm,
                                   iRpc,
-                                  fTofHitsColl->GetEntries(),
+                                  fTofHitsColl->GetEntriesFast(),
                                   dLastPosX,
                                   dLastPosY);
             }  // else of if( 1 == fDigiBdfPar->GetChanOrient( iSmType, iRpc ) )
@@ -6096,7 +6096,7 @@ Bool_t CbmTofCosmicClusterizer::MergeClusters() {
     return kFALSE;
   }
   // inspect hits
-  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntries(); iHitInd++) {
+  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntriesFast(); iHitInd++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitsColl->At(iHitInd);
     if (NULL == pHit) continue;
 
@@ -6120,7 +6120,7 @@ Bool_t CbmTofCosmicClusterizer::MergeClusters() {
                          iRpc,
                          iCh,
                          iHitInd);
-      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntries();
+      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntriesFast();
            iHitInd2++) {
         CbmTofHit* pHit2 = (CbmTofHit*) fTofHitsColl->At(iHitInd2);
         if (NULL == pHit2) continue;
@@ -6166,8 +6166,8 @@ Bool_t CbmTofCosmicClusterizer::MergeClusters() {
                   CbmLink L0     = digiMatch->GetLink(iLink);
                   Int_t iDigInd0 = L0.GetIndex();
                   Int_t iDigInd1 = (digiMatch->GetLink(iLink + 1)).GetIndex();
-                  if (iDigInd0 < fTofCalDigisColl->GetEntries()
-                      && iDigInd1 < fTofCalDigisColl->GetEntries()) {
+                  if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()
+                      && iDigInd1 < fTofCalDigisColl->GetEntriesFast()) {
                     CbmTofDigi* pDig0 =
                       (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
                     CbmTofDigi* pDig1 =
@@ -6185,8 +6185,8 @@ Bool_t CbmTofCosmicClusterizer::MergeClusters() {
                   CbmLink L0     = digiMatch2->GetLink(iLink);
                   Int_t iDigInd0 = L0.GetIndex();
                   Int_t iDigInd1 = (digiMatch2->GetLink(iLink + 1)).GetIndex();
-                  if (iDigInd0 < fTofCalDigisColl->GetEntries()
-                      && iDigInd1 < fTofCalDigisColl->GetEntries()) {
+                  if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()
+                      && iDigInd1 < fTofCalDigisColl->GetEntriesFast()) {
                     CbmTofDigi* pDig0 =
                       (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
                     CbmTofDigi* pDig1 =
@@ -6204,7 +6204,7 @@ Bool_t CbmTofCosmicClusterizer::MergeClusters() {
                                    iRpc2,
                                    iCh2,
                                    iHitInd2,
-                                   fTofHitsColl->GetEntries())
+                                   fTofHitsColl->GetEntriesFast())
                            << Form(" DX %6.1f, DY %6.1f, DT %6.1f",
                                    xPos - xPos2,
                                    yPos - yPos2,
@@ -6225,10 +6225,10 @@ Bool_t CbmTofCosmicClusterizer::MergeClusters() {
                 fTofDigiMatchColl->Compress();
                 fTofHitsColl->Compress();
                 LOG(debug) << "MergeClusters: Compress TClonesArrays to "
-                           << fTofHitsColl->GetEntries() << ", "
-                           << fTofDigiMatchColl->GetEntries();
+                           << fTofHitsColl->GetEntriesFast() << ", "
+                           << fTofDigiMatchColl->GetEntriesFast();
                 /*
-                  for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntries(); i++){ // update RefLinks
+                  for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntriesFast(); i++){ // update RefLinks
                      CbmTofHit *pHiti = (CbmTofHit*) fTofHitsColl->At( i );
                     pHiti->SetRefId(i);
                   }
diff --git a/reco/detectors/tof/CbmTofEventClusterizer.cxx b/reco/detectors/tof/CbmTofEventClusterizer.cxx
index 1470ecf86ab62eff44bbb6d38e37581f5520e0c5..c64cda136567af1d37989cfb28e0210e1a6c19a2 100644
--- a/reco/detectors/tof/CbmTofEventClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofEventClusterizer.cxx
@@ -446,7 +446,7 @@ void CbmTofEventClusterizer::ExecEvent(Option_t* /*option*/)
   fTofCalDigiVec->clear();
   fTofHitsColl->Clear("C");
   //fTofHitsColl->Delete();  // Computationally costly!, but hopefully safe
-  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntries(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
+  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntriesFast(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
   //fTofDigiMatchColl->Clear("C+L");  // leads to memory leak
   fTofDigiMatchColl->Delete();
   FairRootFileSink* bla = (FairRootFileSink*) FairRootManager::Instance()->GetSink();
@@ -1714,7 +1714,7 @@ Bool_t CbmTofEventClusterizer::FillHistos()
 
   if (fDutId < 0) return kTRUE;
 
-  Int_t iNbTofHits = fTofHitsColl->GetEntries();
+  Int_t iNbTofHits = fTofHitsColl->GetEntriesFast();
   CbmTofHit* pHit;
   //gGeoManager->SetTopVolume( gGeoManager->FindVolumeFast("tof_v14a") );
   gGeoManager->CdTop();
@@ -1895,7 +1895,7 @@ Bool_t CbmTofEventClusterizer::FillHistos()
           for (Int_t iLink = 0; iLink < digiMatch->GetNofLinks(); iLink += 2) {  // loop over digis
             CbmLink L0      = digiMatch->GetLink(iLink);                         //vDigish.at(ivDigInd);
             UInt_t iDigInd0 = L0.GetIndex();
-            //           if (iDigInd0 < fTofCalDigisColl->GetEntries()){
+            //           if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()){
             if (iDigInd0 < fTofCalDigiVec->size()) {
               //            CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
               CbmTofDigi* pDig0 = &(fTofCalDigiVec->at(iDigInd0));
@@ -2199,11 +2199,11 @@ Bool_t CbmTofEventClusterizer::FillHistos()
       fhRpcCluPositionEvol[iDetIndx]->Fill(dTimeAna, hitpos_local[1]);
       //LOG(info) << "Fill TEvol at " << dTimeAna ;
 
-      LOG(debug1) << " TofDigiMatchColl entries:" << fTofDigiMatchColl->GetEntries();
+      LOG(debug1) << " TofDigiMatchColl entries:" << fTofDigiMatchColl->GetEntriesFast();
 
-      if (iHitInd > fTofDigiMatchColl->GetEntries()) {
+      if (iHitInd > fTofDigiMatchColl->GetEntriesFast()) {
         LOG(error) << " Inconsistent DigiMatches for Hitind " << iHitInd
-                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntries();
+                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntriesFast();
       }
 
       CbmMatch* digiMatch = (CbmMatch*) fTofDigiMatchColl->At(iHitInd);
@@ -2229,7 +2229,7 @@ Bool_t CbmTofEventClusterizer::FillHistos()
       for (Int_t iLink = 0; iLink < digiMatch->GetNofLinks(); iLink++) {  // loop over digis
         CbmLink L0      = digiMatch->GetLink(iLink);                      //vDigish.at(ivDigInd);
         UInt_t iDigInd0 = L0.GetIndex();
-        //         if (iDigInd0 < fTofCalDigisColl->GetEntries()){
+        //         if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()){
         if (iDigInd0 < fTofCalDigiVec->size()) {
           CbmTofDigi* pDig0 = &(fTofCalDigiVec->at(iDigInd0));
           //         CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
@@ -2252,7 +2252,7 @@ Bool_t CbmTofEventClusterizer::FillHistos()
         UInt_t iDigInd1 = (digiMatch->GetLink(iLink + 1)).GetIndex();  //vDigish.at(ivDigInd+1);
         //LOG(debug1)<<" " << iDigInd0<<", "<<iDigInd1;
 
-        //       if (iDigInd0 < fTofCalDigisColl->GetEntries() && iDigInd1 < fTofCalDigisColl->GetEntries()){
+        //       if (iDigInd0 < fTofCalDigisColl->GetEntriesFast() && iDigInd1 < fTofCalDigisColl->GetEntriesFast()){
         if (iDigInd0 < fTofCalDigiVec->size() && iDigInd1 < fTofCalDigiVec->size()) {
           //         CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
           //         CbmTofDigi *pDig1 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd1));
@@ -2493,7 +2493,7 @@ Bool_t CbmTofEventClusterizer::FillHistos()
           LOG(error) << "CbmTofEventClusterizer::FillHistos: invalid digi index " << iDetIndx << " digi0,1" << iDigInd0
                      << ", " << iDigInd1
                      << " - max:"
-                     //                       << fTofCalDigisColl->GetEntries()
+                     //                       << fTofCalDigisColl->GetEntriesFast()
                      << fTofCalDigiVec->size()
             //                       << " in event " << XXX
             ;
@@ -4005,13 +4005,13 @@ Bool_t CbmTofEventClusterizer::BuildClusters()
   }
   fiNevtBuild++;
   LOG(debug) << "Build clusters from "
-             //            <<fTofDigisColl->GetEntries()<<" digis in event "<<fiNevtBuild;
+             //            <<fTofDigisColl->GetEntriesFast()<<" digis in event "<<fiNevtBuild;
              << fTofDigiVec.size() << " digis in event " << fiNevtBuild;
 
   fTRefHits = 0.;
 
   Int_t iNbTofDigi = fTofDigiVec.size();
-  //Int_t iNbTofDigi = fTofDigisColl->GetEntries();
+  //Int_t iNbTofDigi = fTofDigisColl->GetEntriesFast();
   if (iNbTofDigi > 100000) {
     LOG(warning) << "Too many TOF digis in event " << fiNevtBuild;
     return kFALSE;
@@ -4240,7 +4240,7 @@ Bool_t CbmTofEventClusterizer::BuildClusters()
     // Then loop over the digis array and store the Digis in separate vectors for
     // each RPC modules
 
-    //      iNbTofDigi = fTofCalDigisColl->GetEntries();
+    //      iNbTofDigi = fTofCalDigisColl->GetEntriesFast();
     iNbTofDigi = fTofCalDigiVec->size();
     for (Int_t iDigInd = 0; iDigInd < iNbTofDigi; iDigInd++) {
       //         pDigi = (CbmTofDigi*) fTofCalDigisColl->At( iDigInd );
@@ -4325,7 +4325,7 @@ Bool_t CbmTofEventClusterizer::MergeClusters()
     return kFALSE;
   }
   // inspect hits
-  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntries(); iHitInd++) {
+  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntriesFast(); iHitInd++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitsColl->At(iHitInd);
     if (NULL == pHit) continue;
 
@@ -4343,7 +4343,7 @@ Bool_t CbmTofEventClusterizer::MergeClusters()
       Int_t iCh    = CbmTofAddress::GetChannelId(iChId);
       LOG(debug) << "MergeClusters: Check for mergers in "
                  << Form(" SmT %d, Sm %d, Rpc %d, Ch %d - hit %d", iSmType, iSm, iRpc, iCh, iHitInd);
-      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntries(); iHitInd2++) {
+      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntriesFast(); iHitInd2++) {
         CbmTofHit* pHit2 = (CbmTofHit*) fTofHitsColl->At(iHitInd2);
         if (NULL == pHit2) continue;
         Int_t iDetId2  = (pHit2->GetAddress() & DetMask);
@@ -4375,7 +4375,7 @@ Bool_t CbmTofEventClusterizer::MergeClusters()
                   CbmLink L0      = digiMatch->GetLink(iLink);
                   UInt_t iDigInd0 = L0.GetIndex();
                   UInt_t iDigInd1 = (digiMatch->GetLink(iLink + 1)).GetIndex();
-                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntries() && iDigInd1 < fTofCalDigisColl->GetEntries()){
+                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntriesFast() && iDigInd1 < fTofCalDigisColl->GetEntriesFast()){
                   if (iDigInd0 < fTofCalDigiVec->size() && iDigInd1 < fTofCalDigiVec->size()) {
                     //                      CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
                     //                      CbmTofDigi *pDig1 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd1));
@@ -4392,7 +4392,7 @@ Bool_t CbmTofEventClusterizer::MergeClusters()
                   CbmLink L0      = digiMatch2->GetLink(iLink);
                   UInt_t iDigInd0 = L0.GetIndex();
                   UInt_t iDigInd1 = (digiMatch2->GetLink(iLink + 1)).GetIndex();
-                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntries() && iDigInd1 < fTofCalDigisColl->GetEntries()){
+                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntriesFast() && iDigInd1 < fTofCalDigisColl->GetEntriesFast()){
                   if (iDigInd0 < fTofCalDigiVec->size() && iDigInd1 < fTofCalDigiVec->size()) {
                     //                      CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
                     //                      CbmTofDigi *pDig1 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd1));
@@ -4406,7 +4406,7 @@ Bool_t CbmTofEventClusterizer::MergeClusters()
                 }
                 LOG(debug) << "MergeClusters: Found merger in neighbour "
                            << Form(" SmT %d, Sm %d, Rpc %d, Ch %d - hit %d(%d)", iSmType2, iSm2, iRpc2, iCh2, iHitInd2,
-                                   fTofHitsColl->GetEntries())
+                                   fTofHitsColl->GetEntriesFast())
                            << Form(" DX %6.1f, DY %6.1f, DT %6.1f", xPos - xPos2, yPos - yPos2, tof - tof2)
                            << Form(" Tots %6.1f - %6.1f", dTot, dTot2);
                 Double_t dTotSum = dTot + dTot2;
@@ -4423,10 +4423,10 @@ Bool_t CbmTofEventClusterizer::MergeClusters()
                 fTofDigiMatchColl->RemoveAt(iHitInd2);
                 fTofDigiMatchColl->Compress();
                 fTofHitsColl->Compress();
-                LOG(debug) << "MergeClusters: Compress TClonesArrays to " << fTofHitsColl->GetEntries() << ", "
-                           << fTofDigiMatchColl->GetEntries();
+                LOG(debug) << "MergeClusters: Compress TClonesArrays to " << fTofHitsColl->GetEntriesFast() << ", "
+                           << fTofDigiMatchColl->GetEntriesFast();
                 /*
-								 for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntries(); i++){ // update RefLinks
+								 for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntriesFast(); i++){ // update RefLinks
 								 CbmTofHit *pHiti = (CbmTofHit*) fTofHitsColl->At( i );
 								 pHiti->SetRefId(i);
 								 }
@@ -5363,7 +5363,7 @@ Bool_t CbmTofEventClusterizer::BuildHits()
                 fStorDigiInd[iSmType][iSm * iNbRpc + iRpc][iCh].clear();
               }  // for( Int_t iCh = 0; iCh < iNbCh; iCh++ )
               LOG(debug2) << "finished V-RPC"
-                          << Form(" %3d %3d %3d %d %f %fx", iSmType, iSm, iRpc, fTofHitsColl->GetEntries(), dLastPosX,
+                          << Form(" %3d %3d %3d %d %f %fx", iSmType, iSm, iRpc, fTofHitsColl->GetEntriesFast(), dLastPosX,
                                   dLastPosY);
             }  // else of if( 1 == fDigiBdfPar->GetChanOrient( iSmType, iRpc ) )
           }    // if( 0 == iChType)
@@ -5682,10 +5682,10 @@ Bool_t CbmTofEventClusterizer::CalibRawDigis()
 
   }  // for( Int_t iDigInd = 0; iDigInd < nTofDigi; iDigInd++ )
 
-  //  iNbTofDigi = fTofCalDigisColl->GetEntries();  // update because of added duplicted digis
+  //  iNbTofDigi = fTofCalDigisColl->GetEntriesFast();  // update because of added duplicted digis
   iNbTofDigi = fTofCalDigiVec->size();  // update because of added duplicted digis
   //if(fTofCalDigisColl->IsSortable())
-  //    LOG(debug)<<"CbmTofEventClusterizer::BuildClusters: Sort "<<fTofCalDigisColl->GetEntries()<<" calibrated digis ";
+  //    LOG(debug)<<"CbmTofEventClusterizer::BuildClusters: Sort "<<fTofCalDigisColl->GetEntriesFast()<<" calibrated digis ";
   LOG(debug) << "CbmTofEventClusterizer::BuildClusters: Sort " << fTofCalDigiVec->size() << " calibrated digis ";
   if (iNbTofDigi > 1) {
     std::vector<CbmTofDigi>* tTofCalDigiVec = nullptr;
diff --git a/reco/detectors/tof/CbmTofExtendTracks.cxx b/reco/detectors/tof/CbmTofExtendTracks.cxx
index 3bce5c8e28df13a3363eb9fe291e1317b674f3eb..edeedb7166762a27b5f5cefc58715c3c26340b99 100644
--- a/reco/detectors/tof/CbmTofExtendTracks.cxx
+++ b/reco/detectors/tof/CbmTofExtendTracks.cxx
@@ -1178,7 +1178,7 @@ void CbmTofExtendTracks::FindVertex()
   fVTXNorm          = 0.;
   Int_t fMinNofHits = 3;
 
-  for (Int_t iTrk = 0; iTrk < fTofTrackArrayIn->GetEntries(); iTrk++) {
+  for (Int_t iTrk = 0; iTrk < fTofTrackArrayIn->GetEntriesFast(); iTrk++) {
     CbmTofTracklet* pTrk = (CbmTofTracklet*) fTofTrackArrayIn->At(iTrk);
     if (NULL == pTrk) continue;
     Double_t w = pTrk->GetNofHits();
diff --git a/reco/detectors/tof/CbmTofFindTracks.cxx b/reco/detectors/tof/CbmTofFindTracks.cxx
index f505b0aef78794438cbd9e1395ad7ed77c645e9a..2058d16a03d70ad1593e5bf73edb3ffd07c3be2e 100644
--- a/reco/detectors/tof/CbmTofFindTracks.cxx
+++ b/reco/detectors/tof/CbmTofFindTracks.cxx
@@ -1117,7 +1117,7 @@ void CbmTofFindTracks::Exec(Option_t* opt) {
       ExecFind(opt, tEvent);
 
       // --- In event-by-event mode: copy tracks to output array and register them to event
-      for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+      for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
         CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
         new ((*fTrackArrayOut)[iNbTrks]) CbmTofTracklet(*pTrk);
         pTrk = (CbmTofTracklet*) fTrackArrayOut->At(iNbTrks);
@@ -1148,7 +1148,7 @@ void CbmTofFindTracks::ExecFind(Option_t* /*opt*/, CbmEvent* tEvent) {
   if (NULL != fTrackArray) fTrackArray->Delete();  // reset
 
   // recalibrate hits and count trackable hits
-  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntries(); iHit++) {
+  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntriesFast(); iHit++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitArray->At(iHit);
     Int_t iDetId    = (pHit->GetAddress() & DetMask);
 
@@ -1269,7 +1269,7 @@ void CbmTofFindTracks::ExecFind(Option_t* /*opt*/, CbmEvent* tEvent) {
 
   CheckMaxHMul();
   // resort Hit array with respect to time, FIXME danger: links to digis become  invalid (???, check!!!)
-  // fTofHitArray->Sort(fTofHitArray->GetEntries());  // feature not available
+  // fTofHitArray->Sort(fTofHitArray->GetEntriesFast());  // feature not available
 
   if (fInspectEvent && fNTofStations > 1) {
     fStart.Set();
@@ -1811,7 +1811,7 @@ void CbmTofFindTracks::FindVertex() {
   fVTX_Z   = 0.;
   fVTXNorm = 0.;
 
-  for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+  for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
     CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
     if (NULL == pTrk) continue;
     Double_t w = pTrk->GetNofHits();
@@ -1850,7 +1850,7 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
   // Locate reference ("beam counter") hit
   CbmTofHit* pRefHit  = NULL;
   Double_t RefMinTime = 1.E300;
-  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntries();
+  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntriesFast();
        iHit++) {  // loop over Hits
     CbmTofHit* pHit = (CbmTofHit*) fTofHitArray->At(iHit);
     Int_t iAddr     = (pHit->GetAddress() & DetMask);
@@ -1873,10 +1873,10 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
   HMul.resize(fNTofStations + 1);
   //  HMul.clear();
 
-  fhTrklMul->Fill(fTrackArray->GetEntries());
+  fhTrklMul->Fill(fTrackArray->GetEntriesFast());
 
   Int_t iTMul = 0;
-  for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+  for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
     CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
     if (NULL == pTrk) continue;
     if (pTrk->GetNofHits() > fNTofStations) {
@@ -2332,7 +2332,7 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
               vhXY_MissedStation[iSt]->Fill(hitpos_local[0], hitpos_local[1]);
 
               // correlation analysis
-              for (Int_t iTrk1 = iTrk + 1; iTrk1 < fTrackArray->GetEntries();
+              for (Int_t iTrk1 = iTrk + 1; iTrk1 < fTrackArray->GetEntriesFast();
                    iTrk1++) {
                 CbmTofTracklet* pTrk1 =
                   (CbmTofTracklet*) fTrackArray->At(iTrk1);
@@ -2372,8 +2372,8 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
   if (HMul.size() > 5)
     fhTrklMul3D->Fill(
       HMul[fNTofStations], HMul[fNTofStations - 1], HMul[fNTofStations - 2]);
-  fhTrklMulNhits->Fill(fTofHitArray->GetEntries(), iTMul);
-  fhTrackingTimeNhits->Fill(fTofHitArray->GetEntries(), fdTrackingTime);
+  fhTrklMulNhits->Fill(fTofHitArray->GetEntriesFast(), iTMul);
+  fhTrackingTimeNhits->Fill(fTofHitArray->GetEntriesFast(), fdTrackingTime);
 
   // print info about special events
   if (0)
@@ -2382,20 +2382,20 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
         //if (HMul[fNTofStations]>0)
         //LOG(info)<<"Found "<<HMul[fNTofStations]<<" max length tracklets in event "<<fiEvent
         LOG(info) << "Found " << HMul[6] << " max length tracklets in event "
-                  << fiEvent << " within " << fTofHitArray->GetEntries()
+                  << fiEvent << " within " << fTofHitArray->GetEntriesFast()
                   << " hits ";
-        for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+        for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
           CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
           if (NULL == pTrk) continue;
           pTrk->PrintInfo();
         }
       }
   if (1)
-    if (fTrackArray->GetEntries() > 25) {  // temporary
+    if (fTrackArray->GetEntriesFast() > 25) {  // temporary
       LOG(info) << "Found high track multiplicity of "
-                << fTrackArray->GetEntries() << " in event " << fiEvent
-                << " from " << fTofHitArray->GetEntries() << " hits ";
-      for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+                << fTrackArray->GetEntriesFast() << " in event " << fiEvent
+                << " from " << fTofHitArray->GetEntriesFast() << " hits ";
+      for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
         CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
         if (NULL == pTrk) continue;
         pTrk->PrintInfo();
@@ -2406,15 +2406,15 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
     LOG(debug) << Form(
       "CbmTofFindTracks::FillHistograms NTrkl %d(%d) in event %d",
       iTMul,
-      fTrackArray->GetEntries(),
+      fTrackArray->GetEntriesFast(),
       fiEvent);
-    for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+    for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
       CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
       if (NULL == pTrk) continue;
       if (
         pTrk->GetNofHits()
         > fMinNofHits) {  // for further analysis request min # of matched hits
-        for (Int_t iTrk1 = iTrk + 1; iTrk1 < fTrackArray->GetEntries();
+        for (Int_t iTrk1 = iTrk + 1; iTrk1 < fTrackArray->GetEntriesFast();
              iTrk1++) {
           CbmTofTracklet* pTrk1 = (CbmTofTracklet*) fTrackArray->At(iTrk1);
           if (NULL == pTrk1) continue;
@@ -2437,7 +2437,7 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
     if (HMul[uHMul] > 0) { fhTrklHMul->Fill(uHMul, HMul[uHMul]); }
   }
 
-  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntries();
+  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntriesFast();
        iHit++) {  // loop over Hits
     CbmTofHit* pHit = (CbmTofHit*) fTofHitArray->At(iHit);
     //    Int_t iSmType = CbmTofAddress::GetSmType( pHit->GetAddress() & DetMask ); (FU) not used
@@ -2451,7 +2451,7 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
   fhVTXNorm->Fill(fVTXNorm);
   if (fVTXNorm > 0.) {
     fhVTX_XY0->Fill(fVTX_X, fVTX_Y);
-    for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+    for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
       CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
       if (NULL == pTrk) continue;
       if (Double_t w = pTrk->GetNofHits() > (Double_t) fMinNofHits) {
@@ -2465,7 +2465,7 @@ void CbmTofFindTracks::FillHistograms(CbmEvent* tEvent) {
     }
   }
   if (0 == fMapStationRpcId[0]) {  // Generated Pseudo TofHit at origin
-    fTofHitArray->RemoveAt(fTofHitArray->GetEntries() - 1);  // remove added hit
+    fTofHitArray->RemoveAt(fTofHitArray->GetEntriesFast() - 1);  // remove added hit
   }
 }
 
@@ -2577,7 +2577,7 @@ void CbmTofFindTracks::ResetStationsFired() {
 void CbmTofFindTracks::FillUHits() {
   // collect unused hits in active tracking stations
   Int_t iNbUHits = 0;
-  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntries(); iHit++) {
+  for (Int_t iHit = 0; iHit < fTofHitArray->GetEntriesFast(); iHit++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitArray->At(iHit);
     Int_t iAddr     = (pHit->GetAddress() & DetMask);
     if (pHit->GetFlag() < 100. && GetStationOfAddr(iAddr) < fNTofStations) {
@@ -2591,7 +2591,7 @@ Bool_t CbmTofFindTracks::CheckHit2Track(CbmTofHit* pHit) {
   Int_t iAddr = (pHit->GetAddress() & DetMask);
   Int_t iSt   = GetStationOfAddr(iAddr);
   if (iSt < 0 || iSt >= GetNofStations()) return kFALSE;
-  for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntries(); iTrk++) {
+  for (Int_t iTrk = 0; iTrk < fTrackArray->GetEntriesFast(); iTrk++) {
     CbmTofTracklet* pTrk = (CbmTofTracklet*) fTrackArray->At(iTrk);
     if (NULL == pTrk) continue;
     Double_t dDX = pHit->GetX() - pTrk->GetFitX(pHit->GetZ());
diff --git a/reco/detectors/tof/CbmTofHitMaker.cxx b/reco/detectors/tof/CbmTofHitMaker.cxx
index 88e0a5b333f9549f5bd029b73679532cdab9c7f7..cecf3d9b6dcc0ebd4ccbc53a01744b11e0f1fb42 100644
--- a/reco/detectors/tof/CbmTofHitMaker.cxx
+++ b/reco/detectors/tof/CbmTofHitMaker.cxx
@@ -412,7 +412,7 @@ void CbmTofHitMaker::ExecEvent(Option_t* /*option*/) {
   fTofCalDigiVec->clear();
   fTofHitsColl->Clear("C");
   //fTofHitsColl->Delete();  // Computationally costly!, but hopefully safe
-  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntries(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
+  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntriesFast(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
   //fTofDigiMatchColl->Clear("C+L");  // leads to memory leak
   fTofDigiMatchColl->Delete();
   FairRootFileSink* bla =
@@ -1142,13 +1142,13 @@ Bool_t CbmTofHitMaker::BuildClusters() {
   fiNevtBuild++;
   LOG(debug)
     << "Build clusters from "
-    //            <<fTofDigisColl->GetEntries()<<" digis in event "<<fiNevtBuild;
+    //            <<fTofDigisColl->GetEntriesFast()<<" digis in event "<<fiNevtBuild;
     << fTofDigiVec.size() << " digis in event " << fiNevtBuild;
 
   fTRefHits = 0.;
 
   Int_t iNbTofDigi = fTofDigiVec.size();
-  //Int_t iNbTofDigi = fTofDigisColl->GetEntries();
+  //Int_t iNbTofDigi = fTofDigisColl->GetEntriesFast();
   if (iNbTofDigi > 100000) {
     LOG(warning) << "Too many digis in event " << fiNevtBuild;
     return kFALSE;
@@ -1178,7 +1178,7 @@ Bool_t CbmTofHitMaker::BuildClusters() {
       }
     }
     iNbTofDigi = fTofDigiVec.size();
-    //iNbTofDigi = fTofDigisColl->GetEntries(); // Update
+    //iNbTofDigi = fTofDigisColl->GetEntriesFast(); // Update
   }
 
   if (kTRUE) {
@@ -1237,7 +1237,7 @@ Bool_t CbmTofHitMaker::BuildClusters() {
     // Then loop over the digis array and store the Digis in separate vectors for
     // each RPC modules
 
-    //      iNbTofDigi = fTofCalDigisColl->GetEntries();
+    //      iNbTofDigi = fTofCalDigisColl->GetEntriesFast();
     iNbTofDigi = fTofCalDigiVec->size();
     for (Int_t iDigInd = 0; iDigInd < iNbTofDigi; iDigInd++) {
       //         pDigi = (CbmTofDigi*) fTofCalDigisColl->At( iDigInd );
@@ -1347,7 +1347,7 @@ Bool_t CbmTofHitMaker::MergeClusters() {
     return kFALSE;
   }
   // inspect hits
-  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntries(); iHitInd++) {
+  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntriesFast(); iHitInd++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitsColl->At(iHitInd);
     if (NULL == pHit) continue;
 
@@ -1371,7 +1371,7 @@ Bool_t CbmTofHitMaker::MergeClusters() {
                          iRpc,
                          iCh,
                          iHitInd);
-      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntries();
+      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntriesFast();
            iHitInd2++) {
         CbmTofHit* pHit2 = (CbmTofHit*) fTofHitsColl->At(iHitInd2);
         if (NULL == pHit2) continue;
@@ -1416,7 +1416,7 @@ Bool_t CbmTofHitMaker::MergeClusters() {
                   CbmLink L0      = digiMatch->GetLink(iLink);
                   UInt_t iDigInd0 = L0.GetIndex();
                   UInt_t iDigInd1 = (digiMatch->GetLink(iLink + 1)).GetIndex();
-                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntries() && iDigInd1 < fTofCalDigisColl->GetEntries()){
+                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntriesFast() && iDigInd1 < fTofCalDigisColl->GetEntriesFast()){
                   if (iDigInd0 < fTofCalDigiVec->size()
                       && iDigInd1 < fTofCalDigiVec->size()) {
                     //                      CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
@@ -1436,7 +1436,7 @@ Bool_t CbmTofHitMaker::MergeClusters() {
                   CbmLink L0      = digiMatch2->GetLink(iLink);
                   UInt_t iDigInd0 = L0.GetIndex();
                   UInt_t iDigInd1 = (digiMatch2->GetLink(iLink + 1)).GetIndex();
-                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntries() && iDigInd1 < fTofCalDigisColl->GetEntries()){
+                  //                    if (iDigInd0 < fTofCalDigisColl->GetEntriesFast() && iDigInd1 < fTofCalDigisColl->GetEntriesFast()){
                   if (iDigInd0 < fTofCalDigiVec->size()
                       && iDigInd1 < fTofCalDigiVec->size()) {
                     //                      CbmTofDigi *pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
@@ -1462,7 +1462,7 @@ Bool_t CbmTofHitMaker::MergeClusters() {
                                    iRpc2,
                                    iCh2,
                                    iHitInd2,
-                                   fTofHitsColl->GetEntries())
+                                   fTofHitsColl->GetEntriesFast())
                            << Form(" DX %6.1f, DY %6.1f, DT %6.1f",
                                    xPos - xPos2,
                                    yPos - yPos2,
@@ -1483,10 +1483,10 @@ Bool_t CbmTofHitMaker::MergeClusters() {
                 fTofDigiMatchColl->Compress();
                 fTofHitsColl->Compress();
                 LOG(debug) << "MergeClusters: Compress TClonesArrays to "
-                           << fTofHitsColl->GetEntries() << ", "
-                           << fTofDigiMatchColl->GetEntries();
+                           << fTofHitsColl->GetEntriesFast() << ", "
+                           << fTofDigiMatchColl->GetEntriesFast();
                 /*
-								 for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntries(); i++){ // update RefLinks
+								 for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntriesFast(); i++){ // update RefLinks
 								 CbmTofHit *pHiti = (CbmTofHit*) fTofHitsColl->At( i );
 								 pHiti->SetRefId(i);
 								 }
@@ -2735,7 +2735,7 @@ Bool_t CbmTofHitMaker::BuildHits() {
                                   iSmType,
                                   iSm,
                                   iRpc,
-                                  fTofHitsColl->GetEntries(),
+                                  fTofHitsColl->GetEntriesFast(),
                                   dLastPosX,
                                   dLastPosY);
             }  // else of if( 1 == fDigiBdfPar->GetChanOrient( iSmType, iRpc ) )
@@ -3149,11 +3149,11 @@ Bool_t CbmTofHitMaker::CalibRawDigis() {
 
   }  // for( Int_t iDigInd = 0; iDigInd < nTofDigi; iDigInd++ )
 
-  //  iNbTofDigi = fTofCalDigisColl->GetEntries();  // update because of added duplicted digis
+  //  iNbTofDigi = fTofCalDigisColl->GetEntriesFast();  // update because of added duplicted digis
   iNbTofDigi =
     fTofCalDigiVec->size();  // update because of added duplicted digis
   //if(fTofCalDigisColl->IsSortable())
-  //    LOG(debug)<<"CbmTofHitMaker::BuildClusters: Sort "<<fTofCalDigisColl->GetEntries()<<" calibrated digis ";
+  //    LOG(debug)<<"CbmTofHitMaker::BuildClusters: Sort "<<fTofCalDigisColl->GetEntriesFast()<<" calibrated digis ";
   LOG(debug) << "CbmTofHitMaker::BuildClusters: Sort " << fTofCalDigiVec->size()
              << " calibrated digis ";
   if (iNbTofDigi > 1) {
diff --git a/reco/detectors/tof/CbmTofSimpClusterizer.cxx b/reco/detectors/tof/CbmTofSimpClusterizer.cxx
index 26f22f20dc13a9f3b8946ec0055d2e02db1883f4..122c616e04dadd52fcd159edbb2716973c1c910c 100644
--- a/reco/detectors/tof/CbmTofSimpClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofSimpClusterizer.cxx
@@ -1038,10 +1038,10 @@ Bool_t CbmTofSimpClusterizer::CreateHistos() {
 Bool_t CbmTofSimpClusterizer::FillHistos() {
   fhClustBuildTime->Fill(fStop.GetSec() - fStart.GetSec()
                          + (fStop.GetNanoSec() - fStart.GetNanoSec()) / 1e9);
-  Int_t iNbTofHits = fTofHitsColl->GetEntries();
+  Int_t iNbTofHits = fTofHitsColl->GetEntriesFast();
 
   if (fbMcTrkMonitor && fMcTracksColl) {
-    Int_t iNbTracks = fMcTracksColl->GetEntries();
+    Int_t iNbTracks = fMcTracksColl->GetEntriesFast();
 
     // Trakcs Info
     Int_t iNbTofTracks     = 0;
@@ -2017,7 +2017,7 @@ Bool_t CbmTofSimpClusterizer::BuildClusters() {
                         iSmType,
                         iSm,
                         iRpc,
-                        fTofHitsColl->GetEntries());
+                        fTofHitsColl->GetEntriesFast());
             }  // else of if( 1 == fDigiBdfPar->GetChanOrient( iSmType, iRpc ) )
           }    // if( 0 == iChType)
           else {
diff --git a/reco/detectors/tof/CbmTofTBClusterizer.cxx b/reco/detectors/tof/CbmTofTBClusterizer.cxx
index 721bf61d20c8b1cb8d006add6dcbd6e1e8dc5af5..c121f1a4062c3d2996b03f59dfdc7ee9360a6ec5 100644
--- a/reco/detectors/tof/CbmTofTBClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofTBClusterizer.cxx
@@ -411,15 +411,15 @@ void CbmTofTBClusterizer::Exec(Option_t* option) {
   Double_t dMaxPairTimeDist  = 3.2;
   Double_t dMaxClustTimeDist = 0.2;
   Double_t dMaxSpaceDist     = fDigiBdfPar->GetMaxDistAlongCh();
-  Int_t iNbTofDigi           = fTofDigis->GetEntries();
+  Int_t iNbTofDigi           = fTofDigis->GetEntriesFast();
 
   LOG(debug) << GetName() << ": Input " << iInputNr << ", event " << iEventNr
              << ", event time " << dEventTime << " ns"
              << ", TOF digis: " << iNbTofDigi;
   /*map<pair<Int_t, Int_t>, list<Int_t> > tofPointDigiInds;
-
-   Int_t nofTofPoints = fTofPoints->GetEntries();
-
+   
+   Int_t nofTofPoints = fTofPoints->GetEntriesFast();
+   
    for(Int_t iDigInd = 0; iDigInd < iNbTofDigi; ++iDigInd)
    {
       CbmTofDigiExp* pDigi = static_cast<CbmTofDigiExp*> (fTofDigis->At(iDigInd));
diff --git a/reco/detectors/tof/CbmTofTestBeamClusterizer.cxx b/reco/detectors/tof/CbmTofTestBeamClusterizer.cxx
index 8a8c039a49108d8e0f68ef183fca1fe704ab44da..600bfa511b7479168b2a1506277dcdc2c65c03d2 100644
--- a/reco/detectors/tof/CbmTofTestBeamClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofTestBeamClusterizer.cxx
@@ -310,7 +310,7 @@ void CbmTofTestBeamClusterizer::Exec(Option_t* /*option*/) {
   fTofCalDigisColl->Delete();
   fTofHitsColl->Clear("C");
   //fTofHitsColl->Delete();  // Computationally costly!, but hopefully safe
-  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntries(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
+  //for (Int_t i=0; i<fTofDigiMatchColl->GetEntriesFast(); i++) ((CbmMatch *)(fTofDigiMatchColl->At(i)))->ClearLinks();  // FIXME, try to tamper memory leak (did not help)
   //fTofDigiMatchColl->Clear("C+L");  // leads to memory leak
   fTofDigiMatchColl->Delete();
 
@@ -2006,7 +2006,7 @@ Bool_t CbmTofTestBeamClusterizer::CreateHistos() {
 Bool_t CbmTofTestBeamClusterizer::FillHistos() {
   fhClustBuildTime->Fill(fStop.GetSec() - fStart.GetSec()
                          + (fStop.GetNanoSec() - fStart.GetNanoSec()) / 1e9);
-  Int_t iNbTofHits = fTofHitsColl->GetEntries();
+  Int_t iNbTofHits = fTofHitsColl->GetEntriesFast();
   CbmTofHit* pHit;
   //gGeoManager->SetTopVolume( gGeoManager->FindVolumeFast("tof_v14a") );
   gGeoManager->CdTop();
@@ -2198,7 +2198,7 @@ Bool_t CbmTofTestBeamClusterizer::FillHistos() {
                iLink += 2) {                             // loop over digis
             CbmLink L0     = digiMatch->GetLink(iLink);  //vDigish.at(ivDigInd);
             Int_t iDigInd0 = L0.GetIndex();
-            if (iDigInd0 < fTofCalDigisColl->GetEntries()) {
+            if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()) {
               CbmTofDigi* pDig0 =
                 (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
               TotSum += pDig0->GetTot();
@@ -2504,11 +2504,11 @@ Bool_t CbmTofTestBeamClusterizer::FillHistos() {
       if (TMath::Abs(hitpos_local[1]) > fChannelInfo->GetSizey() * fPosYMaxScal)
         continue;
       LOG(debug1) << " TofDigiMatchColl entries:"
-                  << fTofDigiMatchColl->GetEntries();
+                  << fTofDigiMatchColl->GetEntriesFast();
 
-      if (iHitInd > fTofDigiMatchColl->GetEntries()) {
+      if (iHitInd > fTofDigiMatchColl->GetEntriesFast()) {
         LOG(error) << " Inconsistent DigiMatches for Hitind " << iHitInd
-                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntries();
+                   << ", TClonesArraySize: " << fTofDigiMatchColl->GetEntriesFast();
       }
 
       CbmMatch* digiMatch = (CbmMatch*) fTofDigiMatchColl->At(iHitInd);
@@ -2543,7 +2543,7 @@ Bool_t CbmTofTestBeamClusterizer::FillHistos() {
            iLink++) {                                // loop over digis
         CbmLink L0     = digiMatch->GetLink(iLink);  //vDigish.at(ivDigInd);
         Int_t iDigInd0 = L0.GetIndex();
-        if (iDigInd0 < fTofCalDigisColl->GetEntries()) {
+        if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()) {
           CbmTofDigi* pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
           TotSum += pDig0->GetTot();
         }
@@ -2566,8 +2566,8 @@ Bool_t CbmTofTestBeamClusterizer::FillHistos() {
           (digiMatch->GetLink(iLink + 1)).GetIndex();  //vDigish.at(ivDigInd+1);
         //LOG(debug1)<<" " << iDigInd0<<", "<<iDigInd1;
 
-        if (iDigInd0 < fTofCalDigisColl->GetEntries()
-            && iDigInd1 < fTofCalDigisColl->GetEntries()) {
+        if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()
+            && iDigInd1 < fTofCalDigisColl->GetEntriesFast()) {
           CbmTofDigi* pDig0 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
           CbmTofDigi* pDig1 = (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd1));
           if ((Int_t) pDig0->GetType() != iSmType) {
@@ -2920,7 +2920,7 @@ Bool_t CbmTofTestBeamClusterizer::FillHistos() {
           LOG(error)
             << "CbmTofTestBeamClusterizer::FillHistos: invalid digi index "
             << iDetIndx << " digi0,1" << iDigInd0 << ", " << iDigInd1
-            << " - max:" << fTofCalDigisColl->GetEntries()
+            << " - max:" << fTofCalDigisColl->GetEntriesFast()
             //                       << " in event " << XXX
             ;
         }
@@ -4756,12 +4756,12 @@ Bool_t CbmTofTestBeamClusterizer::BuildClusters() {
   }
   fiNevtBuild++;
   LOG(debug) << "CbmTofTestBeamClusterizer::BuildClusters from "
-             << fTofDigisColl->GetEntries() << " digis in event "
+             << fTofDigisColl->GetEntriesFast() << " digis in event "
              << fiNevtBuild;
 
   fTRefHits = 0.;
 
-  Int_t iNbTofDigi = fTofDigisColl->GetEntries();
+  Int_t iNbTofDigi = fTofDigisColl->GetEntriesFast();
   if (kTRUE) {
     for (Int_t iDigInd = 0; iDigInd < iNbTofDigi; iDigInd++) {
       CbmTofDigi* pDigi = (CbmTofDigi*) fTofDigisColl->At(iDigInd);
@@ -5170,10 +5170,10 @@ Bool_t CbmTofTestBeamClusterizer::BuildClusters() {
     }  // for( Int_t iDigInd = 0; iDigInd < nTofDigi; iDigInd++ )
 
     iNbTofDigi = fTofCalDigisColl
-                   ->GetEntries();  // update because of added duplicted digis
+                   ->GetEntriesFast();  // update because of added duplicted digis
     if (fTofCalDigisColl->IsSortable())
       LOG(debug) << "CbmTofTestBeamClusterizer::BuildClusters: Sort "
-                 << fTofCalDigisColl->GetEntries() << " calibrated digis ";
+                 << fTofCalDigisColl->GetEntriesFast() << " calibrated digis ";
     if (iNbTofDigi > 1) {
       fTofCalDigisColl->Sort(
         iNbTofDigi);  // Time order again, in case modified by the calibration
@@ -5962,7 +5962,7 @@ Bool_t CbmTofTestBeamClusterizer::BuildClusters() {
                                   iSmType,
                                   iSm,
                                   iRpc,
-                                  fTofHitsColl->GetEntries(),
+                                  fTofHitsColl->GetEntriesFast(),
                                   dLastPosX,
                                   dLastPosY);
             }  // else of if( 1 == fDigiBdfPar->GetChanOrient( iSmType, iRpc ) )
@@ -6148,7 +6148,7 @@ Bool_t CbmTofTestBeamClusterizer::MergeClusters() {
     return kFALSE;
   }
   // inspect hits
-  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntries(); iHitInd++) {
+  for (Int_t iHitInd = 0; iHitInd < fTofHitsColl->GetEntriesFast(); iHitInd++) {
     CbmTofHit* pHit = (CbmTofHit*) fTofHitsColl->At(iHitInd);
     if (NULL == pHit) continue;
 
@@ -6172,7 +6172,7 @@ Bool_t CbmTofTestBeamClusterizer::MergeClusters() {
                          iRpc,
                          iCh,
                          iHitInd);
-      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntries();
+      for (Int_t iHitInd2 = iHitInd + 1; iHitInd2 < fTofHitsColl->GetEntriesFast();
            iHitInd2++) {
         CbmTofHit* pHit2 = (CbmTofHit*) fTofHitsColl->At(iHitInd2);
         if (NULL == pHit2) continue;
@@ -6218,8 +6218,8 @@ Bool_t CbmTofTestBeamClusterizer::MergeClusters() {
                   CbmLink L0     = digiMatch->GetLink(iLink);
                   Int_t iDigInd0 = L0.GetIndex();
                   Int_t iDigInd1 = (digiMatch->GetLink(iLink + 1)).GetIndex();
-                  if (iDigInd0 < fTofCalDigisColl->GetEntries()
-                      && iDigInd1 < fTofCalDigisColl->GetEntries()) {
+                  if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()
+                      && iDigInd1 < fTofCalDigisColl->GetEntriesFast()) {
                     CbmTofDigi* pDig0 =
                       (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
                     CbmTofDigi* pDig1 =
@@ -6237,8 +6237,8 @@ Bool_t CbmTofTestBeamClusterizer::MergeClusters() {
                   CbmLink L0     = digiMatch2->GetLink(iLink);
                   Int_t iDigInd0 = L0.GetIndex();
                   Int_t iDigInd1 = (digiMatch2->GetLink(iLink + 1)).GetIndex();
-                  if (iDigInd0 < fTofCalDigisColl->GetEntries()
-                      && iDigInd1 < fTofCalDigisColl->GetEntries()) {
+                  if (iDigInd0 < fTofCalDigisColl->GetEntriesFast()
+                      && iDigInd1 < fTofCalDigisColl->GetEntriesFast()) {
                     CbmTofDigi* pDig0 =
                       (CbmTofDigi*) (fTofCalDigisColl->At(iDigInd0));
                     CbmTofDigi* pDig1 =
@@ -6262,7 +6262,7 @@ Bool_t CbmTofTestBeamClusterizer::MergeClusters() {
                                    iRpc2,
                                    iCh2,
                                    iHitInd2,
-                                   fTofHitsColl->GetEntries())
+                                   fTofHitsColl->GetEntriesFast())
                            << Form(" DX %6.1f, DY %6.1f, DT %6.1f",
                                    xPos - xPos2,
                                    yPos - yPos2,
@@ -6283,10 +6283,10 @@ Bool_t CbmTofTestBeamClusterizer::MergeClusters() {
                 fTofDigiMatchColl->Compress();
                 fTofHitsColl->Compress();
                 LOG(debug) << "MergeClusters: Compress TClonesArrays to "
-                           << fTofHitsColl->GetEntries() << ", "
-                           << fTofDigiMatchColl->GetEntries();
+                           << fTofHitsColl->GetEntriesFast() << ", "
+                           << fTofDigiMatchColl->GetEntriesFast();
                 /*
-                  for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntries(); i++){ // update RefLinks
+                  for(Int_t i=iHitInd2; i<fTofHitsColl->GetEntriesFast(); i++){ // update RefLinks
                      CbmTofHit *pHiti = (CbmTofHit*) fTofHitsColl->At( i );
                     pHiti->SetRefId(i);
                   }
diff --git a/reco/detectors/tof/CbmTofTrackFinderNN.cxx b/reco/detectors/tof/CbmTofTrackFinderNN.cxx
index e1167e0abf136a4ea1db063762354a3f61ec23a7..f50a05335d14fc6d63b059b305eced5cab0537c1 100644
--- a/reco/detectors/tof/CbmTofTrackFinderNN.cxx
+++ b/reco/detectors/tof/CbmTofTrackFinderNN.cxx
@@ -145,7 +145,7 @@ Int_t CbmTofTrackFinderNN::DoFind(TClonesArray* fTofHits,
     const TVector3 hitPosErr(0.5, 0.5, 0.5);  // initialize fake hit error
     const Double_t dTime0 = 0.;               // FIXME
 
-    Int_t iNbHits = fHits->GetEntries();
+    Int_t iNbHits = fHits->GetEntriesFast();
     /*CbmTofHit *pHit0 =*/new ((*fHits)[iNbHits]) CbmTofHit(
       iDetId,
       hitPos,
@@ -159,12 +159,12 @@ Int_t CbmTofTrackFinderNN::DoFind(TClonesArray* fTofHits,
       << iNbHits << Form(", DetId 0x%08x", iDetId);
   }
 
-  //  fvTrkMap.resize(fHits->GetEntries());
-  fvTrkVec.resize(fHits->GetEntries());
-  LOG(debug2) << "<I> TrkMap/Vec resized for " << fHits->GetEntries()
+  //  fvTrkMap.resize(fHits->GetEntriesFast());
+  fvTrkVec.resize(fHits->GetEntriesFast());
+  LOG(debug2) << "<I> TrkMap/Vec resized for " << fHits->GetEntriesFast()
               << " entries ";
-  //  for (Int_t iHit=0; iHit<fHits->GetEntries(); iHit++) { fvTrkMap[iHit].clear();}
-  for (Int_t iHit = 0; iHit < fHits->GetEntries(); iHit++) {
+  //  for (Int_t iHit=0; iHit<fHits->GetEntriesFast(); iHit++) { fvTrkMap[iHit].clear();}
+  for (Int_t iHit = 0; iHit < fHits->GetEntriesFast(); iHit++) {
     fvTrkVec[iHit].clear();
   }
 
@@ -181,7 +181,7 @@ Int_t CbmTofTrackFinderNN::DoFind(TClonesArray* fTofHits,
     while (iSt1
            < fFindTracks->GetNofStations() - fFindTracks->GetMinNofHits() + 1) {
       iSt1++;
-      for (Int_t iHit = 0; iHit < fHits->GetEntries();
+      for (Int_t iHit = 0; iHit < fHits->GetEntriesFast();
            iHit++) {  // loop over Hits
         CbmTofHit* pHit = (CbmTofHit*) fHits->At(iHit);
         Int_t iAddr     = (pHit->GetAddress() & DetMask);
@@ -260,7 +260,7 @@ Int_t CbmTofTrackFinderNN::DoFind(TClonesArray* fTofHits,
           }
 
           if (TMath::Abs(hitpos_local[1]) < dSizey * fPosYMaxScal)
-            for (Int_t iHit1 = 0; iHit1 < fHits->GetEntries();
+            for (Int_t iHit1 = 0; iHit1 < fHits->GetEntriesFast();
                  iHit1++)  // loop over all Hits (order unknown)
             {
               if (HitUsed(iHit1) == 1) continue;  // skip used Hits
@@ -426,7 +426,7 @@ Int_t CbmTofTrackFinderNN::DoFind(TClonesArray* fTofHits,
                               fFindTracks->GetAddrOfStation(iDet));
           if (NULL == pTrk) continue;
 
-          for (Int_t iHit = 0; iHit < fHits->GetEntries();
+          for (Int_t iHit = 0; iHit < fHits->GetEntriesFast();
                iHit++) {                       // loop over Hits
             if (HitUsed(iHit) == 1) continue;  // skip used Hits
             CbmTofHit* pHit = (CbmTofHit*) fHits->At(iHit);
@@ -469,7 +469,7 @@ Int_t CbmTofTrackFinderNN::DoFind(TClonesArray* fTofHits,
               Int_t iHit1               = pTrk->GetTofHitIndex(1);
               // CbmTofHit* pHit0 = (CbmTofHit*) fHits->At( iHit0 );   (VF) not used
               // CbmTofHit* pHit1 = (CbmTofHit*) fHits->At( iHit1 );   (VF) not used
-              if (iHit0 < 0 || iHit0 >= fHits->GetEntries())
+              if (iHit0 < 0 || iHit0 >= fHits->GetEntriesFast())
                 LOG(fatal) << "CbmTofTrackFinderNN::DoFind Invalid Hit Index "
                            << iHit0 << " for Track " << iTrk << "("
                            << fTracks.size() << ")";
@@ -820,7 +820,7 @@ void CbmTofTrackFinderNN::TrklSeed(Int_t iHit) {
   if (iDet == fFindTracks->GetNofStations())
     return;                                       // hit not in tracking setup
   for (Int_t iDet1 = 0; iDet1 < iDet; iDet1++) {  // build new seeds
-    for (Int_t iHit1 = 0; iHit1 < fHits->GetEntries();
+    for (Int_t iHit1 = 0; iHit1 < fHits->GetEntriesFast();
          iHit1++) {  // loop over previous Hits
       CbmTofHit* pHit1 = (CbmTofHit*) fHits->At(iHit1);
       // Int_t iSmType1 = CbmTofAddress::GetSmType( pHit1->GetAddress() & DetMask );   (VF) not used
diff --git a/reco/detectors/trd/CbmTrdHitProducer.cxx b/reco/detectors/trd/CbmTrdHitProducer.cxx
index eb0163b3cdea862f1fa5a18093d09a6e3955879a..e791c55b0c1d5f08dbbf21f2acb72e1960c48557 100644
--- a/reco/detectors/trd/CbmTrdHitProducer.cxx
+++ b/reco/detectors/trd/CbmTrdHitProducer.cxx
@@ -128,7 +128,7 @@ CbmTrdModuleRec* CbmTrdHitProducer::AddModule(Int_t address, TGeoPhysicalNode* n
 // ---- processCluster ----
 UInt_t CbmTrdHitProducer::processClusters()
 {
-  Int_t nclusters = fClusters->GetEntries();
+  Int_t nclusters = fClusters->GetEntriesFast();
 
   for (Int_t icluster = 0; icluster < nclusters; icluster++) {
     processCluster(icluster);
diff --git a/reco/detectors/trd/pid/CbmTrdElectronsTrainAnn.cxx b/reco/detectors/trd/pid/CbmTrdElectronsTrainAnn.cxx
index afdfda65d0d71514803040221d0719de1a24a536..2ff5f1ac19b6e60985a593f0af858f09ed082e37 100644
--- a/reco/detectors/trd/pid/CbmTrdElectronsTrainAnn.cxx
+++ b/reco/detectors/trd/pid/CbmTrdElectronsTrainAnn.cxx
@@ -265,7 +265,7 @@ void CbmTrdElectronsTrainAnn::FillElossVectorReal() {
 }
 
 void CbmTrdElectronsTrainAnn::FillElossVectorSim() {
-  Int_t nofTrdTracks = fTrdTracks->GetEntries();
+  Int_t nofTrdTracks = fTrdTracks->GetEntriesFast();
   for (Int_t iTrdTrack = 0; iTrdTrack < nofTrdTracks; iTrdTrack++) {
     CbmTrdTrack* trdtrack = (CbmTrdTrack*) fTrdTracks->At(iTrdTrack);
     Int_t nHits           = trdtrack->GetNofHits();
diff --git a/reco/detectors/trd/qa/CbmTrdHitDensityQa.cxx b/reco/detectors/trd/qa/CbmTrdHitDensityQa.cxx
index 654a174aaead3df4b9153501d6171643f233e2fb..66233a46d3514e6a1a2534eb81dd5a449ca3af3f 100644
--- a/reco/detectors/trd/qa/CbmTrdHitDensityQa.cxx
+++ b/reco/detectors/trd/qa/CbmTrdHitDensityQa.cxx
@@ -214,7 +214,7 @@ void CbmTrdHitDensityQa::Exec(Option_t*) {
   const CbmTrdDigi* digi = NULL;
   CbmTrdCluster* cluster = NULL;
   if (NULL != fClusters && fNeighbourTrigger == true) {
-    Int_t nCluster = fClusters->GetEntries();
+    Int_t nCluster = fClusters->GetEntriesFast();
     for (Int_t iCluster = 0; iCluster < nCluster; iCluster++) {
       //cout << iCluster << endl;
       cluster = (CbmTrdCluster*) fClusters->At(
diff --git a/reco/detectors/trd/qa/CbmTrdOccupancyQa.cxx b/reco/detectors/trd/qa/CbmTrdOccupancyQa.cxx
index bc9b7d5e6671813733bb58fdcf8d79fd831f56c2..eb5d1bdd58e87afc624d856a2454ac437537c7ca 100644
--- a/reco/detectors/trd/qa/CbmTrdOccupancyQa.cxx
+++ b/reco/detectors/trd/qa/CbmTrdOccupancyQa.cxx
@@ -200,7 +200,7 @@ void CbmTrdOccupancyQa::Exec(Option_t*) {
   const CbmTrdDigi* digi = NULL;
   CbmTrdCluster* cluster = NULL;
   if (fNeigbourReadout == true) {
-    Int_t nCluster = fClusters->GetEntries();
+    Int_t nCluster = fClusters->GetEntriesFast();
     for (Int_t iCluster = 0; iCluster < nCluster; iCluster++) {
       //cout << iCluster << endl;
       cluster = (CbmTrdCluster*) fClusters->At(
diff --git a/reco/detectors/trd/qa/CbmTrdQa.cxx b/reco/detectors/trd/qa/CbmTrdQa.cxx
index 6023e1d3a9fcf52a2569fb63211b44ccde3f6927..7e9ed940456bdc536fbd3e12019025c16866b665 100644
--- a/reco/detectors/trd/qa/CbmTrdQa.cxx
+++ b/reco/detectors/trd/qa/CbmTrdQa.cxx
@@ -940,7 +940,7 @@ void CbmTrdQa::Exec(Option_t*) {
   std::map<Int_t, Int_t> McTrackNeighbourHitMap;
   // MC-points
   if (fP && fT) {
-    nEntries = fPoints->GetEntries();
+    nEntries = fPoints->GetEntriesFast();
     printf("%02i Points\n", nEntries);
 
     std::map<Int_t, Int_t> hasBeenUsedTrack;
@@ -1265,7 +1265,7 @@ void CbmTrdQa::Exec(Option_t*) {
 
   //Clusters
   if (fC) {
-    nEntries = fClusters->GetEntries();
+    nEntries = fClusters->GetEntriesFast();
     printf("%i\n", nEntries);
     for (Int_t iCluster = 0; iCluster < nEntries; iCluster++) {
       cluster         = (CbmTrdCluster*) fClusters->At(iCluster);
@@ -1309,7 +1309,7 @@ void CbmTrdQa::Exec(Option_t*) {
 
   //Hits
   if (fH) {
-    nEntries = fHits->GetEntries();
+    nEntries = fHits->GetEntriesFast();
     printf("%i Hits\n", nEntries);
     for (Int_t iHit = 0; iHit < nEntries; iHit++) {
       hit = (CbmTrdHit*) fHits->At(iHit);
diff --git a/reco/detectors/trd/qa/CbmTrdRecoQa.cxx b/reco/detectors/trd/qa/CbmTrdRecoQa.cxx
index 4b93267bf83f5f6200392be6198aa603e4a6d42e..f85150adae28ea956daf04f96f517318d99db82e 100644
--- a/reco/detectors/trd/qa/CbmTrdRecoQa.cxx
+++ b/reco/detectors/trd/qa/CbmTrdRecoQa.cxx
@@ -182,9 +182,9 @@ void CbmTrdRecoQa::Exec(Option_t*) {
 
   Int_t nPoints(0), nDigis(0), nClusters(0), nHits(0);
   nDigis = CbmDigiManager::Instance()->GetNofDigis(ECbmModuleId::kTrd);
-  if (fClusters) nClusters = fClusters->GetEntries();
-  if (fMCPoints) nPoints = fMCPoints->GetEntries();
-  if (fHits) nHits = fHits->GetEntries();
+  if (fClusters) nClusters = fClusters->GetEntriesFast();
+  if (fMCPoints) nPoints = fMCPoints->GetEntriesFast();
+  if (fHits) nHits = fHits->GetEntriesFast();
 
   TH1D* digiMaxSpectrum =
     new TH1D("digiMaxSpectrum", "digiMaxSpectrum", 10000, 0, 1e-4);
diff --git a/reco/eventbuilder/digis/CbmEvBuildSource.cxx b/reco/eventbuilder/digis/CbmEvBuildSource.cxx
index e5bbfd081476a6f46e95f3abd7da3d9cd4642f5e..affd1187cf4ec94e2222cad646fef4c519fcf645 100644
--- a/reco/eventbuilder/digis/CbmEvBuildSource.cxx
+++ b/reco/eventbuilder/digis/CbmEvBuildSource.cxx
@@ -269,7 +269,7 @@ void CbmEvBuildSource::FillEvent(Int_t st, Int_t end) {
     digi = (CbmStsDigi*) fSlice->GetData(kSts, i);
     new ((*fSTSDigi)[fNSTSDigis]) CbmStsDigi(*digi);
     fNSTSDigis++;
-    //    cout << fSTSDigi->GetEntries() << " " << fNSTSDigis << endl;
+    //    cout << fSTSDigi->GetEntriesFast() << " " << fNSTSDigis << endl;
   }
   LOG(info) << "CbmEvBuildSource:	Event constructed. Digis used from "
             << st << " to " << end << ".";
diff --git a/reco/qa/CbmRecoQa.cxx b/reco/qa/CbmRecoQa.cxx
index f535ff91b94a30e6b139c98b36d392026bfa3f6d..ab3be442b89816f9d4979f14ab5ba72fd63c4e02 100644
--- a/reco/qa/CbmRecoQa.cxx
+++ b/reco/qa/CbmRecoQa.cxx
@@ -237,7 +237,7 @@ void CbmRecoQa::record(std::string decName, int decNum) {
       TVector3 mcPos(.0, .0, .0);
       TVector3 hitErr(.0, .0, .0);
 
-      int nEnt = listHits->GetEntries();
+      int nEnt = listHits->GetEntriesFast();
       if (verbosity > 2)
         LOG(info) << "CbmRecoQa for " << decName << " found " << nEnt
                   << " Hit Entries";
@@ -348,7 +348,7 @@ void CbmRecoQa::record(std::string decName, int decNum) {
       TVector3 mcPos(.0, .0, .0);
       TVector3 hitErr(.0, .0, .0);
 
-      int nEnt = listHits->GetEntries();
+      int nEnt = listHits->GetEntriesFast();
       if (verbosity > 2)
         LOG(info) << "CbmRecoQa for " << decName << " found " << nEnt
                   << " Hit Entries";
@@ -405,7 +405,7 @@ void CbmRecoQa::record(std::string decName, int decNum) {
       TVector3 mcPos(.0, .0, .0);
       TVector3 hitErr(.0, .0, .0);
 
-      int nEnt = listHits->GetEntries();
+      int nEnt = listHits->GetEntriesFast();
       if (verbosity > 2)
         LOG(info) << "CbmRecoQa for " << decName << " found " << nEnt
                   << " Hit Entries";
diff --git a/reco/tracking/lx/Simple/Lx.cxx b/reco/tracking/lx/Simple/Lx.cxx
index 7f52c919fc669994bd739f450b2a36fa46511170..64217a7c0df351b0f5cdaa5dc10df36d30b435e8 100644
--- a/reco/tracking/lx/Simple/Lx.cxx
+++ b/reco/tracking/lx/Simple/Lx.cxx
@@ -806,7 +806,7 @@ void LxFinder::Exec(Option_t* opt) {
 
 #ifdef MAKE_EFF_CALC
   // Read MC tracks
-  nEnt = listMCTracks->GetEntries();
+  nEnt = listMCTracks->GetEntriesFast();
   cout << "There are: " << nEnt << " of MC tracks" << endl;
   LxMCTrack mcTrack;
 
@@ -840,7 +840,7 @@ void LxFinder::Exec(Option_t* opt) {
     MCTracks.push_back(mcTrack);
   }
 
-  nEnt = listStsPts->GetEntries();
+  nEnt = listStsPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of STS MC points" << endl;
 
   for (int i = 0; i < nEnt; ++i) {
@@ -879,7 +879,7 @@ void LxFinder::Exec(Option_t* opt) {
     }
   }
 
-  nEnt = listMuchPts->GetEntries();
+  nEnt = listMuchPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of MUCH MC points" << endl;
   LxMCPoint mcPoint;
 
@@ -1069,7 +1069,7 @@ void LxFinder::Exec(Option_t* opt) {
     }
   } else  // (!parallMode)
   {
-    nEnt = muchPixelHits->GetEntries();
+    nEnt = muchPixelHits->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH pixel hits" << endl;
 
     if (hitFileName != "") hitFile.StartEvent(nEnt);
@@ -1252,7 +1252,7 @@ void LxFinder::Exec(Option_t* opt) {
 
   //caSpace.FitTracks();
   //cout << "maxReferencedPtsIndex=" << maxReferencedPtsIndex << " mcPtsCount=" << mcPtsCount << " GEF=" << listMuchPts->GetEntriesFast() << endl;
-  //cout << "Hits=" << muchPixelHits->GetEntries() << " clusters=" << listMuchClusters->GetEntries() << " digi ms=" << listMuchPixelDigiMatches->GetEntries() << endl;
+  //cout << "Hits=" << muchPixelHits->GetEntriesFast() << " clusters=" << listMuchClusters->GetEntriesFast() << " digi ms=" << listMuchPixelDigiMatches->GetEntriesFast() << endl;
   //sleep(3);
 
   /////////////////////////////////////////////////////////////////////////////////
@@ -1261,7 +1261,7 @@ void LxFinder::Exec(Option_t* opt) {
 
   if (linkWithSts) {
     // STS-tracks fulfilling the limitations peculiar for muons are picked up in the loop below.
-    nEnt = listStsTracks->GetEntries();
+    nEnt = listStsTracks->GetEntriesFast();
 
     for (int i = 0; i < nEnt; ++i) {
       CbmStsTrack* stsTrack =
diff --git a/reco/tracking/lx/Simple/LxTrackAna.cxx b/reco/tracking/lx/Simple/LxTrackAna.cxx
index 3dabf152170246e7967e444c4d2d2c30f8dca054..4763c0ca82dc7f6b430ed6259d4fde8f5311d907 100644
--- a/reco/tracking/lx/Simple/LxTrackAna.cxx
+++ b/reco/tracking/lx/Simple/LxTrackAna.cxx
@@ -503,7 +503,7 @@ void LxTrackAna::FinishTask() {
 void LxTrackAna::Exec(Option_t*) {
   Clean();
 
-  Int_t nEnt = listMCTracks->GetEntries();
+  Int_t nEnt = listMCTracks->GetEntriesFast();
   cout << "There are: " << nEnt << " of MC tracks" << endl;
 
   for (Int_t i = 0; i < nEnt; ++i) {
@@ -519,7 +519,7 @@ void LxTrackAna::Exec(Option_t*) {
     allTracks.push_back(t);
   }
 
-  nEnt = listStsPts->GetEntries();
+  nEnt = listStsPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of STS MC points" << endl;
 
   for (Int_t i = 0; i < nEnt; ++i) {
@@ -541,7 +541,7 @@ void LxTrackAna::Exec(Option_t*) {
     track->stsPoints[stationNr].push_back(point);
   }
 
-  nEnt = listMuchPts->GetEntries();
+  nEnt = listMuchPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of MUCH MC points" << endl;
 
   for (Int_t i = 0; i < nEnt; ++i) {
@@ -569,7 +569,7 @@ void LxTrackAna::Exec(Option_t*) {
   }
 
   if (useHitsInStat) {
-    nEnt = listMuchPixelHits->GetEntries();
+    nEnt = listMuchPixelHits->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH pixel hits" << endl;
 
     for (Int_t i = 0; i < nEnt; ++i) {
@@ -615,10 +615,10 @@ void LxTrackAna::Exec(Option_t*) {
       }
     }
 
-    nEnt = listMuchClusters->GetEntries();
+    nEnt = listMuchClusters->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH clusters" << endl;
 
-    nEnt = listMuchPixelDigiMatches->GetEntries();
+    nEnt = listMuchPixelDigiMatches->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH pixel digi matches" << endl;
   }  //if (useHitsInStat)
 
diff --git a/reco/tracking/lxTriplet/Lx.cxx b/reco/tracking/lxTriplet/Lx.cxx
index 92333c590adc7b9ed63b354cb3b885118bd79076..645a5987371e5ab89da8ac1b8c14e1d3f668f5a1 100644
--- a/reco/tracking/lxTriplet/Lx.cxx
+++ b/reco/tracking/lxTriplet/Lx.cxx
@@ -506,7 +506,7 @@ void LxFinderTriplet::Exec(Option_t*) {
   listRecoTracks->Clear();
 
   // Read MC tracks
-  Int_t nEnt = listMCTracks->GetEntries();
+  Int_t nEnt = listMCTracks->GetEntriesFast();
   cout << "There are: " << nEnt << " of MC tracks" << endl;
   LxMCTrack mcTrack;
 
@@ -540,7 +540,7 @@ void LxFinderTriplet::Exec(Option_t*) {
     MCTracks.push_back(mcTrack);
   }
 
-  nEnt = listStsPts->GetEntries();
+  nEnt = listStsPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of STS MC points" << endl;
 
   for (int i = 0; i < nEnt; ++i) {
@@ -579,7 +579,7 @@ void LxFinderTriplet::Exec(Option_t*) {
     }
   }
 
-  nEnt = listMuchPts->GetEntries();
+  nEnt = listMuchPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of MUCH MC points" << endl;
   LxMCPoint mcPoint;
 
@@ -732,7 +732,7 @@ void LxFinderTriplet::Exec(Option_t*) {
 #endif  //MAKE_HISTOS
 
   // Read MUCH pixel hits.
-  nEnt = muchPixelHits->GetEntries();
+  nEnt = muchPixelHits->GetEntriesFast();
   cout << "There are: " << nEnt << " of MUCH pixel hits" << endl;
 
   Double_t minXErr = 1000;
@@ -858,7 +858,7 @@ void LxFinderTriplet::Exec(Option_t*) {
   cout << "Execution duration 5 was: " << exeDuration << endl;
   caSpace.FitTracks();
   //cout << "maxReferencedPtsIndex=" << maxReferencedPtsIndex << " mcPtsCount=" << mcPtsCount << " GEF=" << listMuchPts->GetEntriesFast() << endl;
-  //cout << "Hits=" << muchPixelHits->GetEntries() << " clusters=" << listMuchClusters->GetEntries() << " digi ms=" << listMuchPixelDigiMatches->GetEntries() << endl;
+  //cout << "Hits=" << muchPixelHits->GetEntriesFast() << " clusters=" << listMuchClusters->GetEntriesFast() << " digi ms=" << listMuchPixelDigiMatches->GetEntriesFast() << endl;
   //sleep(3);
 
   /////////////////////////////////////////////////////////////////////////////////
@@ -866,7 +866,7 @@ void LxFinderTriplet::Exec(Option_t*) {
   /////////////////////////////////////////////////////////////////////////////////
 
   // STS-tracks fulfilling the limitations peculiar for muons are picked up in the loop below.
-  nEnt = listStsTracks->GetEntries();
+  nEnt = listStsTracks->GetEntriesFast();
 
   for (int i = 0; i < nEnt; ++i) {
     CbmStsTrack* stsTrack = LX_DYNAMIC_CAST<CbmStsTrack*>(listStsTracks->At(i));
diff --git a/reco/tracking/lxTriplet/LxTrackAna.cxx b/reco/tracking/lxTriplet/LxTrackAna.cxx
index d73312223227e248a78bfc52213eb55cf123123c..4f02adbf05d296ec829cdb2573035dbe9678756a 100644
--- a/reco/tracking/lxTriplet/LxTrackAna.cxx
+++ b/reco/tracking/lxTriplet/LxTrackAna.cxx
@@ -472,7 +472,7 @@ void LxTrackAnaTriplet::FinishTask() {
 void LxTrackAnaTriplet::Exec(Option_t*) {
   Clean();
 
-  Int_t nEnt = listMCTracks->GetEntries();
+  Int_t nEnt = listMCTracks->GetEntriesFast();
   cout << "There are: " << nEnt << " of MC tracks" << endl;
 
   for (Int_t i = 0; i < nEnt; ++i) {
@@ -491,7 +491,7 @@ void LxTrackAnaTriplet::Exec(Option_t*) {
     allTracks.push_back(t);
   }
 
-  nEnt = listStsPts->GetEntries();
+  nEnt = listStsPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of STS MC points" << endl;
 
   for (Int_t i = 0; i < nEnt; ++i) {
@@ -513,7 +513,7 @@ void LxTrackAnaTriplet::Exec(Option_t*) {
     track->stsPoints[stationNr].push_back(point);
   }
 
-  nEnt = listMuchPts->GetEntries();
+  nEnt = listMuchPts->GetEntriesFast();
   cout << "There are: " << nEnt << " of MUCH MC points" << endl;
 
   for (Int_t i = 0; i < nEnt; ++i) {
@@ -541,7 +541,7 @@ void LxTrackAnaTriplet::Exec(Option_t*) {
   }
 
   if (useHitsInStat) {
-    nEnt = listMuchPixelHits->GetEntries();
+    nEnt = listMuchPixelHits->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH pixel hits" << endl;
 
     for (Int_t i = 0; i < nEnt; ++i) {
@@ -594,10 +594,10 @@ void LxTrackAnaTriplet::Exec(Option_t*) {
       }  // j
     }    // i
 
-    nEnt = listMuchClusters->GetEntries();
+    nEnt = listMuchClusters->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH clusters" << endl;
 
-    nEnt = listMuchPixelDigiMatches->GetEntries();
+    nEnt = listMuchPixelDigiMatches->GetEntriesFast();
     cout << "There are: " << nEnt << " of MUCH pixel digi matches" << endl;
   }  //if (useHitsInStat)
 
diff --git a/sim/detectors/rich/CbmRichDigitizer.cxx b/sim/detectors/rich/CbmRichDigitizer.cxx
index 01414bd8b2c64fdb5647439b1aa8574f05362c44..ad02f2d5a370f75547716008a530b241d57a5da3 100644
--- a/sim/detectors/rich/CbmRichDigitizer.cxx
+++ b/sim/detectors/rich/CbmRichDigitizer.cxx
@@ -138,7 +138,7 @@ void CbmRichDigitizer::Exec(Option_t* /*option*/) {
 }
 
 Int_t CbmRichDigitizer::ProcessMcEvent() {
-  Int_t nofRichPoints = fRichPoints->GetEntries();
+  Int_t nofRichPoints = fRichPoints->GetEntriesFast();
   LOG(debug) << fName << ": EventNum:" << fCurrentEvent
              << " InputNum:" << fCurrentInput
              << " EventTime:" << fCurrentEventTime
@@ -148,7 +148,7 @@ Int_t CbmRichDigitizer::ProcessMcEvent() {
     CbmRichPoint* point = (CbmRichPoint*) fRichPoints->At(j);
     ProcessPoint(point, j, fCurrentMCEntry, fCurrentInput);
   }
-  // cout << "nofDigis:" << fRichDigis->GetEntries() << endl;
+  // cout << "nofDigis:" << fRichDigis->GetEntriesFast() << endl;
 
   AddNoiseDigis(fCurrentMCEntry, fCurrentInput);
 
@@ -321,7 +321,7 @@ void CbmRichDigitizer::AddNoiseDigis(Int_t eventNum, Int_t inputNum) {
   Int_t nofPixels =
     CbmRichDigiMapManager::GetInstance().GetPixelAddresses().size();
   Double_t dT            = 50.;  //ns
-  Double_t nofRichPoints = fRichPoints->GetEntries();
+  Double_t nofRichPoints = fRichPoints->GetEntriesFast();
   Double_t nofNoiseDigis =
     nofRichPoints * nofPixels * dT * (fNoiseDigiRate / 1.e9);
 
diff --git a/sim/detectors/tof/CbmTofDigitize.cxx b/sim/detectors/tof/CbmTofDigitize.cxx
index 0888afb6ed7ff1b5b703d7599a244cf2eff63b5b..8a61334625e7334491f23e51de969cb5fd90cbb9 100644
--- a/sim/detectors/tof/CbmTofDigitize.cxx
+++ b/sim/detectors/tof/CbmTofDigitize.cxx
@@ -892,9 +892,9 @@ Bool_t CbmTofDigitize::FillHistos() {
      return kTRUE;
    }
 
-   Int_t nTofPoint = fTofPointsColl->GetEntries();
-   Int_t nTracks   = fMcTracksColl->GetEntries();
-  // Int_t nTofDigi  = fDigis->GetEntries();
+   Int_t nTofPoint = fTofPointsColl->GetEntriesFast();
+   Int_t nTracks   = fMcTracksColl->GetEntriesFast();
+  // Int_t nTofDigi  = fDigis->GetEntriesFast();
    Int_t iNbTofTracks     = 0;
    Double_t nTofFired  = 0;
    Double_t dProcessTime = fdDigitizeTime + fdMergeTime;
@@ -1511,8 +1511,8 @@ Bool_t CbmTofDigitize::DigitizeDirectClusterSize() {
   CbmTofPoint* pPoint;
   CbmMCTrack* pMcTrk;
 
-  Int_t nTofPoint = fTofPointsColl->GetEntries();
-  Int_t nMcTracks = fMcTracksColl->GetEntries();
+  Int_t nTofPoint = fTofPointsColl->GetEntriesFast();
+  Int_t nMcTracks = fMcTracksColl->GetEntriesFast();
 
   // Prepare the temporary storing of the Track/Point/Digi info
   if (kTRUE == fDigiBdfPar->UseOneGapPerTrk()) {
@@ -2098,8 +2098,8 @@ Bool_t CbmTofDigitize::DigitizeFlatDisc() {
   CbmTofPoint* pPoint;
   CbmMCTrack* pMcTrk;
 
-  Int_t nTofPoint = fTofPointsColl->GetEntries();
-  Int_t nMcTracks = fMcTracksColl->GetEntries();
+  Int_t nTofPoint = fTofPointsColl->GetEntriesFast();
+  Int_t nMcTracks = fMcTracksColl->GetEntriesFast();
 
   // Prepare the temporary storing of the Track/Point/Digi info
   if (kTRUE == fDigiBdfPar->UseOneGapPerTrk()) {
@@ -3137,8 +3137,8 @@ Bool_t CbmTofDigitize::DigitizeGaussCharge() {
   CbmTofPoint* pPoint;
   CbmMCTrack* pMcTrk;
 
-  Int_t nTofPoint = fTofPointsColl->GetEntries();
-  Int_t nMcTracks = fMcTracksColl->GetEntries();
+  Int_t nTofPoint = fTofPointsColl->GetEntriesFast();
+  Int_t nMcTracks = fMcTracksColl->GetEntriesFast();
 
   // Prepare the temporary storing of the Track/Point/Digi info
   if (kTRUE == fDigiBdfPar->UseOneGapPerTrk()) {