From a756e2052e2ce5f3f5d428fdcb2b5b97f9c8690e Mon Sep 17 00:00:00 2001 From: P-A Loizeau <p.-a.loizeau@gsi.de> Date: Fri, 22 Jan 2021 18:36:11 +0100 Subject: [PATCH] In TimeWinEvtBuilder, add flag to switch to CbmMuchDigi (instead of CbmMuchBeamtimeDigi) --- .../CbmMcbm2019TimeWinEventBuilderAlgo.cxx | 29 +++++++++++++++---- .../CbmMcbm2019TimeWinEventBuilderAlgo.h | 9 ++++-- .../CbmMcbm2019TimeWinEventBuilderTask.cxx | 3 ++ .../CbmMcbm2019TimeWinEventBuilderTask.h | 2 ++ 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx index 0973a3c480..81a28a9574 100644 --- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx +++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx @@ -10,6 +10,7 @@ /// CBM headers #include "CbmEvent.h" #include "CbmMuchBeamTimeDigi.h" +#include "CbmMuchDigi.h" #include "CbmPsdDigi.h" #include "CbmRichDigi.h" #include "CbmStsDigi.h" @@ -49,7 +50,9 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo() { // Get a pointer to the previous already existing data level fDigiMan = CbmDigiManager::Instance(); - fDigiMan->UseMuchBeamTimeDigi(); + if (fbUseMuchBeamtimeDigi) { + fDigiMan->UseMuchBeamTimeDigi(); + } // if (fbUseMuchBeamtimeDigi) fDigiMan->Init(); /// Check if reference detector data are available @@ -177,7 +180,12 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::BuildEvents() { break; } // case ECbmModuleId::kSts: case ECbmModuleId::kMuch: { - LoopOnSeeds<CbmMuchBeamTimeDigi>(); + if (fbUseMuchBeamtimeDigi) { + LoopOnSeeds<CbmMuchBeamTimeDigi>(); + } // if (fbUseMuchBeamtimeDigi) + else { + LoopOnSeeds<CbmMuchDigi>(); + } // else of if (fbUseMuchBeamtimeDigi) break; } // case ECbmModuleId::kMuch: case ECbmModuleId::kTrd: { @@ -234,7 +242,7 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds() { || (dOverlapSize < fdWidestTimeWinRange)) { LOG(warning) << "CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => " << Form("Event window not fitting in TS overlap, risk of " - "incomplete events: %f %f %f %llu", + "incomplete events: %f %f %f %f", fdEarliestTimeWinBeg, fdLatestTimeWinEnd, fdWidestTimeWinRange, @@ -350,7 +358,13 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime, break; } // case ECbmModuleId::kSts: case ECbmModuleId::kMuch: { - SearchMatches<CbmMuchBeamTimeDigi>(dSeedTime, fRefDet); + if (fbUseMuchBeamtimeDigi) { + SearchMatches<CbmMuchBeamTimeDigi>(dSeedTime, fRefDet); + } // if (fbUseMuchBeamtimeDigi) + else + { + SearchMatches<CbmMuchDigi>(dSeedTime, fRefDet); + } // else of if (fbUseMuchBeamtimeDigi) break; } // case ECbmModuleId::kMuch: case ECbmModuleId::kTrd: { @@ -399,7 +413,12 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime, break; } // case ECbmModuleId::kSts: case ECbmModuleId::kMuch: { - SearchMatches<CbmMuchBeamTimeDigi>(dSeedTime, *det); + if (fbUseMuchBeamtimeDigi) { + SearchMatches<CbmMuchBeamTimeDigi>(dSeedTime, *det); + } // if (fbUseMuchBeamtimeDigi) + else { + SearchMatches<CbmMuchDigi>(dSeedTime, *det); + } // else of if (fbUseMuchBeamtimeDigi) break; } // case ECbmModuleId::kMuch: case ECbmModuleId::kTrd: { diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h index 2173184714..b6ed8a6456 100644 --- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h +++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h @@ -158,7 +158,7 @@ public: Double_t dTsOverLength) { fdTsStartTime = dTsStartTime; fdTsLength = dTsLength; - fdTsOverLength = fdTsOverLength; + fdTsOverLength = dTsOverLength; } /// Control flags @@ -167,6 +167,10 @@ public: fbIgnoreTsOverlap = bFlagIn; } + void ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn = kFALSE) { + fbUseMuchBeamtimeDigi = bFlagIn; + } + /// For monitor algos void AddHistoToVector(TNamed* pointer, std::string sFolder = "") { fvpAllHistoPointers.push_back( @@ -213,9 +217,10 @@ private: static constexpr Double_t kdDefaultTimeWinEnd = 100.0; /// User parameters - /// Control flags + /// Control flags Bool_t fbIgnoreTsOverlap = kFALSE; //! Ignore data in Overlap part of the TS Bool_t fbFillHistos {kTRUE}; //! Switch ON/OFF filling of histograms + Bool_t fbUseMuchBeamtimeDigi = kTRUE; //! Switch between the MUCH digi classes /// Event building mode and detectors selection EOverlapMode fOverMode {EOverlapMode::AllowOverlap}; diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx index 56792605a7..34291a8cb2 100644 --- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx +++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx @@ -185,6 +185,9 @@ void CbmMcbm2019TimeWinEventBuilderTask::SetEventOverlapMode( void CbmMcbm2019TimeWinEventBuilderTask::SetIgnoreTsOverlap(Bool_t bFlagIn) { if (nullptr != fpAlgo) fpAlgo->SetIgnoreTsOverlap(bFlagIn); } +void CbmMcbm2019TimeWinEventBuilderTask::ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn) { + if (nullptr != fpAlgo) fpAlgo->ChangeMuchBeamtimeDigiFlag(bFlagIn); +} //---------------------------------------------------------------------- diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h index 2c3b87dd97..b670b8e5f7 100644 --- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h +++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h @@ -79,6 +79,8 @@ public: void SetEventOverlapMode(EOverlapMode mode); void SetIgnoreTsOverlap(Bool_t bFlagIn); + void ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn = kFALSE); + private: void FillOutput(); void SaveHistos(); -- GitLab