Allen merge requestshttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests2022-02-18T16:08:53+01:00https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/729Fix issues with ROOTService2022-02-18T16:08:53+01:00Roel AaijFix issues with ROOTService@dovombru and I had the some idea as clear from !728. I went a bit further and refactored the ROOTService to only open ROOT files once and write TTrees once at the end instead of for each batch of events.
In addition, a property has be...@dovombru and I had the some idea as clear from !728. I went a bit further and refactored the ROOTService to only open ROOT files once and write TTrees once at the end instead of for each batch of events.
In addition, a property has been added to disable the tree writing by default in the `KsToPiPi` and `RICH1Calibration` lines. For the stack/production builds ROOT will always enabled and making tuples should not be enabled.
To avoid a crash in the `SVMonitor` it has been disabled. That monitoring code needs to anyway be migrated to a dedicated monitoring algorithm to properly take into account event masks.
FYI @acasaisv @rilane
Closes #289Rosen MatevRosen Matevhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/734Inclusive Xi/Omega and Lambda+track Lines2024-02-24T12:54:28+01:00Marian Stahlmarian.stahl@cern.chInclusive Xi/Omega and Lambda+track LinesThis MR adds two new HLT1 lines to select hyperons. One looks for inclusive $`\Xi\to\Lambda\pi^-`$ and $`\Omega\to\Lambda K^-`$; the other for $`\Lambda\to p \pi^-`$ that makes a good vertex with a track that has the same charge as the p...This MR adds two new HLT1 lines to select hyperons. One looks for inclusive $`\Xi\to\Lambda\pi^-`$ and $`\Omega\to\Lambda K^-`$; the other for $`\Lambda\to p \pi^-`$ that makes a good vertex with a track that has the same charge as the proton and is displaced from any PV. The intention is to make use of the characteristic hyperon decay topology to select soft charm baryon decays to hyperons that have a relatively low efficiency with the generic lines.
Rates from standalone Allen on BWDIV minbias sample to be evaluated.Sebastien PonceSebastien Poncehttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/745Put the ECAL decoding and electron trigger lines back in the default sequence2022-02-07T03:55:45+01:00Maxime SchubigerPut the ECAL decoding and electron trigger lines back in the default sequencePut the ECAL decoding, the track-ECAL matching, the brem recovery and the electron trigger lines back in the default sequence.
For context, it was removed from the default sequence due to compilation issues here : https://gitlab.cern.ch...Put the ECAL decoding, the track-ECAL matching, the brem recovery and the electron trigger lines back in the default sequence.
For context, it was removed from the default sequence due to compilation issues here : https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/675
Since the compilation issues have been fixed, this should go back in the default sequence.https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/758Changes to CI to fix #2612022-02-07T15:18:11+01:00Saverio MarianiChanges to CI to fix #261Fix of issue #261:
* pick the right sequence for SMOG2 throughput test (automatically done after !755)
* pick the right geometry for SMOG2 throughput test
* add test on stand-alone pHe data to monitor how the performance changes...Fix of issue #261:
* pick the right sequence for SMOG2 throughput test (automatically done after !755)
* pick the right geometry for SMOG2 throughput test
* add test on stand-alone pHe data to monitor how the performance changes in the SMOG2 region
Changes successfully tested with [pipeline 3508961](https://gitlab.cern.ch/lhcb/Allen/-/pipelines/3508961)https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/772Resize MDF input buffers if needed2022-05-30T16:52:45+02:00Roel AaijResize MDF input buffers if neededIf the input reading buffer was full, the MDF reading would report one event too many as read. Instead just resize the input buffers.
A segfault was encountered in the global event cut when reading larger number of events with MC infor...If the input reading buffer was full, the MDF reading would report one event too many as read. Instead just resize the input buffers.
A segfault was encountered in the global event cut when reading larger number of events with MC information included. This fixes that segfault.Christina AgapopoulouChristina Agapopoulouhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/774Dielectron line with no IP cuts (2)2023-08-18T13:08:21+02:00Daniel JohnsonDielectron line with no IP cuts (2)Physics case: search for dark photons in the e+ e- spectrum of promptly produced and displaced dielectrons, themselves the products of a pi0 or eta decay to e+e- gamma.
New dielectron line with no IP cuts. Very similar to displaced diel...Physics case: search for dark photons in the e+ e- spectrum of promptly produced and displaced dielectrons, themselves the products of a pi0 or eta decay to e+e- gamma.
New dielectron line with no IP cuts. Very similar to displaced dielectron line but with IP cuts removed and replaced by a new cut on brem-corrected pt of the dielectron candidate. The pt threshold is set to 1 GeV and mass ranges / prompt-displaced thresholds and a new pt cut/prescale control the total rate added by these lines to ~1kHz.
See https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/732 for previous history.Sebastien PonceSebastien Poncehttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/783Fix a bug in two ks line2022-03-21T14:19:11+01:00Daniel Campora PerezFix a bug in two ks lineIt seems that TwoKsLine is giving unstable behaviour in https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/655. This MR fixes an outstanding issue in the line which may solve that.
* Compare all tracks in the vertices (one such comparis...It seems that TwoKsLine is giving unstable behaviour in https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/655. This MR fixes an outstanding issue in the line which may solve that.
* Compare all tracks in the vertices (one such comparison was missing).
Separately, a couple of fixes are included:
* Use float numerals instead of doubles.
* `threadIdx.y` was being used - this would have led to a race condition, but luckily parallelism in lines only pan the X dimension. It now uses a sequential iteration instead.Roel AaijRoel Aaijhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/807Hlt1 Calo DiCluster Line2022-09-22T10:51:36+02:00Murilo Santana RangelHlt1 Calo DiCluster LineImplements dicluster reconstruction from pairs of calo clusters.
Includes a dicluster line in the `hlt1_pp_default` sequence aimed at Bs2GammaGamma decays. Diclusters are selected based on the dicluster's mass and Et, clusters' Et and S...Implements dicluster reconstruction from pairs of calo clusters.
Includes a dicluster line in the `hlt1_pp_default` sequence aimed at Bs2GammaGamma decays. Diclusters are selected based on the dicluster's mass and Et, clusters' Et and SumEt.
~~Adds a mechanism to the clustering algorithm that checks if the cluster's seed cell has track matching.~~
Slides with plots with MB and Bs2GammaGamma simulation
[Allen_TwoCluster.pdf](/uploads/7ffa0d9bb5a15ce9dbf3a8b3965622e3/Allen_TwoCluster.pdf) (Needs updating following a bug fix in calo_seed_clusters)
To do list:
- [x] Include n_diclusters in the monitoring tuple
- [x] Replace SumEt by Et and include clusters Et in twocluster object
- [x] For twoclusters line, include cuts on twocluster and clusters Et
- [x] ~~Include cut on number of PVs for twoclusters line~~ Check follow up issue Allen#341
- [x] Tune selection requirements (e.g., minimum distance between two clusters)
- [x] Study number of two clusters per event to define better the maximum output size `Calo::Constants::max_ndiclusters`
Old slides with plots before fixes kept for historical reasons [Allen_TwoCluster.pdf](/uploads/5995a1b134a8ee61a61c254655637054/Allen_TwoCluster.pdf)
Needs MooreOnline!97
### Throughput Loss ###
![throughput_loss](/uploads/0403581f003194d1f784cfdde25607c9/throughput_loss.png)
`Bs2GammaGamma` represents the current state of the MR, with only the dicluster selection running. This implies running the cluster reconstruction and the dicluster combinatorics.
`SingleCaloCluster` represents a configuration in which the Bs2GammaGamma line is replaced by the Hlt1SingleCaloCluster line from `hlt1_cosmics`. In this case, the dicluster algorithms are not executed.
Finally, `Both` represents a configuration where both lines are executed.
Comparing `Bs2GammaGamma` and `Both` indicates that the selection itself is not relevant for the throughput. Then, comparing `Bs2GammaGamma` and `SingleCaloCluster` indicates that the calo cluster reconstruction causes the most relevant drop in throughput. I believe this is corroborated by the [sequence breakdown](https://mattermost.web.cern.ch/lhcb/pl/6u317zho87bt8m5rtj7o9bx8so), which shows `calo_seed_clusters` (first step in the calo cluster reconstruction) as the most important contribution from the new calo algorithms (3.84%).
**Edit**: These throughput numbers are outdated. The current [tests](https://mattermost.web.cern.ch/lhcb/pl/kekkix9y5tbcukzeyop5notopa) show a throughput loss of about 3%.Rosen MatevRosen Matevhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/820Remove PatPV2022-04-04T10:38:50+02:00Daniel Campora PerezRemove PatPVThis MR removes the PatPV algorithms. These algorithms are currently unused, untested and use old versions of the event model. More relevantly, we are using BeamlinePV since quite some time instead.
CC @freissThis MR removes the PatPV algorithms. These algorithms are currently unused, untested and use old versions of the event model. More relevantly, we are using BeamlinePV since quite some time instead.
CC @freissLorenzo PicaLorenzo Picahttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/829Prevent full run jobs from starting when they shouldn't2022-04-18T18:14:51+02:00Ryunosuke O'NeilPrevent full run jobs from starting when they shouldn't
cc @dcampora
cc @dcamporahttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/835Add algorithms to support Moore-based Gaudi Allen configuration2022-06-21T19:18:58+02:00Patrick SpradlinAdd algorithms to support Moore-based Gaudi Allen configurationAdd algorithms to support Moore-based Gaudi Allen configuration.
Most of the algorithms in Rec/Allen/src that rely on the output of RunAllen will need to be updated or replaced by algorithms that interface directly with the output Allen ...Add algorithms to support Moore-based Gaudi Allen configuration.
Most of the algorithms in Rec/Allen/src that rely on the output of RunAllen will need to be updated or replaced by algorithms that interface directly with the output Allen reconstruction algorithms.
Based on MR !823 and the `NN_hack_gaudi_allen` branch.
Should go along https://gitlab.cern.ch/lhcb/Moore/-/merge_requests/609, MooreAnalysis!84 and https://gitlab.cern.ch/lhcb/MooreOnline/-/merge_requests/99https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/862Unified validators for long and kalman tracks2022-06-21T19:18:57+02:00Christina AgapopoulouUnified validators for long and kalman tracksSingle LongTrackChecker and KalmanChecker for long tracks with/without UT from forward or from matching.
cc @dcampora , @ascarabo , @ahennequ , @lohenry , @lcalefic , @bjashal , @lpicaSingle LongTrackChecker and KalmanChecker for long tracks with/without UT from forward or from matching.
cc @dcampora , @ascarabo , @ahennequ , @lohenry , @lcalefic , @bjashal , @lpicahttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/863Make Allen compatible with CUDA 11.7.2022-05-16T17:48:43+02:00Daniel Campora PerezMake Allen compatible with CUDA 11.7.CUDA 11.7 complains that `StructToTuple`'s `std::make_tuple` is a `__host__` function. This MR uses `std::tuple` instead.
Since previous versions of CUDA seemingly don't like `std::tuple`, the previous code is also generated for CUDA 11...CUDA 11.7 complains that `StructToTuple`'s `std::make_tuple` is a `__host__` function. This MR uses `std::tuple` instead.
Since previous versions of CUDA seemingly don't like `std::tuple`, the previous code is also generated for CUDA 11.6 or older.
For completeness, the error, as visible only in CUDA 11.6 or older:
```
code_generation/sequences/include/StructToTuple.cuh(174): error: more than one instance of constructor "std::tuple" matches the argument list:
function template "std::tuple<_Elements...> tuple()" (declared implicitly)
function template "std::tuple<_Elements...> tuple()" (declared implicitly)
detected during instantiation of type "ArgumentReferences<kalman_filter::Parameters>"
../device/kalman/ParKalman/include/ParKalmanFilter.cuh(143): here
```https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/864Update the Calo Clustering algorithm in HLT12024-02-09T11:22:08+01:00Nuria Valls CanudasUpdate the Calo Clustering algorithm in HLT1We aim to improve the current calo clustering algorithm in Allen adding a "shower overlap"-like function.
The proposed implementation improves the `hlt1_reco_allen_calo_efficiency` Moore test as follows:
* 1000 evts: Reference 84.7+-1.7...We aim to improve the current calo clustering algorithm in Allen adding a "shower overlap"-like function.
The proposed implementation improves the `hlt1_reco_allen_calo_efficiency` Moore test as follows:
* 1000 evts: Reference 84.7+-1.7 ; MR 85.4+-1.7
* 40k evts: Reference 80.5+-0.3 ; MR 81.7+-0.3
The changes in the efficiency tests are not significant when testing with bigger event bunches and are expected since the reconstructed cluster values have changed.Arthur Marius HennequinArthur Marius Hennequinhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/874First implementation of TELL40 v1 cluster output (default) and two sensor SP ...2022-08-08T09:58:27+02:00David HutchcroftFirst implementation of TELL40 v1 cluster output (default) and two sensor SP banks (only if FPGA clustering not available)These are the changes to Allen required to decode the v1 retina clusters. This is the default for first data taking, see https://edms.cern.ch/document/2086526/3 v.4
With the update requested by the RTA for the source ID to have the DF bi...These are the changes to Allen required to decode the v1 retina clusters. This is the default for first data taking, see https://edms.cern.ch/document/2086526/3 v.4
With the update requested by the RTA for the source ID to have the DF bit moved to the end, so bits 9..0 sort the order of the pairs of sensors.
The superpixel banks (not expected to be output, but could be if the clustering in the TELL40s is problematic) are mixed between two sensors and have the correct TFC routing bankID.
The VPRetinaCluster banks also contain two sensors worth of clusters using the v1 cluster bit patterns (previously v0 was implemented, see EDMS doc above).
Note this is not fully checked, as it has not been run through Allen hence the Draft: label and includes all of the RCv1 updates recently accepted into master.
This MR should be tested together with lhcb/LHCb!3452, lhcb/Boole!398, lhcb/Rec!2958 and lhcb/Moore!1635.Tomasz SzumlakGiovanni BassiTomasz Szumlakhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/900Fix start->stop->start and allow multiple output threads2022-06-21T19:18:57+02:00Roel AaijFix start->stop->start and allow multiple output threadsFYI @dcamporaFYI @dcamporaDaniel Campora PerezDaniel Campora Perezhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/902Refactor store, create Allen::buffer and use that in host_buffers2022-06-21T19:18:57+02:00Daniel Campora PerezRefactor store, create Allen::buffer and use that in host_buffersThis MR refactors the Allen store by:
* Moving all relevant files into better named filenames under `stream/store/include`.
* Puts all functionality in there under namespace `Allen::Store::`
It aims to get back the speed of the sequenc...This MR refactors the Allen store by:
* Moving all relevant files into better named filenames under `stream/store/include`.
* Puts all functionality in there under namespace `Allen::Store::`
It aims to get back the speed of the sequence lost by the monitoring buffers:
* Create `Allen::buffer` datatypes, that can be used in conjunction with an instance of the MemoryManager.
* Add local instance of Host MemoryManager in host_buffers.
This way, Allen::buffers will be resized when required inside a memory buffer, which shouldn't result in a slowdown.
This MR fixes the throughput issue caused by host buffers:
```
Device Throughput (kHz) Reference Throughput (kHz) Speedup % change Status
-------------------------- ------------------ ---------------------------- --------- ---------- --------
NVIDIA RTX A5000 171.96 127.82 1.35x 34.54% OK
AMD EPYC 7502 32-Core 17.18 16.65 1.03x 3.17% OK
NVIDIA GeForce RTX 2080 Ti 133.73 102.11 1.31x 30.96% OK
NVIDIA GeForce RTX 3090 220.51 147.02 1.50x 49.98% OK
Device-averaged speedup: 1.30x
% change: 29.66%
status: OK
```
Closes https://gitlab.cern.ch/lhcb/Allen/-/issues/329 and https://gitlab.cern.ch/lhcb/Allen/-/issues/328Dorothea Vom BruchDorothea Vom Bruchhttps://gitlab.cern.ch/lhcb/Allen/-/merge_requests/904Update refs in master.2022-06-21T19:18:58+02:00Daniel Campora PerezUpdate refs in master.https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/907DumpMuonTable - include DD4hep/GrammarUnparsed.h2022-07-25T12:04:38+02:00Christopher Rob Jonesjonesc@hep.phy.cam.ac.ukDumpMuonTable - include DD4hep/GrammarUnparsed.hShould address lhcb/Allen#331Should address lhcb/Allen#331https://gitlab.cern.ch/lhcb/Allen/-/merge_requests/912Set logger::debug as minimum verbosity to print MemoryManager message2022-06-22T13:30:57+02:00Daniel Campora PerezSet logger::debug as minimum verbosity to print MemoryManager messageThis MR sets the message in MemoryManager for zero bytes request to debug verbosity.
This message was flooding the output of one of the SMOG tests, causing it to always be slow.This MR sets the message in MemoryManager for zero bytes request to debug verbosity.
This message was flooding the output of one of the SMOG tests, causing it to always be slow.