diff --git a/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx b/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
index 7e289cfbcfc637b39ebf877cd8370f1871401e9c..a4b0d033cdb029576d6c7b42e0c695913ba2cf19 100644
--- a/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
+++ b/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
@@ -15,6 +15,7 @@
 #include "CbmTofAddress.h"  // in cbmdata/tof
 #include "CbmTofCell.h"     // in tof/TofData
 #include "CbmTofClusterizersDef.h"
+#include "CbmTofCreateDigiPar.h"    // in tof/TofTools
 #include "CbmTofDetectorId_v12b.h"  // in cbmdata/tof
 #include "CbmTofDetectorId_v14a.h"  // in cbmdata/tof
 #include "CbmTofDetectorId_v21a.h"  // in cbmdata/tof
@@ -420,6 +421,7 @@ Bool_t CbmDeviceHitBuilderTof::InitContainers() {
     FairMQMessagePtr req(NewSimpleMessage(message));
     //FairMQMessagePtr req(NewSimpleMessage( "CbmTofDigiBdfPar,111" )); //original format
     FairMQMessagePtr rep(NewMessage());
+    CbmTofCreateDigiPar* tofDigiPar=NULL;
 
     if (Send(req, Channel) > 0) {
       if (Receive(rep, Channel) >= 0) {
@@ -458,14 +460,39 @@ Bool_t CbmDeviceHitBuilderTof::InitContainers() {
                             ->GetGeometry();  //crashes
               LOG(info) << "GeoMan: " << fGeoMan << " " << gGeoManager;
               iGeoVersion = fGeoHandler->Init(isSimulation);
-              if (k14a > iGeoVersion) {
-                LOG(error) << "Incompatible geometry !!!";
-                //ChangeState(STOP);
-                ChangeState(fair::mq::Transition(STOP));
+              if (k21a > iGeoVersion) {
+                  LOG(error) << "Incompatible geometry !!!";
+                  //ChangeState(STOP);
+                  ChangeState(fair::mq::Transition(STOP));
+              }
+              switch(iGeoVersion) {
+              case k14a:
+                  fTofId = new CbmTofDetectorId_v14a();
+                  break;
+              case k21a:
+                  fTofId = new CbmTofDetectorId_v21a();
+                  break;
+              }
+              if (NULL == fDigiPar){
+                if (NULL == fRtdb) {
+            	  LOG(info)<<"Instantiate FairRunDb";
+            	  fRtdb = FairRuntimeDb::instance();
+            	  assert(fRtdb);
+                }
+                // create digitization parameters from geometry file
+                tofDigiPar = new CbmTofCreateDigiPar("TOF Digi Producer", "TOF task");
+                LOG(info) << "Create DigiPar ";
+                tofDigiPar->Init();
+                fDigiPar = (CbmTofDigiPar*) (fRtdb->getContainer("CbmTofDigiPar"));
+                if (NULL == fDigiPar) {
+                  LOG(error) << "CbmTofEventClusterizer::InitParameters => Could not obtain "
+                                "the CbmTofDigiPar ";
+                  return kFALSE;
+                }
               }
-              fTofId = new CbmTofDetectorId_v14a();
               gGeoManager->Export("HitBuilder.geo.root");
               break;
+
             case 3:  // Calib
               break;
             default: