athena merge requestshttps://gitlab.cern.ch/atlas/athena/-/merge_requests2024-03-28T16:33:29+01:00https://gitlab.cern.ch/atlas/athena/-/merge_requests/68758MuonTrackingGeometry fix memory bugs2024-03-28T16:33:29+01:00Johannes Junggeburthjohannes.josef.junggeburth@cern.chMuonTrackingGeometry fix memory bugsRework the memory management of the muon tracking geometry and the Geo -> Trk::Volume converter. Cone clean up etc. Few bug fixes.
Validation tests perfromed on simulation Run2 & Run 3
![image](/uploads/a6228ba4e68dfa1ae2c86416e850e7...Rework the memory management of the muon tracking geometry and the Geo -> Trk::Volume converter. Cone clean up etc. Few bug fixes.
Validation tests perfromed on simulation Run2 & Run 3
![image](/uploads/a6228ba4e68dfa1ae2c86416e850e73c/image.png)
![image](/uploads/2ea2da76b97d84b97364d60fff524b30/image.png)
![image](/uploads/11c1818a9a4511ba42503932d9f32bdf/image.png)
![image](/uploads/cc765f3ff84e76aed07300dae506493a/image.png)
![image](/uploads/edc265d2f6d791370dcddfced77be744/image.png)
Further 250k data events from DRAW_ZMUMU have been reprocessed
![image](/uploads/ddac5de860349f24cb60a48d5be657b4/image.png)
![image](/uploads/ba8ba82ebaeb84eb2fa3a36a1c7cb07a/image.png)
![image](/uploads/4846fdd866a27bb8ec1db75caac31e90/image.png)
![image](/uploads/5efd30d930e56420e452877f78ac413d/image.png)
![image](/uploads/4ccb61e8b448e6de80732baf284fc6bb/image.png)
Tagging @todorova, @pscholer, @zyan, @nstyles, @jcatmore, @jchapman, @kluit
Closes ATLASRECTS-7876
The full plot bock is attached to the JIRA ticket because the file size limit there is larger than herehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70159TileTBRec: Remove legacy JO configurations (ATLASRECTS-7939)2024-03-28T14:49:22+01:00Siarhei HarkushaTileTBRec: Remove legacy JO configurations (ATLASRECTS-7939)Legacy JO configurations have been removed from TileTBRec package.Legacy JO configurations have been removed from TileTBRec package.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70167TileMonitoring: Remove old Tile monitoring tools for physics events2024-03-28T14:48:59+01:00Siarhei HarkushaTileMonitoring: Remove old Tile monitoring tools for physics eventsOld (not thread-safe) Tile monitoring tools for physics events have been removed because
they have been migrated to the corresponding thread-safe monitoring algorithm for Run3
which are actually used now during Run3.Old (not thread-safe) Tile monitoring tools for physics events have been removed because
they have been migrated to the corresponding thread-safe monitoring algorithm for Run3
which are actually used now during Run3.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70157TileCosmicAlgs: Remove legacy JO configurations (ATLASRECTS-7939)2024-03-28T13:59:15+01:00Siarhei HarkushaTileCosmicAlgs: Remove legacy JO configurations (ATLASRECTS-7939)Legacy JO configurations have been removed from TileCosmicAlgs package.Legacy JO configurations have been removed from TileCosmicAlgs package.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70122TileMonitoring: Remove legacy config from TileDQFragMonitorAlgorithm (ATLASRE...2024-03-28T11:30:34+01:00Siarhei HarkushaTileMonitoring: Remove legacy config from TileDQFragMonitorAlgorithm (ATLASRECTS-7939)New-style (CA-based) configuration of the TileDQFragMonitorAlgorithm
has been updated to remove legacy part (compatibility with legacy JO).New-style (CA-based) configuration of the TileDQFragMonitorAlgorithm
has been updated to remove legacy part (compatibility with legacy JO).https://gitlab.cern.ch/atlas/athena/-/merge_requests/70124TileMonitoring: Remove legacy config from TileMBTSMonitorAlgorithm (ATLASRECT...2024-03-28T11:30:34+01:00Siarhei HarkushaTileMonitoring: Remove legacy config from TileMBTSMonitorAlgorithm (ATLASRECTS-7939)New-style (CA-based) configuration of the TileMBTSMonitorAlgorithm algorithm
has been updated to remove legacy part (compatibility with legacy JO).New-style (CA-based) configuration of the TileMBTSMonitorAlgorithm algorithm
has been updated to remove legacy part (compatibility with legacy JO).https://gitlab.cern.ch/atlas/athena/-/merge_requests/70128TileRecAlgs: Remove legacy JO configurations (ATLASRECTS-7939)2024-03-28T11:30:34+01:00Siarhei HarkushaTileRecAlgs: Remove legacy JO configurations (ATLASRECTS-7939)Legacy JO configurations have been removed from TileRecAlgs package.Legacy JO configurations have been removed from TileRecAlgs package.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70126TileMuId: Remove legacy JO configurations (ATLASRECTS-7939)2024-03-28T11:30:34+01:00Siarhei HarkushaTileMuId: Remove legacy JO configurations (ATLASRECTS-7939)Legacy JO configurations have been removed from TileMuId package.Legacy JO configurations have been removed from TileMuId package.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70121TileMonitoring: Remove legacy JO configurations (ATLASRECTS-7939)2024-03-28T11:30:34+01:00Siarhei HarkushaTileMonitoring: Remove legacy JO configurations (ATLASRECTS-7939)Legacy JO configurations have been removed.Legacy JO configurations have been removed.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70130TileSimAlgs: Remove legacy JO configurations (ATLASRECTS-7939)2024-03-28T11:30:33+01:00Siarhei HarkushaTileSimAlgs: Remove legacy JO configurations (ATLASRECTS-7939)Legacy JO configurations have been removed from TileSimAlgs package.Legacy JO configurations have been removed from TileSimAlgs package.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70155TileMonitoring: Update Tile online monitoring script for cosmics2024-03-28T11:30:33+01:00Siarhei HarkushaTileMonitoring: Update Tile online monitoring script for cosmicsScript to run online Tile monitoring has been modified to
add possibility to monitor onlline events from cosmics streams seperately,
and to increase events buffer sizes of monitoring tasks for online monitoring.Script to run online Tile monitoring has been modified to
add possibility to monitor onlline events from cosmics streams seperately,
and to increase events buffer sizes of monitoring tasks for online monitoring.https://gitlab.cern.ch/atlas/athena/-/merge_requests/68533TileCal: creating crack scintillators in separate top-level volumes2024-03-27T12:02:37+01:00Sanya SolodkovTileCal: creating crack scintillators in separate top-level volumeshttps://gitlab.cern.ch/atlas/athena/-/merge_requests/69434CaloRecGPU Offline and Online Configuration and Clean-Up2024-03-19T14:47:10+01:00Nuno Dos Santos FernandesCaloRecGPU Offline and Online Configuration and Clean-UpFollowing from the great efforts in updating the CaloRecGPU configuration to a flags-based style (namely !68106 and !68546), we are now able to provide a proper configuration for both offline and online, with extraneous options cleaned u...Following from the great efforts in updating the CaloRecGPU configuration to a flags-based style (namely !68106 and !68546), we are now able to provide a proper configuration for both offline and online, with extraneous options cleaned up and new ones added as needed, providing what I hope would be a sensible interface that encourages code reuse. In particular, we try to leverage the `ActiveConfig` convention to unify the offline and online instantiations, which I think is a pretty powerful mechanism that may improve the clarity of the configuration here and elsewhere.
My personal guidelines while creating this configuration:
1. Flags enable configuring every possible set of behaviours we might want to change (or even just test) in the tools/algorithms to be instantiated.
1. `...Cfg` functions can receive `**kwargs` to potentially override other options directly (using a loop with `setattr`, NOT by simply forwarding them to the component factory!), to allow one-off instantiations with particular changes in very specific cases if they are needed. (This is essentially equivalent to setting them directly after the `popToolsAndMerge`, but may be more ergonomic.)
1. Other arguments may be added to the `...Cfg` functions on a case-by-case basis to configure specific things that are more related to how we are instantiating everything (e. g. the name for the component, whether or not we want trigger-style monitoring, etc.) than to how we want the algorithm to behave.
1. The `ActiveConfig` infrastructure is leveraged to accommodate different needs without repeating the instantiating code (as any different behaviours should be specifiable by changing the appropriate flags and, in particular cases, the arguments to the `...Cfg`)
1. Flag hierarchy should be consistent. (See Control/AthenaConfiguration/python/AllConfigFlags.py)
Full consensus and enforcement is indispensable, but my personal preference would be:
- `flags.<System>.<Stuff>` for most things (with potential subcategories when different options for different purposes are required, e. g. the different instantiations we now see of CPU CaloClusterMaker)
- `flags.Trig.<System>.<Stuff>` in the rare cases where there is a specific trigger setting that relates to said `<System>.<Stuff>`, or a trigger-specific algorithm, or whatever, that has no offline equivalent
- Trigger-specific _configuration_ of the tools/algorithms should be leveraged through separate sets of flags, e. g. `flags.<System>.<Stuff>.Trigger` (or equivalent with multiple categories)
Point 5 is the one I admit may cause more contention here, and, as with everything that essentially has strictly to do with organization and semantics, having a full consensus is more important than anything else.
In an effort to make the instantiation of the CaloRecGPU tools and algorithms work in perfect agreement with what CaloRec does, a few changes that lie outside the narrow definition of this configuration are needed:
1. Prevent `CaloClusterSnapshot` from `dynamic_cast`ing its parent to a `CaloClusterMaker` to find out the final cluster container name.
This basically meant we could not instantiate a `CaloClusterSnapshot` as a tool of our `CaloGPUHybridClusterProcessor`, to match what the CPU equivalent does in CaloRec. A possible solution would be making both `CaloClusterMaker` and `CaloGPUHybridClusterProcessor` inherit from a common (virtual) base that would provide the necessary interface, but, given that there are few places where a `CaloClusterSnapshot` is instantiated, it is much cleaner to add an option to the class and assign the correct value to it at the instantiation site.
This leads to (localized) changes in ~~`CaloClusterTopoGetter.py` and~~ `CaloTopoClusterConfig.py`.
Tagging @pavol and @wlampl as per Denis' suggestion.
1. Add an additional option to the CPU topological cluster growing tool to decide whether the clusters will be cut in transverse energy or in absolute transverse energy
This is motivated in the first place by the fact that, on the GPU, the cluster cuts are applied by a different tool than the one that does cluster growing, so it has always been a distinct option there, especially since floating point accuracy issues meant that studying this cut was necessary at some point, and we are interested in keeping it as such for potential future tests.
Secondly, the CPU (and by extension the GPU) cluster growing already has three distinct options to decide whether the seed, growing and terminal cells are classified using the signal-to-noise ratio or its absolute value; these options are independent and, even though it might make little physical sense, having distinct settings is a theoretical possibility of the current configuration (and something that might be interesting to consider e. g. for debug purposes). However, rather in contrast with this increased freedom of configuration, the option that decided whether the seed cells were classified in absolute value was recycled to also decide whether or not to apply the cluster cut in absolute value, which to me seems rather inconsistent.
Thirdly, and following from the last point, the cluster cut in transverse energy takes into account all the cells that are part of the cluster. Conceptually speaking, it is an entirely different operation from the seed cell classification, which only takes into account the energy and noise of a single cell (and it is theoretically possible that there are some clusters whose overall transverse energy is of a different sign than the energy measurement at its seed cell). Of course, for most purposes, we are interested in considering absolute value for both the cell classification and the transverse energy cut, but in that case the three different options for each of the kinds of cells should also be unified into a single "use absolute value" option. This being a more fundamental change to the algorithm, I think it is outside of the scope of this MR, but it may be worth discussing in the future.
Tagging @menke per Denis' suggestion.
However, the addition of this option does result in quite a few changes outside of the immediate scope of this MR, in the places where the option that controls the seed cell classification in absolute value is set, as the new option that was introduced to control the cluster cuts in transverse energy must agree with it. These correspond to:
- ~~`Calorimeter/CaloRec/python/CaloClusterTopoEMGetters.py`~~
- ~~`DataQuality/DataQualityTools/share/HadTopoClusterMaker.py`~~
- ~~`Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCaloClusterTopoGetter.py`~~
- `Reconstruction/tauRec/python/TauToolHolder.py`
- `TileCalorimeter/TileMonitoring/python/TileTopoClusterConfig.py`
- ~~`TileCalorimeter/TileMonitoring/share/TileMonTopoCluster_jobOptions.py`~~
I do realize some of those may be on the way to deprecation, but I am unsure whether or not to keep them up to date with our changes to prevent undesirable behaviour regressions. (And they also provide a relevant argument for having the `ActiveConfig` manage all the different possible configurations instead of having tools instantiated in just slightly different ways across multiple files...)
1. Add a CPU flag that would allow instantiating the fully CPU configuration with GPU criteria
This would basically make it more convenient to do a comparison of the full configuration and instantiation between CPU and GPU in the future without any changes to the CPU code (barring the setting and use of this flag), instead of the approach used so far, that was to instantiate only the CPU tools with the appropriate options in the GPU-related code.
Some cleanup of older code was also undertaken:
- Fixed some errors from compilation paths that are usually not taken (related to CUDA and C++ versions).
- Removed deprecated prototype of GPU (non-automaton) splittingFrank WinklmeierFrank Winklmeierhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/696922024-03-11: merge of 24.0 into main2024-03-12T17:43:15+01:00Walter Lampl2024-03-11: merge of 24.0 into mainThis sweep contains the following MRs:
* !69651 Cleanup TP converter unit test processing script and do not fall-back on AFS ~Database
* !69625 Clean up InDetJiveXML legacy configs ~InnerDetector
* !69627 Clean up legacy InDetRecTools...This sweep contains the following MRs:
* !69651 Cleanup TP converter unit test processing script and do not fall-back on AFS ~Database
* !69625 Clean up InDetJiveXML legacy configs ~InnerDetector
* !69627 Clean up legacy InDetRecTools configs ~InnerDetector
* !69626 Clean up legacy SCT_Monitoring configs ~DQ, ~InnerDetector
* !69577 Fix SCT calibration loop transform for running with hist input files ~InnerDetector
* !69629 Clean up legacy InDetSecVertexValidation config ~InnerDetector
* !69628 Clean up legacy TRT_TR_Process config ~InnerDetector, ~Simulation
* !69636 Clean up legacy TrkTrackSummaryTool configs ~Tracking
* !69631 Clean up legacy configs for TrkDetDescr ~Tracking
* !69630 Clean up legacy TrkConditions configs ~Tracking
* !69653 SCT_RawDataByteStreamCnv: Use input file from CVMFS ~InnerDetector
* !69624 Clean up legacy configs in InDetDetDescr GeoModel ~InnerDetector
* !69635 Clean up legacy TrkExUnitTests config ~Tracking
* !69637 Delete legacy RecJobTransforms configs ~JetEtmiss, ~Reconstruction
* !69640 Restore CA RDOtoRDOTrigger:False for q443 tests ~JetEtmiss, ~MuonSpectrometer, ~Reconstruction, ~Tools
* !69634 Delete TrkExExample ~Tracking
* !69648 Tile monitoring: Use default geometry tags ~DQ, ~Tile
* !69642 Updates for TauCP PHYSVAL monitoring ~Analysis, ~Tau
* !69615 Remove HLTbphys references for physics_BphysDelayed stream ~DQ
* !69607 Move RngComps.RandomServices module to RngComps.RngCompsConfig ~Core, ~Digitization, ~ForwardDetectors, ~Generators, ~HGTD, ~ITk, ~InnerDetector, ~LAr, ~MuonSpectrometer, ~Overlay, ~Simulation, ~Tile, ~Upgradehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/69607Move RngComps.RandomServices module to RngComps.RngCompsConfig2024-03-11T11:03:22+01:00John Derek ChapmanMove RngComps.RandomServices module to RngComps.RngCompsConfigMinor change, standardising module name.Minor change, standardising module name.https://gitlab.cern.ch/atlas/athena/-/merge_requests/69648Tile monitoring: Use default geometry tags2024-03-11T11:03:21+01:00Tadej Novaktadej.novak@cern.chTile monitoring: Use default geometry tagsUse default geometry tags in tile monitoring to avoid run number lookup.Use default geometry tags in tile monitoring to avoid run number lookup.https://gitlab.cern.ch/atlas/athena/-/merge_requests/696682024-03-08: merge of 24.0 into main2024-03-09T20:23:44+01:00Vakhtang Tsulaia2024-03-08: merge of 24.0 into mainThis sweep contains the following MRs:
* !69304 Make number of bunch crossings for RPC L1 simulation configurable ~MuonSpectrometer, ~Trigger
* !69661 added ZBTopo to L1excluded thresholds (ATR-28938) ~Trigger
* !69475 Added Medium12/...This sweep contains the following MRs:
* !69304 Make number of bunch crossings for RPC L1 simulation configurable ~MuonSpectrometer, ~Trigger
* !69661 added ZBTopo to L1excluded thresholds (ATR-28938) ~Trigger
* !69475 Added Medium12/20/30/35 cTAU isolation WPs ~Tau, ~Trigger, ~TriggerMenu
* !69662 TrigTauMonitoring added eTAU BDT score ~DQ, ~Tau, ~Trigger
* !69656 Update eFexTowerBuilder.cxx - temporarily remove check for invalidity while... ~L1Calo, ~Trigger
* !69632 Clean up legacy TrkEventCnvTools config ~ACTS, ~DQ, ~Database, ~Egamma, ~InnerDetector, ~MuonSpectrometer, ~Overlay, ~Reconstruction, ~Simulation, ~Tracking, ~Trigger
* !69652 [ATR-28927] Bugfix in rates analysis, vector size ~Trigger
* !69645 moved back a legacy ditau trigger for commissioning ~Trigger, ~TriggerMenu
* !69555 Updated TRT tool configs (24.0) ~DQ, ~InnerDetector
* !69623 Delete legacy configs for InDetTrackingGeometry ~InnerDetector
* !69622 Delete legacy config in ConfigFlagHelpers.py ~InnerDetector
* !69621 Clean up legacy InDetConditions config ~Build, ~ITk, ~InnerDetector
* !69606 Remove legacy config in PixelCalibAlgs ~InnerDetector, ~Overlay
* !69605 adding b+tau chains with no HLT tau ID ~Trigger, ~TriggerMenu, ~changes-trigger-counts
* !69593 AtlasGeoModel: delete legacy configuration ~Geometry
* !69567 MagFieldServices: delete legacy configuration ~Magnets
* !69597 ByteStreamCnvSvcBase: migrate unit test to CA and delete legacy config ~EDM
* !69599 More AthenaMonitoring legacy config clean up (ATLASDQ-1134) ~Core, ~DQ
* !69602 ByteStreamTest: migrate tests to CA ~EDM
* !69600 Bug fix in the python script (name of the variable) ~DQ, ~JetEtmiss, ~Tilehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/69600Bug fix in the python script (name of the variable)2024-03-08T23:01:54+01:00Tomas DavidekBug fix in the python script (name of the variable)https://gitlab.cern.ch/atlas/athena/-/merge_requests/695432024-03-06: merge of 24.0 into main2024-03-06T05:56:29+01:00Vakhtang Tsulaia2024-03-06: merge of 24.0 into mainThis sweep contains the following MRs:
* !69509 ATR-28910 replace L1_ZB with L1_ZeroBias ~Trigger, ~TriggerMenu, ~changes-trigger-counts
* !69383 TriggerMenuMT: merge MenuSequence[CA] ~Trigger, ~TriggerMenu
* !69508 TriggerMenuMT: rem...This sweep contains the following MRs:
* !69509 ATR-28910 replace L1_ZB with L1_ZeroBias ~Trigger, ~TriggerMenu, ~changes-trigger-counts
* !69383 TriggerMenuMT: merge MenuSequence[CA] ~Trigger, ~TriggerMenu
* !69508 TriggerMenuMT: remove usage of ConfigurableCABehavior in EndOfEvent ~JetEtmiss, ~Trigger, ~TriggerMenu
* !69512 TrigT1NSW: remove legacy job options ~Trigger
* !69465 Remove legacy Pool TPCnv test job options ~CaloRinger, ~Calorimeter, ~Database, ~Derivation, ~EDM, ~Egamma, ~ForwardDetectors, ~InnerDetector, ~JetEtmiss, ~LAr, ~MuonSpectrometer, ~Reconstruction, ~Simulation, ~Tau, ~Tile, ~Tracking, ~Trigger
* !69505 Drop CA RDOtoRDOTrigger:False ~Analysis, ~BTagging, ~InnerDetector, ~JetEtmiss, ~MuonSpectrometer, ~Overlay, ~Reconstruction, ~Simulation, ~Tools, ~Trigger
* !69479 InDetSecVtxFinder + DerivationFrameworkHiggs + TrigT1CaloByteStream: Fix xAOD namespace typos ~Derivation, ~InnerDetector, ~L1Calo, ~Trigger
* !69484 TauCP monitoring: add eRNN monitoring histograms ~DQ, ~Reconstruction
* !69482 Update GenericMonitoringTool.py - default ymin and ymax values when specifying... ~Core, ~DQ
* !69481 fix skip test if file not present, for 24.0 ~Egamma, ~Reconstruction
* !68958 Remove legacy DetFlags ~Core, ~EDM
* !69485 Avoid triggering ROOT #14156 (APR-130) ~DQ
* !69390 Adding the old calratio triggers to the Physics Menu ~JetEtmiss, ~Trigger, ~TriggerJet, ~TriggerMenu, ~changes-trigger-countshttps://gitlab.cern.ch/atlas/athena/-/merge_requests/69465Remove legacy Pool TPCnv test job options2024-03-06T00:27:09+01:00Frank WinklmeierRemove legacy Pool TPCnv test job optionsAll TPCnv tests have been migrated to CA. Remove the support for these tests in `AthenaPoolUtilities` and remove all unused legacy job options.
Relates to ATLASRECTS-7896.All TPCnv tests have been migrated to CA. Remove the support for these tests in `AthenaPoolUtilities` and remove all unused legacy job options.
Relates to ATLASRECTS-7896.