athena merge requestshttps://gitlab.cern.ch/atlas/athena/-/merge_requests2024-02-09T16:05:54+01:00https://gitlab.cern.ch/atlas/athena/-/merge_requests/68617Remove legacy Overlay configuration, part 12024-02-09T16:05:54+01:00Tadej Novaktadej.novak@cern.chRemove legacy Overlay configuration, part 1Remove legacy Overlay configuration, part 1.
/cc @jchapman @nstyles @jcatmore @mbandier @schaarscRemove legacy Overlay configuration, part 1.
/cc @jchapman @nstyles @jcatmore @mbandier @schaarschttps://gitlab.cern.ch/atlas/athena/-/merge_requests/67628Make Input.RunNumber, Input.LumiBlockNumber and Input.TimeStamp in plural as ...2024-01-08T15:56:19+01:00Tadej Novaktadej.novak@cern.chMake Input.RunNumber, Input.LumiBlockNumber and Input.TimeStamp in plural as they are used as listMake `Input.RunNumber`, `Input.LumiBlockNumber` and `Input.TimeStamp` in plural as they are used as list.
The validation of the type will be implemented in a separate MR.
This also fixes run number argument parsing in reco and MC chann...Make `Input.RunNumber`, `Input.LumiBlockNumber` and `Input.TimeStamp` in plural as they are used as list.
The validation of the type will be implemented in a separate MR.
This also fixes run number argument parsing in reco and MC channel number handling in some derivation code as it was used incorrectly.
/cc @jchapman @nstyles @jcatmore @fwinklhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/66281Renaming of new Tracking EDM classes2023-10-06T15:57:58+02:00Tomasz BoldRenaming of new Tracking EDM classesAs discussed at last ACTS+ITk meeting I proceeded with implementing consistent naming.
Mutable* are classes what allow changes to the objects (insertions basically).
Corresponsing classes w/o prefix i.e. TrackContainer are the const one...As discussed at last ACTS+ITk meeting I proceeded with implementing consistent naming.
Mutable* are classes what allow changes to the objects (insertions basically).
Corresponsing classes w/o prefix i.e. TrackContainer are the const ones.
While dooing this discovered the name clash and decided to introduce TrackStorageContainer - i.e. in this case Backend became Storage as per Noemi's suggestion.
The convertToConst became moveToConst and require mutable version passed by &&.
@ncalace @toyamaza @wolter @emoyse @pagessin @adye @asalzbur @goetz
This is part 1, part 2 will be xAOD classes.https://gitlab.cern.ch/atlas/athena/-/merge_requests/65729Add dataYear to xAOD::FileMetaData2023-10-06T16:36:40+02:00Tadej Novaktadej.novak@cern.chAdd dataYear to xAOD::FileMetaDataAdd `dataYear` to `xAOD::FileMetaData` as a dynamic variable for data only as this would be useful for analyses. I also had to add support for a new type (`uint32_t`). Fixes ATEAM-920.
Note that we may want to cleanup `xAOD::FileMetaDat...Add `dataYear` to `xAOD::FileMetaData` as a dynamic variable for data only as this would be useful for analyses. I also had to add support for a new type (`uint32_t`). Fixes ATEAM-920.
Note that we may want to cleanup `xAOD::FileMetaData` at some point, ideally between data taking years.
This I will not put to ~"23.0" to keep AOD metadata consistent for the whole year (FYI @jmaurer @wlampl).
/cc @akraszna @maszyman @amete @gwatts @hrussell @ekourlithttps://gitlab.cern.ch/atlas/athena/-/merge_requests/68277Add time resolution to xAOD track EDM2024-01-24T14:38:45+01:00David Richard ShopeAdd time resolution to xAOD track EDMTime resolution is added (as dynamic) to `xAOD::TrackParticle`, together with an adjustment to the variable name. Vertex time EDM to follow.
/cc @aleopold @jedebevc @tadej @tstreble @jmasikTime resolution is added (as dynamic) to `xAOD::TrackParticle`, together with an adjustment to the variable name. Vertex time EDM to follow.
/cc @aleopold @jedebevc @tadej @tstreble @jmasikhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/62740Fix CutFlow in IDTIDE2023-04-29T08:36:42+02:00Tadej Novaktadej.novak@cern.chFix CutFlow in IDTIDEHotfix CutFlow in `IDTIDE`:
- add missing `CutFlowSvc` configuration
- prevent CBKs appearing in ESD and AOD (note that all special formats running in one job will still have them).
This will be properly fixed once !61980 will get merge...Hotfix CutFlow in `IDTIDE`:
- add missing `CutFlowSvc` configuration
- prevent CBKs appearing in ESD and AOD (note that all special formats running in one job will still have them).
This will be properly fixed once !61980 will get merged to avoid too many conflicts.
Related to ATLPHYSVAL-939.
/cc @nstyles @maszymanhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/62571EventPrimitives : Add fixed capacity dynamic typedefs. Add test. Fix bug2023-04-26T01:17:39+02:00Christos Anastopouloschristos.anastopoulos@cern.chEventPrimitives : Add fixed capacity dynamic typedefs. Add test. Fix bugEventPrimitives :
- Add test for the Amg definitions.
- Fix Eigen assertion on AmgRowVector (seems unused) uncovered by the test.
- Add fixed capacity dynamic typedefs
The last one is a number of dyn allocation vs space trade off.
...EventPrimitives :
- Add test for the Amg definitions.
- Fix Eigen assertion on AmgRowVector (seems unused) uncovered by the test.
- Add fixed capacity dynamic typedefs
The last one is a number of dyn allocation vs space trade off.
- There are cases where we know exactly the number and we use the fixed size
- Then there are cases or largish matrices we can not guess the sizes or anyhow quite largish.
- Then there cases we know the max capacity we need (i.e Local Parameters 5 , Measurements covariance 3) even if we do not know the exact number. So it might be interesting to have for these ones where the max is small.
This is like a "small"/ "fixed capacity" vector but for "Eigen"
![Screenshot_2023-04-26_at_00.16.17](/uploads/e22333a024058fdbcd3445004dc66d3b/Screenshot_2023-04-26_at_00.16.17.png)
ping @abarton @smh for the last onehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/61368Restructuring the CA MetaData Configuration2023-09-19T15:02:09+02:00Alaettin Serhan MeteRestructuring the CA MetaData ConfigurationThe goal of this MR is to remove all (with some exceptions) of the MetaData related configuration bits out of the main `OutputStreamConfig`. Then, each job/skeleton can configure whatever MetaData that particular workflow wants to write ...The goal of this MR is to remove all (with some exceptions) of the MetaData related configuration bits out of the main `OutputStreamConfig`. Then, each job/skeleton can configure whatever MetaData that particular workflow wants to write out independently. So, after this MR is accepted:
- Merely configuring `OutputStreamConfig` will not magically add any MetaData to the output file,
- Each job/workflow needs to add `InfileMetaDataCfg` in the dedicated steering/skeleton.
Once we have this in, we can start about making things more modular (i.e. split `InfileMetaDataCfg` into dedicated bits etc.), configuring items/components more "elegantly" (perhaps through flags and/or other means).
cc: @gemmeren @maszyman @mnowakhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/59801APR I/O code and AuxDyn code refactoring to prepare for RNTuple2023-05-25T18:58:30+02:00Marcin NowakAPR I/O code and AuxDyn code refactoring to prepare for RNTupleCombined APR I/O code and AuxDyn code refactoring, cleanup and improvements done in order to prepare Athena for the new RNTuple APR Storage Technology - which will be added in a separate MR.
Biggest change here - AuxDyn attribute writ...Combined APR I/O code and AuxDyn code refactoring, cleanup and improvements done in order to prepare Athena for the new RNTuple APR Storage Technology - which will be added in a separate MR.
Biggest change here - AuxDyn attribute writing code was moved from APR/RootStorageSvc into the more independent AthenaRoot/RootAuxDynIO package where the AuxDyn reading code was relocated already some years ago.https://gitlab.cern.ch/atlas/athena/-/merge_requests/54998Synchronise CA with old-style config, and fix some mistakes2022-07-13T15:49:05+02:00Edward MoyseSynchronise CA with old-style config, and fix some mistakesThis MR is another attempt to reduce the output differences when running CA compared to old-style configuration. Since this is not on by default, it will have no impact on existing prodcution.
I tested this locally with the q445 test ([...This MR is another attempt to reduce the output differences when running CA compared to old-style configuration. Since this is not on by default, it will have no impact on existing prodcution.
I tested this locally with the q445 test ([link](https://gitlab.cern.ch/atlas/athena/-/blob/master/Tools/TrfTestsART/test/test_trf_q445_r2a_ca_mt_compare.sh)) and this reduces the difference from ([r10](https://bigpanda.cern.ch//media/filebrowser/35934136-9bcf-4ff8-9ab1-6c7d5ba90b84/group.art/tarball_PandaJob_5523220149_CERN-T0/payload.stdout)):
```
Summary of differences:
nMuons: 2 events (out of 100)
muon1pt: 13 events (out of 100)
muon1eta: 5 events (out of 100)
muon1phi: 5 events (out of 100)
```
to:
```
muon1pt: 12 events (out of 100)
muon1eta: 3 events (out of 100)
muon1phi: 3 events (out of 100)
```
The MR contains the following types of commits.
- Fix naming of various tools to match old-style
- Set Cosmics correctly in MuidCaloEnergyToolParamCfg
- Cleanup use of MuonTrackCleanerCfg and MCTBSLFitterCfg
- Fix for MuidCaloEnergyParam calling wrong tool
- In MuonExtrapolatorConfig, we only need one import of AtlasSTEP_PropagatorCfg
- MuonRefitToolCfg should use MCTBFitterMaterialFromTrackCfg
- MCTBFitterCfg should have GetMaterialFromTrack True
cc @elmsheus @nstyles @goetz @mhodgkinEdward MoyseEdward Moysehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/47272ByteStreamCnvSvc: Create run parameters on initialize Fix ATEAM-7832021-10-25T18:32:42+02:00Frank Berghausfrank.berghaus@cern.chByteStreamCnvSvc: Create run parameters on initialize Fix ATEAM-783Move the code opening the first input file from the service start method to the end of the initialize method. This means, the run parameters (i.e. `ByteStreamMetadata`) are made available in the InputMetaDataStore before the start method...Move the code opening the first input file from the service start method to the end of the initialize method. This means, the run parameters (i.e. `ByteStreamMetadata`) are made available in the InputMetaDataStore before the start method of the trigger algorithms are called.
The event selector will fire the *BeginInputFile* incident right after creating the run parameters. That means, the MetaDataSvc must be initialized to be able to respond to this incident. This could be accomplished in configuration by always adding the MetaDataSvc before the event selector, or setting the priority of the MetaDataSvc higher than that of the event selector. This is fragile, because this required configuration may be forgotten. The common approach in Athena seems to be to retrieve the required service in initialize. This was adopted here.
Tag: @tsulaia @rbielski @gemmerenhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/45199Draft: Can we remove ROOT includes from IParticle?2021-12-06T09:19:49+01:00Dan GuestDraft: Can we remove ROOT includes from IParticle?This will probably break pretty much everything.This will probably break pretty much everything.https://gitlab.cern.ch/atlas/athena/-/merge_requests/43430Trigger: Enforce strict scheduler dependencies when running on data2021-05-18T03:05:45+02:00Rafal Bielskirafal.bielski@cern.chTrigger: Enforce strict scheduler dependencies when running on dataThe whole point of this MR is to set:
```py
AlgScheduler.setDataLoaderAlg("")
SGInputLoader.FailIfNoProxy = True
```
to enforce that all **unmet** input dependencies are a configuration failure.
This is enabled for all Trigger jobs runn...The whole point of this MR is to set:
```py
AlgScheduler.setDataLoaderAlg("")
SGInputLoader.FailIfNoProxy = True
```
to enforce that all **unmet** input dependencies are a configuration failure.
This is enabled for all Trigger jobs running on data inputs. We're not there yet for MC inputs.
This means that all objects which are loaded from the input file directly (for ByteStream this means through BS Converters) need to be **explicitly** added to the `SGInputLoader.Load` list.
A couple of additional fixes and improvements are included to make everything work:
1. Add newJO config for SGInputLoader, make use of it in MainServicesConfig, ByteStreamConfig, TrigByteStreamConfig
2. Fix configuration of objects loaded from ByteStream in a few places in Trigger job options.
3. Make HelloWorldOptions use AtlasUnixStandardJob instead of AtlasUnixGeneratorJob since the latter unnecessarily configured EventInfoCnvAlg, and also didn't really match the use cases of the job options. The corresponding unit test references are also updated.
Note the newJO config for SGInputLoader includes special merging function for the Load property where different configurations are appended. This matches what one would expect from the use cases - each configuration fragment can tell SGInputLoader which objects it needs to load, and the final configuration is the sum of all these lists.
cc @tbold, @smh, @bwynne, @tadejhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/34134ByteStreamCnvSvc: Move trigger info filling to connectOutput2020-06-30T03:02:50+02:00Rafal Bielskirafal.bielski@cern.chByteStreamCnvSvc: Move trigger info filling to connectOutputWriting to file consists of three steps: connectOutput, createRep (for each object), commitOutput. When writing to ByteStream from an offline athena job running HLT, the trigger content should be added to the file in createRep for the HL...Writing to file consists of three steps: connectOutput, createRep (for each object), commitOutput. When writing to ByteStream from an offline athena job running HLT, the trigger content should be added to the file in createRep for the HLTResultMT object. When writing to ByteStream from offline athena running non-HLT job (one which doesn't produce HLT decisions during execution), the writing of the trigger content has to be done either in connectOutput or commitOutput.
Previously, the writing was done in commitOutput and it was incorrectly overwriting the content from HLTResultMT. Incorrectly for two reasons:
1. stream tags produced by HLT are not added to EventInfo during an HLT job, they are only stored in HLTResultMT
2. the source of the other information (xAOD::TrigDecision) was being retrieved without a key and this always failed
Solution to 1. is to move the writing from commitOutput to connectOutput. This works equally well in non-HLT job, whereas in HLT job the incomplete content is correctly overwritten later in createRep. This is implemented and fixes ATR-21547.
Solution to 2. is to simply use the right key "xTrigDecision", also done here.
While making these changes, I also ensured smart pointers are used for the cached serialised data and cleaned up the implementation a bit. Smart pointers are helpful because the cache now has to be filled in connectOutput and then cleared in commitOutput which is done automatically by the destructor of unique_ptr.
In addition, some loosely related comments are cleaned up in TriggerConfig.
cc @tsulaia, @tamartinhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/70179Clean up Event/xAOD legacy configs2024-03-28T09:58:33+01:00Thomas StreblerClean up Event/xAOD legacy configs`xAODEventFormatCnv` still to be cleaned up as CI tests need to be migrated to CA
FYI @maszyman`xAODEventFormatCnv` still to be cleaned up as CI tests need to be migrated to CA
FYI @maszymanhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/69788Updates to DumpEventDataToJSONConfig for PHYSLITE2024-03-14T10:53:09+01:00Zach MarshallUpdates to DumpEventDataToJSONConfig for PHYSLITEAdding a feature to the DumpEventDataToJSONConfig configuration function
that checks if we are running on PHYSLITE (based on something that I
believe is trustworthy) and then configures the input collections
accordingly. At the moment th...Adding a feature to the DumpEventDataToJSONConfig configuration function
that checks if we are running on PHYSLITE (based on something that I
believe is trustworthy) and then configures the input collections
accordingly. At the moment there are no track particles that can be
output, which isn't great, but the rest seems to work reasonably well.
There were a few collections that appear to not exist in the C++ code,
so I've removed the setting of those collection names (it causes the
function to crash out of the box).
Fixing a typo in a comment as well.
@emoyse might want to take a look at this one.https://gitlab.cern.ch/atlas/athena/-/merge_requests/69159Move track hasValidTime from track summary to separate auxstore location2024-02-28T17:37:02+01:00David Richard ShopeMove track hasValidTime from track summary to separate auxstore locationThis way, there's more symmetry with the equivalent getter and setters for the vertices that have since been implemented.
/cc @jedebevcThis way, there's more symmetry with the equivalent getter and setters for the vertices that have since been implemented.
/cc @jedebevchttps://gitlab.cern.ch/atlas/athena/-/merge_requests/69055HepMcParticleLink Drop support for separate McEventCollections for pile-up truth2024-02-26T10:36:09+01:00John Derek ChapmanHepMcParticleLink Drop support for separate McEventCollections for pile-up truthThe idea of having separate McEventCollection instances for each type of pile-up used was never used in production and with the ability to decorate GenEvents directly with this information using Attributes is now completely redundant.
R...The idea of having separate McEventCollection instances for each type of pile-up used was never used in production and with the ability to decorate GenEvents directly with this information using Attributes is now completely redundant.
Removing this will simplify the HepMcParticleLink EDM. Unfortunately due to the large number of client classes then this merge request is quite large. Here is a breakdown to ease the review process:
1. The main changes are in the `Generators/GeneratorObjects` package. Removing the obsolete code and in particular revising the `ExtendedBarCode` and `HepMcParticleLink` constructor syntax.
1. The next set of changes are in `MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonSimHit/Root/xAODMuonSimHit_V1.cxx` and `InnerDetector/InDetEventCnv/InDetSimEventTPCnv/src/InDetHits/*.cxx` hard-coding variables in some persistent class objects to the only value ever used in production. (Future versions of these persistent classes will drop this variable, but that will be a separate merge request.)
1. The next set of changes are in the various TP converter test classes - avoiding checks on the variable(s) now removed from the transient HepMcParticlelink class.
1. The rest of the changes are dropping the obsolete arguments from HepMcParticleLink constructor calls.
Tagging @ewelina, @averbyts, @pclarkhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/68958Remove legacy DetFlags2024-03-07T11:30:02+01:00Tadej Novaktadej.novak@cern.chRemove legacy DetFlagsRemove legacy `DetFlags`.
Mainly for testing the existing unit tests that still use them.
/cc @jchapman @nstyles @jcatmoreRemove legacy `DetFlags`.
Mainly for testing the existing unit tests that still use them.
/cc @jchapman @nstyles @jcatmorehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/68176Read BDT score from first 12 bits of xTOB2024-01-17T09:53:25+01:00David ReikherRead BDT score from first 12 bits of xTOBThe BDT score is read from the first 11 bits of word 0 of the xTOB while it should be read from the first 12 bits instead, since the padding MSB bits are all 0 if the BDT score takes less than 12 bits. For now there were no issues with t...The BDT score is read from the first 11 bits of word 0 of the xTOB while it should be read from the first 12 bits instead, since the padding MSB bits are all 0 if the BDT score takes less than 12 bits. For now there were no issues with this since the BDT score takes only 11 bits, but the purpose of this fix is to avoid issues in the future if the BDT is re-trained and would result in a 12-bit BDT score, in which case the MSB bit would have been ignored.
See https://indico.cern.ch/event/1354773/contributions/5704602/attachments/2769314/4824688/2023-12-11.pdf, slide 6
This was tested by running a derivation with and without this change and verifying that BDT score histograms are identical.