Mathis Dubau

Mathis Dubau · Projets & parcours

Projets

D'une licence à Bordeaux à l'expérience ATLAS, les logiciels derrière la thèse, et des simulations de physique issues de mes études.

Parcours

2023 – 2026

Doctorat au LAPP, Annecy

ATLAS · Université Savoie Mont Blanc

Polarisation dans la VBS WZ, électrons vers l'avant pour le Run-4 au sein du groupe Combined Performance e/γ\mathrm{e}/\gamma, et apprentissage actif pour les scans BSM avec le LAPTh. Mes recherches →

mars – juil. 2023

Stage de master (M2), LAPP

Encadrant : Olivier Arnaez

Études d'extension de couverture pour de futures mesures de polarisation dans les événements WZ du secteur électrofaible : études préliminaires pour la thèse sur le gain potentiel de sensibilité apporté par l'extension de la couverture du trajectographe d'ATLAS pour le HL-LHC.

mai – juin 2022

Stage de master (M1), IP2I Lyon

Encadrants : Nazila Mahmoudi et Mohamed Amine Boussejra

Application de l'apprentissage automatique à l'échantillonnage d'espaces de paramètres supersymétriques de grande dimension : une méthode d'apprentissage actif par DNN pour explorer efficacement les espaces de phase réduits du MSSM (pMSSM, NMFV). La méthode → · Refait en projet →

mai – juin 2021

Stage de licence (L3), CENBG Bordeaux

Encadrante : Cécile Jollet

Détermination de la probabilité d'oscillation des neutrinos à deux et trois saveurs. Refait en projet →

2018 – 2023

Licence à Bordeaux, master à Lyon

Université de Bordeaux · Université Claude Bernard Lyon 1, parcours subatomique

Dont C++, calcul parallèle, science des données, et travaux pratiques avec Geant4 et ROOT.

Logiciels de recherche

