@@ -99,7 +99,7 @@ class TPCTimeSeries : public Task
9999 mXOuterMatching = ic.options ().get <float >(" refX-for-outer-ITS" );
100100 mUseMinBiasTrigger = !ic.options ().get <bool >(" disable-min-bias-trigger" );
101101
102- if (mSampleTsallis ) {
102+ if (mUnbinnedWriter ) {
103103 for (int iThread = 0 ; iThread < mNThreads ; ++iThread) {
104104 mGenerator .emplace_back (std::mt19937 (std::random_device{}()));
105105 }
@@ -1215,11 +1215,11 @@ class TPCTimeSeries : public Task
12151215 o2::track::TrackPar trackITS (tracksITS[idxITSTrack]);
12161216 const bool propITSOk = propagator->propagateTo (trackITS, trackITSTPCTmp.getX (), false , mMaxSnp , mFineStep , mMatType );
12171217 if (propITSOk) {
1218- deltaP0 = track.getParam (0 ) - trackITSTPCTmp .getParam (0 );
1219- deltaP1 = track.getParam (1 ) - trackITSTPCTmp .getParam (1 );
1220- deltaP2 = track.getParam (2 ) - trackITSTPCTmp .getParam (2 );
1221- deltaP3 = track.getParam (3 ) - trackITSTPCTmp .getParam (3 );
1222- deltaP4 = track.getParam (4 ) - trackITSTPCTmp .getParam (4 );
1218+ deltaP0 = track.getParam (0 ) - trackITS .getParam (0 );
1219+ deltaP1 = track.getParam (1 ) - trackITS .getParam (1 );
1220+ deltaP2 = track.getParam (2 ) - trackITS .getParam (2 );
1221+ deltaP3 = track.getParam (3 ) - trackITS .getParam (3 );
1222+ deltaP4 = track.getParam (4 ) - trackITS .getParam (4 );
12231223 mBufferVals [iThread].front ().setDeltaParam (deltaP2, deltaP3, deltaP4);
12241224 }
12251225 }
@@ -1304,6 +1304,48 @@ class TPCTimeSeries : public Task
13041304 }
13051305 const int triggerMask = 0x1 * minBiasOk + 0x2 * writeData;
13061306
1307+ float deltaP2ConstrVtx = -999 ;
1308+ float deltaP3ConstrVtx = -999 ;
1309+ float deltaP4ConstrVtx = -999 ;
1310+
1311+ // cov of TPC track constrained at vertex
1312+ float covTPCConstrVtxP2 = -999 ;
1313+ float covTPCConstrVtxP3 = -999 ;
1314+ float covTPCConstrVtxP4 = -999 ;
1315+
1316+ // cov of ITS-TPC track at vertex
1317+ float covITSTPCConstrVtxP2 = -999 ;
1318+ float covITSTPCConstrVtxP3 = -999 ;
1319+ float covITSTPCConstrVtxP4 = -999 ;
1320+
1321+ float covTPCAtVertex0 = -999 ;
1322+ float covTPCAtVertex1 = -999 ;
1323+
1324+ const bool contributeToVertex = (idxITSTPC.back () != -1 );
1325+ if (hasITSTPC && contributeToVertex) {
1326+ o2::track::TrackParCov trackITSTPCTmp = tracksITSTPC[idxITSTPC.front ()];
1327+ o2::gpu::gpustd::array<float , 2 > dcaITSTPCTmp{-1 , -1 };
1328+ if (propagator->propagateToDCA (vertex.getXYZ (), trackITSTPCTmp, propagator->getNominalBz (), mFineStep , mMatType , &dcaITSTPCTmp)) {
1329+ o2::track::TrackParCov trackTPC = tracksTPC[iTrk];
1330+ if (trackTPC.rotate (trackITSTPCTmp.getAlpha ()) && propagator->propagateTo (trackTPC, trackITSTPCTmp.getX (), false , mMaxSnp , mFineStep , mMatType )) {
1331+ // store covariance of TPC track at vertex
1332+ covTPCAtVertex0 = trackTPC.getCovarElem (0 , 0 );
1333+ covTPCAtVertex1 = trackTPC.getCovarElem (1 , 1 );
1334+
1335+ trackTPC.update (vertex);
1336+ deltaP2ConstrVtx = trackTPC.getParam (2 ) - trackITSTPCTmp.getParam (2 );
1337+ deltaP3ConstrVtx = trackTPC.getParam (3 ) - trackITSTPCTmp.getParam (3 );
1338+ deltaP4ConstrVtx = trackTPC.getParam (4 ) - trackITSTPCTmp.getParam (4 );
1339+ covTPCConstrVtxP2 = trackTPC.getCovarElem (2 , 2 );
1340+ covTPCConstrVtxP3 = trackTPC.getCovarElem (3 , 3 );
1341+ covTPCConstrVtxP4 = trackTPC.getCovarElem (4 , 4 );
1342+ covITSTPCConstrVtxP2 = trackITSTPCTmp.getCovarElem (2 , 2 );
1343+ covITSTPCConstrVtxP3 = trackITSTPCTmp.getCovarElem (3 , 3 );
1344+ covITSTPCConstrVtxP4 = trackITSTPCTmp.getCovarElem (4 , 4 );
1345+ }
1346+ }
1347+ }
1348+
13071349 *mStreamer [iThread] << " treeTimeSeries"
13081350 // DCAs
13091351 << " triggerMask=" << triggerMask
@@ -1343,6 +1385,21 @@ class TPCTimeSeries : public Task
13431385 << " chi2ITS=" << chi2ITS
13441386 << " chi2match_ITSTPC=" << chi2match_ITSTPC
13451387 << " PID=" << trkOrig.getPID ().getID ()
1388+ // TPC cov at vertex (without vertex constrained)
1389+ << " covTPCAtVertex0=" << covTPCAtVertex0
1390+ << " covTPCAtVertex1=" << covTPCAtVertex1
1391+ // TPC cov at vertex (with vertex constrained)
1392+ << " covTPCConstrVtxP2=" << covTPCConstrVtxP2
1393+ << " covTPCConstrVtxP3=" << covTPCConstrVtxP3
1394+ << " covTPCConstrVtxP4=" << covTPCConstrVtxP4
1395+ // ITS-TPC cov at vertex (with vertex constrained)
1396+ << " covITSTPCConstrVtxP2=" << covITSTPCConstrVtxP2
1397+ << " covITSTPCConstrVtxP3=" << covITSTPCConstrVtxP3
1398+ << " covITSTPCConstrVtxP4=" << covITSTPCConstrVtxP4
1399+ // delta Parameter at vertex with TPC track constrained at vertex
1400+ << " deltaP2ConstrVtx=" << deltaP2ConstrVtx
1401+ << " deltaP3ConstrVtx=" << deltaP3ConstrVtx
1402+ << " deltaP4ConstrVtx=" << deltaP4ConstrVtx
13461403 //
13471404 << " deltaPar0=" << deltaP0
13481405 << " deltaPar1=" << deltaP1
0 commit comments