Skip to content

Commit 6122bfe

Browse files
TPC Timeseries: Adding cov and delta track params at vertex (#12928)
* TPC Timeseries: Adding cov and delta track params at vertex * Fix bug when not using sampling * Fixing delta track parameters * Copy TrackParCov only
1 parent afa2f10 commit 6122bfe

File tree

1 file changed

+63
-6
lines changed

1 file changed

+63
-6
lines changed

Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx

Lines changed: 63 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)