diff --git a/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx b/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx index 1ce2549f6c2faadfa5a0aea6db211b18e6c7a6e9..f1b984d5e806f50b7e9604edb479dc06fd38dab9 100644 --- a/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx +++ b/sim/detectors/psd/CbmPsdSimpleDigitizer.cxx @@ -118,7 +118,7 @@ void CbmPsdSimpleDigitizer::Exec(Option_t*) if (it != fired_digis_map.end()) { //this key exists it->second.SetEdep(it->second.GetEdep() + eLoss); - if (it->second.GetTime() > pTime) it->second.SetTime(pTime); + if (pTime < it->second.GetTime()) it->second.SetTime(pTime); } else { //this key is new @@ -127,15 +127,9 @@ 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 : PsdDigiVector) { - Double_t eDep = entry.GetEdep(); + for (auto entry : fired_digis_map) { + Double_t eDep = entry.second.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; @@ -143,11 +137,11 @@ void CbmPsdSimpleDigitizer::Exec(Option_t*) Double_t eNoise = gRandom->Gaus(0, 15) / 50. * 0.005; eLossSmeared += eNoise; // 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); + CbmPsdDigi* digi = new CbmPsdDigi(entry.second.GetAddress(), entry.second.GetTime() + fCurrentEventTime, eLossSmeared); SendData(digi); nDigis++; - LOG(debug) << fName << ": Digi " << nDigis << " Time " << entry.GetTime() + fCurrentEventTime << " Section " - << entry.GetSectionID() << " Module " << entry.GetModuleID() << " energy " << eLossSmeared; + LOG(debug1) << fName << ": Digi " << nDigis << " Time " << entry.second.GetTime() + fCurrentEventTime << " Section " + << entry.second.GetSectionID() << " Module " << entry.second.GetModuleID() << " energy " << eLossSmeared; } // --- Event log