Le code derrière la thèse. Les dépôts sont privés (données et outils internes d'ATLAS) ; les méthodes sont publiques dans la thèse.

VBS-WZ-DNN

Les réseaux de neurones profonds (Keras / TensorFlow) de l'analyse VBS WZjj : un réseau signal contre bruit de fond à quatre classes et trois réseaux de polarisation. Le dépôt couvre toute la chaîne : optimisation des hyperparamètres, entraînement en k-fold, figures et comparaisons, templates à deux dimensions segmentés en cellules de Voronoï, et export des réseaux entraînés en C++ et en Fortran.

La méthode →

VBS-WZ-fit

L'analyse statistique. Aucune configuration d'ajustement n'est écrite à la main : les configurations TRExFitter sont générées à partir de blocs Python modulaires (échantillons, facteurs de normalisation, systématiques), exécutées, puis traitées en figures et tableaux LaTeX, pour chaque mesure de polarisation, chaque période (Run-2, Run-3, combinée) et chaque état d'aveuglement.

L'ajustement →

Calibration et identification des électrons vers l'avant

Calibration et identification par DNN des électrons vers l'avant pour le HL-LHC, un réseau par intervalle en |η||\eta|, convertis en JSON et validés dans Athena, le cadre logiciel d'ATLAS.

La méthode →

Le réseau utilise-t-il toute l'information ?

Un cadre autonome qui mesure, en bits, quelle part de l'information que portent les variables d'entrée sur l'étiquette le réseau de l'analyse extrait réellement. La théorie de l'information donne le zéro qui manque à une courbe ROC : pour tout modèle qq évalué sur des événements non vus, I(X;Y)≥H(Y)−CE(q)I(X;Y) \geq H(Y) - \mathrm{CE}(q), si bien qu'une entropie croisée est une borne inférieure certifiée de l'information mutuelle.

Toutes les figures de la thèse, reproductibles

Les 290 figures de la thèse produites par script, dans son style et à la taille où elle les inclut, chacune avec les nombres dont elle est tirée, pour pouvoir redessiner et restyler n'importe quelle figure sur un ordinateur portable, sans le stockage de la grille ni le logiciel d'analyse.

Les schémas de la thèse

109 schémas dessinés en TikZ, des détecteurs aux diagrammes de Feynman et à un Modèle Standard en briques Lego, avec un aperçu autonome et une vérification qu'ils restent identiques aux copies de la thèse.

La banque de schémas →

Outils de rédaction de la thèse

Un lint qui transforme les conventions d'écriture en recherches, pour trouver une classe de défauts de façon exhaustive au lieu de l'échantillonner à la relecture, et des outils de suivi des modifications (modes de latexdiff, tableaux et figures modifiés) pour les rapporteurs.

Les transparents tirés de la thèse

Un modèle Beamer, et une présentation de soutenance dont les figures et les nombres proviennent des sources de la thèse au lieu d'être recopiés, pour que les deux ne puissent pas diverger.

Supports d'enseignement

Introduction à Python

Les notebooks Jupyter de l'introduction à Python que j'ai enseignée à l'Université Savoie Mont Blanc.

Visualisation interactive de données

Une application web Dash et Plotly pour explorer interactivement des ntuples ROOT, empaquetée dans un conteneur et déployée avec Kubernetes.

Simulations de physique

Des exercices et travaux pratiques de licence et de master, réécrits en Python ou en C++ pour que chacun soit validé par un résultat connu. Toutes les figures suivent le style de la thèse. Code sur GitHub.

L'atome d'hydrogène

Exercices de L1–L2, Python

L'équation de Schrödinger radiale est résolue par différences finies comme un problème aux valeurs propres tridiagonal : les niveaux ne dépendent que de nn, comme le prévoit le potentiel coulombien, et retrouvent les énergies de Bohr En=−13,6eVn2E_n = -\frac{13{,}6\,\mathrm{eV}}{n^2} à 0,6meV0{,}6\,\mathrm{meV} près. Les orbitales s, p et d sont tracées à partir des fonctions d'onde exactes, dont les parties radiales coïncident avec les solutions numériques.

Orbitales de l'hydrogène de 1s à 3d dans le plan xz, signe de la fonction d'onde en couleur
Orbitales dans le plan xzxz : signe de ψ\psi en couleur.
Niveaux s, p et d calculés, sur les énergies de Bohr
Les niveaux s, p et d tombent sur les énergies de Bohr : ils ne dépendent que de nn.

La molécule H₂ : liaison et vibrations

Exercices de L2–L3, Python

La liaison de H2+\mathrm{H}_2^+ avec des orbitales LCAO (liante σg\sigma_g, antiliante σu\sigma_u), et les niveaux de vibration de H2\mathrm{H}_2 dans un potentiel de Morse : les 18 niveaux liés retrouvent le spectre exact de Morse à 0,21meV0{,}21\,\mathrm{meV} près, et se resserrent vers la dissociation, là où l'approximation harmonique échoue.

Orbitales liante et antiliante de H2+
Orbitales liante et antiliante.
Niveaux de vibration dans le potentiel de Morse, avec l'approximation harmonique
Niveaux de vibration dans le potentiel de Morse.

Effet tunnel d'un paquet d'ondes

Projet personnel, Python

Un paquet d'ondes gaussien rencontre une barrière carrée. L'équation de Schrödinger dépendante du temps à une dimension est résolue par la méthode split-step de Fourier, qui conserve la norme à la précision machine, et la probabilité transmise est comparée au résultat exact en ondes planes moyenné sur la distribution d'impulsion du paquet : les deux s'accordent à 4%4\,\% près pour EV0\frac{E}{V_0} de 0,1 à 1,5.

Animation d'un paquet d'ondes gaussien en partie transmis et en partie réfléchi par une barrière carrée
Le paquet se sépare sur la barrière : une partie la traverse par effet tunnel, l'autre est réfléchie.
Probabilité de transmission en fonction de E sur V0, simulation et résultat exact
Transmission TT en fonction de EV0\frac{E}{V_0} : simulation et résultat exact.

Le modèle d'Ising à deux dimensions

TP de licence (L3), réécrit en Python

La transition ferromagnétique avec l'algorithme de Metropolis sur un réseau 48×4848\times48, mis à jour en damier avec numpy. Sous T=2,1T = 2{,}1, l'aimantation retrouve la solution exacte d'Onsager à mieux que 0,01 ; près de Tc=2,269T_c = 2{,}269, la taille finie du réseau arrondit la transition.

Configurations de spins sous, à et au-dessus de la température critique
Spins sous, à et au-dessus de TcT_c.
Aimantation, susceptibilité et capacité calorifique en fonction de la température
Aimantation, susceptibilité et capacité calorifique à travers la transition.

Dynamique moléculaire de l'argon liquide en C++

Projet de master (M1), modélisation numérique en C++

NN atomes d'argon dans une boîte périodique interagissant par un potentiel de Lennard-Jones, avec quatre intégrateurs à comparer (Euler, Verlet, saute-mouton, Runge–Kutta 4), un thermostat et un recuit simulé. Verlet conserve l'énergie totale à 4×10−4%4\times10^{-4}\,\% près sur 10ps10\,\mathrm{ps}, les vitesses suivent la loi de Maxwell–Boltzmann, et g(r)g(r) montre la première couche de voisins d'un liquide à 3,7Å3{,}7\,\mathrm{Å}.

Histogramme des vitesses des atomes avec la loi de Maxwell-Boltzmann
Vitesses comparées à la distribution de Maxwell–Boltzmann.
Fonction de distribution radiale de l'argon liquide
Fonction de distribution radiale g(r)g(r).

Le système solaire comme problème à N corps

Projet personnel, Python

Le Soleil et les huit planètes intégrés par Verlet vitesse sur une orbite de Neptune, en unités astronomiques (G=4π2G = 4\pi^2). Les périodes suivent la troisième loi de Kepler à 0,2%0{,}2\,\% près, l'écart venant de l'attraction mutuelle des planètes, et l'énergie reste stable à 7×10−77\times10^{-7} près sur 170 ans, là où Euler explicite perd 2%2\,\% en 10 ans.

Orbites des planètes intérieures et extérieures
Planètes intérieures (à gauche) et système complet (à droite).
Erreur relative sur l'énergie sur dix ans, Euler contre Verlet vitesse
Erreur sur l'énergie à pas égal : Euler dérive, Verlet vitesse reste borné.

Le pendule non linéaire

Exercice Python de L2

Le pendule sans l'approximation des petits angles, intégré avec une tolérance relative de 10−1110^{-11} : la période retrouve la formule par intégrale elliptique à six chiffres et diverge quand l'amplitude atteint 180°. Le portrait de phase sépare les oscillations des rotations complètes, et une trajectoire amortie traverse la séparatrice.

Portrait de phase du pendule avec la séparatrice et une trajectoire amortie
Portrait de phase : séparatrice en rouge, trajectoire amortie en bleu.
Période en fonction de l'amplitude, simulation comparée aux formules exacte et de Borda
Période en fonction de l'amplitude.

Le champ magnétique d'un solénoïde

Exercice Python de L2

Le champ d'un solénoïde fini dans tout l'espace, comme somme de 40 spires dont le champ de Biot–Savart s'écrit avec des intégrales elliptiques. Sur l'axe, il retrouve la formule de la nappe de courant à 0,2%0{,}2\,\% près ; au centre, il est 7%7\,\% sous la valeur du solénoïde infini, car une bobine longue de six rayons perd du champ à ses extrémités.

Lignes de champ d'un solénoïde fini et champ sur son axe
Lignes de champ et champ sur l'axe.

Atténuation des rayons gamma

TP de licence (L3), physique nucléaire

Les gammas du 137Cs^{137}\mathrm{Cs} et du 22Na^{22}\mathrm{Na} à travers des plaques d'aluminium et de cuivre, mesurés avec un scintillateur NaI. Les ajustements de Beer–Lambert du photopic donnent des coefficients d'atténuation à 6%6\,\% des valeurs NIST XCOM, qui décroissent avec l'énergie à mesure que la diffusion Compton prend le relais de l'effet photoélectrique.

ln(I/I0) en fonction de l'épaisseur d'absorbant, avec les ajustements linéaires
ln⁡(II0)\ln\left(\frac{I}{I_0}\right) en fonction de l'épaisseur, avec les ajustements.

Apprentissage automatique pour échantillonner le pMSSM

Issu de mon stage de M1, Python et numpy

La plupart des points aléatoires du pMSSM à 19 paramètres ne donnent aucun spectre physique : seuls 32%32\,\% passent SOFTSUSY. Un réseau de neurones écrit en numpy pur (rétropropagation à la main, Adam) apprend lesquels survivent, avec une aire sous la courbe ROC de 0,90 : garder la moitié la mieux notée double la fraction de points valides et perd moins d'un point valide sur dix. Parmi les points valides, 11%11\,\% ont un boson de Higgs le plus léger à moins de 3GeV3\,\mathrm{GeV} des 125,1GeV125{,}1\,\mathrm{GeV} mesurés.

Fraction de points valides parmi les points choisis par le score du réseau
Fraction de points valides parmi ceux que choisit le réseau.
Histogramme de la masse du Higgs le plus léger des points valides, avec les 125,1 GeV mesurés
Masse du Higgs le plus léger des points valides, comparée aux 125,1GeV125{,}1\,\mathrm{GeV} mesurés.

Retrouver GW150914 par filtrage adapté

Projet personnel, Python, données ouvertes de LIGO

La première fusion de deux trous noirs retrouvée dans le signal public de LIGO avec numpy seul : spectre du bruit estimé sur les données, blanchiment, et filtrage adapté sur une banque de chirps de spiralement. Le rapport signal sur bruit du réseau culmine à 9,9, Livingston voit l'événement 6,3ms6{,}3\,\mathrm{ms} avant Hanford, et la meilleure masse de chirp, 32 M⊙M_\odot, est proche des 31 M⊙M_\odot du catalogue dans le référentiel du détecteur.

Signal blanchi de Hanford et Livingston et carte temps-fréquence du chirp
Signal blanchi et chirp en temps et en fréquence.
Rapport signal sur bruit autour de l'événement et sur la banque de modèles
Rapport signal sur bruit autour de l'événement et sur la banque de modèles.

Oscillations des neutrinos

Issu de mon stage de L3, Python

Les oscillations à trois saveurs à partir de la matrice PMNS, vérifiées par l'unitarité et par la formule exacte de survie des réacteurs à 10−1210^{-12} près, jusqu'au spectre que mesure une expérience auprès de réacteurs comme JUNO à 52,5km52{,}5\,\mathrm{km} : les oscillations rapides se décalent entre les hiérarchies de masse normale et inversée.

Spectre des antineutrinos de réacteur à 52,5 km pour les deux hiérarchies
Le spectre de réacteur à 52,5km52{,}5\,\mathrm{km}, pour les deux hiérarchies.
Probabilité de survie des antineutrinos électroniques en fonction de la distance
Survie en fonction de la distance à 4MeV4\,\mathrm{MeV}.

2048 en paquet Python

Projet personnel

Le jeu 2048 en paquet Python installable : une classe D2048 pour un plateau de taille quelconque, la prédiction des coups et la détection de fin de partie, des tests avec pytest, une commande jeu2048 et un site de documentation.

GitHub · Documentation

Projets personnels

Ce site

Écrit en HTML et CSS et assemblé par un petit script Python : les équations sont écrites en LaTeX et rendues dans la police mathématique de la thèse, et les figures et schémas viennent des sources de la thèse. Le site existe en anglais et en français.

Analyse de l'entraînement en triathlon

Cinq saisons d'entraînement reconstruites à partir des enregistrements, la méthode qui les organise et le plan vers un Ironman : des PDF et un site statique produits hors ligne, à partir de fichiers texte modifiables à la main, avec un seul make. Un petit tableau de bord sur téléphone le lit.

Serveur personnel auto-hébergé en cours

Photos, fichiers et tableau de bord d'entraînement servis depuis chez moi avec Docker, accessibles uniquement par VPN, avec authentification unique, double authentification et sauvegardes chiffrées.

Poste de travail reproductible

Un script reconstruit mon ordinateur sous Ubuntu à partir de zéro : paquets, fichiers de configuration, éditeur et terminal, sauvegardes, ainsi que la palette de couleurs et les polices utilisées dans tous mes documents.

Advent of Code

Des énigmes de programmation chaque mois de décembre, en Python.

Médiation

Depuis 2024, je suis guide du CERN et présente le LHC et ses expériences aux visiteurs. J'ai aussi participé à la Journée de la Science au LAPP et donné les cours d'une introduction à Python à l'Université Savoie Mont Blanc.