From 7822713360d0fcf61c7fd11140a9ad03f611a2e8 Mon Sep 17 00:00:00 2001 From: miranov25 Date: Mon, 7 Apr 2025 07:07:18 +0200 Subject: [PATCH] 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();