From 358500cd2f88aacfd1dddca72d2d3c84f6e25469 Mon Sep 17 00:00:00 2001 From: P-A Loizeau <p.-a.loizeau@gsi.de> Date: Wed, 27 Jan 2021 16:54:22 +0100 Subject: [PATCH] Add support for mCBM evt builders in sim reco macro --- macro/run/run_reco.C | 55 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/macro/run/run_reco.C b/macro/run/run_reco.C index 0721d9c62d..bfdba83d3a 100644 --- a/macro/run/run_reco.C +++ b/macro/run/run_reco.C @@ -199,10 +199,57 @@ void run_reco(TString input = "", eventBased = kTRUE; } //? Ideal raw event building else if (evBuildRaw.EqualTo("Real", TString::ECaseCompare::kIgnoreCase)) { - std::cerr << "-E- " << myName - << ": Real event building is not yet available! " - << "Terminating macro execution." << std::endl; - return; + // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // + /// to use 2018 version, uncomment this section and comment the next one + /* + CbmMcbm2018EventBuilder* evBuildRaw = new CbmMcbm2018EventBuilder(); + + evBuildRaw->SetFixedTimeWindow(5500.); + evBuildRaw->SetTriggerMinNumberSts(50); + + if (!useSts) { + std::cerr << "-E- " << myName << ": Sts must be present for raw event " + << "building using ``Real'' option. Terminating macro." + << std::endl; + return; + } + */ + // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // + + // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // + /// to use 2018 version, uncomment this section and comment the prev. one + CbmMcbm2019TimeWinEventBuilderTask* evBuildRaw = + new CbmMcbm2019TimeWinEventBuilderTask(); + evBuildRaw->SetTsParameters(0.0, 1.e7, 0.0); + + // Use CbmMuchDigi instead of CbmMuchBeamtimeDigi + evBuildRaw->ChangeMuchBeamtimeDigiFlag(kFALSE); + + // Remove detectors where digis not found + if (!useRich) evBuildRaw->RemoveDetector(kEventBuilderDetRich); + if (!useMuch) evBuildRaw->RemoveDetector(kEventBuilderDetMuch); + if (!usePsd) evBuildRaw->RemoveDetector(kEventBuilderDetPsd); + if (!useTof) evBuildRaw->RemoveDetector(kEventBuilderDetTof); + if (!useTrd) evBuildRaw->RemoveDetector(kEventBuilderDetTrd); + + // Remove STS as it will be our reference + evBuildRaw->RemoveDetector(kEventBuilderDetSts); + + // Set STS as reference detector + evBuildRaw->SetReferenceDetector(kEventBuilderDetSts); + + //Choose between NoOverlap, MergeOverlap, AllowOverlap + evBuildRaw->SetEventOverlapMode(EOverlapMode::AllowOverlap); + + evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kSts, 10); + evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kSts, -1); + evBuildRaw->SetTriggerWindow(ECbmModuleId::kSts, -5500, 5500); + // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // + + run->AddTask(evBuildRaw); + std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() + << std::endl; + eventBased = kTRUE; } //? Real raw event building else { std::cerr << "-E- " << myName << ": Unknown option " << evBuildRaw -- GitLab