From dabdba48f0b19180f5c1d5bcfe0eb209ad7fab0f Mon Sep 17 00:00:00 2001 From: praisig <praisig@ikf.uni-frankfurt.de> Date: Thu, 17 Sep 2020 17:51:00 +0200 Subject: [PATCH] Some upgrades for the TRD unpacker task Add sorting of raw message output vector Add correct forwarding of eLink even/odd switch to algo Add SetIgnoreOverlaps setter to be in sync with other unpackers --- fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx | 4 ++++ fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.h | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx index fd653f9590..84275de512 100644 --- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx +++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx @@ -179,6 +179,7 @@ Bool_t CbmMcbm2018UnpackerTaskTrdR::InitContainers() { fUnpackerAlgo->SetDebugMonitorMode(fbDebugMonitorMode); fUnpackerAlgo->SetWriteOutput(fbWriteOutput); fUnpackerAlgo->SetDebugWriteOutput(fbDebugWriteOutput); + fUnpackerAlgo->SetDebugSortOutput(fbDebugSortOutput); fUnpackerAlgo->SetBaselineAvg(fbBaselineAvg); // Activate histograms in unpacker fUnpackerAlgo->SetActiveHistograms(fIsActiveHistoVec); @@ -252,4 +253,7 @@ void CbmMcbm2018UnpackerTaskTrdR::SetTimeOffsetNs(Double_t dOffsetIn) { if (fUnpackerAlgo != nullptr) fUnpackerAlgo->SetTimeOffsetNs(dOffsetIn); } +void CbmMcbm2018UnpackerTaskTrdR::SetIgnoreOverlapMs(Bool_t bFlagIn) { + fUnpackerAlgo->SetIgnoreOverlapMs(bFlagIn); +} ClassImp(CbmMcbm2018UnpackerTaskTrdR) diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.h b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.h index 1300e4db4e..fb9224ae3a 100644 --- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.h +++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.h @@ -75,6 +75,9 @@ public: void SetDebugWriteOutput(Bool_t bFlagIn = kTRUE) { fbDebugWriteOutput = bFlagIn; } + void SetDebugSortOutput(Bool_t bFlagIn = kTRUE) { + fbDebugSortOutput = bFlagIn; + } void SetSystemIdentifier(std::uint8_t id) { fSystemIdentifier = id; } void SetTimeOffsetNs(Double_t dOffsetIn = 0.0); @@ -92,6 +95,8 @@ public: fdMsSizeInNs = msSizeInNs; } // TODO handle this with asic parameter files + void SetIgnoreOverlapMs(Bool_t bFlagIn = kTRUE); + void SetFirstChannelsElinkEven(bool isEven) { fIsFirstChannelsElinkEven = isEven; } /// < Set wether channels 00..15 are on the even (true) or the odd (false and default) elink @@ -106,15 +111,19 @@ private: fbWriteOutput; ///< If ON the output Vector of digis is written to disk. Bool_t fbDebugWriteOutput; ///< If ON the output vector of raw messages is filled and written to disk. + Bool_t fbDebugSortOutput = + kTRUE; ///< If ON the output vector of raw messages is sorted in time. Bool_t fbBaselineAvg; ///< Set to true if Baseline Averaging is activated in Spadic. std::uint8_t fSystemIdentifier; ///< by default set to: fles::SubsystemIdentifier::TRD, changable via setter Double_t fdMsSizeInNs; ///< microslice size in ns to be passed to the unpacker // TODO handle this with asic parameter files + bool fIsFirstChannelsElinkEven = false; ///< define if the first 16 channels (00..15) are found on the even (set true) or odd (false) eLinkId, default for mCbm2020 is false thus, initialized as false + TString fMonitorHistoFileName; std::vector<bool> fIsActiveHistoVec; // Define active histos in algo -- GitLab