@@ -298,16 +298,37 @@ struct qaLamMomResolution {
298298 // get daughter momenta at IU, charge, eta, nTPCclusters
299299 getTrackInfo (protonTrackIU, pionTrackIU);
300300
301- // use track tuner to tune daughter tracks' pT
301+ // optionally use track tuner to tune daughter tracks' pT at decay vertex
302302 if (useTrackTuner) {
303+ // tune V0
303304 tuneV0 (v0data, protonTrackIU, pionTrackIU, mcparticles, bcs);
305+ // get smeared parameters and cov matrix
304306 std::array<float , 3 > pPos{0 ., 0 ., 0 .};
305307 std::array<float , 3 > pNeg{0 ., 0 ., 0 .};
308+ std::array<float , 21 > cPos, cNeg;
306309 mTrackParCovPos .getPxPyPzGlo (pPos);
307310 mTrackParCovNeg .getPxPyPzGlo (pNeg);
311+ mTrackParCovPos .getCovXYZPxPyPzGlo (cPos);
312+ mTrackParCovNeg .getCovXYZPxPyPzGlo (cNeg);
313+ // lambda
308314 massLambda = RecoDecay::m (std::array{std::array{pPos[0 ], pPos[1 ], pPos[2 ]},
309315 std::array{pNeg[0 ], pNeg[1 ], pNeg[2 ]}},
310316 std::array{o2::constants::physics::MassProton, o2::constants::physics::MassPionCharged});
317+ // / smeared daughter momenta at Lambda vertex
318+ // proton
319+ momProtonRec[0 ] = pPos[0 ];
320+ momProtonRec[1 ] = pPos[1 ];
321+ momProtonRec[2 ] = pPos[2 ];
322+ momProtonRecErr[0 ] = sqrt (cPos[9 ]);
323+ momProtonRecErr[1 ] = sqrt (cPos[14 ]);
324+ momProtonRecErr[2 ] = sqrt (cPos[20 ]);
325+ // pion
326+ momPionRec[0 ] = pNeg[0 ];
327+ momPionRec[1 ] = pNeg[1 ];
328+ momPionRec[2 ] = pNeg[2 ];
329+ momPionRecErr[0 ] = sqrt (cNeg[9 ]);
330+ momPionRecErr[1 ] = sqrt (cNeg[14 ]);
331+ momPionRecErr[2 ] = sqrt (cNeg[20 ]);
311332 }
312333
313334 // fill table
@@ -358,16 +379,37 @@ struct qaLamMomResolution {
358379 // get daughter momenta at IU, charge, eta, nTPCclusters
359380 getTrackInfo (protonTrackIU, pionTrackIU);
360381
361- // use track tuner to tune daughter tracks' pT
382+ // optionally use track tuner to tune daughter tracks' pT at decay vertex
362383 if (useTrackTuner) {
384+ // tune V0
363385 tuneV0 (v0data, pionTrackIU, protonTrackIU, mcparticles, bcs);
386+ // get smeared parameters and cov matrix
364387 std::array<float , 3 > pPos{0 ., 0 ., 0 .};
365388 std::array<float , 3 > pNeg{0 ., 0 ., 0 .};
389+ std::array<float , 21 > cPos, cNeg;
366390 mTrackParCovPos .getPxPyPzGlo (pPos);
367391 mTrackParCovNeg .getPxPyPzGlo (pNeg);
392+ mTrackParCovPos .getCovXYZPxPyPzGlo (cPos);
393+ mTrackParCovNeg .getCovXYZPxPyPzGlo (cNeg);
394+ // lambda
368395 massLambda = RecoDecay::m (std::array{std::array{pPos[0 ], pPos[1 ], pPos[2 ]},
369396 std::array{pNeg[0 ], pNeg[1 ], pNeg[2 ]}},
370397 std::array{o2::constants::physics::MassPionCharged, o2::constants::physics::MassProton});
398+ // / smeared daughter momenta at Lambda vertex
399+ // proton
400+ momProtonRec[0 ] = pNeg[0 ];
401+ momProtonRec[1 ] = pNeg[1 ];
402+ momProtonRec[2 ] = pNeg[2 ];
403+ momProtonRecErr[0 ] = sqrt (cNeg[9 ]);
404+ momProtonRecErr[1 ] = sqrt (cNeg[14 ]);
405+ momProtonRecErr[2 ] = sqrt (cNeg[20 ]);
406+ // pion
407+ momPionRec[0 ] = pPos[0 ];
408+ momPionRec[1 ] = pPos[1 ];
409+ momPionRec[2 ] = pPos[2 ];
410+ momPionRecErr[0 ] = sqrt (cPos[9 ]);
411+ momPionRecErr[1 ] = sqrt (cPos[14 ]);
412+ momPionRecErr[2 ] = sqrt (cPos[20 ]);
371413 }
372414
373415 // fill table
0 commit comments