From b6e365930b27edf47e521af4cfab0775e3375ea5 Mon Sep 17 00:00:00 2001 From: Volker Friese <v.friese@gsi.de> Date: Fri, 21 Jul 2023 18:31:45 +0200 Subject: [PATCH] Fix to flaw in event sequence for time-based simulations and minor improvement in STS digitizer. --- sim/detectors/sts/CbmStsSimModule.cxx | 7 ++++--- sim/response/base/CbmDigitizationSource.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sim/detectors/sts/CbmStsSimModule.cxx b/sim/detectors/sts/CbmStsSimModule.cxx index c6007537b8..894667e1fe 100644 --- a/sim/detectors/sts/CbmStsSimModule.cxx +++ b/sim/detectors/sts/CbmStsSimModule.cxx @@ -143,8 +143,9 @@ void CbmStsSimModule::Digitize(UShort_t channel, CbmStsSignal* signal) if (adc < 0) return; // Charge below threshold // --- Digitise time - Double_t deltaT = gRandom->Gaus(0., asic.GetTimeResol()); - Long64_t dTime = Long64_t(round(signal->GetTime() + deltaT)); + Double_t deltaT = 0.; + if (!(asic.GetTimeResol() < 0.)) deltaT = gRandom->Gaus(0., asic.GetTimeResol()); + Long64_t dTime = Long64_t(round(signal->GetTime() + deltaT)); // --- Send the message to the digitiser task UInt_t address = fElement->GetAddress(); @@ -162,7 +163,7 @@ void CbmStsSimModule::Digitize(UShort_t channel, CbmStsSignal* signal) Int_t CbmStsSimModule::GenerateNoise(Double_t t1, Double_t t2) { - assert(t2 > t1); + if (!(t2 > t1)) return 0; Int_t nNoiseAll = 0; UInt_t nAsicChannels = fParams->GetNofAsicChannels(); diff --git a/sim/response/base/CbmDigitizationSource.h b/sim/response/base/CbmDigitizationSource.h index d9eb0c3ad0..43e30dfdbf 100644 --- a/sim/response/base/CbmDigitizationSource.h +++ b/sim/response/base/CbmDigitizationSource.h @@ -219,8 +219,8 @@ public: private: std::vector<CbmMCInputSet*> fInputSets; - std::map<UInt_t, CbmMCInputSet*> fInputMap; //! input ID -> inputSet - std::map<Double_t, CbmMCInputSet*> fNextEvent; //! time -> inputSet + std::map<UInt_t, CbmMCInputSet*> fInputMap; //! input ID -> inputSet + std::multimap<Double_t, CbmMCInputSet*> fNextEvent; //! time -> inputSet FairMCEventHeader* fMCEventHeader; TObjArray* fListOfFolders; std::set<TString> fBranches; // List of branches names -- GitLab