Skip to content

Commit 59221a9

Browse files
committed
TPC clusters visualization fixes in EveWorkflowHelper
1 parent 7f9d1c4 commit 59221a9

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

EventVisualisation/Workflow/include/EveWorkflow/EveWorkflowHelper.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class EveWorkflowHelper
7272

7373
public:
7474
EveWorkflowHelper();
75-
static std::vector<PNT> getTrackPoints(const o2::track::TrackPar& trc, float minR, float maxR, float maxStep, float minZ = 25000, float maxZ = 25000);
75+
static std::vector<PNT> getTrackPoints(const o2::track::TrackPar& trc, float minR, float maxR, float maxStep, float minZ = -25000, float maxZ = 25000);
7676
void selectTracks(const CalibObjectsConst* calib, GID::mask_t maskCl,
7777
GID::mask_t maskTrk, GID::mask_t maskMatch);
7878
void addTrackToEvent(const o2::track::TrackParCov& tr, GID gid, float trackTime, float dz);
@@ -108,6 +108,7 @@ class EveWorkflowHelper
108108
std::vector<o2::BaseCluster<float>> mMFTClustersArray;
109109
o2::mft::GeometryTGeo* mMFTGeom;
110110
o2::its::GeometryTGeo* mITSGeom;
111+
float mMUS2TPCTimeBins = 5.0098627;
111112
};
112113
} // namespace o2::event_visualisation
113114

EventVisualisation/Workflow/src/EveWorkflowHelper.cxx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ void EveWorkflowHelper::selectTracks(const CalibObjectsConst* calib,
3636
if (!maskTrk[gid.getSource()]) {
3737
return true;
3838
}
39+
if constexpr (isTPCTrack<decltype(trk)>()) { // unconstrained TPC track, with t0 = TrackTPC.getTime0+0.5*(DeltaFwd-DeltaBwd) and terr = 0.5*(DeltaFwd+DeltaBwd) in TimeBins
40+
time = trk.getTime0(); // for TPC we need internal time, not the center of the possible interval
41+
}
3942
mTrackSet.trackGID.push_back(gid);
4043
mTrackSet.trackTime.push_back(time);
4144
return true;
@@ -197,23 +200,23 @@ void EveWorkflowHelper::drawITSTPC(GID gid, float trackTime)
197200
const auto& track = mRecoCont.getTPCITSTrack(gid);
198201
addTrackToEvent(track, gid, trackTime, 0.);
199202
drawITSClusters(track.getRefITS(), trackTime);
200-
drawTPCClusters(track.getRefTPC(), trackTime);
203+
drawTPCClusters(track.getRefTPC(), trackTime * mMUS2TPCTimeBins);
201204
}
202205

203206
void EveWorkflowHelper::drawITSTPCTOF(GID gid, float trackTime)
204207
{
205208
const auto& track = mRecoCont.getITSTPCTOFTrack(gid);
206209
addTrackToEvent(track, gid, trackTime, 0.);
207210
drawITSClusters(track.getRefITS(), trackTime);
208-
drawTPCClusters(track.getRefTPC(), trackTime);
211+
drawTPCClusters(track.getRefTPC(), trackTime * mMUS2TPCTimeBins);
209212
drawTOFClusters(gid, trackTime);
210213
}
211214

212215
void EveWorkflowHelper::drawTPCTRD(GID gid, float trackTime)
213216
{
214217
//LOG(INFO) << "EveWorkflowHelper::drawTPCTRD " << gid;
215218
const auto& tpcTrdTrack = mRecoCont.getTPCTRDTrack<o2::trd::TrackTRD>(gid);
216-
drawTPCClusters(tpcTrdTrack.getRefGlobalTrackId(), trackTime);
219+
drawTPCClusters(tpcTrdTrack.getRefGlobalTrackId(), trackTime * mMUS2TPCTimeBins);
217220
drawTRDClusters(tpcTrdTrack, trackTime);
218221
}
219222

