diff --git a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx index 0e4f2f72fa95553fd5c5f8bbcf2bcc59b7565c18..0d9f20870d3d6fb68494af0b939fa75729e81c75 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 d8dce3b9713d678e78c07de0272dd2fea117f01a..9da592f29f31a711dcefcac5474ae3959537e2d3 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 7f106fee544ff7f779a3cefcb6fa6ee284ace531..d748d81e553d755bde7454992891b8bc3ca34e3a 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 95279cb61003d23b350961652bf087bfead7d07e..88a5762aacb4bacf7dc0bd718b875704ab8bb5ca 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); }