Skip to content

Integrate TRD extra data support in AOD production workflow#15108

Open
KangkanGoswami wants to merge 9 commits intoAliceO2Group:devfrom
KangkanGoswami:trdAOD
Open

Integrate TRD extra data support in AOD production workflow#15108
KangkanGoswami wants to merge 9 commits intoAliceO2Group:devfrom
KangkanGoswami:trdAOD

Conversation

@KangkanGoswami
Copy link

This PR fixes the problems with #14734

This pull request adds TRD extra data support to the AOD production workflow, including calibrated tracklet handling, local gain and noise corrections, and a new TRDsExtra SOA table in AnalysisDataModel.h. The changes introduce an optional runtime flag (--enable-TRD-extra) to control TRD output and extend existing workflow templates and data structures to incorporate TRD-specific quantities for improved reconstruction and analysis.

@KangkanGoswami KangkanGoswami requested review from a team as code owners February 26, 2026 17:36
@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

@glegras
Copy link
Contributor

glegras commented Feb 26, 2026

@sawenzel @shahor02 This is an update of #14734
The problem we had should be solved now. Can you check that this PR is fine for you?

sawenzel
sawenzel previously approved these changes Feb 26, 2026
Copy link
Collaborator

@sawenzel sawenzel left a comment

Choose a reason for hiding this comment

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

approving, for now, to start CI

Copy link
Collaborator

@shahor02 shahor02 left a comment

Choose a reason for hiding this comment

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

Please see some suggestions below.

Comment on lines 398 to 400
static int q0s[6] = {-1}, q1s[6] = {-1}, q2s[6] = {-1};
static float q0sCor[6] = {-1}, q1sCor[6] = {-1}, q2sCor[6] = {-1};
static float ttgls[6] = {-999}, tphis[6] = {-999};
Copy link
Collaborator

Choose a reason for hiding this comment

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

why is this static?

return;
}
const auto& trk = recoData.getTrack<o2::trd::TrackTRD>(contributorsGID[GIndex::Source::TRD]);
auto trkC = trk;
Copy link
Collaborator

Choose a reason for hiding this comment

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

There is no reason to copy full track with cov.matrix and all TRD extras, it is enough to take TrackPar part only, i.e.

o2::tack::TrackPar trkC{trk};

Then, the trk is the global track refitted inward to its innermost point, i.e. it is likely defined at the ITS IB. The rotation / propagation from there to TRD is very imprecise and may fail at low pTs.
I would suggest to use the outer version of the ITS-TPC or TPC track, so the propagation is done from the X=250. So, it will be:

o2::tack::TrackPar trkC{  contributorsGID[GIndex::Source::ITSTPC].isIndexSet() ?  
recoData.getTPCITSTrack(contributorsGID[GIndex::Source::ITSTPC]).getParamOut() : 
recoData.getTPCTrack(contributorsGID[GIndex::Source::TPC]).getParamOut() };

o2::framework::Produces<o2::aod::FDDsExtra> fddExtraCursor;
o2::framework::Produces<o2::aod::FV0AsExtra> fv0aExtraCursor;

if (mEnableFITextra) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

To be sure: why does the TRD PR implement the FIT extra filling?

KangkanGoswami and others added 7 commits February 27, 2026 17:17
This commit enables the workflow to process TRD-specific calibration and noise information, allowing for more accurate reconstruction and analysis of TRD signals in AOD production.
This commit enables the workflow to generate TRD-specific extra tables in the AOD, applying calibration and noise corrections to improve reconstruction fidelity for TRD tracks.
This change allows users to enable or disable TRD extra output at runtime via workflow configuration, integrating TRD processing into the AOD production workflow.
…isDataModel.h

This update to AnalysisDataModel.h standardizes TRD-related naming and introduces a dedicated SOA table for TRD extra data, allowing calibrated and corrected TRD quantities to be stored within the AOD framework.
Please consider the following formatting changes to AliceO2Group#15108
Copy link
Collaborator

@shahor02 shahor02 left a comment

Choose a reason for hiding this comment

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

Conditionally approving to trigger CI

@sawenzel
Copy link
Collaborator

@shahor02 : Could you follow up until you are happy? We should squash everything into a single commit. It is fine from my side as long as the full-system test (and all other CI) is green.

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.

5 participants