athena merge requestshttps://gitlab.cern.ch/atlas/athena/-/merge_requests2024-03-29T08:19:23+01:00https://gitlab.cern.ch/atlas/athena/-/merge_requests/70191Suppress some PathResolver output2024-03-29T08:19:23+01:00Samuel Van StroudSuppress some PathResolver output- I don't think we need to `INFO` when a file is downloaded
- A `WARN` is better if the download fails than a `DEBUG`
- I'm disabling the progress bar in `TFile::Cp`- I don't think we need to `INFO` when a file is downloaded
- A `WARN` is better if the download fails than a `DEBUG`
- I'm disabling the progress bar in `TFile::Cp`https://gitlab.cern.ch/atlas/athena/-/merge_requests/70178Move secondary track pass flags to global tracking flags2024-03-29T08:15:41+01:00Thomas StreblerMove secondary track pass flags to global tracking flagsRelevant for ATLASRECTS-7947
The secondary tracking pass flags are actually identical for all passes in most cases.
The `RobustReco` is removed with !70177 so they can be promoted to global tracking flags.Relevant for ATLASRECTS-7947
The secondary tracking pass flags are actually identical for all passes in most cases.
The `RobustReco` is removed with !70177 so they can be promoted to global tracking flags.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70190Adding nonEmpty file check in functions to fix memory crash2024-03-29T08:14:53+01:00Revital KopelianskyAdding nonEmpty file check in functions to fix memory crashSeveral functions in TimingClass.cxx are operating over 4 txt files (EMB, EMEC, HCAL FCAL), if one is empty due to zero stat, the script crashes.
As solution I have added a dedicated function that checks if the file is empty beforehand, ...Several functions in TimingClass.cxx are operating over 4 txt files (EMB, EMEC, HCAL FCAL), if one is empty due to zero stat, the script crashes.
As solution I have added a dedicated function that checks if the file is empty beforehand, and if so, the process will return to the calling function avoiding the crash.
Hopefully...https://gitlab.cern.ch/atlas/athena/-/merge_requests/69604Add new code to allow creation of electron and muon free particle flow jets (V3)2024-03-29T07:24:56+01:00Mark HodgkinsonAdd new code to allow creation of electron and muon free particle flow jets (V3)This includes updates to JetPFlowSelectionAlg.cxx to add options to remove all neutral contributions from particle flow jets that belong to electrons or muons of a given particle ID level.
On the python side new configuration functional...This includes updates to JetPFlowSelectionAlg.cxx to add options to remove all neutral contributions from particle flow jets that belong to electrons or muons of a given particle ID level.
On the python side new configuration functionality has been added to allow users to make use of these workflows.
This should not change the output of standard particle flow jets and hence should preserve frozen tier0 for jets.
The new muon free jets rely on an additional decoration that is added to charged FlowElement - thus this aspect violates frozen tier0 and adds a new decoration:
JetETMissChargedParticleFlowObjectsAuxDyn.FE_efrac_matched_muon
This is used by the new muon-less jet finding configuration included in this MR.
Whilst testing this I found two further unexpected differences in neutral FlowElements:
JetETMissNeutralParticleFlowObjectsAuxDyn.FE_efrac_matched_muon
JetETMissNeutralParticleFlowObjectsAuxDyn.FE_nMatchedMuons
MuonsAuxDyn.muon_efrac_matched_FE
as well as changes in MET container output.
Further investigation revealed an existing bug in the eflowRec code here:
https://gitlab.cern.ch/atlas/athena/-/blob/main/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx?ref_type=heads#L253
whereby an iterator over the muon calormeter clusters cells is not reset to begin() in each loop over a calorimeter clusters cells. Thus only one cell can ever be matched, rather than N. This was (unintentionally) fixed in this MR because the code we redesigned and switched to range based for loops.
Due to the MET changes, this is a bug fix that affects MET output so it ought to go into 24.0? Flagging to @jdandoy and @christos .
I can prepare a MR for 24.0 that only contains the eflowRec bug fix.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70189CPAlgorithms: fix logic for truth leptons in event selection2024-03-29T00:44:45+01:00Baptiste Ravinabaptiste.ravina@cern.chCPAlgorithms: fix logic for truth leptons in event selectionObvious bugfixes in the python logic following !70002 (could have been caught in review?).
Much appreciated if this could be merged before the Easter break!Obvious bugfixes in the python logic following !70002 (could have been caught in review?).
Much appreciated if this could be merged before the Easter break!https://gitlab.cern.ch/atlas/athena/-/merge_requests/69869CPAlgorithms: use Gaudi::Property and ToolHandles everywhere2024-03-28T18:28:31+01:00Baptiste Ravinabaptiste.ravina@cern.chCPAlgorithms: use Gaudi::Property and ToolHandles everywhereUpdate almost everything under PhysicsAnalysis/Algorithms: remove `declareProperty` and constructor initialisations everywhere in favour of `Gaudi::Property` declarations in the header files; similarly, use the full `ToolHandle` construc...Update almost everything under PhysicsAnalysis/Algorithms: remove `declareProperty` and constructor initialisations everywhere in favour of `Gaudi::Property` declarations in the header files; similarly, use the full `ToolHandle` constructor.
The only places left with `declareProperty` are the `SelectionHelpers` and `SystematicsHandles`. Not sure how to get rid of `owner->declareProperty` within the templated classes, maybe an expert can make a suggestion?https://gitlab.cern.ch/atlas/athena/-/merge_requests/70078Harmonize data preparation for secondary passes and trigger view filler2024-03-28T17:50:45+01:00Carlo Varnicarlo.varni@cern.chHarmonize data preparation for secondary passes and trigger view fillerThis creates an algorithm that produces a data prep collection (cluster or space point) with `VIEW_ELEMENT` owning policy. Input can be either a same type collection (e.g. cluster collection from main pass data prep stage) or an IDC.
The...This creates an algorithm that produces a data prep collection (cluster or space point) with `VIEW_ELEMENT` owning policy. Input can be either a same type collection (e.g. cluster collection from main pass data prep stage) or an IDC.
The ViewFiller algorithm is thus included into this. The original implementation of the View filler algorithm has been removed.
At offline level, this can be used on secondary passes to retrieve the desired collections and possibly applying some selection criteria on them.
The class is templated on the data prep collection as well as on a boolean for determining if the cache mechanism has to be used or not
/cc @pagessin @bkerridghttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70160fix Large R accessor in jet calibration2024-03-28T17:50:11+01:00Frederic Rennerfix Large R accessor in jet calibrationI ran into the issue that this [accessor|
https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/Reconstruction/Jet/JetUncertainties/Root/FlavourUncertaintyComponent.cxx#0368] needs to be non-static in order to work with several jet ca...I ran into the issue that this [accessor|
https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/Reconstruction/Jet/JetUncertainties/Root/FlavourUncertaintyComponent.cxx#0368] needs to be non-static in order to work with several jet calibrations that might need different truth labels. @khoo
https://its.cern.ch/jira/browse/ATLJETMET-1714https://gitlab.cern.ch/atlas/athena/-/merge_requests/70150PyUtils: Make ##Params storage technology explicit2024-03-28T17:49:01+01:00Grigori RybkinPyUtils: Make ##Params storage technology explicitTools/PyUtils/python/AthFileLite.py: Extract file GUID in a more Pythonic way
Tools/PyUtils/python/MetaReader.py: idem
Related to ATEAM-960Tools/PyUtils/python/AthFileLite.py: Extract file GUID in a more Pythonic way
Tools/PyUtils/python/MetaReader.py: idem
Related to ATEAM-960https://gitlab.cern.ch/atlas/athena/-/merge_requests/70177Clean up deprecated RobustReco tracking mode2024-03-28T17:48:43+01:00Thomas StreblerClean up deprecated RobustReco tracking modeRelevant for ATLASRECTS-7947Relevant for ATLASRECTS-7947https://gitlab.cern.ch/atlas/athena/-/merge_requests/70102AthenaCommon: refactor --profile-python option2024-03-28T17:16:23+01:00Frank WinklmeierAthenaCommon: refactor --profile-python optionRefactor the code needed to dump python profiles into the `Debugging` module and re-use it in legacy athena and CA. The dump of the temporary profile for `--drop-and-reload` is no longer needed either if we dump the profile before the re...Refactor the code needed to dump python profiles into the `Debugging` module and re-use it in legacy athena and CA. The dump of the temporary profile for `--drop-and-reload` is no longer needed either if we dump the profile before the reload (and the second part of the job has no interesting profile data anyway).
cc @wlampl @smhhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70170Added selection decoration block config for CP algs2024-03-28T15:39:35+01:00Thomas StreblerAdded selection decoration block config for CP algsFollow up to !69110, which moved the `AsgSelectionAlg` run at the end of the object working point configs to schedule them as part of the `OutputAnalysis` config block. In order to allow for analysis-specific algorithms to be inserted be...Follow up to !69110, which moved the `AsgSelectionAlg` run at the end of the object working point configs to schedule them as part of the `OutputAnalysis` config block. In order to allow for analysis-specific algorithms to be inserted before the `OutputAnalysis` config and rely on the decorations saved by those algorithms, a dedicated `SelectionDecoration` block is added, to be run before the analysis-specific algorithms.
FYI @omajersk @krumnack @jolamberhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70144PMGSystematicsTools: migrated from the legacy AthFile to MetaReader2024-03-28T15:21:55+01:00Vakhtang TsulaiaPMGSystematicsTools: migrated from the legacy AthFile to MetaReaderRelated to ATEAM-528Related to ATEAM-528https://gitlab.cern.ch/atlas/athena/-/merge_requests/70139Less verbose output from BTaggingEfficiencyTool2024-03-28T15:21:22+01:00Dan GuestLess verbose output from BTaggingEfficiencyToolWe should probably only print a lot of info if the user asks for a lot of info.We should probably only print a lot of info if the user asks for a lot of info.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70183Propagate logger for ACTS vertex2024-03-28T14:36:18+01:00Carlo Varnicarlo.varni@cern.chPropagate logger for ACTS vertex@gfrattar noticed we were not properly propagating the logger to the ACTS vertexing tools. This should fix it@gfrattar noticed we were not properly propagating the logger to the ACTS vertexing tools. This should fix ithttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70169Only run HLTJetFTagDecoration if trigger included (ATLSWUPGR-245)2024-03-28T14:34:30+01:00Thomas StreblerOnly run HLTJetFTagDecoration if trigger included (ATLSWUPGR-245)Follow up to !700062
Solves PHYSVAL crashes when no trigger is present as in Run 4 tests ATLSWUPGR-245Follow up to !700062
Solves PHYSVAL crashes when no trigger is present as in Run 4 tests ATLSWUPGR-245https://gitlab.cern.ch/atlas/athena/-/merge_requests/70154athena.py: remove defaults for concurrency arguments (legacy)2024-03-28T14:33:43+01:00Frank Winklmeierathena.py: remove defaults for concurrency arguments (legacy)Remove the defaults of the `--threads`, `--concurrent-events` and
`--nprocs` command line arguments and update the code accordingly.
No change in behavior but makes it compatible with what we use in
CA-mode.
Only impacts legacy job opti...Remove the defaults of the `--threads`, `--concurrent-events` and
`--nprocs` command line arguments and update the code accordingly.
No change in behavior but makes it compatible with what we use in
CA-mode.
Only impacts legacy job options running.https://gitlab.cern.ch/atlas/athena/-/merge_requests/70186MuonTesterTree - Fix linker error2024-03-28T14:32:54+01:00Johannes Junggeburthjohannes.josef.junggeburth@cern.chMuonTesterTree - Fix linker errorCloses ATLASRECTS-7946Closes ATLASRECTS-7946https://gitlab.cern.ch/atlas/athena/-/merge_requests/69464Asynchronous I/O in HltEventLoopMgr: copy to new class2024-03-28T14:18:14+01:00Stewart Martin-HaughAsynchronous I/O in HltEventLoopMgr: copy to new classCopy of Rafal Bielski's changes from !59680 ATR-26285. Since this is a near-complete rewrite of HltEventLoopMgr, make this a configurable change with the new flag `Trigger.enableAsyncIO`. This should allow easier testing and swapping out...Copy of Rafal Bielski's changes from !59680 ATR-26285. Since this is a near-complete rewrite of HltEventLoopMgr, make this a configurable change with the new flag `Trigger.enableAsyncIO`. This should allow easier testing and swapping out, particularly given the currently unsolved problems with timeouts. Once these are understood, we can rename HltAsyncEventLoopMgr to HltEventLoopMgr and just keep it as the default.
cc @ssottoco @fwinkl
Cheers,
Stewarthttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70002CPAlgorithms: allow for event selection at particle-level2024-03-28T12:00:11+01:00Baptiste Ravinabaptiste.ravina@cern.chCPAlgorithms: allow for event selection at particle-levelSome users need to run the event selection algorithms using so-called "particle-level" objects (`TruthElectrons`, `TruthMuons`, etc.). This requires the following changes to the event selectors:
- make the MET term a configurable option:...Some users need to run the event selection algorithms using so-called "particle-level" objects (`TruthElectrons`, `TruthMuons`, etc.). This requires the following changes to the event selectors:
- make the MET term a configurable option: at reco-level it's most likely "Final" (new default), at truth-level it's most likely "NonInt"
- replace `xAOD::ElectronContainer` etc. by `xAOD::IParticleContainer` to be able to pass either reco- or truth-level containers
- in a couple of cases, event selectors need to access `charge()`, which is not available for `xAOD::IParticle`. There I simply added dedicated `xAOD::TruthParticleContainer` handles, and I populate the correct type of handle based on a switch in the python config.