From 7a5f76025b6018014fd4fe25c0d2073682c7ebce Mon Sep 17 00:00:00 2001 From: Volker Friese <v.friese@gsi.de> Date: Fri, 7 Jul 2023 12:06:51 +0200 Subject: [PATCH] Pass run start time to the digitizers. For STS, start noise simulation at the run start time. --- core/base/CbmDigitizeBase.h | 7 +++++++ sim/detectors/sts/CbmStsDigitize.cxx | 2 +- sim/response/base/CbmDigitization.cxx | 1 + sim/response/base/CbmDigitizationSource.h | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/base/CbmDigitizeBase.h b/core/base/CbmDigitizeBase.h index a2bca30e46..b0321af639 100644 --- a/core/base/CbmDigitizeBase.h +++ b/core/base/CbmDigitizeBase.h @@ -170,10 +170,17 @@ public: void SetProduceNoise(Bool_t choice = kTRUE) { fProduceNoise = choice; } + /** @brief Set the run start time + ** @param Run start time [ns] + **/ + void SetRunStartTime(Double_t time) { fRunStartTime = time; } + + protected: Bool_t fEventMode; /// Flag for event-by-event mode Bool_t fProduceNoise; /// Flag for production of inter-event noise Bool_t fCreateMatches; /// Flag for creation of links to MC + Double_t fRunStartTime = 0; /// Start time of run [ns] Int_t fCurrentInput; /// Number of current input Int_t fCurrentEvent; /// Number of current MC event Int_t fCurrentMCEntry; /// Number of current MC entry diff --git a/sim/detectors/sts/CbmStsDigitize.cxx b/sim/detectors/sts/CbmStsDigitize.cxx index 7778459d33..757f08b658 100644 --- a/sim/detectors/sts/CbmStsDigitize.cxx +++ b/sim/detectors/sts/CbmStsDigitize.cxx @@ -195,7 +195,7 @@ void CbmStsDigitize::Exec(Option_t* /*opt*/) // --- Generate noise from previous to current event time if (fParSim->Noise()) { Int_t nNoise = 0; - Double_t tNoiseStart = fNofEvents ? eventTimePrevious : 1000.; + Double_t tNoiseStart = fNofEvents ? eventTimePrevious : fRunStartTime; Double_t tNoiseEnd = fCurrentEventTime; for (auto& entry : fModules) nNoise += entry.second->GenerateNoise(tNoiseStart, tNoiseEnd); diff --git a/sim/response/base/CbmDigitization.cxx b/sim/response/base/CbmDigitization.cxx index 9080ba6870..d59f860a08 100644 --- a/sim/response/base/CbmDigitization.cxx +++ b/sim/response/base/CbmDigitization.cxx @@ -378,6 +378,7 @@ void CbmDigitization::Run(Int_t event1, Int_t event2) if (fMode == Mode::EventByEvent) digitizer->SetEventMode(); digitizer->SetProduceNoise(fProduceNoise); digitizer->SetCreateMatches(fCreateMatches); + digitizer->SetRunStartTime(fSource->GetStartTime()); run->AddTask(digitizer); LOG(info) << fName << ": Added task " << digitizer->GetName(); } //? active and digitizer instance present diff --git a/sim/response/base/CbmDigitizationSource.h b/sim/response/base/CbmDigitizationSource.h index 17517920ce..d9eb0c3ad0 100644 --- a/sim/response/base/CbmDigitizationSource.h +++ b/sim/response/base/CbmDigitizationSource.h @@ -137,6 +137,9 @@ public: return kFILE; } + /** @brief Run start time **/ + Double_t GetStartTime() { return fTimeStart; } + /** @brief Abstract in base class. No implementation here. **/ virtual Bool_t Init(); -- GitLab