From 7822713360d0fcf61c7fd11140a9ad03f611a2e8 Mon Sep 17 00:00:00 2001 From: miranov25 Date: Mon, 7 Apr 2025 07:07:18 +0200 Subject: [PATCH 1/2] Adding TRD tracklets - not finished yet --- .../TPC/workflow/src/TPCTimeSeriesSpec.cxx | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx b/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx index 4d20654d07c83..6a4acc1389776 100644 --- a/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx +++ b/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx @@ -42,6 +42,8 @@ #include #include "DataFormatsTPC/PIDResponse.h" #include "DataFormatsITS/TrackITS.h" +#include "DataFormatsTRD/TrackTRD.h" +#include "DataFormatsTRD/Tracklet64.h" #include "TROOT.h" #include "ReconstructionDataFormats/MatchInfoTOF.h" #include "DataFormatsTOF/Cluster.h" @@ -177,6 +179,7 @@ class TPCTimeSeries : public Task auto tracksITSTPC = mTPCOnly ? gsl::span() : recoData.getTPCITSTracks(); auto tracksITS = mTPCOnly ? gsl::span() : recoData.getITSTracks(); + // getting the vertices auto vertices = mTPCOnly ? gsl::span() : recoData.getPrimaryVertices(); auto primMatchedTracks = mTPCOnly ? gsl::span() : recoData.getPrimaryVertexMatchedTracks(); // Global ID's for associated tracks @@ -187,6 +190,15 @@ class TPCTimeSeries : public Task if (mBufferDCA.mOccupancyMapTPC.size() > mMaxOccupancyHistBins) { mBufferDCA.mOccupancyMapTPC.resize(mMaxOccupancyHistBins); } + /// TRD tracklets + const auto & tracksTRD = mTPCOnly ? gsl::span() : recoData.getITSTPCTRDTracks(); + const auto& trklets = mTPCOnly ? gsl::span():recoData.getTRDTracklets(); + std::unordered_map indicesTRDTPC; // TPC track index -> TRD-TPC track index. + // loop over all TRD tracks and map them to TPC tracks + for (int i = 0; i < tracksTRD.size(); ++i) { + //auto trackTPC = tracksTRD[i].getRefTPC().getIndex(); + //if (trackTPC >= 0) indicesTRDTPC[trackTPC] = i; + } // TOF clusters const auto& tofClusters = mTPCOnly ? gsl::span() : recoData.getTOFClusters(); @@ -464,7 +476,7 @@ class TPCTimeSeries : public Task auto myThread = [&](int iThread) { for (size_t i = iThread; i < loopEnd; i += mNThreads) { if (acceptTrack(tracksTPC[i])) { - fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters); + fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters, indicesTRDTPC, tracksTRD, trklets); } } }; @@ -481,7 +493,7 @@ class TPCTimeSeries : public Task auto myThread = [&](int iThread) { for (size_t i = iThread; i < loopEnd; i += mNThreads) { if (acceptTrack(tracksTPC[i])) { - fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters); + fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters, indicesTRDTPC,tracksTRD, trklets); } } }; @@ -1117,7 +1129,8 @@ class TPCTimeSeries : public Task return isGoodTrack; } - void fillDCA(const gsl::span tracksTPC, const gsl::span tracksITSTPC, const gsl::span vertices, const int iTrk, const int iThread, const std::unordered_map>& indicesITSTPC, const gsl::span tracksITS, const std::vector>& idxTPCTrackToTOFCluster, const gsl::span tofClusters) + void fillDCA(const gsl::span tracksTPC, const gsl::span tracksITSTPC, const gsl::span vertices, const int iTrk, const int iThread, const std::unordered_map>& indicesITSTPC, const gsl::span tracksITS, const std::vector>& idxTPCTrackToTOFCluster, const gsl::span tofClusters, + const std::unordered_map indicesTRDTPC,const gsl::span tracksTRD,gsl::span trackletsTRD) { const auto& trackFull = tracksTPC[iTrk]; const bool isGoodTrack = checkTrack(trackFull); @@ -1353,6 +1366,9 @@ class TPCTimeSeries : public Task tpcZDeltaAtTOF = signSide * (o2::tpc::ParameterElectronics::Instance().ZbinWidth * trackFull.getTime0() - vertex.getTimeStamp().getTimeStamp()) * mVDrift - trackTmpOut.getZ() + tofCl.getZ(); } } + // get TRD tracklet + std::vector trdTracklets; + int nTRDTracklets = 0; // get delta parameter between inner and outer float deltaTPCParamInOutTgl = trackFull.getTgl() - trackFull.getParamOut().getTgl(); From 9f0da29c36a7bbf80190e49b81711b8dcab22547 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 7 Apr 2025 05:15:25 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx b/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx index 6a4acc1389776..68466207a3ae3 100644 --- a/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx +++ b/Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx @@ -179,7 +179,6 @@ class TPCTimeSeries : public Task auto tracksITSTPC = mTPCOnly ? gsl::span() : recoData.getTPCITSTracks(); auto tracksITS = mTPCOnly ? gsl::span() : recoData.getITSTracks(); - // getting the vertices auto vertices = mTPCOnly ? gsl::span() : recoData.getPrimaryVertices(); auto primMatchedTracks = mTPCOnly ? gsl::span() : recoData.getPrimaryVertexMatchedTracks(); // Global ID's for associated tracks @@ -191,13 +190,13 @@ class TPCTimeSeries : public Task mBufferDCA.mOccupancyMapTPC.resize(mMaxOccupancyHistBins); } /// TRD tracklets - const auto & tracksTRD = mTPCOnly ? gsl::span() : recoData.getITSTPCTRDTracks(); - const auto& trklets = mTPCOnly ? gsl::span():recoData.getTRDTracklets(); + const auto& tracksTRD = mTPCOnly ? gsl::span() : recoData.getITSTPCTRDTracks(); + const auto& trklets = mTPCOnly ? gsl::span() : recoData.getTRDTracklets(); std::unordered_map indicesTRDTPC; // TPC track index -> TRD-TPC track index. // loop over all TRD tracks and map them to TPC tracks for (int i = 0; i < tracksTRD.size(); ++i) { - //auto trackTPC = tracksTRD[i].getRefTPC().getIndex(); - //if (trackTPC >= 0) indicesTRDTPC[trackTPC] = i; + // auto trackTPC = tracksTRD[i].getRefTPC().getIndex(); + // if (trackTPC >= 0) indicesTRDTPC[trackTPC] = i; } // TOF clusters @@ -493,7 +492,7 @@ class TPCTimeSeries : public Task auto myThread = [&](int iThread) { for (size_t i = iThread; i < loopEnd; i += mNThreads) { if (acceptTrack(tracksTPC[i])) { - fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters, indicesTRDTPC,tracksTRD, trklets); + fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters, indicesTRDTPC, tracksTRD, trklets); } } }; @@ -1130,7 +1129,7 @@ class TPCTimeSeries : public Task } void fillDCA(const gsl::span tracksTPC, const gsl::span tracksITSTPC, const gsl::span vertices, const int iTrk, const int iThread, const std::unordered_map>& indicesITSTPC, const gsl::span tracksITS, const std::vector>& idxTPCTrackToTOFCluster, const gsl::span tofClusters, - const std::unordered_map indicesTRDTPC,const gsl::span tracksTRD,gsl::span trackletsTRD) + const std::unordered_map indicesTRDTPC, const gsl::span tracksTRD, gsl::span trackletsTRD) { const auto& trackFull = tracksTPC[iTrk]; const bool isGoodTrack = checkTrack(trackFull);