diff --git a/macro/run/run_unpack_tsa.C b/macro/run/run_unpack_tsa.C index 21f94d744427d099171968389952d09ff39721a9..221ea7edce4a2c5e02c6ce963f6df78db250370c 100644 --- a/macro/run/run_unpack_tsa.C +++ b/macro/run/run_unpack_tsa.C @@ -73,57 +73,81 @@ void run_unpack_tsa(std::string infile = "test.tsa", UInt_t runid = 0, const cha // ----- UnpackerConfigs ---------------------------------------------- // ---- PSD ---- - auto psdconfig = std::make_shared<CbmPsdUnpackConfig>("", runid); - // psdconfig->SetDebugState(); - psdconfig->SetDoWriteOutput(); - // psdconfig->SetDoWriteOptOutA("CbmPsdDsp"); - std::string parfilesbasepathPsd = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); - psdconfig->SetParFilesBasePath(parfilesbasepathPsd); + std::shared_ptr<CbmPsdUnpackConfig> psdconfig = nullptr; + + psdconfig = std::make_shared<CbmPsdUnpackConfig>("", runid); + if (psdconfig) { + // psdconfig->SetDebugState(); + psdconfig->SetDoWriteOutput(); + // psdconfig->SetDoWriteOptOutA("CbmPsdDsp"); + std::string parfilesbasepathPsd = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); + psdconfig->SetParFilesBasePath(parfilesbasepathPsd); + psdconfig->SetSystemTimeOffset(0); // [ns] value to be updated + } // ------------- // ---- RICH ---- - auto richconfig = std::make_shared<CbmRichUnpackConfig>("", runid); - // richconfig->SetDebugState(); - richconfig->SetDoWriteOutput(); - std::string parfilesbasepathRich = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); - richconfig->SetParFilesBasePath(parfilesbasepathRich); + std::shared_ptr<CbmRichUnpackConfig> richconfig = nullptr; + + richconfig = std::make_shared<CbmRichUnpackConfig>("", runid); + if (richconfig) { + richconfig->SetDebugState(); + richconfig->SetDoWriteOutput(); + std::string parfilesbasepathRich = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); + richconfig->SetParFilesBasePath(parfilesbasepathRich); + richconfig->SetSystemTimeOffset(0); // [ns] value to be updated + } // ------------- // ---- STS ---- - auto stsconfig = std::make_shared<CbmStsUnpackConfig>("", runid); - // stsconfig->SetDebugState(); - stsconfig->SetDoWriteOutput(); - std::string parfilesbasepathSts = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); - stsconfig->SetParFilesBasePath(parfilesbasepathRich); + std::shared_ptr<CbmStsUnpackConfig> stsconfig = nullptr; + + stsconfig = std::make_shared<CbmStsUnpackConfig>("", runid); + if (stsconfig) { + // stsconfig->SetDebugState(); + stsconfig->SetDoWriteOutput(); + std::string parfilesbasepathSts = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); + stsconfig->SetParFilesBasePath(parfilesbasepathSts); + stsconfig->SetSystemTimeOffset(2221); // [ns] value to be updated + } // ------------- // ---- TRD ---- + std::shared_ptr<CbmTrdUnpackConfig> trd1Dconfig = nullptr; + TString trdsetuptag = ""; cbmsetup->GetGeoTag(ECbmModuleId::kTrd, trdsetuptag); - // auto trdconfig = std::make_shared<CbmTrdUnpackConfig>(trdsetuptag.Data(), runid); - auto trdconfig = std::make_shared<CbmTrdUnpackConfig>(trdsetuptag.Data(), 3); - // trdconfig->SetDebugState(); - trdconfig->SetDoWriteOutput(); - // Activate the line below to write Trd1D digis to a separate "TrdSpadicDigi" branch. Can be used to separate between Fasp and Spadic digis - // trdconfig->SetOutputBranchName("TrdSpadicDigi"); - // trdconfig->SetDoWriteOptOutA(CbmTrdRawMessageSpadic::GetBranchName()); - // trdconfig->SetDoWriteOptOutB("SpadicInfoMessages"); // SpadicInfoMessages - - std::string parfilesbasepathTrd = Form("%s/parameters/trd", srcDir.Data()); - trdconfig->SetParFilesBasePath(parfilesbasepathTrd); - trdconfig->SetMonitor(GetTrdMonitor(outfilename)); - // Get the spadic configuration true = avg baseline active / false plain sample 0 - trdconfig->SetSpadicObject(GetTrdSpadic(true)); + // trd1Dconfig = std::make_shared<CbmTrdUnpackConfig>(trdsetuptag.Data(), runid); + trd1Dconfig = std::make_shared<CbmTrdUnpackConfig>(trdsetuptag.Data(), 3); + if (trd1Dconfig) { + trd1Dconfig->SetDoWriteOutput(); + // Activate the line below to write Trd1D digis to a separate "TrdSpadicDigi" branch. Can be used to separate between Fasp and Spadic digis + // trd1Dconfig->SetOutputBranchName("TrdSpadicDigi"); + // trd1Dconfig->SetDoWriteOptOutA(CbmTrdRawMessageSpadic::GetBranchName()); + // trd1Dconfig->SetDoWriteOptOutB("SpadicInfoMessages"); // SpadicInfoMessages + + std::string parfilesbasepathTrd = Form("%s/parameters/trd", srcDir.Data()); + trd1Dconfig->SetParFilesBasePath(parfilesbasepathTrd); + trd1Dconfig->SetMonitor(GetTrdMonitor(outfilename)); + // Get the spadic configuration true = avg baseline active / false plain sample 0 + trd1Dconfig->SetSpadicObject(GetTrdSpadic(true)); + trd1Dconfig->SetSystemTimeOffset(0); // [ns] value to be updated + } // ------------- // ---- TRDFASP2D ---- - auto trdfasp2dconfig = std::make_shared<CbmTrdUnpackConfigFasp2D>("", runid); - // trdfasp2dconfig->SetDebugState(); - trdfasp2dconfig->SetDoWriteOutput(); - // Activate the line below to write Trd1D digis to a separate "TrdFaspDigi" branch. Can be used to separate between Fasp and Spadic digis - // trdfasp2dconfig->SetOutputBranchName("TrdFaspDigi"); - std::string parfilesbasepathTrdfasp2d = Form("%s/parameters/trd", srcDir.Data()); - trdfasp2dconfig->SetParFilesBasePath(parfilesbasepathTrdfasp2d); + std::shared_ptr<CbmTrdUnpackConfigFasp2D> trdfasp2dconfig = nullptr; + + trdfasp2dconfig = std::make_shared<CbmTrdUnpackConfigFasp2D>("", runid); + if (trdfasp2dconfig) { + // trdfasp2dconfig->SetDebugState(); + trdfasp2dconfig->SetDoWriteOutput(); + // Activate the line below to write Trd1D digis to a separate "TrdFaspDigi" branch. Can be used to separate between Fasp and Spadic digis + trdfasp2dconfig->SetOutputBranchName("TrdFaspDigi"); + std::string parfilesbasepathTrdfasp2d = Form("%s/parameters/trd", srcDir.Data()); + trdfasp2dconfig->SetParFilesBasePath(parfilesbasepathTrdfasp2d); + trdfasp2dconfig->SetSystemTimeOffset(0); // [ns] value to be updated + } // ------------- // ------------------------------------------------------------------------ @@ -141,11 +165,11 @@ void run_unpack_tsa(std::string infile = "test.tsa", UInt_t runid = 0, const cha // ----- CbmSourceTsArchive ------------------------------------------- auto source = new CbmSourceTsArchive(infile.data()); auto unpack = source->GetRecoUnpack(); - unpack->SetUnpackConfig(psdconfig); - // unpack->SetUnpackConfig(richconfig); // Problematic in 1588 - unpack->SetUnpackConfig(stsconfig); - unpack->SetUnpackConfig(trdconfig); - unpack->SetUnpackConfig(trdfasp2dconfig); + if (psdconfig) unpack->SetUnpackConfig(psdconfig); + if (richconfig) unpack->SetUnpackConfig(richconfig); + if (stsconfig) unpack->SetUnpackConfig(stsconfig); + if (trd1Dconfig) unpack->SetUnpackConfig(trd1Dconfig); + if (trdfasp2dconfig) unpack->SetUnpackConfig(trdfasp2dconfig); // ------------------------------------------------------------------------