Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AOD: Add TPC time0 option B #13131

Merged
merged 4 commits into from
May 16, 2024
Merged

AOD: Add TPC time0 option B #13131

merged 4 commits into from
May 16, 2024

Conversation

f3sch
Copy link
Collaborator

@f3sch f3sch commented May 13, 2024

As proposed today in https://indico.cern.ch/event/1416151/ this would implement option b (e.g. the inclusion of the time0 for tpc-only track with encoding of the deltaFwd/Bwd).

@miranov25 If you could please have a look in to the proposal and code to solve also your request for inclusion of t0, this would be much appreciated?

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
@f3sch f3sch requested review from a team as code owners May 13, 2024 11:42
Copy link
Contributor

REQUEST FOR PRODUCTION RELEASES:
To request your PR to be included in production software, please add the corresponding labels called "async-" to your PR. Add the labels directly (if you have the permissions) or add a comment of the form (note that labels are separated by a ",")

+async-label <label1>, <label2>, !<label3> ...

This will add <label1> and <label2> and removes <label3>.

The following labels are available
async-2023-pbpb-apass3
async-2023-pbpb-apass4
async-2022-pp-apass6-2023-PbPb-apass2
async-2022-pp-apass4
async-2022-pp-apass4-accepted
async-2022-pp-apass6-2023-PbPb-apass2-accepted
async-2023-pbpb-apass3-accepted
async-2023-pbpb-apass4-accepted
async-2023-pp-apass4
async-2023-pp-apass4-accepted
async-2024-pp-apass1
async-2024-pp-apass1-accepted
async-2022-pp-apass7
async-2022-pp-apass7-accepted
async-2024-pp-cpass0
async-2024-pp-cpass0-accepted

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
@miranov25
Copy link
Contributor

Subject: Compatibility Concerns with Track t0 Storage Requirements

Hi @f3sch,

I reviewed your presentation on the agenda, and I have some questions regarding compatibility with the t0 storage requirements for tracks (similar to my previous trackQA implementation).

Based on my review, it seems there might be some discrepancies between the proposed solution and the following requirements:

t0 Storage Requirements:

  • Data: We require storage for the t0 time for all tracks. This time, when combined with another reference time source, provides the absolute time for each track.
  • Compression: To minimize storage overhead, we aim to compress the t0 data to a level where the additional storage volume is negligible.
  • Precision: The required time precision for t0 is approximately 0.25 ns (nanoseconds). This value reflects the intrinsic resolution of TPC tracks at the TPC entrance, translating to:
    • 0.025 cm spatial resolution
    • 2.5 cm/μs (microseconds) detector drift velocity
    • ~0.01 μs (microseconds) time resolution

Would you be available to discuss these requirements in more detail and explore potential compatibility issues with your proposed solution?

Marian

@miranov25
Copy link
Contributor

Building on My Previous Comment: t0 Storage for All Tracks
This comment expands on my earlier point regarding t0 storage requirements. In the specific scenario where we consider t0 for all tracks (rather than just TPC tracks), I plan to utilize delta time for machine learning tasks, particularly for rejecting fake matched tracks and improving track properties.

Availability of Delta Time:
Currently, I'm unsure if we can obtain this information through alternative methods. My current understanding suggests it might not be readily available.

Further Discussion:
To ensure optimal functionality, it would be beneficial to discuss the feasibility of acquiring delta time information for all tracks. Are there alternative approaches or existing data sources that could potentially provide us with this data?

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
@jgrosseo
Copy link
Collaborator

@miranov25 This implementation is for a different use case. The question to you is: does it work also for you?
Therefore, could you be more specific with regards to the actual proposal? In particular the way the time is stored can be found here:
https://github.com/AliceO2Group/AliceO2/pull/13131/files#diff-6dc278732c5ed5f43d5567ad2c469ac11acf0e85339ae708bdf977ddd8fba392R2459

@alibuild
Copy link
Collaborator

alibuild commented May 15, 2024

