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

O2-4592 - adding TOF LTIntegral to time series&skimmed data #13809

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

miranov25
Copy link
Contributor

Adding TOF information structure o2::track::TrackLTIntegral ltIntegral=tpctofmatch.getLTIntegralOut() into the

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-apass4
async-2023-pp-apass4
async-2024-pp-apass1
async-2022-pp-apass7
async-2024-pp-cpass0
async-2024-PbPb-apass1
async-2024-ppRef-apass1

@miranov25
Copy link
Contributor Author

Hello @noferini , @ercolessi @matthias-kleiner

As we agreed I am pushing the TOF information into the TPC time series & skimmed data.
The test looks fine, I will test few correlation and request cherry pick.

New time series:

 treeTimeSeries->Show(0)->
....
 sqrtChi2Match   = -1
 tpcYDeltaAtTOF  = -999
 tpcZDeltaAtTOF  = -999
 mDXatTOF        = -999
 mDZatTOF        = -999
 mTOFLength      = (o2::track::TrackLTIntegral*)0x53aff90
 mL              = 0.000000
 mX2X0           = 0.000000
 mXRho           = 0.000000
 mT[9]           = 0.000000 , 0.000000 , 0.000000 , 0.000000 , 0.000000 ,
                    0.000000 , 0.000000 , 0.000000 , 0.000000
 mTOFSignal      = 0
..

The content looks reasonable so far:

treeTimeSeries->Draw("mL:tgl:abs(qpt)","mL>0","colz")

image

@shahor02
Copy link
Collaborator

@miranov25 you have to apply clang-format. Note that this is adding ~10 non-empty floats per TOF track.

@miranov25
Copy link
Contributor Author

AddingTPC, Vertex, and TPC-TOF time

  • T0 time is for a moment missing .... needs too much coding
    @noferini, do we have preliminary T0 time available at all during tracking, or is it calculated only later on?
 mTOFLength      = (o2::track::TrackLTIntegral*)0x366e2f0
 mL              = 0.000000
 mX2X0           = 0.000000
 mXRho           = 0.000000
 mT[9]           = 0.000000 , 0.000000 , 0.000000 , 0.000000 , 0.000000 ,
                    0.000000 , 0.000000 , 0.000000 , 0.000000

 mTOFSignal      = 0
 mDeltaTTOFTPC   = 0
 vertexTime      = 0
 trackTime0      = 2541.89

@miranov25
Copy link
Contributor Author

@shahor02, @davidrohr, @wiechula

Could you please review the pull request? I would like to request a cherry-pick of the code. Local tests have been successful without any issues.

Best regards,
Marian

@miranov25
Copy link
Contributor Author

@miranov25 you have to apply clang-format. Note that this is adding ~10 non-empty floats per TOF track.

Somehow clang is stuck, for a moment. I will add it clang version soon.
For the size we can optimize that size using diff to pion, for a moment it creates 3 % increase in the data volume:

root [16] treeTimeSeries->GetBranch("mT[9]")->GetZipBytes()/float(treeTimeSeries->GetZipBytes())
(float) 0.0340168f

@noferini
Copy link
Collaborator

AddingTPC, Vertex, and TPC-TOF time

* T0 time is for a moment missing .... needs too much coding
  @noferini, do we have preliminary T0 time available at all during tracking, or is it calculated only later on?

Hi @miranov25 ,

  • FT0-T0 is not yes associated at this stage, in TOF QC we re-match it to TOF tracks by requiring the same BC
  • TOF-T0 from combinatorial algorithm is calculated later, at analysis level affter collision is defined. Again, in TOF QC we group tracks close in TOF-time to define collision and test TOF-T0.
    For time-series I would take care to port only FT0-T0 which is quite efficient and provided with a good resolution. I have to check in our code if we can match FT0 and TOF-tracks already in our matching algorithm (I think I do it already for TOF calibs) to simplify your life.

@miranov25
Copy link
Contributor Author

Hello @shahor02, @noferini, and @wiechula,

I ran clang-format, and everything looks fine—there is no difference before and after formatting:

[O2Physics/latest-master-o2] /scratch/alice/miranov/alicesw/O2/Detectors/TPC/workflow/src $> diff TPCTimeSeriesSpec.cxx TPCTimeSeriesSpec.cxx.clang  
[O2Physics/latest-master-o2] /scratch/alice/miranov/alicesw/O2/Detectors/TPC/workflow/src $>  

This suggests there might be a bug in the build system.

Could this be approved so I can request a cherry-pick for the apass1 production?

Data Volume for mT

Regarding the data volume for the mT, I will apply compression with an estimated factor of 4–8. It is straightforward since we only need to encode very small deltas relative to the expectation:

t = L / <β_ι>  
<β_ι> = β0_ι + (dβ_ι / dp) * Δp  

Here:

  • Δp is similar for all particle species.
  • The variation around the approximation is minimal, leading to very low entropy, effective residual coding

I will review how this is currently implemented in the AO2D, but it can be coded efficiently in a similar manner. I am prototyping the approach now.

Best regards,
Marian

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI for 1bc9730 at 2024-12-17 09:05:

## 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/O2Physics-latest/log
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:
Error in cling::AutoLoadingVisitor::InsertIntoAutoLoadingState:


## sw/BUILD/o2checkcode-latest/log
--
========== List of errors found ==========
++ GRERR=0
++ grep -v clang-diagnostic-error error-log.txt
++ grep ' error:'
++ GRERR=1
++ [[ 1 == 0 ]]
++ mkdir -p /sw/INSTALLROOT/2adc30def61b50088280974134526ccee6e64860/slc8_x86-64/o2checkcode/1.0-local11/etc/modulefiles
++ cat
--

Full log here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants