Skip to content

Conversation

@shahor02
Copy link
Collaborator

No description provided.

@github-actions
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
async-2024-PbPb-apass2
async-2023-PbPb-apass5

@shahor02
Copy link
Collaborator Author

@miranov25 , this adds to the unbinned residuals tree a branch with 4-bytes struct https://github.com/shahor02/AliceO2/blob/6c23010c8442f96250eb35358bd3c73ca04a9723/Detectors/TPC/calibration/SpacePoints/include/SpacePoints/TrackInterpolation.h#L104-L145 encoding the TPC dedx, TRD q's and slope (truncated to +-3.5 range), TOF cluster time wrt track ITS-TPC time and the same for the PV (i.e. one should use the relevant getter depending on the row value).
I've copied residuals for 1 ctf of OO/564356 to /alice/cern.ch/user/s/shahoian/toMI/o2residuals_tpc.root.
Hope the dump below is self-explanatory:

root [1] unbinnedResid->Scan("res.row : detInfo.word : detInfo.qTotTPC() : detInfo.qMaxTPC() : detInfo.q0TRD() : detInfo.q1TRD() : detInfo.q2TRD() : detInfo.slopeTRD() : detInfo.timeTOF() : detInfo.timePV()")
***********************************************************************************************************************************************
*    Row   * Instance *  res.row  *  detInfo. *  detInfo. *  detInfo. *  detInfo. *  detInfo. *  detInfo. *  detInfo. *  detInfo. *  detInfo. *
***********************************************************************************************************************************************
# RS: TPC                                            QTOT          QMAX
*        0 *        0 *        17 *    524297 *         9 *         8 *         9 *         0 *        32 *      -3.5 *         0 *         0 *
*        0 *        1 *        18 *    917532 *        28 *        14 *        28 *         0 *        56 *      -3.5 *         0 *         0 *
*        0 *        2 *        19 *    589850 *        26 *         9 *        26 *         0 *        36 *      -3.5 *         0 *         0 *
*        0 *        3 *        20 *    458776 *        24 *         7 *        24 *         0 *        28 *      -3.5 *         0 *         0 *
*        0 *        4 *        21 *   1179684 *        36 *        18 *        36 *         0 *         8 * -3.498290 *         0 *         0 *
*        0 *        5 *        22 *   1048636 *        60 *        16 *        60 *         0 *         0 * -3.498290 *         0 *         0 *
*        0 *        6 *        23 *    589852 *        28 *         9 *        28 *         0 *        36 *      -3.5 *         0 *         0 *
*        0 *        7 *        24 *   1310792 *        72 *        20 *        72 *         0 *        16 * -3.498290 *         0 *         0 *
*        0 *        8 *        25 *    655386 *        26 *        10 *        26 *         0 *        40 *      -3.5 *         0 *         0 *
*        0 *        9 *        26 *    852024 *        56 *        13 *        56 *         0 *        52 *      -3.5 *         0 *         0 *
*        0 *       10 *        27 *    786454 *        22 *        12 *        22 *         0 *        48 *      -3.5 *         0 *         0 *
*        0 *       11 *        28 *   1179720 *        72 *        18 *        72 *         0 *         8 * -3.498290 *         0 *         0 *
...
# RS: TRD                                                                      Q0          Q1          Q2   Slope
*        0 *      132 *       162 * 2.470e+09 *      2304 *     37699 *         0 *        18 *        12 * 0.5273504 * -2.46e-27 * -2.46e-27 *
*        0 *      133 *       163 * 2.914e+09 *     18816 *     44467 *         0 *        19 *        13 * 1.2504272 * -2.03e-11 * -2.03e-11 *
*        0 *      134 *       164 * 2.761e+09 *     16400 *     42132 *        16 *         0 *        17 * 1.0008549 * -6.42e-17 * -6.42e-17 *
*        0 *      135 *       165 * 2.567e+09 *      4096 *     39172 *         0 *        32 *        16 * 0.6846156 * -6.82e-24 * -6.82e-24 *
...
# RS: TOF : difference between the TOF cluster time and the seeding ITS-TPC track time, \mus                                 XXX
*        0 *      136 *       170 * 3.166e+09 *     63764 *     48309 *        20 *       114 *        23 * 1.6606836 * -0.022213 * -0.022213 *
...
# RS: PV: difference between the PV time and the seeding ITS-TPC track time, \mus                                                      XXX
*        0 *      144 *       190 * 3.172e+09 *     32768 *     48405 *         0 *         0 *        22 * 1.6709404 * -0.036499 * -0.036499 *
...

@miranov25
Copy link
Contributor

Hello @shahor02

Thank you.
I assume that detInfo.word is parallel to res – we have as many detInfo entries as residuals.
I am now checking the context.

If my understanding is correct, then it will work.
I have one more question.
I need to define the occupancy.
In the current residuals, we have neither occupancy nor time. What is the best way to add them?
I am considering the occupancy vector we have in the reconstruction, but we will need to assign time to the track to be able to use it.

In meantime I will check your file

@shahor02
Copy link
Collaborator Author

@miranov25 yes, detInfo elements are in sync with res, for ITS 0's are filled.
Concerning the occupancy: the current format has no PV-level info and the tracks ordering is randomized on purpose: adding for each track the 32 floats of our usual TPC occupancy will double the output size.
If you want, I can store per track the N TPC clusters in 1 drift time from its PV time.

@miranov25
Copy link
Contributor

Hello @shahor02

If you want, I can store per track the N TPC clusters in 1 drift time from its PV time.

That can work.

Another options
1.) What I suggested today, however, is to integrate within the time window covered by the track, i.e. between the two drift-time boundaries (entrance and end of the TPC)

time_80 = time_event. + drift80= time_event. + 100*(1-80*|tgl|/250.)
tim250 = time_event. +drift250=ime_event. + min(100*(1-250*|tgl|/250.),0)

2.) For occupancy bins per track defined in similar way:
IROC,OROC0,OROC1,OrOC2 radius - 1 Byte per region
4 bytes per track

I will write formula soon

@shahor02
Copy link
Collaborator Author

@miranov25 shall I merge this part as is or wait for your formula?

@miranov25
Copy link
Contributor

Hello @shahor02

We need to use a variable with "semi" relative precision. We can use a simple logarithmic function or the asinh function, which is nearly linear for small x (below the scale value) and logarithmic for larger values.

If the occupancy is given as the number of clusters, we can use the scale as in my TF1 without normalisation.

I have to check again the scale. Can you access our occupancy estimator from reconstructions?

TF1 f1("ncl","asinh(x*0.05)/0.05",0,10000000)
root [25] f1.Eval(1000000)
(double) 230.25851

image

@shahor02
Copy link
Collaborator Author

The residuals extraction has access to David's vector of occupancies per 16 TBs. But I don't understand which value you want to put in your TF1

@miranov25
Copy link
Contributor

I want to calculate the mean occupancy per track segment as discussed above. #14969 (comment)

Occupancy in radial segments IROC, OROC0, 1, 2, using our vectors of occupancies.
It is easy to make a mistake.
Are the formulas clear, or should I try to implement it using David's vector?

@shahor02
Copy link
Collaborator Author

If you want to provide a code snippet, go on, I'll not work on this before tomorrow afternoon.
Note that the tracks may have not IROC of OROC3 contributions, I guess in that case you should count TBs corresponding to the TPC track extrapolation to min and max possible pad rows.

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.

2 participants