diff --git a/sim/detectors/sts/CbmStsSimModule.cxx b/sim/detectors/sts/CbmStsSimModule.cxx index c6007537b8ed87f2f7f126d0bdace3e03912ff8e..894667e1fe8fb4fb39c6442751da4ddc5d28010c 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 d9eb0c3ad05b8730cd86c67c3935b8aed1dc3ff3..43e30dfdbf1189d3b8472058fc28e9135fc3ab32 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