Skip to content

Update of TPC fast space charge correction with splines#14921

Open
davidrohr wants to merge 30 commits intoAliceO2Group:devfrom
davidrohr:dev_pull_request6
Open

Update of TPC fast space charge correction with splines#14921
davidrohr wants to merge 30 commits intoAliceO2Group:devfrom
davidrohr:dev_pull_request6

Conversation

@davidrohr
Copy link
Copy Markdown
Collaborator

Rebased version of #14723

@github-actions
Copy link
Copy Markdown
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

@alibuild
Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for dc97a9d at 2025-12-15 11:27:

## sw/BUILD/O2-latest/log
/sw/SOURCES/O2/14921-slc9_x86-64/0/GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx:525:270: error: no matching function for call to 'o2::gpu::TPCFastTransform::convVertexTimeToZOffset(int32_t&, float&, const int32_t&) const'
ninja: build stopped: subcommand failed.

Full log here.

@davidrohr
Copy link
Copy Markdown
Collaborator Author

Dataflow issue is independent, and compiles and runs on GPU, but should not be merged yet. Will comment more in the mail thread.

@alibuild
Copy link
Copy Markdown
Collaborator

alibuild commented Feb 12, 2026

Error while checking build/O2/fullCI_slc9 for d30e01a at 2026-03-07 23:36:

## sw/BUILD/O2Physics-latest/log
c++: fatal error: Killed signal terminated program cc1plus
c++: fatal error: Killed signal terminated program cc1plus
c++: fatal error: Killed signal terminated program cc1plus
ninja: build stopped: subcommand failed.

Full log here.

@alibuild
Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for 6a7d6f6 at 2026-03-26 20:06:

## sw/BUILD/O2Physics-latest/log
c++: fatal error: Killed signal terminated program cc1plus
c++: fatal error: Killed signal terminated program cc1plus
ninja: build stopped: subcommand failed.

Full log here.

sgorbuno and others added 14 commits April 2, 2026 09:23
Fix compiler warnings on MacOS

Fix compiler warning, memmove must only operate on trivial types

Fix coding rule violations

TPC Splines: compilation fix
The TPCFastTransformPOD is a pointerless version of the TPCFastTransform. It can be created from the
original TPCFastTransform as e.g.
auto lold = o2::gpu::TPCFastTransform::loadFromFile("o2-gpu-TPCFastTransform.root","ccdb_object"); // load original transform
std::vector<char> v; // one has to provide a vector (could be a std or pmr), which later can be messaged via DPL
auto* pod = o2::gpu::TPCFastTransformPOD::create(v, *lold); // pointer pod is just v.data() cast to TPCFastTransformPOD*

// run test:
pod->test(*lold);
[INFO]  (ns per call)              original        this     Nmissmatch
[INFO] getCorrection               1.330e+02    1.400e+02   0
[INFO] getCorrectionInvCorrectedX  8.856e+01    8.434e+01   0
[INFO] getCorrectionInvUV          6.266e+01    6.142e+01   0

It can be also created directly from the TPCFastSpaceChargeCorrection as
TPCFastSpaceChargeCorrection& oldCorr = lold->getCorrection();
auto* pod = o2::gpu::TPCFastTransformPOD::create(v, oldCorr);
but in this case one should afterwards set the vdrift and t0 using provided getters.

TPCFastTransformPOD replicates all the methods of the TPCFastTransform (and of the TPCFastSpaceChargeCorrection), including
those which allow to query rescaled corrections (by providing refernce maps and scaling coefficients).
Since the idea of this class is to create a final correction map as a weighted sum of different contribution and to distribute
it to consumer processes via shared memory, also the query methods w/o rescaling are added, they have the suffix _new added.
Eventually, the scalable legacy methods can be suppressed and the suffix new can be dropped.
@davidrohr davidrohr force-pushed the dev_pull_request6 branch from 6a7d6f6 to 800b3b6 Compare April 2, 2026 09:41
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