@@ -249,7 +252,7 @@ void EveWorkflowHelper::drawTPCTOF(GID gid, float trackTime)
249252
const auto& trTPCTOF = mRecoCont.getTPCTOFTrack(gid);
250253
const auto& match = mRecoCont.getTPCTOFMatch(gid.getIndex());
251254
addTrackToEvent(trTPCTOF, gid, trackTime, 0);
252-
drawTPCClusters(match.getTrackRef(), trackTime);
255+
drawTPCClusters(match.getTrackRef(), trackTime * mMUS2TPCTimeBins);
253256
drawTOFClusters(gid, trackTime);
254257
}
255258

@@ -303,23 +306,21 @@ void EveWorkflowHelper::drawITSClusters(GID gid, float trackTime)
303306
}
304307

305308
// TPC cluseters for given TPC track (gid)
306-
void EveWorkflowHelper::drawTPCClusters(GID gid, float trackTime)
309+
void EveWorkflowHelper::drawTPCClusters(GID gid, float trackTimeTB)
307310
{
308311
const auto& trc = mRecoCont.getTPCTrack(gid);
309312
auto mTPCTracksClusIdx = mRecoCont.getTPCTracksClusterRefs();
310313
auto mTPCClusterIdxStruct = &mRecoCont.getTPCClusters();
311-
const auto& elParam = o2::tpc::ParameterElectronics::Instance();
312-
float clusterTimeBinOffset = trc.getTime0(); // in in time beans time assigned to track - primary vertex
313314

314315
// store the TPC cluster positions
315316
for (int iCl = trc.getNClusterReferences(); iCl--;) {
316317
uint8_t sector, row;
317318
const auto& clTPC = trc.getCluster(mTPCTracksClusIdx, iCl, *mTPCClusterIdxStruct, sector, row);
318319

319320
std::array<float, 3> xyz;
320-
this->mTPCFastTransform->TransformIdeal(sector, row, clTPC.getPad(), clTPC.getTime(), xyz[0], xyz[1], xyz[2], clusterTimeBinOffset); // in sector coordinate
321+
this->mTPCFastTransform->TransformIdeal(sector, row, clTPC.getPad(), clTPC.getTime(), xyz[0], xyz[1], xyz[2], trackTimeTB); // in sector coordinate
321322
o2::math_utils::rotateZ(xyz, o2::math_utils::sector2Angle(sector % o2::tpc::SECTORSPERSIDE)); // lab coordinate (global)
322-
mEvent.addCluster(xyz[0], xyz[1], xyz[2], trackTime);
323+
mEvent.addCluster(xyz[0], xyz[1], xyz[2], trackTimeTB / mMUS2TPCTimeBins);
323324
}
324325
}
325326

@@ -338,6 +339,10 @@ void EveWorkflowHelper::drawMFTClusters(GID gid, float trackTime)
338339
void EveWorkflowHelper::drawTPC(GID gid, float trackTime)
339340
{
340341
const auto& tr = mRecoCont.getTPCTrack(gid);
342+
// this is a hack to suppress the noise
343+
// if (std::abs(tr.getEta()) < 0.05) {
344+
// return;
345+
// }
341346
auto vTrack = mEvent.addTrack({.time = static_cast<float>(trackTime * 8 * o2::constants::lhc::LHCBunchSpacingMUS),
342347
.charge = tr.getCharge(),
343348
.PID = tr.getPID(),
@@ -505,4 +510,6 @@ EveWorkflowHelper::EveWorkflowHelper()
505510
this->mITSGeom = o2::its::GeometryTGeo::Instance();
506511
this->mITSGeom->fillMatrixCache(o2::math_utils::bit2Mask(o2::math_utils::TransformType::T2L, o2::math_utils::TransformType::T2GRot, o2::math_utils::TransformType::L2G));
507512
this->mTPCFastTransform = (o2::tpc::TPCFastTransformHelperO2::instance()->create(0));
513+
const auto& elParams = o2::tpc::ParameterElectronics::Instance();
514+
mMUS2TPCTimeBins = 1. / elParams.ZbinWidth;
508515
}

0 commit comments

Comments
 (0)