{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,10]],"date-time":"2026-03-10T03:51:37Z","timestamp":1773114697114,"version":"3.50.1"},"reference-count":48,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2024,2,24]],"date-time":"2024-02-24T00:00:00Z","timestamp":1708732800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,2,24]],"date-time":"2024-02-24T00:00:00Z","timestamp":1708732800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100001711","name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","doi-asserted-by":"publisher","award":["204238"],"award-info":[{"award-number":["204238"]}],"id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100006447","name":"Universit\u00e4t Z\u00fcrich","doi-asserted-by":"publisher","award":["FK21129"],"award-info":[{"award-number":["FK21129"]}],"id":[{"id":"10.13039\/501100006447","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100012470","name":"CERN","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100012470","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Comput Softw Big Sci"],"published-print":{"date-parts":[[2024,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The offline software framework of the LHCb experiment has undergone a significant overhaul to tackle the data processing challenges that will arise in the upcoming Run 3 and Run 4 of the Large Hadron Collider. This paper introduces , a novel component developed for offline data processing within the LHCb experiment. This component enables the computation and storage of a diverse range of observables for both reconstructed and simulated events by leveraging on the tools initially developed for the trigger system. This feature is crucial for ensuring consistency between trigger-computed and offline-analysed observables. The component and its tool suite offer users flexibility to customise stored observables, and its reliability is validated through a full-coverage set of rigorous unit tests. This paper comprehensively explores \u2019s design, interface, interaction with other algorithms, and its role in facilitating offline data processing for the LHCb experiment for the next decade and beyond.<\/jats:p>","DOI":"10.1007\/s41781-024-00116-1","type":"journal-article","created":{"date-parts":[[2024,2,24]],"date-time":"2024-02-24T11:02:12Z","timestamp":1708772532000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["FunTuple: A New N-tuple Component for Offline Data Processing at the LHCb Experiment"],"prefix":"10.1007","volume":"8","author":[{"given":"Abhijit","family":"Mathad","sequence":"first","affiliation":[]},{"given":"Martina","family":"Ferrillo","sequence":"additional","affiliation":[]},{"given":"Sacha","family":"Barr\u00e9","sequence":"additional","affiliation":[]},{"given":"Patrick","family":"Koppenburg","sequence":"additional","affiliation":[]},{"given":"Patrick","family":"Owen","sequence":"additional","affiliation":[]},{"given":"Gerhard","family":"Raven","sequence":"additional","affiliation":[]},{"given":"Eduardo","family":"Rodrigues","sequence":"additional","affiliation":[]},{"given":"Nicola","family":"Serra","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2024,2,24]]},"reference":[{"key":"116_CR1","doi-asserted-by":"publisher","unstructured":"LHC Machine (2008) JINST 3:S08001. https:\/\/doi.org\/10.1088\/1748-0221\/3\/08\/S08001","DOI":"10.1088\/1748-0221\/3\/08\/S08001"},{"key":"116_CR2","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Alves AA Jr\u00a0et\u00a0al (2008)\u00a0The LHCb detector at the LHC. JINST 3:\u00a0S08005.\u00a0https:\/\/doi.org\/10.1088\/1748-0221\/3\/08\/S08005","DOI":"10.1088\/1748-0221\/3\/08\/S08005"},{"key":"116_CR3","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Aaij R et\u00a0al (2015)\u00a0LHCb detector performance. Int J Mod Phys\u00a0A30:\u00a01530022.\u00a0https:\/\/doi.org\/10.1142\/S0217751X15300227arXiv:1412.6352","DOI":"10.1142\/S0217751X15300227"},{"key":"116_CR4","unstructured":"LHCb Collaboration, Aaij R\u00a0et\u00a0al.\u00a0The LHCb Upgrade I, arXiv:2305.10515, to appear in JINST"},{"key":"116_CR5","doi-asserted-by":"publisher","first-page":"P04006","DOI":"10.1088\/1748-0221\/14\/04\/P04006","volume":"14","author":"R Aaij","year":"2019","unstructured":"Aaij R et al (2019) A comprehensive real-time analysis model at the LHCb experiment. JINST 14:P04006. https:\/\/doi.org\/10.1088\/1748-0221\/14\/04\/P04006. arXiv:1903.01360","journal-title":"JINST"},{"key":"116_CR6","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Aaij R\u00a0et\u00a0al (2022)\u00a0Measurement of the $${B}_{S}^{0} \\rightarrow \\mu ^{+} \\mu ^{-}$$ decay properties and search for the $${B}^{0} \\rightarrow \\mu ^{+} \\mu ^{-}$$ and $${B}_{S}^{0} \\rightarrow \\mu ^{+} \\mu ^{-} \\gamma$$ decays. Phys Rev\u00a0D105:\u00a0 012010.\u00a0https:\/\/doi.org\/10.1103\/PhysRevD.105.012010arXiv:2108.09283","DOI":"10.1103\/PhysRevD.105.012010"},{"key":"116_CR7","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Aaij R\u00a0et\u00a0al (2020)\u00a0Measurement of $$CP$$-averaged observables in the $$B^{0} \\rightarrow K^{*0}\\mu ^{+} \\mu ^{-}$$ decay. Phys Rev Lett. 125:\u00a0011802. https:\/\/doi.org\/10.1103\/PhysRevLett.125.011802arXiv:2003.04831","DOI":"10.1103\/PhysRevLett.125.011802"},{"key":"116_CR8","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Aaij R\u00a0et\u00a0al (2023)\u00a0Test of lepton flavour universality using $$B^{0} \\rightarrow D^{*-}\\tau ^{+}\\nu _{\\tau }$$ decays, with hadronic $$\\tau$$ channels. Phys Rev\u00a0D108:\u00a0012018. https:\/\/doi.org\/10.1103\/PhysRevD.108.012018arXiv:2305.01463","DOI":"10.1103\/PhysRevD.108.012018"},{"key":"116_CR9","unstructured":"LHCb Collaboration, Aaij R\u00a0et\u00a0al.\u00a0Measurement of the ratio of branching fractions $$\\cal R\\it (D^{*})$$ and $$\\cal R\\it (D^{0})$$ , arXiv:2302.02886, submitted to Phys Rev Lett"},{"key":"116_CR10","doi-asserted-by":"publisher","unstructured":"Skidmore N, Rodrigues E, Koppenburg P (2022) Run-3 offline data processing and analysis at LHCb. PoS EPS-HEP2021 792.\u00a0https:\/\/doi.org\/10.22323\/1.398.0792","DOI":"10.22323\/1.398.0792"},{"key":"116_CR11","unstructured":"LHCb Collaboration (2018) Computing model of the upgrade LHCb experiment, CERN-LHCC-2018-014.\u00a0\u00a0http:\/\/cdsweb.cern.ch\/search?p=CERN-LHCC-2018-014&f=reportnumber&action_search=Search&c=LHCb"},{"key":"116_CR12","doi-asserted-by":"publisher","unstructured":"Tsaregorodtsev A et al (2010) DIRAC3: the new generation of the LHCb grid software. J Phys Conf Ser 219:062029. https:\/\/doi.org\/10.1088\/1742-6596\/219\/6\/062029","DOI":"10.1088\/1742-6596\/219\/6\/062029"},{"key":"116_CR13","unstructured":"FunTuple GitLab Repository.\u00a0https:\/\/gitlab.cern.ch\/lhcb\/Analysis\/-\/tree\/v41r15\/Phys\/FunTuple. Analysis v41r15, Accessed 02 Nov 2022"},{"key":"116_CR14","unstructured":"Moore Project. https:\/\/gitlab.cern.ch\/lhcb\/Moore. Accessed 19 Aug 2023"},{"key":"116_CR15","unstructured":"Brunel Project. https:\/\/gitlab.cern.ch\/lhcb\/Brunel. Accessed 19 Aug 2023"},{"key":"116_CR16","unstructured":"DaVinci Project. https:\/\/gitlab.cern.ch\/lhcb\/DaVinci. Accessed 19 Aug 2023"},{"key":"116_CR17","unstructured":"Analysis project. https:\/\/gitlab.cern.ch\/lhcb\/Analysis\/-\/tree\/v22r7?ref_type=tags. Accessed 19 Aug 2023"},{"key":"116_CR18","unstructured":"Belyaev I et\u00a0al (2004) Python-based Physics Analysis Environment for LHCb. 2004. https:\/\/inspirehep.net\/literature\/928906"},{"key":"116_CR19","unstructured":"Bender Project. https:\/\/gitlab.cern.ch\/lhcb\/Analysis\/-\/tree\/v22r7?ref_type=tags. Accessed 19 Aug 2023"},{"key":"116_CR20","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Hennequin A, \u00a0De\u00a0Cian M, Esen S. Fast and flexible data structures for the LHCb Run 3 software trigger, https:\/\/doi.org\/10.5281\/zenodo.8119864arXiv:2307.03689","DOI":"10.5281\/zenodo.8119864"},{"key":"116_CR21","doi-asserted-by":"publisher","first-page":"7","DOI":"10.1007\/s41781-020-00039-7","volume":"4","author":"R Aaij","year":"2020","unstructured":"Aaij R et al (2020) Allen: a high level trigger on GPUs for LHCb. Comput Softw Big Sci 4:7. https:\/\/doi.org\/10.1007\/s41781-020-00039-7. arXiv:1912.09161","journal-title":"Comput Softw Big Sci"},{"key":"116_CR22","unstructured":"LHCb Collaboration, Aaij R et\u00a0al. The LHCb upgrade I, arXiv:2305.10515"},{"key":"116_CR23","volume-title":"Anatomy of an upgrade event in the upgrade era, and implications for the LHCb trigger","author":"C Fitzpatrick","year":"2014","unstructured":"Fitzpatrick C, Gligorov VV (2014) Anatomy of an upgrade event in the upgrade era, and implications for the LHCb trigger. CERN, Geneva"},{"key":"116_CR24","unstructured":"Reiss F (2023) Real-time alignment procedure at the LHCb experiment for Run 3. http:\/\/cds.cern.ch\/record\/2846414"},{"key":"116_CR25","unstructured":"ThOr Functors.https:\/\/lhcbdoc.web.cern.ch\/lhcbdoc\/moore\/master\/selection\/thor_functors.html. Accessed 02 Nov 2022."},{"key":"116_CR26","unstructured":"Nolte N (2021) A selection framework for LHCb\u2019s upgrade trigger, 2020. https:\/\/cds.cern.ch\/record\/2765896. Presented 22 Feb"},{"key":"116_CR27","unstructured":"Rec Project.\u00a0https:\/\/gitlab.cern.ch\/lhcb\/Rec. Accessed 19 Aug 2023"},{"key":"116_CR28","doi-asserted-by":"publisher","unstructured":"Lopez-Gomez J, Blomer J (2023) RNTuple performance: status and outlook. J Phys Conf Ser 2438:012118. https:\/\/doi.org\/10.1088\/1742-6596\/2438\/1\/012118 (arXiv:2204.09043)","DOI":"10.1088\/1742-6596\/2438\/1\/012118"},{"key":"116_CR29","doi-asserted-by":"publisher","first-page":"81","DOI":"10.1016\/S0168-9002(97)00048-X","volume":"389","author":"R Brun","year":"1997","unstructured":"Brun R, Rademakers F (1997) ROOT: an object oriented data analysis framework. Nucl Instrum Meth A 389:81. https:\/\/doi.org\/10.1016\/S0168-9002(97)00048-X","journal-title":"Nucl Instrum Meth A"},{"key":"116_CR30","unstructured":"LHCb Collaboration (2020) RTA and DPA dataflow diagrams for Run 1, Run 2, and the upgraded LHCb detector. https:\/\/cds.cern.ch\/record\/2730181"},{"key":"116_CR31","unstructured":"Analysis Productions project. https:\/\/lhcb-ap.docs.cern.ch\/index.html. Accessed 19 Aug 2023"},{"key":"116_CR32","unstructured":"Standard C++, version C++17. https:\/\/isocpp.org\/. Accessed 19 Aug 2023"},{"key":"116_CR33","doi-asserted-by":"publisher","first-page":"45","DOI":"10.1016\/S0010-4655(01)00254-5","volume":"140","author":"G Barrand","year":"2001","unstructured":"Barrand G et al (2001) GAUDI\u2014a software architecture and framework for building HEP data processing applications. Comput Phys Commun 140:45. https:\/\/doi.org\/10.1016\/S0010-4655(01)00254-5","journal-title":"Comput Phys Commun"},{"key":"116_CR34","unstructured":"Python Software Foundation. Python Language Reference, version 3.9, https:\/\/www.python.org\/. [Online; accessed 19-Aug-2023]"},{"key":"116_CR35","doi-asserted-by":"publisher","unstructured":"LHCb Collaboration, Li P (2022) Real-time analysis in Run 3 with the LHCb experiment. PoS EPS-HEP2021 (2022) 829, https:\/\/doi.org\/10.22323\/1.398.0829","DOI":"10.22323\/1.398.0829"},{"key":"116_CR36","doi-asserted-by":"publisher","DOI":"10.1088\/1742-6596\/219\/4\/042006","volume":"219","author":"M Clemencic","year":"2010","unstructured":"Clemencic M et al (2010) Recent developments in the lhcb software framework gaudi. J Phys Conf Ser 219:042006. https:\/\/doi.org\/10.1088\/1742-6596\/219\/4\/042006","journal-title":"J Phys Conf Ser"},{"key":"116_CR37","unstructured":"Barre S, Mathad, A. Decay finder algorithm for reconstructed particles in Run 3 at the LHCb experiment. https:\/\/cds.cern.ch\/record\/2837189. [CERN-STUDENTS-NOTE-2022-211]"},{"key":"116_CR38","unstructured":"LHCb Project. https:\/\/gitlab.cern.ch\/lhcb\/LHCb. Accessed 19 Aug 2023"},{"key":"116_CR39","unstructured":"Boost.Regex 7.0.1. https:\/\/www.boost.org\/doc\/libs\/1_80_0\/libs\/regex\/doc\/html\/index.html. Accessed 19 Aug 2023"},{"key":"116_CR40","unstructured":"Joel\u00a0de Guzman, HK (2011) Qi\u2014Writing Parsers. https:\/\/www.boost.org\/doc\/libs\/1_80_0\/libs\/spirit\/doc\/html\/spirit\/qi.html. Accessed 16 Sept 2022"},{"key":"116_CR41","unstructured":"LHCb Conditions Database. https:\/\/gitlab.cern.ch\/lhcb-conddb. Accessed 19 Aug 2023"},{"key":"116_CR42","unstructured":"Gaudi framework. https:\/\/gitlab.cern.ch\/lhcb\/Gaudi. Accessed 19 Aug 2023"},{"key":"116_CR43","unstructured":"LoKi framework. https:\/\/twiki.cern.ch\/twiki\/bin\/view\/LHCb\/FAQ\/LoKiNewDecayFinders. Accessed 19 Aug 2023"},{"key":"116_CR44","unstructured":"LHCb collaboration (2022) Grammar in short: Arrows. https:\/\/twiki.cern.ch\/twiki\/bin\/view\/LHCb\/FAQ\/LoKiNewDecayFinders#Arrows. Accessed 16 Sept 2022"},{"key":"116_CR45","unstructured":"Krekel H et\u00a0al (2004) pytest. https:\/\/docs.pytest.org\/en\/7.1.x\/"},{"key":"116_CR46","doi-asserted-by":"publisher","first-page":"566","DOI":"10.1016\/j.nima.2005.06.078","volume":"A552","author":"WD Hulsbergen","year":"2005","unstructured":"Hulsbergen WD (2005) Decay chain fitting with a Kalman filter. Nucl Instrum Meth A552:566. https:\/\/doi.org\/10.1016\/j.nima.2005.06.078. arXiv:physics\/0503191","journal-title":"Nucl Instrum Meth"},{"key":"116_CR47","unstructured":"LHCb Collaboration (2022) Jpsi2MuMu 2022 mass figure. https:\/\/cds.cern.ch\/record\/2867664"},{"key":"116_CR48","doi-asserted-by":"publisher","unstructured":"Particle Data Group, P.\u00a0A. Zyla et\u00a0al (2020) Review of particle physics. Prog Theor Exp Phys. 2020: 083C01. https:\/\/doi.org\/10.1093\/ptep\/ptaa104http:\/\/pdg.lbl.gov\/","DOI":"10.1093\/ptep\/ptaa104"}],"container-title":["Computing and Software for Big Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s41781-024-00116-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s41781-024-00116-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s41781-024-00116-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,28]],"date-time":"2024-08-28T10:14:35Z","timestamp":1724840075000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s41781-024-00116-1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,2,24]]},"references-count":48,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024,12]]}},"alternative-id":["116"],"URL":"https:\/\/doi.org\/10.1007\/s41781-024-00116-1","relation":{},"ISSN":["2510-2036","2510-2044"],"issn-type":[{"value":"2510-2036","type":"print"},{"value":"2510-2044","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,2,24]]},"assertion":[{"value":"17 November 2023","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"11 February 2024","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 February 2024","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"6"}}