• Aucun résultat trouvé

Comme indiqué au début de ce paragraphe, le code FPA a été écrit afin de rendre l'analyse SPC très rapide à réaliser et possible à faire en quasi-direct durant une expérience sur grande installation. Tester la vitesse du programme est donc indispensable.

Pour compenser ce nouveau test, il est possible de comparer différentes implémentations du code. Le Tableau 2.2 ci-après donne les résultats de cette analyse. Les images simulées et traitées contiennent 0,1 % de photons uniques et un bruit blanc gaussien d'une valeur centrale de 10 ADU et un écart-type de 3.

photons uniques. Cette méthode lourde demande 180 secondes pour traiter 100 images, ce qui correspond à un taux de 0,56 Hz.

La première optimisation consiste à remplacer les boucles for par la détermination immédiate des pixels à étudier plus en détail. Plusieurs options de l'extension Numpy permettent de réaliser ces opérations dans Python. Grâce à cette technique, un taux de 9,1 Hz est atteignable.

Tableau 2.2 : Différentes implémentations de l'algorithme de SPC. Une implémentation Cython permet d'être 20 fois plus rapide qu'une implémentation naïve.

Enfin, la conversion du même algorithme à une implémentation en Cython, hybride de Python et de C/C++, permet de gagner environ 20 % de temps supplémentaire et offre un taux de 11,1 Hz. Il s'agit de la version actuelle de FPA.

Ce dernier taux est particulièrement rapide et permet de traiter efficacement des données obtenues lors d'expériences d'interaction laser-matière où les taux de répétition ne dépassent que rarement ces valeurs.

Afin de compléter cet essai, FPA a été confronté à différents cas de figure. Des images contenant plusieurs pourcentages de photons uniques ont été testées. Le Tableau 2.3 présente ces résultats. De plus, le score F1 est indiqué pour chacun des cas de figure à titre informatif.

Tableau 2.3 : Efficacité et temps de calcul de FPA en fonction du nombre de photons uniques présents sur le détecteur.

De manière spontanée, il serait logique de penser que plus le nombre de photons est important sur le détecteur, plus le temps de calcul l'est aussi. Ce raisonnement est pourtant inexact. Il est possible de voir sur le Tableau 2.3 que le temps optimal de calcul est obtenu pour 0,1 % de photons uniques sur le détecteur. Ce comportement est pourtant explicable simplement.

Lorsque le nombre de photons est très faible sur le détecteur, FPA rencontre des difficultés pour estimer correctement les pixels potentiels candidats pour être des photons uniques. En effet, le programme cherche ces pixels en se basant notamment sur l'écart-type du bruit par rapport au signal. Cependant, lorsque cet écart-type est calculé, le vrai signal est inclus dedans. Cela n'est pas un problème car la très grande majorité des pixels sont du bruit, plus de 99 % de manière générale. Ainsi, lorsque le nombre de photons est extrêmement faible, l'écart-type n'est quasiment pas influencé par le signal. Mais une augmentation du nombre de photons uniques entraîne intrinsèquement la hausse de l'écart-type. Cela a pour conséquence de diminuer le nombre de photons potentiels. La Figure 2.8 trace les courbes reliant le nombre de pixels potentiels au temps de calcul.

Cependant, au-delà de 1 % de photons uniques présents sur le détecteur, le code commence à ralentir de nouveau et perd toutes ses qualités, comme en témoigne le score F1. Cela est tout à fait normal. Plus le nombre de photons est important, plus il y a de chances qu'ils se chevauchent sur le même pixel ou qu'ils se retrouvent côte à côte. Dans ce cas, ce ne sont plus des photons uniques et le code les élimine.

De même que pour le bruit présent sur le détecteur, un algorithme SPC n'est pas prévu pour être utilisé dans des expériences avec des signaux trop importants. Au cours d'une des expériences où ce code a été utilisé, le signal recherché se limitait à une centaine de photons par image

(» 0,005 %).

Figure 2.8 : Corrélation entre l'évolution du temps de calcul et le nombre de pixels potentiels en fonction du nombre de photons uniques présents sur le détecteur.

Malgré cela, le code reste performant en SF jusqu'à 5 % du détecteur couvert par du signal réel et son utilisation peut être envisagée pour rechercher des détails peu visibles.

application possible sur les serveurs de grandes installations en fait un outil de prédilection pour la détection de faibles signaux au cours d'une expérience.

Bien que FPA augmente significativement les seuils de détection, la vitesse d'analyse et la précision des données obtenues, des moyens spectroscopiques permettant de profiter de ce potentiel sont nécessaires. Son association avec des méthodes basées sur l'utilisation de cristaux sphériques est parfaite pour cela.

3. La géométrie de Johann

Il est impossible d'obtenir une résolution spatiale avec des cristaux plans. Or, dans le cas de l'étude de plasmas, la résolution spatiale est la clé pour une bonne compréhension des phénomènes observés.

Il est également possible de citer les géométries cylindriques comme celle de Von Hamos ou de Cauchois[10]. La première est d'ailleurs utilisée dans l'expérience décrite au Chapitre 5. Cependant, seuls les cristaux sphériques permettent d'obtenir à la fois de très hautes résolutions spatiales et spectrales.

Ainsi, ce travail de thèse fait de l'usage de ces cristaux une règle quasi systématique.

Comme indiqué dans le Chapitre 1, la géométrie de Johann est développée au début des années 1930[11]. Il s'agit d'une des premières techniques de spectroscopie X impliquant l'usage de cristaux sphériques. C'est celle-ci qui est à l'origine de la quasi-totalité des résultats présentés. Il faut noter qu'il existe une autre méthode : la géométrie de Johansson[12], très similaire mais restée non utilisée au cours des expériences décrites dans ce manuscrit.