@@ -104,6 +104,10 @@ protected:
104104 const double coalescenceRadius{0.5 * 1.122462 * mCoalMomentum}; /// 1.122462 [2^(1/6)] from PRL 126, 101101 (2021), only for 3 body coalescence
105105
106106 auto coalescence = [&](int iC, int pdgCode, float mass, int iD1, int iD2, int iD3) {
107+ if (event[iD1].status() < 0 || event[iD2].status() < 0 || event[iD3].status() < 0)
108+ {
109+ return false;
110+ }
107111 auto p1 = event[iD1].p();
108112 auto p2 = event[iD2].p();
109113 auto p3 = event[iD3].p();
@@ -131,32 +135,27 @@ protected:
131135 return false;
132136 };
133137
138+ bool coalHappened = false;
134139 for (int iC{0}; iC < 2; ++iC)
135140 {
136141 for (int iP{0}; iP < protons[iC].size(); ++iP) {
137142 for (int iN{0}; iN < neutrons[iC].size(); ++iN) {
138143 /// H3L loop
139144 for (int iL{0}; iL < lambdas[iC].size(); ++iL) {
140- if (coalescence(iC, 1010010030, 2.991134, protons[iC][iP], neutrons[iC][iN], lambdas[iC][iL])) {
141- return true;
142- }
145+ coalHappened |= coalescence(iC, 1010010030, 2.991134, protons[iC][iP], neutrons[iC][iN], lambdas[iC][iL]);
143146 }
144147 /// H3 loop
145148 for (int iN2{iN + 1}; iN2 < neutrons[iC].size(); ++iN2) {
146- if (coalescence(iC, 1000010030, 2.80892113298, protons[iC][iP], neutrons[iC][iN], neutrons[iC][iN2])) {
147- return true;
148- }
149+ coalHappened |= coalescence(iC, 1000010030, 2.80892113298, protons[iC][iP], neutrons[iC][iN], neutrons[iC][iN2]);
149150 }
150151 /// He3 loop
151152 for (int iP2{iP + 1}; iP2 < protons[iC].size(); ++iP2) {
152- if (coalescence(iC, 1000020030, 2.808391, protons[iC][iP], protons[iC][iP2], neutrons[iC][iN])) {
153- return true;
154- }
153+ coalHappened |= coalescence(iC, 1000020030, 2.808391, protons[iC][iP], protons[iC][iP2], neutrons[iC][iN]);
155154 }
156155 }
157156 }
158157 }
159- return false ;
158+ return coalHappened ;
160159 }
161160
162161private:
0 commit comments