@@ -50,6 +50,7 @@ struct MctracksToAod {
5050 }
5151 // TODO: include BC simulation
5252 auto bcCounter = 0UL ;
53+ int trackCounter = 0 ;
5354 for (auto i = 0U ; i < Nparts; ++i) {
5455 auto record = sampler.generateCollisionTime ();
5556 auto mcheader = pc.inputs ().get <o2::dataformats::MCEventHeader*>(" mcheader" , i);
@@ -118,19 +119,19 @@ struct MctracksToAod {
118119 int daughters[2 ];
119120
120121 if (mctrack.getMotherTrackId () >= 0 ) {
121- mothers.push_back (mctrack.getMotherTrackId ());
122+ mothers.push_back (mctrack.getMotherTrackId () + trackCounter );
122123 }
123124 if (mctrack.getSecondMotherTrackId () >= 0 ) {
124- mothers.push_back (mctrack.getSecondMotherTrackId ());
125+ mothers.push_back (mctrack.getSecondMotherTrackId () + trackCounter );
125126 }
126127 daughters[0 ] = -1 ;
127128 daughters[1 ] = -1 ;
128129 if (mctrack.getFirstDaughterTrackId () >= 0 && mctrack.getLastDaughterTrackId () >= 0 ) {
129- daughters[0 ] = mctrack.getFirstDaughterTrackId ();
130- daughters[1 ] = mctrack.getLastDaughterTrackId ();
130+ daughters[0 ] = mctrack.getFirstDaughterTrackId () + trackCounter ;
131+ daughters[1 ] = mctrack.getLastDaughterTrackId () + trackCounter ;
131132 } else if (mctrack.getFirstDaughterTrackId () >= 0 ) {
132- daughters[0 ] = mctrack.getFirstDaughterTrackId ();
133- daughters[1 ] = mctrack.getLastDaughterTrackId ();
133+ daughters[0 ] = mctrack.getFirstDaughterTrackId () + trackCounter ;
134+ daughters[1 ] = mctrack.getLastDaughterTrackId () + trackCounter ;
134135 }
135136 int PdgCode = mctrack.GetPdgCode ();
136137 int statusCode = 0 ;
@@ -169,6 +170,7 @@ struct MctracksToAod {
169170 z,
170171 t);
171172 }
173+ trackCounter = trackCounter + mctracks.size ();
172174 }
173175 ++timeframe;
174176 pc.outputs ().snapshot (Output{" TFF" , " TFFilename" , 0 }, " " );
0 commit comments