diff --git a/core/base/CbmDigitizeBase.h b/core/base/CbmDigitizeBase.h index a2bca30e4652dfdfd5b2eaa9f4c96e0946b6488b..b0321af639993a75c724777a8081f7672f7efaf7 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 7778459d33832119131da3cd4f8d047760183163..757f08b65893ad7d5556dcabdd20bc377c9e48bd 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 9080ba6870b7e02976f5f0cd0ec0e9b1e5e3a34d..d59f860a08ed578dd5458ba39d09fd7b4d0704e2 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 17517920ce3984bade26e50a6726805a7d19c527..d9eb0c3ad05b8730cd86c67c3935b8aed1dc3ff3 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();