athena merge requestshttps://gitlab.cern.ch/atlas/athena/-/merge_requests2024-03-15T01:50:01+01:00https://gitlab.cern.ch/atlas/athena/-/merge_requests/69838Draft: Add a helper to condense a little code.2024-03-15T01:50:01+01:00Lucy LewittDraft: Add a helper to condense a little code.https://gitlab.cern.ch/atlas/athena/-/merge_requests/69385Draft: Egamma topo cluster copier for run42024-03-03T16:24:34+01:00Lucy LewittDraft: Egamma topo cluster copier for run4Needs to wait for release 25.
Tentative first pass at removing some run 3 specific behaviour from forward electron reconstruction in main.
This will change run3 reco.
This MR targets egammaTopoClusterCopier.
@christosNeeds to wait for release 25.
Tentative first pass at removing some run 3 specific behaviour from forward electron reconstruction in main.
This will change run3 reco.
This MR targets egammaTopoClusterCopier.
@christoshttps://gitlab.cern.ch/atlas/athena/-/merge_requests/67636Draft: ATR-28329: Revert MR640182024-01-22T09:33:50+01:00Binbin DongDraft: ATR-28329: Revert MR64018Revert https://gitlab.cern.ch/atlas/athena/-/merge_requests/64018/ as it caused difference on `DL1dv01` b-tagger.\
See details of discussion here: https://gitlab.cern.ch/atlas/athena/-/merge_requests/64018#note_7391147
cc @dguest, @fdib...Revert https://gitlab.cern.ch/atlas/athena/-/merge_requests/64018/ as it caused difference on `DL1dv01` b-tagger.\
See details of discussion here: https://gitlab.cern.ch/atlas/athena/-/merge_requests/64018#note_7391147
cc @dguest, @fdibello, @ligang.https://gitlab.cern.ch/atlas/athena/-/merge_requests/67257MuonTrackingGeometry - Remove bare pointer deletion2024-01-09T08:19:03+01:00Johannes Junggeburthjohannes.josef.junggeburth@cern.chMuonTrackingGeometry - Remove bare pointer deletion* Replace bare pointers that are manually deleted either by objects or smart pointers
* Use std::abs, std::min, etc* Replace bare pointers that are manually deleted either by objects or smart pointers
* Use std::abs, std::min, etchttps://gitlab.cern.ch/atlas/athena/-/merge_requests/67428Draft: tauRecoTools additional cleanup2023-12-05T14:10:46+01:00Antonio De MariaDraft: tauRecoTools additional cleanuphttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64505Draft: Migrate creation and propagation metadata tools to a single tool with ...2023-11-03T10:24:18+01:00Maciej Pawel SzymanskiDraft: Migrate creation and propagation metadata tools to a single tool with two modesThis MR is to work on migrating pairs of tools used to create and propagate metadata with a single tool (per domain) with two modes.
The scope of this MR concerns _core_ tools, i.e. `EventStreamInfo`, `EventFormat`, and `FileMetaData`.
...This MR is to work on migrating pairs of tools used to create and propagate metadata with a single tool (per domain) with two modes.
The scope of this MR concerns _core_ tools, i.e. `EventStreamInfo`, `EventFormat`, and `FileMetaData`.
/cc @gemmeren @ametehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/66535CaloUtils: Tighten up test for bad layer position.2023-10-25T20:41:52+02:00Scott SnyderCaloUtils: Tighten up test for bad layer position.When we calculate the layer positionsm in CaloLayerCalculator, we can get
crazy values if there is near-cancelation of the cell energies.
There was some protection against this, but it was not sufficiently
comprehensive. Tighten up thes...When we calculate the layer positionsm in CaloLayerCalculator, we can get
crazy values if there is near-cancelation of the cell energies.
There was some protection against this, but it was not sufficiently
comprehensive. Tighten up these checks.
See ATLASRECTS-7775.https://gitlab.cern.ch/atlas/athena/-/merge_requests/66322Draft: Test if the unique association between the Vtx and Trks for Tau TJVA c...2023-10-07T11:24:23+02:00Qichen Dongqichen.dong@cern.chDraft: Test if the unique association between the Vtx and Trks for Tau TJVA changes Reco outputTest if the unique association between the Vtx and Trks for Tau TJVA changes Reco outputTest if the unique association between the Vtx and Trks for Tau TJVA changes Reco outputQichen Dongqichen.dong@cern.chQichen Dongqichen.dong@cern.chhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/65555Draft: Use logarithmic identity to reduce number of calls to log functions2023-09-26T15:42:18+02:00Stewart Martin-HaughDraft: Use logarithmic identity to reduce number of calls to log functionsApply some identities and make some of the code a bit faster: a few extra multiplies will always be faster than log.
I suspect the `PDG_energyLoss_ionization` and `dEdl_ionization` functions can be merged - they are almost identical. cc...Apply some identities and make some of the code a bit faster: a few extra multiplies will always be faster than log.
I suspect the `PDG_energyLoss_ionization` and `dEdl_ionization` functions can be merged - they are almost identical. cc @christoshttps://gitlab.cern.ch/atlas/athena/-/merge_requests/65207Draft: Simplify egamma fwd builder2023-09-20T21:53:46+02:00Lucy LewittDraft: Simplify egamma fwd builderLarge portions of the track matching forward builder come from other algs and tools in egamma. This branch attempts to move those parts back to their original components to reduce code repetition.Large portions of the track matching forward builder come from other algs and tools in egamma. This branch attempts to move those parts back to their original components to reduce code repetition.https://gitlab.cern.ch/atlas/athena/-/merge_requests/64441Updating CaloRinger containers and including new egamma CaloRinger flags2023-09-12T14:24:30+02:00Edmar Egidio Purcino De SouzaUpdating CaloRinger containers and including new egamma CaloRinger flagsThis MR is to update the CaloRinger containers, putting:
`'xAOD::RingSetContainer#PhotonRingSets', 'xAOD::RingSetAuxContainer#PhotonRingSetsAux.', 'xAOD::CaloRingsContainer#PhotonCaloRings', 'xAOD::CaloRingsAuxContainer#PhotonCaloRingsA...This MR is to update the CaloRinger containers, putting:
`'xAOD::RingSetContainer#PhotonRingSets', 'xAOD::RingSetAuxContainer#PhotonRingSetsAux.', 'xAOD::CaloRingsContainer#PhotonCaloRings', 'xAOD::CaloRingsAuxContainer#PhotonCaloRingsAux.'`
as default (instead your conterpart for electrons that we have today). In this MR we have the inclusion of new set of egamma keys for CaloRinger, to be able to select the type of ringer features that we might want in the AOD output, using ConfigFlags.
pinging: @christos , @turra , @jlieberm,@damazio and @jodafons to comment and check the implementation. Discussion in the JIRA ticket ATLASRECTS-7666 .Edmar Egidio Purcino De SouzaEdmar Egidio Purcino De Souzahttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64449Draft: Try to vectorize newCovariance matrix. The one that should be faster2023-07-20T00:08:10+02:00Christos Anastopouloschristos.anastopoulos@cern.chDraft: Try to vectorize newCovariance matrix. The one that should be fasterTry to vectorize newCovariance matrix.
This is similar to https://gitlab.cern.ch/atlas/athena/-/merge_requests/36911.
In principle the new method we introduced in RK Utils. should be faster make used of more vectorized instructions
F...Try to vectorize newCovariance matrix.
This is similar to https://gitlab.cern.ch/atlas/athena/-/merge_requests/36911.
In principle the new method we introduced in RK Utils. should be faster make used of more vectorized instructions
For sure will violate Tier 0 since we do not respect order of instructions so will change digits.
In principle one could unify these with the other MR but then we change even more order of instruction
More or less what happened in !36911
If we want to allow ``cpu`` improvement of x% and can live with same math
but different order of operations this in principle is "fair game"
Also a cohort of other become "fair game" on top of data structure and memory optimisation ones.
To understand what we try
```
double a11 = (Jac[ 0]*V(0, 0)+Jac[ 1]*V(0, 1)+Jac[ 2]*V(0, 2))+(Jac[ 3]*V(0, 3)+Jac[ 4]*V(0, 4));
double a12 = (Jac[ 0]*V(0, 1)+Jac[ 1]*V(1, 1)+Jac[ 2]*V(1, 2))+(Jac[ 3]*V(1, 3)+Jac[ 4]*V(1, 4));
double a13 = (Jac[ 0]*V(0, 2)+Jac[ 1]*V(1, 2)+Jac[ 2]*V(2, 2))+(Jac[ 3]*V(2, 3)+Jac[ 4]*V(2, 4));
double a14 = (Jac[ 0]*V(0, 3)+Jac[ 1]*V(1, 3)+Jac[ 2]*V(2, 3))+(Jac[ 3]*V(3, 3)+Jac[ 4]*V(3, 4));
double a15 = (Jac[ 0]*V(0, 4)+Jac[ 1]*V(1, 4)+Jac[ 2]*V(2, 4))+(Jac[ 3]*V(3, 4)+Jac[ 4]*V(4, 4));
rv.fillSymmetric(0, 0, (a11*Jac[ 0]+a12*Jac[ 1]+a13*Jac[ 2])+(a14*Jac[ 3]+a15*Jac[ 4]));
```
Let's (since V is symmetric) write as
```
double a11 = (Jac[ 0]*V(0, 0)+Jac[ 1]*V(1, 0)+Jac[ 2]*V(2, 0))+(Jac[ 3]*V(3,0 )+Jac[ 4]*V(4, 0));
double a12 = (Jac[ 0]*V(0, 1)+Jac[ 1]*V(1, 1)+Jac[ 2]*V(2, 1))+(Jac[ 3]*V(3, 1)+Jac[ 4]*V(4, 1));
double a13 = (Jac[ 0]*V(0, 2)+Jac[ 1]*V(1, 2)+Jac[ 2]*V(2, 2))+(Jac[ 3]*V(2, 3)+Jac[ 4]*V(4, 2));
double a14 = (Jac[ 0]*V(0, 3)+Jac[ 1]*V(1, 3)+Jac[ 2]*V(2, 3))+(Jac[ 3]*V(3, 3)+Jac[ 4]*V(4, 3));
double a15 = (Jac[ 0]*V(0, 4)+Jac[ 1]*V(1, 4)+Jac[ 2]*V(2, 4))+(Jac[ 3]*V(3, 4)+Jac[ 4]*V(4, 4));
rv.fillSymmetric(0, 0, (a11*Jac[ 0]+a12*Jac[ 1]+a13*Jac[ 2])+(a14*Jac[ 3]+a15*Jac[ 4]));
```
Then this a multiplication of 1x5 * 5x5 matric giving is an 1x5 which then we dot with the initial 1x5https://gitlab.cern.ch/atlas/athena/-/merge_requests/64367Don't copy AuxDyn when container thinned down to 0. related to ATLASRECTS-76562023-07-19T20:23:36+02:00Marcin NowakDon't copy AuxDyn when container thinned down to 0. related to ATLASRECTS-7656
That change prevents the creation of empty AuxDyn branches when writing (reduces file size)
and makes xAOD copying (e.g. when merging files) a 1 to 1 operation (merging was dropping these empty branches)
see ATLASRECTS-7656 ...
That change prevents the creation of empty AuxDyn branches when writing (reduces file size)
and makes xAOD copying (e.g. when merging files) a 1 to 1 operation (merging was dropping these empty branches)
see ATLASRECTS-7656
This change is fully transparent and does not affect data, but the file structure will be different (no more branches for not existing dynamic attributes).https://gitlab.cern.ch/atlas/athena/-/merge_requests/63358Speedup computation of Pixel distortion correction2023-07-05T18:21:12+02:00Goetz GayckenSpeedup computation of Pixel distortion correctionIn a data22 athena job, std::pow shows up as the the 6th most used function in vtune (50 s accumulated of 1751 s total Algorithm::sysExecute). This function is primarily called by PixelDistortionData::bernstein_grundpolynom which compute...In a data22 athena job, std::pow shows up as the the 6th most used function in vtune (50 s accumulated of 1751 s total Algorithm::sysExecute). This function is primarily called by PixelDistortionData::bernstein_grundpolynom which computes
sum_i=0^n sum_j=0^n P_{n;i}(u) P_{n;j}(v) a_{ij}
with P_{n;i}(u) = (n over i) * u^i * (1-u)^{n-i}, and n=20. In this nested sum std::pow is called for each evaluation 2*20^2 times.
To speed up the computation, the commits implement the following optimisations:
1) compute u^{i}, (1-u)^i, v^{i} and (1-v)^{i} outside the nested sum for i=0..20, use the pre-computed factors inside the nested sum. This replaces 400 calls of std::pow by array accesses and 4*20 products.
2) multiply the parameters a_{ij} when creating the conditions data with the binomial coefficients (n_over_i) * (n_over_j), which removes two multiplications from the nested sum.
3) pass the distortion correction parameter vectors by reference rather than by value which avoid allocation and memory copies.
In synthetic benchmarks this shows a speedup by more than a factor 50. The athena data22 jobs show in average an increase in the number of events processed per second by more than ~1% (an improvement from 1.11 to 1.12 events/s), which is below the naive expectation of ~3% (taking the vtune results as truth: 1751s -> 1706s).https://gitlab.cern.ch/atlas/athena/-/merge_requests/64075Draft: TrackingVolumeHelper rm hopefully unused method2023-07-01T04:33:36+02:00Christos Anastopouloschristos.anastopoulos@cern.chDraft: TrackingVolumeHelper rm hopefully unused methodTrackingVolumeHelper rm hopefully unused methodTrackingVolumeHelper rm hopefully unused methodhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63983Draft: Test vertex cache reset2023-06-29T14:19:33+02:00Carlo Varnicarlo.varni@cern.chDraft: Test vertex cache resetjust a test to check the impactjust a test to check the impacthttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63467Draft: Adding helper functions to assist alignment tests2023-06-29T01:16:14+02:00Stylianos AngelidakisDraft: Adding helper functions to assist alignment testsAdd a few explicit functions to the MM/sTGC readout elements to facilitate navigation to the multilayer (or "chamber") coordinate system.
This coordinate system is not exposed anywhere, however, it is where alignment corrections are appl...Add a few explicit functions to the MM/sTGC readout elements to facilitate navigation to the multilayer (or "chamber") coordinate system.
This coordinate system is not exposed anywhere, however, it is where alignment corrections are applied.
Therefore, it is useful for people running alignment tests.
Tagging: @amelung @itrigger @ngarellihttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63742ATLASRECTS-7656: Make TSOS cnv robust when we have slimmed TSOS in merging2023-06-20T18:06:18+02:00Christos Anastopouloschristos.anastopoulos@cern.chATLASRECTS-7656: Make TSOS cnv robust when we have slimmed TSOS in mergingLets propagate the persHints to the persistent side
This should change 'm_typeFlags' for TSOS in ESD
but gets rids of these kind of diff merging vs not-merging
```
Py:diff-root INFO [Trk::TrackCollection_tlp7_CombinedInDetTr...Lets propagate the persHints to the persistent side
This should change 'm_typeFlags' for TSOS in ESD
but gets rids of these kind of diff merging vs not-merging
```
Py:diff-root INFO [Trk::TrackCollection_tlp7_CombinedInDetTracks.m_fitQualities.m_chiSquared]: 31459 leaves differ
Py:diff-root INFO [Trk::TrackCollection_tlp7_CombinedInDetTracks.m_fitQualities.m_numberDoF]: 31459 leaves differ
Py:diff-root INFO [Trk::TrackCollection_tlp7_CombinedInDetTracks.m_trackStates.m_fitQualityOnSurface.m_index]: 31458 leaves differ
Py:diff-root INFO [Trk::TrackCollection_tlp7_CombinedInDetTracks.m_trackStates.m_fitQualityOnSurface.m_typeID.m_cnvID]: 31459 leaves differ
```
Again @jmaurer and @amete leaving this a bit up to youhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/60401Annealing for robust fit2023-06-14T23:51:26+02:00Vadim KostyukhinAnnealing for robust fitUse small annealing in vertex fits with robust option depending on the fit iteration number.
This should speed up convergence and help to avoid fake minima.Use small annealing in vertex fits with robust option depending on the fit iteration number.
This should speed up convergence and help to avoid fake minima.https://gitlab.cern.ch/atlas/athena/-/merge_requests/63688Draft: Test long long2023-06-14T17:44:11+02:00Carlo Varnicarlo.varni@cern.chDraft: Test long long