Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 19 additions & 3 deletions Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
#include <chrono>
#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"
Expand Down Expand Up @@ -177,6 +179,7 @@ class TPCTimeSeries : public Task
auto tracksITSTPC = mTPCOnly ? gsl::span<o2::dataformats::TrackTPCITS>() : recoData.getTPCITSTracks();
auto tracksITS = mTPCOnly ? gsl::span<o2::its::TrackITS>() : recoData.getITSTracks();


// getting the vertices
auto vertices = mTPCOnly ? gsl::span<o2::dataformats::PrimaryVertex>() : recoData.getPrimaryVertices();
auto primMatchedTracks = mTPCOnly ? gsl::span<o2::dataformats::VtxTrackIndex>() : recoData.getPrimaryVertexMatchedTracks(); // Global ID's for associated tracks
Expand All @@ -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<o2::trd::TrackTRD>() : recoData.getITSTPCTRDTracks<o2::trd::TrackTRD>();
const auto& trklets = mTPCOnly ? gsl::span<const o2::trd::Tracklet64>():recoData.getTRDTracklets();
std::unordered_map<unsigned int, unsigned int> 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;
}
Comment on lines +194 to +201
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exactly do you want to store? TRD track are using not the raw (o2::trd::Tracklet64) tracklets but calibrated ones, see https://github.com/AliceO2Group/AliceO2/blob/dev/Detectors/TPC/calibration/SpacePoints/src/TrackInterpolation.cxx#L445-L452 for the access to tracklets associated to the track.


// TOF clusters
const auto& tofClusters = mTPCOnly ? gsl::span<o2::tof::Cluster>() : recoData.getTOFClusters();
Expand Down Expand Up @@ -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);
}
}
};
Expand All @@ -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);
}
}
};
Expand Down Expand Up @@ -1117,7 +1129,8 @@ class TPCTimeSeries : public Task
return isGoodTrack;
}

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)
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,
const std::unordered_map<unsigned int,unsigned int> indicesTRDTPC,const gsl::span<const o2::trd::TrackTRD> tracksTRD,gsl::span<const o2::trd::Tracklet64> trackletsTRD)
{
const auto& trackFull = tracksTPC[iTrk];
const bool isGoodTrack = checkTrack(trackFull);
Expand Down Expand Up @@ -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<o2::trd::Tracklet64> trdTracklets;
int nTRDTracklets = 0;

// get delta parameter between inner and outer
float deltaTPCParamInOutTgl = trackFull.getTgl() - trackFull.getParamOut().getTgl();
Expand Down
Loading