Error while checking build/O2/fullCI for 847bb09 at 2024-05-16 06:32:

## sw/BUILD/O2-latest/log
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
c++: error: unrecognized command-line option '--rtlib=compiler-rt'


## sw/BUILD/o2checkcode-latest/log
--
========== List of errors found ==========
++ GRERR=0
++ grep -v clang-diagnostic-error error-log.txt
++ grep ' error:'
/sw/SOURCES/O2/13131-slc8_x86-64/0/Framework/Core/include/Framework/ASoA.h:3115:81: error: invalid use of incomplete type 'typename table_t::RowViewFiltered<Filtered<Join<aod::Tracks, aod::TracksCov, aod::TracksExtra>>, TracksExtension, Table<Index<0, -1>, CollisionId, TrackType, X, Alpha, Y, Z, Snp, Tgl, Signed1Pt, IsWithinBeamPipe<X>, Px<Signed1Pt, Snp, Alpha>, Py<Signed1Pt, Snp, Alpha>, Pz<Signed1Pt, Tgl>, PVector<Signed1Pt, Snp, Alpha, Tgl>, Energy<Signed1Pt, Tgl>, Rapidity<Signed1Pt, Tgl>, Sign<Signed1Pt>, Marker<1>>, TracksCovExtension, Table<SigmaY, SigmaZ, SigmaSnp, SigmaTgl, Sigma1Pt, RhoZY, RhoSnpY, RhoSnpZ, RhoTglY, RhoTglZ, RhoTglSnp, Rho1PtY, Rho1PtZ, Rho1PtSnp, Rho1PtTgl, Marker<1>>, TracksExtra_001Extension, Table<TPCInnerParam, Flags, ITSClusterSizes, TPCNClsFindable, TPCNClsFindableMinusFound, TPCNClsFindableMinusCrossedRows, TPCNClsShared, TPCDeltaTFwd<TrackTimeRes, Flags>, TPCDeltaTBwd<TrackTimeRes, Flags>, TRDPattern, ITSChi2NCl, TPCChi2NCl, TRDChi2, TOFChi2, TPCSignal, TRDSignal, Length, TOFExpMom, PIDForTracking<Flags>, IsPVContributor<Flags>, HasITS<DetectorMap>, HasTPC<DetectorMap>, HasTRD<DetectorMap>, HasTOF<DetectorMap>, TPCNClsFound<TPCNClsFindable, TPCNClsFindableMinusFound>, TPCNClsCrossedRows<TPCNClsFindable, TPCNClsFindableMinusCrossedRows>, ITSClusterMap<ITSClusterSizes>, ITSNCls<ITSClusterSizes>, ITSNClsInnerBarrel<ITSClusterSizes>, ITSClsSizeInLayer<ITSClusterSizes>, TPCCrossedRowsOverFindableCls<TPCNClsFindable, TPCNClsFindableMinusCrossedRows>, TPCFoundOverFindableCls<TPCNClsFindable, TPCNClsFindableMinusFound>, TPCFractionSharedCls<TPCNClsShared, TPCNClsFindable, TPCNClsFindableMinusFound>, TrackEtaEMCAL, TrackPhiEMCAL, TrackTime, TrackTimeRes>>' (aka 'RowViewBase<o2::soa::FilteredIndexPolicy, o2::soa::Filtered<o2::soa::Join<aod::Tracks, aod::TracksCov, aod::TracksExtra>>, o2::aod::TracksExtension, o2::soa::Table<o2::soa::Index<0, -1>, o2::aod::track::CollisionId, o2::aod::track::TrackType, o2::aod::track::X, o2::aod::track::Alpha, o2::aod::track::Y, o2::aod::track::Z, o2::aod::track::Snp, o2::aod::track::Tgl, o2::aod::track::Signed1Pt, o2::aod::track::IsWithinBeamPipe<o2::aod::track::X>, o2::aod::track::Px<o2::aod::track::Signed1Pt, o2::aod::track::Snp, o2::aod::track::Alpha>, o2::aod::track::Py<o2::aod::track::Signed1Pt, o2::aod::track::Snp, o2::aod::track::Alpha>, o2::aod::track::Pz<o2::aod::track::Signed1Pt, o2::aod::track::Tgl>, o2::aod::track::PVector<o2::aod::track::Signed1Pt, o2::aod::track::Snp, o2::aod::track::Alpha, o2::aod::track::Tgl>, o2::aod::track::Energy<o2::aod::track::Signed1Pt, o2::aod::track::Tgl>, o2::aod::track::Rapidity<o2::aod::track::Signed1Pt, o2::aod::track::Tgl>, o2::aod::track::Sign<o2::aod::track::Signed1Pt>, o2::soa::Marker<1>>, o2::aod::TracksCovExtension, o2::soa::Table<o2::aod::track::SigmaY, o2::aod::track::SigmaZ, o2::aod::track::SigmaSnp, o2::aod::track::SigmaTgl, o2::aod::track::Sigma1Pt, o2::aod::track::RhoZY, o2::aod::track::RhoSnpY, o2::aod::track::RhoSnpZ, o2::aod::track::RhoTglY, o2::aod::track::RhoTglZ, o2::aod::track::RhoTglSnp, o2::aod::track::Rho1PtY, o2::aod::track::Rho1PtZ, o2::aod::track::Rho1PtSnp, o2::aod::track::Rho1PtTgl, o2::soa::Marker<1>>, o2::aod::TracksExtra_001Extension, o2::soa::Table<o2::aod::track::TPCInnerParam, o2::aod::track::Flags, o2::aod::track::ITSClusterSizes, o2::aod::track::TPCNClsFindable, o2::aod::track::TPCNClsFindableMinusFound, o2::aod::track::TPCNClsFindableMinusCrossedRows, o2::aod::track::TPCNClsShared, o2::aod::track::v001::extensions::TPCDeltaTFwd<o2::aod::track::TrackTimeRes, o2::aod::track::Flags>, o2::aod::track::v001::extensions::TPCDeltaTBwd<o2::aod::track::TrackTimeRes, o2::aod::track::Flags>, o2::aod::track::TRDPattern, o2::aod::track::ITSChi2NCl, o2::aod::track::TPCChi2NCl, o2::aod::track::TRDChi2, o2::aod::track::TOFChi2, o2::aod::track::TPCSignal, o2::aod::track::TRDSignal, o2::aod::track::Length, o2::aod::track::TOFExpMom, o2::aod::track::PIDForTracking<o2::aod::track::Flags>, o2::aod::track::IsPVContributor<o2::aod::track::Flags>, o2::aod::track::HasITS<o2::aod::track::v001::DetectorMap>, /sw/SOURCES/O2/13131-slc8_x86-64/0/Framework/Core/include/Framework/ASoA.h:3115:29: note: in instantiation of function template specialization 'o2::soa::Filtered<o2::soa::Join<o2::aod::MFTTracks_001Extension, o2::soa::Table<o2::soa::Index<0, -1>, o2::aod::fwdtrack::CollisionId, o2::aod::fwdtrack::X, o2::aod::fwdtrack::Y, o2::aod::fwdtrack::Z, o2::aod::fwdtrack::Phi, o2::aod::fwdtrack::Tgl, o2::aod::fwdtrack::Signed1Pt, o2::aod::fwdtrack::v001::NClusters<o2::aod::fwdtrack::MFTClusterSizesAndTrackFlags>, o2::aod::fwdtrack::MFTClusterSizesAndTrackFlags, o2::aod::fwdtrack::IsCA<o2::aod::fwdtrack::MFTClusterSizesAndTrackFlags>, o2::aod::fwdtrack::Px<o2::aod::fwdtrack::Pt, o2::aod::fwdtrack::Phi>, o2::aod::fwdtrack::Py<o2::aod::fwdtrack::Pt, o2::aod::fwdtrack::Phi>, o2::aod::fwdtrack::Pz<o2::aod::fwdtrack::Pt, o2::aod::fwdtrack::Tgl>, o2::aod::fwdtrack::Sign<o2::aod::fwdtrack::Signed1Pt>, o2::aod::fwdtrack::Chi2, o2::aod::fwdtrack::TrackTime, o2::aod::fwdtrack::TrackTimeRes>>>::(anonymous class)::operator()<o2::aod::MFTTracks_001Extension, o2::soa::Table<o2::soa::Index<0, -1>, o2::aod::fwdtrack::CollisionId, o2::aod::fwdtrack::X, o2::aod::fwdtrack::Y, o2::aod::fwdtrack::Z, o2::aod::fwdtrack::Phi, o2::aod::fwdtrack::Tgl, o2::aod::fwdtrack::Signed1Pt, o2::aod::fwdtrack::v001::NClusters<o2::aod::fwdtrack::MFTClusterSizesAndTrackFlags>, o2::aod::fwdtrack::MFTClusterSizesAndTrackFlags, o2::aod::fwdtrack::IsCA<o2::aod::fwdtrack::MFTClusterSizesAndTrackFlags>, o2::aod::fwdtrack::Px<o2::aod::fwdtrack::Pt, o2::aod::fwdtrack::Phi>, o2::aod::fwdtrack::Py<o2::aod::fwdtrack::Pt, o2::aod::fwdtrack::Phi>, o2::aod::fwdtrack::Pz<o2::aod::fwdtrack::Pt, o2::aod::fwdtrack::Tgl>, o2::aod::fwdtrack::Sign<o2::aod::fwdtrack::Signed1Pt>, o2::aod::fwdtrack::Chi2, o2::aod::fwdtrack::TrackTime, o2::aod::fwdtrack::TrackTimeRes>>' requested here
++ [[ 0 == 0 ]]
++ exit 1
--

Full log here.

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
@miranov25
Copy link
Contributor

Hi @jgrosseo, @pzhristov, and @f3sch,

To address the challenges posed by the high-occupancy environment, I propose storing the complete TrackQA table (including track Time0) in the non-sampled regime. This dataset will be essential for post-correction processes designed to rectify induced imperfections. As discussed with Felix, this approach will simultaneously accommodate his requirements as well.

To advance this request, I am currently engaging with relevant stakeholders and compiling supporting documentation for approval. I introduced a preliminary version of this proposal at yesterday’s TPC meeting. I plan to further elaborate on these plans at today’s AOT meeting and have requested a time slot with Peter on Monday for a more detailed discussion.

  • as a motivation see my Run2 dEdx spectra with outlier filtering as published in the PDG

Best regards,

Marian

image

@pzhristov pzhristov merged commit 08d9479 into AliceO2Group:dev May 16, 2024
11 of 12 checks passed
@f3sch f3sch added the async-2023-pbpb-apass4 Request porting to async-2023-pbpb-apass4 label May 16, 2024
@chiarazampolli chiarazampolli added the async-2024-pp-apass1 Request porting to async-2024-pp-apass1 label May 16, 2024
benedikt-voelkel pushed a commit that referenced this pull request May 23, 2024
* AOD: Add TPC time0 option B

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>

* AOD: skip call to truncateFloat if tpc-only track

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>

* AOD: store t0 wrt to BC of assoc. collision

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>

* AOD: Also store used bcOfTimeRef

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>

---------

Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
(cherry picked from commit 08d9479)
@benedikt-voelkel benedikt-voelkel added async-2023-pbpb-apass4-accepted Ported to async-2023-pbpb-apass4 async-2024-pp-apass1-accepted Ported to async-2024-pp-apass1 labels May 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
async-2023-pbpb-apass4-accepted Ported to async-2023-pbpb-apass4 async-2023-pbpb-apass4 Request porting to async-2023-pbpb-apass4 async-2024-pp-apass1-accepted Ported to async-2024-pp-apass1 async-2024-pp-apass1 Request porting to async-2024-pp-apass1
Development

Successfully merging this pull request may close these issues.

None yet

8 participants