athena merge requestshttps://gitlab.cern.ch/atlas/athena/-/merge_requests2023-07-25T08:52:31+02:00https://gitlab.cern.ch/atlas/athena/-/merge_requests/64556added frozen daod policy procedure in log2023-07-25T08:52:31+02:00Binbin Dongadded frozen daod policy procedure in logThe AMG and derivation coordinators agreed that any MR that breaks the frozen derivation policy should state the reason for the change, and should be approved by the BTagging/JetEtMiss software subgroup conveners when it occurs.
Changin...The AMG and derivation coordinators agreed that any MR that breaks the frozen derivation policy should state the reason for the change, and should be approved by the BTagging/JetEtMiss software subgroup conveners when it occurs.
Changing the error log of frozen derivation test based on this.
Tagging @calpigia, @gwatts, @hrussell, @ligang, @schaarsc, @mswiatlo, @dguest and @tstreble.https://gitlab.cern.ch/atlas/athena/-/merge_requests/64513Fixing electron reco with fast tracking2023-07-23T09:19:35+02:00Noemi CalaceFixing electron reco with fast tracking@christos , this will make you happy.
I have tested this on 10 single electron events (pT=100 GeV) and I finally see electrons being reconstructed:
BEFORE MR:
```
09:19:22 egammaSelectedTrackCopy INFO --- e...@christos , this will make you happy.
I have tested this on 10 single electron events (pT=100 GeV) and I finally see electrons being reconstructed:
BEFORE MR:
```
09:19:22 egammaSelectedTrackCopy INFO --- egamma Selected Track Copy Statistics ---
09:19:22 egammaSelectedTrackCopy INFO --- All Clusters: #=34
09:19:22 egammaSelectedTrackCopy INFO --- Selected Clusters: #=15
09:19:22 egammaSelectedTrackCopy INFO --- All Tracks: #=9
09:19:22 egammaSelectedTrackCopy INFO --- Selected Tracks: #=0
09:19:22 egammaSelectedTrackCopy INFO --- All Si Tracks: #=9
09:19:22 egammaSelectedTrackCopy INFO --- Selected Si Tracks: #=0
09:19:22 egammaSelectedTrackCopy INFO --- All TRT Tracks: #=0
09:19:22 egammaSelectedTrackCopy INFO --- Selected TRT Tracks: #=0
09:19:22 egammaSelectedTrackCopy INFO ----------------------------------------- ---
09:19:22 EMBremCollectionBuilder INFO Not refitted due to Silicon Requirements 0
09:19:22 EMBremCollectionBuilder INFO Failed Fit Tracks 0
09:19:22 EMBremCollectionBuilder INFO RefittedTracks 0
```
AFTER MR:
```
10:23:13 egammaSelectedTrackCopy INFO --- egamma Selected Track Copy Statistics ---
10:23:13 egammaSelectedTrackCopy INFO --- All Clusters: #=34
10:23:13 egammaSelectedTrackCopy INFO --- Selected Clusters: #=15
10:23:13 egammaSelectedTrackCopy INFO --- All Tracks: #=9
10:23:13 egammaSelectedTrackCopy INFO --- Selected Tracks: #=9
10:23:13 egammaSelectedTrackCopy INFO --- All Si Tracks: #=9
10:23:13 egammaSelectedTrackCopy INFO --- Selected Si Tracks: #=9
10:23:13 egammaSelectedTrackCopy INFO --- All TRT Tracks: #=0
10:23:13 egammaSelectedTrackCopy INFO --- Selected TRT Tracks: #=0
10:23:13 egammaSelectedTrackCopy INFO ----------------------------------------- ---
10:23:13 EMBremCollectionBuilder INFO Not refitted due to Silicon Requirements 0
10:23:13 EMBremCollectionBuilder INFO Failed Fit Tracks 0
10:23:13 EMBremCollectionBuilder INFO RefittedTracks 9
```Noemi CalaceNoemi Calacehttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64440Correct LRT flags used in nightly ITk trigger standalone test2023-07-23T08:59:30+02:00Elliot WattonCorrect LRT flags used in nightly ITk trigger standalone testDiscovered that test_trig_mc_newJO_ITk_build was crashing due to the fact that the ITk version of SiTrackMaker expects that some of the incoming flags are lists, whch they are not for LRT. These are `flags.Tracking.ActiveConfig.minCluste...Discovered that test_trig_mc_newJO_ITk_build was crashing due to the fact that the ITk version of SiTrackMaker expects that some of the incoming flags are lists, whch they are not for LRT. These are `flags.Tracking.ActiveConfig.minClusters`, `flags.Tracking.ActiveConfig.nHolesMax` and `flags.Tracking.ActiveConfig.nWeightedClustersMin` flags. The non-ITk version of SiTrackMaker does not expect these flags as lists. Therefore, this MR adds in the option for these flags to have list-type values or integers depending on the already used `mode` setting.
This should not impact Run 3 running or results
Tagging @jmasik @baines @smhhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64405Add frozen DAOD CI test in 23.02023-07-19T11:04:54+02:00Tadej Novaktadej.novak@cern.chAdd frozen DAOD CI test in 23.0Backport !62692 to 23.0.
/cc @bdong and @emoyse as ~main RCBackport !62692 to 23.0.
/cc @bdong and @emoyse as ~main RChttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64195Fix WriteDecorHandleKey type for ftag electron barcode decorators2023-07-10T21:15:38+02:00Samuel Van StroudFix WriteDecorHandleKey type for ftag electron barcode decoratorsClone of https://gitlab.cern.ch/atlas/athena/-/merge_requests/64193
See type mismatch:
- https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/SoftElectronTruthDecoratorAlg.cxx#L65
- http...Clone of https://gitlab.cern.ch/atlas/athena/-/merge_requests/64193
See type mismatch:
- https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/SoftElectronTruthDecoratorAlg.cxx#L65
- https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/SoftElectronTruthDecoratorAlg.h#L48-50
Thanks @dguest
Ping @dkobyliahttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64175Add GN2Xv01 tagger to PHYS2023-07-08T12:17:16+02:00Jackson BarrAdd GN2Xv01 tagger to PHYSAdding GN2Xv01 to PHYS (and FTAG) derivations @coccaro @arelycgAdding GN2Xv01 to PHYS (and FTAG) derivations @coccaro @arelycghttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64035AFT-646 FTAG: Decorator regex fix2023-07-05T18:24:39+02:00Nilotpal KakatiAFT-646 FTAG: Decorator regex fix- Fixing the bug introduced in the [MR!60007](https://gitlab.cern.ch/atlas/athena/-/merge_requests/60007)
- Reverted the commit 656957011f41e78145eed3b80766d3b44502051e that reverted the [MR!60007](https://gitlab.cern.ch/atlas/athena/-/m...- Fixing the bug introduced in the [MR!60007](https://gitlab.cern.ch/atlas/athena/-/merge_requests/60007)
- Reverted the commit 656957011f41e78145eed3b80766d3b44502051e that reverted the [MR!60007](https://gitlab.cern.ch/atlas/athena/-/merge_requests/60007) and then added the fix
- `git revert -m 1 656957011f41e78145eed3b80766d3b44502051e` (this is the command I used to revert, hope that's the right one)
---
Related JIRA issue [AFT-646](https://its.cern.ch/jira/browse/AFT-646#add-comment)
---
Prior to the [MR!60007](https://gitlab.cern.ch/atlas/athena/-/merge_requests/60007), we were creating the decorators for the GN models using `lwtnn::config`, reading from the ONNX model metadata. The [MR!60007](https://gitlab.cern.ch/atlas/athena/-/merge_requests/60007) introduced the option to create the decorators from the ONNX model directly by introducing the `GNNConfig`
`GNNConfig` was missing the addition of `Flip` and `Neg` suffixes to the decorator names when needed. (In the old code, we were doing it while creating the getters; forgot to copy it to the code that creates the new decorators)
---
tagging @bdong @ligang @dguesthttps://gitlab.cern.ch/atlas/athena/-/merge_requests/64029Added printActiveConfig function for tracking passes2023-06-30T16:58:42+02:00Thomas StreblerAdded printActiveConfig function for tracking passesThe legacy tracking configurations included full print out of the tracking cuts used in the various tracking passes. This MR adds an equivalent functionality for the CA config. Here is an example of the dump for the main pass for Run 3 r...The legacy tracking configurations included full print out of the tracking cuts used in the various tracking passes. This MR adds an equivalent functionality for the CA config. Here is an example of the dump for the main pass for Run 3 reco added
```
************************************************************************
******************** Tracking reconstruction Config ********************
Active Config is
Flag Name : Value
Tracking.ActiveConfig.RoISeededBackTracking : True [function]
Tracking.ActiveConfig.RunPixelPID : True
Tracking.ActiveConfig.RunTRTPID : True
Tracking.ActiveConfig.SecondaryXi2max : 15.0
Tracking.ActiveConfig.SecondaryXi2maxNoAdd : 50.0
Tracking.ActiveConfig.SecondarynHolesGapMax : 2
Tracking.ActiveConfig.SecondarynHolesMax : 2
Tracking.ActiveConfig.SiExtensionCuts : True [function]
Tracking.ActiveConfig.TRTSegFinderPtBins : 50 [function]
Tracking.ActiveConfig.TrkSel.TRTTrksEtaBins : [999, 999, 999, 999, 999, 999, 999, 999, 999, 999]
Tracking.ActiveConfig.TrkSel.TRTTrksMinTRTHitsMuDependencies : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Tracking.ActiveConfig.TrkSel.TRTTrksMinTRTHitsThresholds : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Tracking.ActiveConfig.Xi2max : 9.0 [function]
Tracking.ActiveConfig.Xi2maxNoAdd : 25.0 [function]
Tracking.ActiveConfig.doAmbiguityProcessorTrackFit : True
Tracking.ActiveConfig.doZBoundary : True [function]
Tracking.ActiveConfig.etaWidthBrem : 0.2
Tracking.ActiveConfig.excludeUsedTRToutliers : True [function]
Tracking.ActiveConfig.extension : ''
Tracking.ActiveConfig.isLowPt : False
Tracking.ActiveConfig.keepAllConfirmedPixelSeeds : True [function]
Tracking.ActiveConfig.keepAllConfirmedStripSeeds : False
Tracking.ActiveConfig.maxDoubleHoles : 1
Tracking.ActiveConfig.maxEMImpact : 50.0
Tracking.ActiveConfig.maxEta : 2.7
Tracking.ActiveConfig.maxHoles : 2 [function]
Tracking.ActiveConfig.maxPT : 1000000000.0
Tracking.ActiveConfig.maxPixelHoles : 1 [function]
Tracking.ActiveConfig.maxPrimaryImpact : 5.0 [function]
Tracking.ActiveConfig.maxSctHoles : 2
Tracking.ActiveConfig.maxSecondaryDoubleHoles : 0 [function]
Tracking.ActiveConfig.maxSecondaryHoles : 1 [function]
Tracking.ActiveConfig.maxSecondaryImpact : 100.0
Tracking.ActiveConfig.maxSecondaryPixelHoles : 1 [function]
Tracking.ActiveConfig.maxSecondarySCTHoles : 1 [function]
Tracking.ActiveConfig.maxSecondaryShared : 1
Tracking.ActiveConfig.maxSecondaryTRTShared : 0.7
Tracking.ActiveConfig.maxSeedsPerSP_Pixels : 1 [function]
Tracking.ActiveConfig.maxSeedsPerSP_Strips : 5 [function]
Tracking.ActiveConfig.maxSegTRTShared : 0.7
Tracking.ActiveConfig.maxShared : 1
Tracking.ActiveConfig.maxTRTonlyShared : 0.7
Tracking.ActiveConfig.maxTracksPerSharedPRD : 0
Tracking.ActiveConfig.maxZImpact : 200.0 [function]
Tracking.ActiveConfig.maxZSpacePointsPPPSeeds : 2700.0
Tracking.ActiveConfig.maxZSpacePointsSSSSeeds : 2700.0
Tracking.ActiveConfig.maxdImpactPPSSeeds : 2
Tracking.ActiveConfig.maxdImpactSSSSeeds : 5.0 [function]
Tracking.ActiveConfig.minClusters : 8 [function]
Tracking.ActiveConfig.minEta : -1
Tracking.ActiveConfig.minPT : 500.0 [function]
Tracking.ActiveConfig.minPTBrem : 1000.0
Tracking.ActiveConfig.minPixel : 0
Tracking.ActiveConfig.minRoIClusterEt : 6000.0 [function]
Tracking.ActiveConfig.minSecondaryClusters : 4
Tracking.ActiveConfig.minSecondaryPt : 3000.0 [function]
Tracking.ActiveConfig.minSecondarySiNotShared : 4
Tracking.ActiveConfig.minSecondaryTRTPrecFrac : 0.3 [function]
Tracking.ActiveConfig.minSecondaryTRTonTrk : 15 [function]
Tracking.ActiveConfig.minSiNotShared : 6 [function]
Tracking.ActiveConfig.minTRTPrecFrac : 0.3
Tracking.ActiveConfig.minTRTonTrk : 9
Tracking.ActiveConfig.minTRTonly : 15
Tracking.ActiveConfig.minTRTonlyPt : 2000.0 [function]
Tracking.ActiveConfig.nHolesGapMax : 2 [function]
Tracking.ActiveConfig.nHolesMax : 2 [function]
Tracking.ActiveConfig.nWeightedClustersMin : 6
Tracking.ActiveConfig.pT_SSScut : -1.0
Tracking.ActiveConfig.phiWidthBrem : 0.3
Tracking.ActiveConfig.radMax : 600.0
Tracking.ActiveConfig.rejectShortExtensions : True [function]
Tracking.ActiveConfig.roadWidth : 12.0 [function]
Tracking.ActiveConfig.seedFilterLevel : 2 [function]
Tracking.ActiveConfig.storeSeparateContainer : False
Tracking.ActiveConfig.storeSiSPSeededTracks : False
Tracking.ActiveConfig.storeTrackSeeds : False
Tracking.ActiveConfig.useNewParameterizationTRT : True [function]
Tracking.ActiveConfig.useParameterizedTRTCuts : True [function]
Tracking.ActiveConfig.usePixel : True [function]
Tracking.ActiveConfig.usePrdAssociationTool : False
Tracking.ActiveConfig.useSCT : True [function]
Tracking.ActiveConfig.useSCTSeeding : True
Tracking.ActiveConfig.useTIDE_Ambi : True [function]
Tracking.ActiveConfig.useTRT : True [function]
Tracking.ActiveConfig.useTRTExtension : True [function]
Tracking.ActiveConfig.useTRTonlyOldLogic : False
Tracking.ActiveConfig.useTRTonlyParamCuts : True
Flag categories that can be loaded dynamically
Category : Generator name : Defined in
************************************************************************
```
FYI @christos @pbalek @tboldhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63900Add HepMC::HERWIG7INTERMEDIATESTATUS constant2023-06-26T18:00:25+02:00Andrii VerbytskyiAdd HepMC::HERWIG7INTERMEDIATESTATUS constantAdd HepMC::HERWIG7INTERMEDIATESTATUS constant
https://gitlab.cern.ch/atlas/athena/-/merge_requests/63785
Tag @martindl @jchapmanAdd HepMC::HERWIG7INTERMEDIATESTATUS constant
https://gitlab.cern.ch/atlas/athena/-/merge_requests/63785
Tag @martindl @jchapmanhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63888TileL2Algs+TileRecUtils: Fix Tile CA configurations for cosmic digi+reco2023-06-26T18:00:25+02:00Siarhei HarkushaTileL2Algs+TileRecUtils: Fix Tile CA configurations for cosmic digi+recoConfiguration of TileL2Buidler tool has been updated to use
TileRawChannel container which was really produced during digitization.
Configuration of TileCellBuilder tool has been updated to switch off merging of
TileRawChannelContainers...Configuration of TileL2Buidler tool has been updated to use
TileRawChannel container which was really produced during digitization.
Configuration of TileCellBuilder tool has been updated to switch off merging of
TileRawChannelContainers produced online and offline in the case of MC and DataOveraly
since TileRawChannelContainer produced offline in these jobs is already complete.https://gitlab.cern.ch/atlas/athena/-/merge_requests/63798TrigConfHLTUtils: performance improvement to string2hash2023-07-05T18:24:40+02:00Frank WinklmeierTrigConfHLTUtils: performance improvement to string2hash### Background
We use the `string2hash` function to calculate a 32-bit hash for each HLT identifier (e.g. chain names) that is stored in the data instead of the plain string. This hash function has been unchanged since Run-1. And while i...### Background
We use the `string2hash` function to calculate a 32-bit hash for each HLT identifier (e.g. chain names) that is stored in the data instead of the plain string. This hash function has been unchanged since Run-1. And while it would be much safer and faster to use a vectorized 64-bit hash (e.g. [CxxUtils::crc64](https://gitlab.cern.ch/atlas/athena/-/blob/master/Control/CxxUtils/CxxUtils/crc64.h)) that will have to be post-poned for Phase-II. In principle, the hash values should only be calculated and stored once during the job startup. However, it's easy to mistakenly calculate and/or lookup the hashes during execution (see ATR-27765).
### Status quo
On each invocation of `string2hash`, the hash value is calculated, a collision detection is performed and if not available yet, the hash->name mapping is stored in a `tbb::concurrent_hash_map`.
### Improvement 1
In addition to the hash->name mapping also store the reverse name->hash mapping. This avoids having to re-calculate the hash and perform the collision detection each time. This is labeled as "TBB (with lookup)" in the following.
### Improvement 2
Replace the TBB hash map with the concurrent maps from CxxUtils (by @ssnyder) that are optimized for the write-once, read-often use-case. This is labeled as "CxxUtils (with lookup)" in the following.
#### Implementation details
- `CxxUtils::ConcurrentStrMap` is used for the name->hash mapping
- `CxxUtils::ConcurrentMap` is used for the reverse hash->name mapping. Note that this map only supports storage of 64-bit (pointer) values. So we cannot store the string directly but have to store a pointer to a string.
- An additional wrapper class (`HashStore`) is needed to trigger the memory cleanup at the end of the job (this is mostly cosmetic to avoid one-time leaks in valgrind, etc.)
### Performance comparison
The following plot shows the results of a synthetic benchmark. The ~10k unique identifiers (L1, HLT, leg names) were taken from the v1Dev menu. The hashes for all strings are calculated once and then read 1M times from 1-8 threads. The results show:
- The additional lookup speeds up the TBB implementation by a factor 2.7 with 1 thread
- The CxxUtils and improved TBB implementations perform the same with 1 thread
- For multiple threads the CxxUtils implementation vastly outperforms the (improved) TBB implementation (factor 4-7)
![string2hash](/uploads/06617be0870ab5533a18042da4195bee/string2hash.png)
### Performance impact
Despite these nice results, the impact on a real trigger job is however entirely negligible. Running an HLT job with 4 threads in vtune I don't see a measurable difference between the two implementations. This is probably because unlike for the synthetic benchmark there is almost no concurrent access for the hash map in a real trigger job. So the TBB maps perform just fine.
Relates to ATR-27539 and cc @tbold @tamartin @smh @abarton.https://gitlab.cern.ch/atlas/athena/-/merge_requests/63796btagging configuration for HI data/MC in rel232023-06-21T21:16:56+02:00Sebastian Tapia Arayabtagging configuration for HI data/MC in rel23Adding HI flags and list of training maps for Antikt4HI collection ( same maps as Antikt4EMPFlow )
modifications at:
BTagConfig.py to include HImodes and to HIFlags in order to turn-on btagging reco and saving at --preInclude.
Taggi...Adding HI flags and list of training maps for Antikt4HI collection ( same maps as Antikt4EMPFlow )
modifications at:
BTagConfig.py to include HImodes and to HIFlags in order to turn-on btagging reco and saving at --preInclude.
Tagging, @derendar @bdong @liganghttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63651Draft: PersistentDataModel: Using to_chars instead of sprintf2023-09-19T16:44:44+02:00Adam Edward BartonDraft: PersistentDataModel: Using to_chars instead of sprintfThis version improves performance of these methods between 1.8x to 3x.
This takes some nice elegant code and makes it very ugly however. So I will leave it to @gemmeren to decide if they want to use it.
cc @smh
Proof of concept can be...This version improves performance of these methods between 1.8x to 3x.
This takes some nice elegant code and makes it very ugly however. So I will leave it to @gemmeren to decide if they want to use it.
cc @smh
Proof of concept can be seen in this test code: https://cernbox.cern.ch/s/J8k346RKzyrTdch
```
Run on (24 X 3700.04 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x12)
L1 Instruction 32 KiB (x12)
L2 Unified 512 KiB (x12)
L3 Unified 32768 KiB (x1)
Load Average: 0.05, 0.05, 0.01
--------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------
BM_TokentoStringNEW 92.9 ns 92.9 ns 7553115
BM_TokentoStringOLD 205 ns 205 ns 3402696
BM_keyNew 71.0 ns 71.0 ns 9817658
BM_keyOLD 118 ns 118 ns 5911308
toStringNEW 62.3 ns 62.3 ns 11244709
toStringOLD 102 ns 102 ns 6849851
```https://gitlab.cern.ch/atlas/athena/-/merge_requests/63578Kill "HTT" from the name of everything2023-06-20T09:03:00+02:00Jahred Adelmanjahreda@gmail.comKill "HTT" from the name of everythingHTT goes away in our simulation. It's all EFTracking simulation now.
No practical changes and no changes to code. Just renaming files and folders and changing copyright dates. At some point this will be problematic to do because we will...HTT goes away in our simulation. It's all EFTracking simulation now.
No practical changes and no changes to code. Just renaming files and folders and changing copyright dates. At some point this will be problematic to do because we will have files with objects that have these names. We don't really have ones that we're using. Yet. But we hope to soon.https://gitlab.cern.ch/atlas/athena/-/merge_requests/63482Add algorithm to run the Acts ambiguity resolution2023-08-02T14:25:22+02:00Goetz GayckenAdd algorithm to run the Acts ambiguity resolutionAdded an athena algorithm which runs the Acts ambiguity resolution algorithm. The algorithm requires as input an Acts TrackContainer and produces an Acts TrackContainer. The algorithm does not perform a conversion to Trk::Tracks.Added an athena algorithm which runs the Acts ambiguity resolution algorithm. The algorithm requires as input an Acts TrackContainer and produces an Acts TrackContainer. The algorithm does not perform a conversion to Trk::Tracks.https://gitlab.cern.ch/atlas/athena/-/merge_requests/63374Fix HLT tau EDM2023-05-31T12:06:22+02:00Edson Carquin LopezFix HLT tau EDMRelates to ATR-27607, pinging @tamartin @martindlRelates to ATR-27607, pinging @tamartin @martindlhttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63289Fix z0 calculation in emerging jets trigger2023-06-06T14:26:08+02:00Jackson Carl BurzynskiFix z0 calculation in emerging jets triggerThe z0 calculation in `TrigJetEJsHypoTool` did not take into account the beamspot z position which led to large rates for periods with significant beamspot shifts (see ATR-27603). The implementation now aligns with the recommended way to...The z0 calculation in `TrigJetEJsHypoTool` did not take into account the beamspot z position which led to large rates for periods with significant beamspot shifts (see ATR-27603). The implementation now aligns with the recommended way to compute z0 (see https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TrackingCPRecsRun2Final#Calculating_z0_and_d0_significan)
This will lead to rate changes. I am not sure the exact protocol for updating active chains so please let me know if there are additional approvals or discussions needed.
Tagging @cpollard, @jmasik, @strom, @dguest, @ggustavi, @mgenesthttps://gitlab.cern.ch/atlas/athena/-/merge_requests/63242Mitigate the large NSW segment maker time2023-06-07T19:10:35+02:00Johannes Junggeburthjohannes.josef.junggeburth@cern.chMitigate the large NSW segment maker timeHi everybody,
the CPU footprint of the muon reconstruction is unbearable high this year. The cause is a very talkative NSW. In particular, the micromegas are telling very exciting fairy tales.
![image](/uploads/c5028e25762eca2576f1dd6...Hi everybody,
the CPU footprint of the muon reconstruction is unbearable high this year. The cause is a very talkative NSW. In particular, the micromegas are telling very exciting fairy tales.
![image](/uploads/c5028e25762eca2576f1dd62d1e0586f/image.png)
In !62170, @pscholer cut off the super communicative events with processing times per event beyond 30 minutes. Yesterday, @pscholer, @goblirsc and myself were sitting together and had a more thorough look at it. We came up with 2 ideas which are implemented in this merge request
* Detection of burst regions*: Before the hits are passed to the micromega seeding, the cluster channels are binned into a histogram. The bin width is for the moment set to `100`. If a bin contains more than `5` clusters, all clusters in this bin are removed. In the next step, two neighbouring bins are summed up. If a pair contains more than `7` clusters, both bins are emptied as well. Both numbers are initial guesses and probably require some fine-tuning.
* The position of the micromega seed in the transversal plane should roughly match the transversal seed direction. A first test on 1000 data events indicates very promissing results:
Vanilla:
```
00:15:31 PerfMonMTSvc INFO Execute 999 1560690.38 761808 264259 MuonSegmentMaker
```
Patched:
```
01:08:14 PerfMonMTSvc INFO Execute 999 105792.21 0 227655 MuonSegmentMaker
```
A first validation on a particle gun di-muon sample nicely demonstrates that the patch does not have an impact on the inner hit distributions....
![image](/uploads/c32b85f9af28c28d874955f32a6bc11b/image.png)
![image](/uploads/0b03b9bd280ea0fca7741efb467345d9/image.png)
![image](/uploads/fddb43ca11910afd401412912fb1f4b4/image.png)
However, this is an ideal unicave scenario and we are expecting that the segment making becomes sensitive to pile-up. To determine the optimal setting of cuts we need to roast a few polar bears and reprocess a high-pileup with the patch and maybe also with a few variations of the window size
![image](/uploads/90022b12eb6ded0329ceeecc9f49e331/image.png)
I guess, the most easiest approach is using the grid. So, I'm humbly asking for an increase of the grid quota for the `det-muon` account
Tagging: @nstyles, @jcatmore, @christos, @pscholer, @goblirsc, @jmaurer, @strichte, @amete, @zmarshal, @girolamo, @nicolaid, @mvanadia, @dhayden, @stavrop, @iodice, @sabidi, @atlasbot, @sangelid, @pgadow, @sroe, @syan
![image](/uploads/f88c91ca77a179bdc1d983e6c9a07f8c/image.png)
Full list of particle gun plots [here](/uploads/e7502dea0cf87109288fa4d44a28c0dd/AllPerigeeChecks.pdf)https://gitlab.cern.ch/atlas/athena/-/merge_requests/63141TrfTestsART: Add new data23 AthenaMT reco with CA test2023-05-18T19:48:39+02:00Johannes ElmsheuserTrfTestsART: Add new data23 AthenaMT reco with CA testA follow-up to MR https://gitlab.cern.ch/atlas/athena/-/merge_requests/63135
This MR adds a new data23 AthenaMT reco test with ComponentAccumulator and 9 outputs.
Tagging @jmaurer, @strichte for info.A follow-up to MR https://gitlab.cern.ch/atlas/athena/-/merge_requests/63135
This MR adds a new data23 AthenaMT reco test with ComponentAccumulator and 9 outputs.
Tagging @jmaurer, @strichte for info.https://gitlab.cern.ch/atlas/athena/-/merge_requests/62836Added Zprime extended dsid for PhysVal2023-05-04T16:26:34+02:00Jacob Edwin CrosbyAdded Zprime extended dsid for PhysValAdded the Z'extended dsid 800030 for PhysVal in order to receive proper pt cutsAdded the Z'extended dsid 800030 for PhysVal in order to receive proper pt cutsJacob Edwin CrosbyJacob Edwin Crosby