From 766760495c9c57783860b30a33854127f3f4d4b2 Mon Sep 17 00:00:00 2001
From: Alexandru Bercuci <abercuci@niham.nipne.ro>
Date: Wed, 28 Feb 2024 12:47:51 +0000
Subject: [PATCH] Fix error in ASIC par creation

---
 core/detectors/trd/CbmTrdParManager.cxx | 12 ++++++------
 core/detectors/trd/CbmTrdParSet.cxx     | 10 ++++++++++
 core/detectors/trd/CbmTrdParSet.h       |  3 ++-
 core/detectors/trd/CbmTrdParSetAsic.cxx | 11 -----------
 core/detectors/trd/CbmTrdParSetAsic.h   |  3 ---
 5 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/core/detectors/trd/CbmTrdParManager.cxx b/core/detectors/trd/CbmTrdParManager.cxx
index 0bd84c6077..1c20462735 100644
--- a/core/detectors/trd/CbmTrdParManager.cxx
+++ b/core/detectors/trd/CbmTrdParManager.cxx
@@ -127,16 +127,17 @@ InitStatus CbmTrdParManager::Init()
       }
     }
   }
-
+  Finish();
   return kSUCCESS;
 }
 
 void CbmTrdParManager::Finish()
 {
+  printf("CbmTrdParManager::Finish()\n");
   FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb();
-  //   fDigiPar = (CbmTrdParSetDigi*) (rtdb->getContainer("CbmTrdParSetDigi"));
-  //   fDigiPar->print();
-  fAsicPar = (CbmTrdParSetAsic*) (rtdb->getContainer("CbmTrdParSetAsic"));
+  fDigiPar            = (CbmTrdParSetDigi*) (rtdb->getContainer("CbmTrdParSetDigi"));
+  fAsicPar            = (CbmTrdParSetAsic*) (rtdb->getContainer("CbmTrdParSetAsic"));
+  fDigiPar->Print();
   fAsicPar->Print();
 }
 
@@ -303,8 +304,7 @@ void CbmTrdParManager::CreateModuleParameters(const TString& path)
       asics->SetAsicPar(asic);
     }
   }
-
-
+  asics->SetModuleId(moduleAddress);
   asics->Print();
   fAsicPar->addParam(asics);
 
diff --git a/core/detectors/trd/CbmTrdParSet.cxx b/core/detectors/trd/CbmTrdParSet.cxx
index 0b353d42e5..910bce569c 100644
--- a/core/detectors/trd/CbmTrdParSet.cxx
+++ b/core/detectors/trd/CbmTrdParSet.cxx
@@ -83,4 +83,14 @@ void CbmTrdParSet::addParam(CbmTrdParMod* mod)
   fNrOfModules++;
 }
 
+//_______________________________________________________________________________
+void CbmTrdParSet::Print(Option_t* opt) const
+{
+  printf(" %s Modules[%d]\n", GetName(), fNrOfModules);
+  for (auto imod : fModuleMap) {
+    printf("  %d %s(%s)\n", imod.first, imod.second->GetName(), imod.second->GetTitle());
+    imod.second->Print(opt);
+  }
+}
+
 ClassImp(CbmTrdParSet)
diff --git a/core/detectors/trd/CbmTrdParSet.h b/core/detectors/trd/CbmTrdParSet.h
index e57ac3954a..095a4e5e4e 100644
--- a/core/detectors/trd/CbmTrdParSet.h
+++ b/core/detectors/trd/CbmTrdParSet.h
@@ -40,8 +40,9 @@ public:
   virtual void addParam(CbmTrdParMod* mod);
   virtual Bool_t getParams(FairParamList*);
   virtual void putParams(FairParamList*);
+  virtual void Print(Option_t* opt = "") const;
 
-protected:
+ protected:
   Int_t fNrOfModules;  ///< no of modules in the current run
   /** Map of parameters for each TRD Module organized as function of Module unique Id **/
   std::map<Int_t, CbmTrdParMod*> fModuleMap;
diff --git a/core/detectors/trd/CbmTrdParSetAsic.cxx b/core/detectors/trd/CbmTrdParSetAsic.cxx
index fc328b4145..d8afe85027 100644
--- a/core/detectors/trd/CbmTrdParSetAsic.cxx
+++ b/core/detectors/trd/CbmTrdParSetAsic.cxx
@@ -207,15 +207,4 @@ void CbmTrdParSetAsic::putParams(FairParamList* l)
   }
 }
 
-//_______________________________________________________________________________
-void CbmTrdParSetAsic::Print(Option_t* opt) const
-{
-  printf(" %s Modules[%d]\n", GetName(), fNrOfModules);
-  for (auto imod : fModuleMap) {
-
-    printf("  %d %s(%s)\n", imod.first, imod.second->GetName(), imod.second->GetTitle());
-    imod.second->Print(opt);
-  }
-}
-
 ClassImp(CbmTrdParSetAsic)
diff --git a/core/detectors/trd/CbmTrdParSetAsic.h b/core/detectors/trd/CbmTrdParSetAsic.h
index ca6d12e760..46993c932e 100644
--- a/core/detectors/trd/CbmTrdParSetAsic.h
+++ b/core/detectors/trd/CbmTrdParSetAsic.h
@@ -53,9 +53,6 @@ public:
    * \param module ASICs par (FASP or SPADIC)
    */
   void putParams(FairParamList*);
-
-  virtual void Print(Option_t* opt = "") const;
-
 private:
   CbmTrdParSetAsic(const CbmTrdParSetAsic& ref);
   const CbmTrdParSetAsic& operator=(const CbmTrdParSetAsic& ref);
-- 
GitLab