From 9febf709448a13cec1a6645db0575ba90b9ed900 Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Tue, 2 Mar 2021 09:21:04 +0100 Subject: [PATCH] Prepare TOF code for new geometry tof_v20a Don't use tof digi parameter file any longer in the digitization step. The needed information is meanwhile taken from the TGeoManager. Initialize tof geometry parameters in the simple clusterizer from the TGeoManager, as it is already done in the event clusterizer and the digitizer. Add a special case in the TofGeoManager for the tof_v20a geometry. The geometry has to be treated as v14a. --- core/detectors/tof/CbmTofGeoHandler.cxx | 23 ++++++++++---------- reco/detectors/tof/CbmTofSimpClusterizer.cxx | 17 +++++++++++++++ sim/response/base/CbmDigitization.cxx | 2 -- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/core/detectors/tof/CbmTofGeoHandler.cxx b/core/detectors/tof/CbmTofGeoHandler.cxx index 16aa53a049..5c87b7e8a1 100644 --- a/core/detectors/tof/CbmTofGeoHandler.cxx +++ b/core/detectors/tof/CbmTofGeoHandler.cxx @@ -104,14 +104,12 @@ Int_t CbmTofGeoHandler::CheckGeometryVersion() { fTofId = new CbmTofDetectorId_v12b(); fGeoVersion = k12b; return fGeoVersion; - } else if ((TString(node->GetName()).Contains("v14")) - || (TString(node->GetName()).Contains("v16a")) - || (TString(node->GetName()).Contains("v16c")) - || (TString(node->GetName()).Contains("v16d")) - || (TString(node->GetName()).Contains("v16e")) - || (TString(node->GetName()).Contains("v17a")) - || (TString(node->GetName()).Contains("v17c")) - || (TString(node->GetName()).Contains("v19"))) { + } + else if ((TString(node->GetName()).Contains("v14")) || (TString(node->GetName()).Contains("v16a")) + || (TString(node->GetName()).Contains("v16c")) || (TString(node->GetName()).Contains("v16d")) + || (TString(node->GetName()).Contains("v16e")) || (TString(node->GetName()).Contains("v17a")) + || (TString(node->GetName()).Contains("v17c")) || (TString(node->GetName()).Contains("v19")) + || ((TString(node->GetName()).Contains("v20a")) && (!(TString(node->GetName()).Contains("mcbm"))))) { LOG(info) << "CbmTofGeoHandler::CheckGeometryVersion: Found TOF geometry " << TString(node->GetName()) << ", treat as Id 14a "; @@ -129,9 +127,9 @@ Int_t CbmTofGeoHandler::CheckGeometryVersion() { fUseNodeName = kTRUE; } return fGeoVersion; - } else if ((TString(node->GetName()).Contains("v21")) - || (TString(node->GetName()).Contains("v18")) - || (TString(node->GetName()).Contains("v20"))) { + } + else if ((TString(node->GetName()).Contains("v21")) || (TString(node->GetName()).Contains("v18")) + || (TString(node->GetName()).Contains("v20"))) { LOG(info) << "CbmTofGeoHandler::CheckGeometryVersion: Found TOF geometry " << TString(node->GetName()) << ", treat as Id 21a "; @@ -139,7 +137,8 @@ Int_t CbmTofGeoHandler::CheckGeometryVersion() { fTofId = new CbmTofDetectorId_v21a(); fGeoVersion = k21a; return fGeoVersion; - } else { + } + else { LOG(fatal) << "Found an unknown TOF geometry."; fGeoVersion = -1; return fGeoVersion; diff --git a/reco/detectors/tof/CbmTofSimpClusterizer.cxx b/reco/detectors/tof/CbmTofSimpClusterizer.cxx index f1fc4cc142..4fb32c4a5c 100644 --- a/reco/detectors/tof/CbmTofSimpClusterizer.cxx +++ b/reco/detectors/tof/CbmTofSimpClusterizer.cxx @@ -8,6 +8,7 @@ // TOF Classes and includes #include "CbmTofAddress.h" // in cbmdata/tof #include "CbmTofCell.h" // in tof/TofData +#include "CbmTofCreateDigiPar.h" #include "CbmTofDetectorId_v12b.h" // in cbmdata/tof #include "CbmTofDetectorId_v14a.h" // in cbmdata/tof #include "CbmTofDigi.h" // in cbmdata/tof @@ -439,6 +440,22 @@ Bool_t CbmTofSimpClusterizer::InitParameters() { } } + LOG(info) << "=> Get the digi parameters for tof"; + FairRunAna* ana = FairRunAna::Instance(); + FairRuntimeDb* rtdb = ana->GetRuntimeDb(); + + // create digitization parameters from geometry file + CbmTofCreateDigiPar* tofDigiPar = new CbmTofCreateDigiPar("TOF Digi Producer", "TOF task"); + LOG(info) << "Create DigiPar "; + tofDigiPar->Init(); + + fDigiPar = (CbmTofDigiPar*) (rtdb->getContainer("CbmTofDigiPar")); + if (0 == fDigiPar) { + LOG(error) << "CbmTofSimpleClusterizer::InitParameters => Could not obtain " + "the CbmTofDigiPar "; + return kFALSE; + } + fdParFeeTimeRes = fDigiBdfPar->GetFeeTimeRes(); fdParSystTimeRes = 0.080; diff --git a/sim/response/base/CbmDigitization.cxx b/sim/response/base/CbmDigitization.cxx index e7c4a15645..9654e68934 100644 --- a/sim/response/base/CbmDigitization.cxx +++ b/sim/response/base/CbmDigitization.cxx @@ -305,8 +305,6 @@ void CbmDigitization::DefaultInit() { AddParameterAsciiFile(parFile); } if (tofGeo.Length() > 0) { - parFile = srcDir + "/parameters/tof/tof_" + tofGeo + ".digi.par"; - AddParameterAsciiFile(parFile); parFile = srcDir + "/parameters/tof/tof_" + tofGeo + ".digibdf.par"; AddParameterAsciiFile(parFile); } -- GitLab