Rebase to dev - #6
Open
njacazio wants to merge 47 commits into
Open
Conversation
* GPU/TPC: Add vectorised CPU version of tail filter * Format
Change type from short to float to remove possible overflow errors There is no deep reason for this to be short in any case. The underlaying storage was already of type float. Fixes a problem observed in monopole simulations inside TPC
* Properly discard ITS hits preceding readout start * Properly discard ITS3 hits preceding RO start
Add a third sampling trigger bit for tracks with matched ITS-TPC combined momentum. The new trigger uses the Tsallis sampling function on the combined-track pT instead of the TPC-only pT and stores the corresponding weight as weight_ITSTPC. This extends the existing trigger mask scheme: 0x1: minimum-bias sampling 0x2: Tsallis sampling using TPC-only track pT 0x4: Tsallis sampling using ITS-TPC combined-track pT The output condition is updated so tracks selected by the new ITS-TPC sampling path are written even when they are not selected by the existing TPC-only or minimum-bias triggers. Motivation: sampling only on TPC-only momentum can bias correlated observables such as qpt_TPC - qpt_Comb. The new trigger provides a dedicated sampled stream for combined-track performance studies while preserving the existing TPC-only and minimum-bias sampling streams. Co-authored-by: miranov25 <marian.ivanov@cern.cg>
* Fix x-axis related error treatments Inspired by the refining (@galocco) of similar errors in the na60+ adaptation of DCAFitter (@fprino). List of changes: 1. TrackCovI now stores a full symmetric 3D information matrix. The old dummy X variance is removed. The X information is derived from the track slopes dY/dX and dZ/dX via H^T C_YZ^{-1} H. 2. XerrFactor was removed. The fit no longer creates an artificial longitudinal uncertainty from sigma_Y. 3. getTrackCovMatrix() was removed. PCA covariance is now computed from summed track information matrices, not by rotating an artificial 3D covariance with dummy X error. 4. calcPCACoefs() now multiplies the full local information matrix. Terms involving local XY and XZ correlations are included in the Ti coefficient matrices. 5. calcInverseWeight() now rotates and sums the full information matrix. All six local information elements contribute to the global 3x3 weight. 6. calcChi2Derivatives() now contracts residual derivatives with the full information matrix. The Hessian curvature term is added only to diagonal Hessian elements, matching the fact that each trajectory has second derivative only with respect to its own running parameter. 7. calcChi2DerivativesNoErr() was corrected analogously. The Gauss-Newton term contributes to all Hessian elements, while the residual-times-second-derivative term contributes only to diagonal elements. 8. calcPCACovMatrix() now returns the inverse of summed track information. The longitudinal vertex uncertainty comes from track slopes rather than from a dummy X covariance. 9. calcChi2() now uses all six information-matrix elements. Residual correlations involving X are included in the chi2 value. 10. correctTracks() now propagates mCandTr analytically to the corrected X. This keeps the candidate track state, slopes, covariance, and mTrPos synchronized between Newton iterations while avoiding full-field Propagator calls for the small Newton corrections. 11. createParentTrackParCov() now builds the parent momentum covariance from the native O2 momentum parameters (snp,tgl,q/pt). The Jacobian includes the track-frame alpha rotation, and daughter momentum covariances are summed in lab px,py,pz before the existing O2 parent TrackParCov constructor converts to the parent frame. * Add regularization for degenerate matrices * Add pulls and gen.parent TrackParCov to test output
* adding stepping in digitization * added segmentation to the digitization * added non-segmented version, with configurable choice * clang format * removed redundant hit response in the middle, nsteps=1 is now default * Charge threshold 0 by defult, using efficiency set by the digitizer Changed chargeThreshold from 75 to 0. * Please consider the following formatting changes --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@v6...v7) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) * Latest v3b.1 RICH geometry with quadrants, modules and shielding * Latest v3b.1 RICH geometry with quadrants, modules and shielding * Latest v3b.1 RICH geometry with quadrants, modules and shielding (clang) * Latest v3b.1 RICH geometry with quadrants, modules and shielding (clang fixed) --------- Co-authored-by: Nicola Nicassio <nicolanicassio@MacBook-Pro-di-Nicola.local> Co-authored-by: Nicola Nicassio <nicolanicassio@MBP-di-Nicola.station>
Given how easy it is nowadays to have LLMs do full refactorings, I am not sure this makes sense anymore.
Third patameter of createFieldMap is the convention and the 4th is the uniformity. This was fixed everywhere, but here.
…5609) * Transparent fix proposal draft 1 * Please consider the following formatting changes * Fix whitespace * Address only the bug * Adjustments: fix bugs, tuning * Improve name of ProtectedFlags * Please consider the following formatting changes --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
Removed conditional source file inclusion for TrackerACTS.
…low (#15618) * TPC TimeSeries: propagate min-momentum, min-cluster, max-tgl to workflow Add configurable environment variables for o2-tpc-time-series-workflow: TPCTIMESERIES_MIN_MOMENTUM (default: 0.2) TPCTIMESERIES_MIN_CLUSTER (default: 80) TPCTIMESERIES_MAX_TGL (default: 1.4) Defaults match TPCTimeSeriesSpec.cxx hardcoded values. Previously these cuts were not configurable from the workflow script. * TPC TimeSeries: propagate track selection and multiplicity cuts to workflow Add configurable environment variables for o2-tpc-time-series-workflow: TPCTIMESERIES_MIN_MOMENTUM (default: 0.2) TPCTIMESERIES_MIN_CLUSTER (default: 80) TPCTIMESERIES_MAX_TGL (default: 1.4) TPCTIMESERIES_MULT_MAX (default: 50000) Defaults match TPCTimeSeriesSpec.cxx hardcoded values. Previously these cuts were not configurable from the workflow script. --------- Co-authored-by: miranov25 <marian.ivanov@cern.cg>
…ndOfSteam with DoublePipeline
…segmentation (#15639) * approach TF3 ASIC size by using 8-chip modules + update chip segmentation parameters * fix parameter + update number of sensors in macro
The field normally should not be deleted since this would invalidate the field pointers cached elsewhere (e.g. by the double version of the Propagator if it was requested). Instead, the existing field should be scaled by the newly provided current values. The exception is the marginal case when the scaling is not possible, e.g. when switching from 5kGauss map to 2kGauss (which should be avoided for other reasons). In this case the field will be recreated and the warning will be printed about possible invalidation of cached pointers.
staticMapCreatorCPM.C creates the correction map from the unbinned residuals via the crossing point method SmoothingExtrapolate.C Performs gaussian smoothing and extrapolation to small unmeasured radii voxResQA.C Makes default QA plots TPCFastTransformInitCPM.C converts the correction maps to the final splines
njacazio
marked this pull request as ready for review
July 28, 2026 17:24
Author
|
Hi @marcovanleeuwen we should rebase before merging the other PR |
Introduces multi-threaded creation of the material budget lookup table, reducing it from hours to minutes. Creating the LUT walks every cell of every layer through TGeo and the cells are independent, so they are spread over TBB tasks with one TGeoNavigator per thread. The innermost 20 layers at 60 trials/cell drop from 28 min to 72 s on 28 cores. Effective only with ROOT >= v6-36-10-alice3, which removes a per-query thread-id lookup and the false sharing between per-thread scratch buffers of TGeo shapes. On older ROOT the parallel path is correct, just slower -- it saturates near 12x. All layers map onto a single flat cell index so the load stays balanced despite very different cell counts per layer; a binary search maps a flat index back to (layer, iz, iphi). The worker navigators are given back at the end. meanMaterialBudget() takes an optional navigator: a caller passing its own runs lock-free, a caller passing none shares gGeoManager's and still takes the mutex. Deciding from the argument keeps it local, so process-global state cannot break it. Thread count comes from the new populateFromTGeo() argument, falling back to NTHREADS_MATBUD; the default is the previous serial path. Results are independent of the thread count -- compareMatBudLUT.C checks a parallel LUT against a serial one cell by cell, and they match exactly over all 129523 cells. Supervised-by: Sandro Wenzel <sandro.wenzel@cern.ch>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.