From 5b910f8ccdaaabdd160f851ebaea4122dc2935af Mon Sep 17 00:00:00 2001 From: Nikolay Karpushkin <karpushkin@inr.ru> Date: Wed, 15 Sep 2021 17:43:08 +0300 Subject: [PATCH] time relative to run start --- sim/detectors/psd/CbmPsdSimpleDigitizer.cxx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx b/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx index ee50c3f658..e487b859ac 100644 --- a/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx +++ b/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx @@ -127,22 +127,26 @@ void CbmPsdSimpleDigitizer::Exec(Option_t*) } } // Loop over MCPoints + std::vector<CbmPsdDigi> PsdDigiVector; + std::transform( fired_digis_map.begin(), fired_digis_map.end(), std::back_inserter( PsdDigiVector ), [](const std::pair<UInt_t, CbmPsdDigi> &my_pair){ return my_pair.second;} ); +// std::sort(PsdDigiVector.begin(), PsdDigiVector.end(), +// [](const CbmPsdDigi& a, const CbmPsdDigi& b) -> bool { return a.GetTime() < b.GetTime(); }); Int_t nDigis = 0; - for (auto entry : fired_digis_map) { - Double_t eDep = entry.second.GetEdep(); + for (auto entry : PsdDigiVector) { + Double_t eDep = entry.GetEdep(); Double_t eLossMIP = eDep / 0.005; // 5MeV per MIP Double_t pixPerMIP = 15.; // 15 pix per MIP Double_t eLossMIPSmeared = gRandom->Gaus(eLossMIP * pixPerMIP, sqrt(eLossMIP * pixPerMIP)) / pixPerMIP; Double_t eLossSmeared = eLossMIPSmeared * 0.005; Double_t eNoise = gRandom->Gaus(0, 15) / 50. * 0.005; eLossSmeared += eNoise; - // The digi time is set to MC point time - CbmPsdDigi* digi = new CbmPsdDigi(entry.first, entry.second.GetTime(), eLossSmeared); + // The digi time is set to MC point time [relative to event start] + Event Start time + CbmPsdDigi* digi = new CbmPsdDigi(entry.GetAddress(), entry.GetTime() + fCurrentEventTime, eLossSmeared); SendData(digi); nDigis++; - LOG(debug1) << fName << ": Digi " << nDigis << " Section " << entry.second.GetSectionID() << " Module " - << entry.second.GetModuleID() << " energy " << eLossSmeared; + LOG(debug) << fName << ": Digi " << nDigis << " Time " << entry.GetTime() + fCurrentEventTime << " Section " << entry.GetSectionID() << " Module " + << entry.GetModuleID() << " energy " << eLossSmeared; } // --- Event log -- GitLab