diff --git a/macro/reco/reco_ts.C b/macro/reco/reco_ts.C
index df96f89e59c17cc22d2a5e56e61b3f1b812b2d1a..8b901d0f743220000190b28986efcf97bbd86323 100644
--- a/macro/reco/reco_ts.C
+++ b/macro/reco/reco_ts.C
@@ -93,6 +93,7 @@ void reco_ts(TString tsaFile = "", TString outFile = "")
 
   // -----   Unpacking   ----------------------------------------------------
   auto unpack = std::make_unique<CbmTaskUnpack>();
+  unpack->SetOutputBranchPersistent("DigiTimeslice.", kFALSE);
   LOG(info) << myName << ": Added task " << unpack->GetName();
   run->AddTask(unpack.release());
   // ------------------------------------------------------------------------
@@ -105,6 +106,7 @@ void reco_ts(TString tsaFile = "", TString outFile = "")
   double deadTime      = 50.;  // Minimum time between two triggers
   trigger->SetAlgoParams(triggerWindow, minNumDigis, deadTime);
   trigger->AddSystem(ECbmModuleId::kSts);
+  trigger->SetOutputBranchPersistent("Trigger", kFALSE);
   LOG(info) << myName << ": Added task " << trigger->GetName();
   run->AddTask(trigger.release());
   // ------------------------------------------------------------------------
diff --git a/reco/tasks/CbmTaskUnpack.cxx b/reco/tasks/CbmTaskUnpack.cxx
index 3250f4d286e5868bd0d58c7dde94d9b0b4967524..f0eacf8fa779cd61745d9f79b87dcc83c54c0285 100644
--- a/reco/tasks/CbmTaskUnpack.cxx
+++ b/reco/tasks/CbmTaskUnpack.cxx
@@ -195,7 +195,7 @@ InitStatus CbmTaskUnpack::Init()
     return kFATAL;
   }
   fTimeslice = new CbmDigiTimeslice();
-  ioman->RegisterAny("DigiTimeslice.", fTimeslice, kTRUE);
+  ioman->RegisterAny("DigiTimeslice.", fTimeslice, IsOutputBranchPersistent("DigiTimeslice."));
   LOG(info) << "--- Registered branch DigiTimeslice.";
 
   // --- Common parameters for all components