Skip to content

Commit 7822713

Browse files
author
miranov25
committed
Adding TRD tracklets - not finished yet
1 parent 10e0ecf commit 7822713

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include <chrono>
4343
#include "DataFormatsTPC/PIDResponse.h"
4444
#include "DataFormatsITS/TrackITS.h"
45+
#include "DataFormatsTRD/TrackTRD.h"
46+
#include "DataFormatsTRD/Tracklet64.h"
4547
#include "TROOT.h"
4648
#include "ReconstructionDataFormats/MatchInfoTOF.h"
4749
#include "DataFormatsTOF/Cluster.h"
@@ -177,6 +179,7 @@ class TPCTimeSeries : public Task
177179
auto tracksITSTPC = mTPCOnly ? gsl::span<o2::dataformats::TrackTPCITS>() : recoData.getTPCITSTracks();
178180
auto tracksITS = mTPCOnly ? gsl::span<o2::its::TrackITS>() : recoData.getITSTracks();
179181

182+
180183
// getting the vertices
181184
auto vertices = mTPCOnly ? gsl::span<o2::dataformats::PrimaryVertex>() : recoData.getPrimaryVertices();
182185
auto primMatchedTracks = mTPCOnly ? gsl::span<o2::dataformats::VtxTrackIndex>() : recoData.getPrimaryVertexMatchedTracks(); // Global ID's for associated tracks
@@ -187,6 +190,15 @@ class TPCTimeSeries : public Task
187190
if (mBufferDCA.mOccupancyMapTPC.size() > mMaxOccupancyHistBins) {
188191
mBufferDCA.mOccupancyMapTPC.resize(mMaxOccupancyHistBins);
189192
}
193+
/// TRD tracklets
194+
const auto & tracksTRD = mTPCOnly ? gsl::span<o2::trd::TrackTRD>() : recoData.getITSTPCTRDTracks<o2::trd::TrackTRD>();
195+
const auto& trklets = mTPCOnly ? gsl::span<const o2::trd::Tracklet64>():recoData.getTRDTracklets();
196+
std::unordered_map<unsigned int, unsigned int> indicesTRDTPC; // TPC track index -> TRD-TPC track index.
197+
// loop over all TRD tracks and map them to TPC tracks
198+
for (int i = 0; i < tracksTRD.size(); ++i) {
199+
//auto trackTPC = tracksTRD[i].getRefTPC().getIndex();
200+
//if (trackTPC >= 0) indicesTRDTPC[trackTPC] = i;
201+
}
190202

191203
// TOF clusters
192204
const auto& tofClusters = mTPCOnly ? gsl::span<o2::tof::Cluster>() : recoData.getTOFClusters();
@@ -464,7 +476,7 @@ class TPCTimeSeries : public Task
464476
auto myThread = [&](int iThread) {
465477
for (size_t i = iThread; i < loopEnd; i += mNThreads) {
466478
if (acceptTrack(tracksTPC[i])) {
467-
fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters);
479+
fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters, indicesTRDTPC, tracksTRD, trklets);
468480
}
469481
}
470482
};
@@ -481,7 +493,7 @@ class TPCTimeSeries : public Task
481493
auto myThread = [&](int iThread) {
482494
for (size_t i = iThread; i < loopEnd; i += mNThreads) {
483495
if (acceptTrack(tracksTPC[i])) {
484-
fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters);
496+
fillDCA(tracksTPC, tracksITSTPC, vertices, i, iThread, indicesITSTPC, tracksITS, idxTPCTrackToTOFCluster, tofClusters, indicesTRDTPC,tracksTRD, trklets);
485497
}
486498
}
487499
};
@@ -1117,7 +1129,8 @@ class TPCTimeSeries : public Task
11171129
return isGoodTrack;
11181130
}
11191131

1120-
void fillDCA(const gsl::span<const TrackTPC> tracksTPC, const gsl::span<const o2::dataformats::TrackTPCITS> tracksITSTPC, const gsl::span<const o2::dataformats::PrimaryVertex> vertices, const int iTrk, const int iThread, const std::unordered_map<unsigned int, std::array<int, 2>>& indicesITSTPC, const gsl::span<const o2::its::TrackITS> tracksITS, const std::vector<std::tuple<int, float, float, o2::track::TrackLTIntegral, double, float, unsigned int>>& idxTPCTrackToTOFCluster, const gsl::span<const o2::tof::Cluster> tofClusters)
1132+
void fillDCA(const gsl::span<const TrackTPC> tracksTPC, const gsl::span<const o2::dataformats::TrackTPCITS> tracksITSTPC, const gsl::span<const o2::dataformats::PrimaryVertex> vertices, const int iTrk, const int iThread, const std::unordered_map<unsigned int, std::array<int, 2>>& indicesITSTPC, const gsl::span<const o2::its::TrackITS> tracksITS, const std::vector<std::tuple<int, float, float, o2::track::TrackLTIntegral, double, float, unsigned int>>& idxTPCTrackToTOFCluster, const gsl::span<const o2::tof::Cluster> tofClusters,
1133+
const std::unordered_map<unsigned int,unsigned int> indicesTRDTPC,const gsl::span<const o2::trd::TrackTRD> tracksTRD,gsl::span<const o2::trd::Tracklet64> trackletsTRD)
11211134
{
11221135
const auto& trackFull = tracksTPC[iTrk];
11231136
const bool isGoodTrack = checkTrack(trackFull);
@@ -1353,6 +1366,9 @@ class TPCTimeSeries : public Task
13531366
tpcZDeltaAtTOF = signSide * (o2::tpc::ParameterElectronics::Instance().ZbinWidth * trackFull.getTime0() - vertex.getTimeStamp().getTimeStamp()) * mVDrift - trackTmpOut.getZ() + tofCl.getZ();
13541367
}
13551368
}
1369+
// get TRD tracklet
1370+
std::vector<o2::trd::Tracklet64> trdTracklets;
1371+
int nTRDTracklets = 0;
13561372

13571373
// get delta parameter between inner and outer
13581374
float deltaTPCParamInOutTgl = trackFull.getTgl() - trackFull.getParamOut().getTgl();

0 commit comments

Comments
 (0)