diff --git a/reco/detectors/trd/qa/CbmTrdHitProducerQa.cxx b/reco/detectors/trd/qa/CbmTrdHitProducerQa.cxx index 507593e4ac5c15e59e21a728d26e662c759fc608..19c1f315ffbb23cafa89a0233017110de0cffbc5 100644 --- a/reco/detectors/trd/qa/CbmTrdHitProducerQa.cxx +++ b/reco/detectors/trd/qa/CbmTrdHitProducerQa.cxx @@ -176,7 +176,13 @@ void CbmTrdHitProducerQa::Exec(Option_t*) cout << GetName() << ": Warning, TRD plane out of bounds, skipping hit." << endl; continue; } - const int partID = (dynamic_cast<CbmMCTrack*>(fMCTrackArray->Get(trdDigiMatch->GetMatchedLink())))->GetPdgCode(); + + //get particle ID of track corresponding to point + const int fileId = trdDigiMatch->GetMatchedLink().GetFile(); + const int event = trdDigiMatch->GetMatchedLink().GetEntry(); + const int index = trdPoint->GetTrackID(); + const CbmMCTrack* track = dynamic_cast<CbmMCTrack*>(fMCTrackArray->Get(fileId, event, index)); + const int partID = track->GetPdgCode(); const float momentum = TMath::Sqrt((trdPoint->GetPx() * trdPoint->GetPx()) + (trdPoint->GetPy() * trdPoint->GetPy()) + (trdPoint->GetPz() * trdPoint->GetPz()));