From 8c3c1419d9c62bd09158b03f2d0144a1363a8e97 Mon Sep 17 00:00:00 2001 From: Dominik Smith <d.smith@gsi.de> Date: Tue, 8 Feb 2022 11:32:39 +0100 Subject: [PATCH] CbmSeedFinderSlidingWindow: Applying a constant offset to all trigger times is now supported. --- reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx | 2 +- reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h | 8 ++++++++ reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx | 3 ++- reco/eventbuilder/digis/CbmTaskBuildRawEvents.h | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx index 0e4f2f72fa..0d9f20870d 100644 --- a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx +++ b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx @@ -62,7 +62,7 @@ void CbmSeedFinderSlidingWindow::FillSeedTimes(const std::vector<inType>* vIn, c if (nDigisWin >= fminDigis) { // Reached required number of digis const double seedTime = - (currentT + winStartT) / 2.; //one possibility. perhaps better to place seed at end of window. + fdOffset + (currentT + winStartT) / 2.; //one possibility. perhaps better to place seed at end of window. fvSeedTimes->push_back(seedTime); if (vDigiMatch && fQa) { // QA mode diff --git a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h index d8dce3b971..9da592f29f 100644 --- a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h +++ b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h @@ -62,6 +62,11 @@ public: template<class inType> void FillSeedTimes(const std::vector<inType>* vIn, const std::vector<CbmMatch>* vDigiMatch = nullptr); + /** @brief Sets a global constant offset which is applied to each trigger time + * @params Value of offset + **/ + void SetOffset(double offset) { fdOffset = offset; } + /** @brief Returns number of seed times currently stored in buffer. */ size_t GetNofSeeds() { return fvSeedTimes->size(); } @@ -82,6 +87,9 @@ private: /** @brief ``Dead time'' i.e. time interval which is discarded after a seed is found. */ double fdDeadT = 0.; + /** @brief Global time offset which is applied to each trigger time. */ + double fdOffset = 0.; + /** @brief Fetches time at position i of either a digi vector or vector of times. */ template<class inType> double GetTime(const std::vector<inType>* vIn, int32_t i); diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx index 7f106fee54..d748d81e55 100644 --- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx +++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx @@ -47,13 +47,14 @@ void CbmTaskBuildRawEvents::AddSeedTimeFillerToList(RawEventBuilderDetector seed fpAlgo->SetSeedTimes(fSeedTimes); } -void CbmTaskBuildRawEvents::SetSlidingWindowSeedFinder(Int_t minDigis, Double_t dWindDur, Double_t dDeadT) +void CbmTaskBuildRawEvents::SetSlidingWindowSeedFinder(int32_t minDigis, double dWindDur, double dDeadT, double dOffset) { if (fSeedFinderSlidingWindow) { delete fSeedFinderSlidingWindow; fSeedFinderSlidingWindow = nullptr; } fSeedFinderSlidingWindow = new CbmSeedFinderSlidingWindow(fSeedTimes, minDigis, dWindDur, dDeadT); + fSeedFinderSlidingWindow->SetOffset(dOffset); if (fSeedTimes == nullptr) { fSeedTimes = new std::vector<Double_t>; } fpAlgo->SetSeedTimes(fSeedTimes); diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h index 95279cb610..88a5762aac 100644 --- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h +++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h @@ -122,7 +122,7 @@ public: void SetSeedFinderQa(Bool_t bFlagIn = kTRUE); void PrintTimings(); void AddSeedTimeFillerToList(RawEventBuilderDetector seedDet); - void SetSlidingWindowSeedFinder(Int_t minDigis, Double_t dWindDur, Double_t dDeadT); + void SetSlidingWindowSeedFinder(int32_t minDigis, double dWindDur, double dDeadT, double dOffset = 0.0); void DumpSeedTimesFromDetList(); void SetSeedTimeWindow(Double_t beg, Double_t end) { fpAlgo->SetSeedTimeWindow(beg, end); } -- GitLab