/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E S   D I F F E R E N T E S   I N I T I A L I S A T I O N S  :                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/nucleon.LW.2$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1991??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N I T I A L I S A T I O N   D E   L ' U N I V E R S   ( D E B U T ,                                                      */
/*        A V A N T   L ' E N T R E E   D E S   P A R A M E T R E S )  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS_GEOMETRIQUE                                                                            \
                    Bblock                                                                                                              \
                    INITIALISATION_DE_L_ESPACE_DE_PARAMETRAGE;                                                                          \
                                        /* Initialisation du point courant de l'espace abstrait servant a parametrer le generateur   */ \
                                        /* d'evenements. Ceci est fait aussi dans '$xrq/nucleon.LB$I'...                             */ \
                    EGAL(adolescence_d_une_particule,ADOLESCENCE_D_UNE_PARTICULE);                                                      \
                                        /* Duree de l'adolescence d'une particule qui correspond a une periode au cours de laquelle  */ \
                                        /* elle ne peut rentrer en collision. La valeur implicite est choisie de facon telle qu'elle */ \
                                        /* corresponde a une duree superieure a celle necessaire a s'echapper du voisinage d'une     */ \
                                        /* particule ; ceci permet d'eviter que des particules emises soient immediatement           */ \
                                        /* reabsorbee. L'initialisation a lieu dans 'DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS' a       */ \
                                        /* cause du compilateur de 'SYSTEME_SG4D..._IRIX_CC' qui refuse d'initialiser cette          */ \
                                        /* variable avec l'expression 'ADOLESCENCE_D_UNE_PARTICULE' qui contient un 'MIN2(...)'...   */ \
                    EGAL(distance_caracteristique_g1,DISTANCE_CARACTERISTIQUE_g1);                                                      \
                                        /* 'distance_caracteristique_g1' ne peut etre initialise a la compilation puisqu'en effet,   */ \
                                        /* 'DISTANCE_CARACTERISTIQUE_g1' contient des lignes trigonometriques...                     */ \
                    EGAL(distance_caracteristique_g2,DISTANCE_CARACTERISTIQUE_g2);                                                      \
                                        /* 'distance_caracteristique_g2' ne peut etre initialise a la compilation puisqu'en effet,   */ \
                                        /* 'DISTANCE_CARACTERISTIQUE_g2' contient des lignes trigonometriques...                     */ \
                    INITIALISATION_POINT_3D(Lsource                                                                                     \
                                           ,X_DE_LA_SOURCE_LUMINEUSE                                                                    \
                                           ,Y_DE_LA_SOURCE_LUMINEUSE                                                                    \
                                           ,Z_DE_LA_SOURCE_LUMINEUSE                                                                    \
                                            );                                                                                          \
                                        /* Initialisation de la position de la source lumineuse...                                   */ \
                    Eblock                                                                                                              \
                                        /* Initialisation geometrique de l'univers de la simulation...                               */

#ifdef    __VERSION__GENERATION_D_UN_NUCLEON
#    define    ___DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                \
                         Bblock                                                                                                         \
                         EGAL(X_quark_REEL_ROUGE,X_quark_REEL_ROUGE_INITIAL);                                                           \
                         EGAL(Y_quark_REEL_ROUGE,Y_quark_REEL_ROUGE_INITIAL);                                                           \
                         EGAL(Z_quark_REEL_ROUGE,Z_quark_REEL_ROUGE_INITIAL);                                                           \
                                        /* Initialisation de la position du quark REEL ROUGE. ATTENTION : cette initialisation est   */ \
                                        /* absolue, et pourra ensuite etre "modulee" par 'fichier_?_quark_REEL_ROUGE'...             */ \
                         EGAL(X_quark_REEL_VERTE,X_quark_REEL_VERTE_INITIAL);                                                           \
                         EGAL(Y_quark_REEL_VERTE,Y_quark_REEL_VERTE_INITIAL);                                                           \
                         EGAL(Z_quark_REEL_VERTE,Z_quark_REEL_VERTE_INITIAL);                                                           \
                                        /* Initialisation de la position du quark REEL VERTE. ATTENTION : cette initialisation est   */ \
                                        /* absolue, et pourra ensuite etre "modulee" par 'fichier_?_quark_REEL_VERTE'...             */ \
                         EGAL(X_quark_REEL_BLEUE,X_quark_REEL_BLEUE_INITIAL);                                                           \
                         EGAL(Y_quark_REEL_BLEUE,Y_quark_REEL_BLEUE_INITIAL);                                                           \
                         EGAL(Z_quark_REEL_BLEUE,Z_quark_REEL_BLEUE_INITIAL);                                                           \
                                        /* Initialisation de la position du quark REEL ROUGE. ATTENTION : cette initialisation est   */ \
                                        /* absolue, et pourra ensuite etre "modulee" par 'fichier_?_quark_REEL_BLEUE'...             */ \
                                                                                                                                        \
                         DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS_GEOMETRIQUE;                                                            \
                                        /* Initialisation geometrique de l'univers de la simulation...                               */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation...                                           */
#Aifdef   __VERSION__GENERATION_D_UN_NUCLEON
#Eifdef   __VERSION__GENERATION_D_UN_NUCLEON

#ifdef    __VERSION__GENERATION_D_UN_MESON
#    define    ___DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                \
                         Bblock                                                                                                         \
                         EGAL(X_quark_REEL,X_quark_REEL_INITIAL);                                                                       \
                         EGAL(Y_quark_REEL,Y_quark_REEL_INITIAL);                                                                       \
                         EGAL(Z_quark_REEL,Z_quark_REEL_INITIAL);                                                                       \
                                        /* Initialisation de la position du quark REEL. ATTENTION : cette initialisation est         */ \
                                        /* absolue, et pourra ensuite etre "modulee" par 'fichier_?_quark_REEL'....                  */ \
                         EGAL(X_anti_quark_REEL,X_anti_quark_REEL_INITIAL);                                                             \
                         EGAL(Y_anti_quark_REEL,Y_anti_quark_REEL_INITIAL);                                                             \
                         EGAL(Z_anti_quark_REEL,Z_anti_quark_REEL_INITIAL);                                                             \
                                        /* Initialisation de la position de l'anti-quark REEL. ATTENTION : cette initialisation est  */ \
                                        /* absolue, et pourra ensuite etre "modulee" par 'fichier_?_anti_quark_REEL'....             */ \
                                                                                                                                        \
                         DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS_GEOMETRIQUE;                                                            \
                                        /* Initialisation geometrique de l'univers de la simulation...                               */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation...                                           */
#Aifdef   __VERSION__GENERATION_D_UN_MESON
#Eifdef   __VERSION__GENERATION_D_UN_MESON

#ifdef    __VERSION__GENERATION_DU_VIDE
#    define    ___DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                \
                         Bblock                                                                                                         \
                         DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS_GEOMETRIQUE;                                                            \
                                        /* Initialisation geometrique de l'univers de la simulation...                               */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation...                                           */
#Aifdef   __VERSION__GENERATION_DU_VIDE
#Eifdef   __VERSION__GENERATION_DU_VIDE

#ifdef    __VERSION__GENERATION_D_UN_DI_ELECTRON
#    define    ___DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                \
                         Bblock                                                                                                         \
                         EGAL(X_electron_1_REEL,X_electron_1_REEL_INITIAL);                                                             \
                         EGAL(Y_electron_1_REEL,Y_electron_1_REEL_INITIAL);                                                             \
                         EGAL(Z_electron_1_REEL,Z_electron_1_REEL_INITIAL);                                                             \
                                        /* Initialisation de la position de l'electron 1 REEL (eventuellement inutilise...).         */ \
                         EGAL(X_electron_2_REEL,X_electron_2_REEL_INITIAL);                                                             \
                         EGAL(Y_electron_2_REEL,Y_electron_2_REEL_INITIAL);                                                             \
                         EGAL(Z_electron_2_REEL,Z_electron_2_REEL_INITIAL);                                                             \
                                        /* Initialisation de la position de l'electron 2 REEL.                                       */ \
                         EGAL(X_anti_electron_REEL,X_anti_electron_REEL_INITIAL);                                                       \
                         EGAL(Y_anti_electron_REEL,Y_anti_electron_REEL_INITIAL);                                                       \
                         EGAL(Z_anti_electron_REEL,Z_anti_electron_REEL_INITIAL);                                                       \
                                        /* Initialisation de la position de l'anti-electron REEL (eventuellement inutilise...).      */ \
                         EGAL(X_neutrino_REEL,X_neutrino_REEL_INITIAL);                                                                 \
                         EGAL(Y_neutrino_REEL,Y_neutrino_REEL_INITIAL);                                                                 \
                         EGAL(Z_neutrino_REEL,Z_neutrino_REEL_INITIAL);                                                                 \
                                        /* Initialisation de la position du neutrino REEL (eventuellement inutilise...).             */ \
                                                                                                                                        \
                         DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS_GEOMETRIQUE;                                                            \
                                        /* Initialisation geometrique de l'univers de la simulation...                               */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation...                                           */
#Aifdef   __VERSION__GENERATION_D_UN_DI_ELECTRON
#Eifdef   __VERSION__GENERATION_D_UN_DI_ELECTRON

BFonctionI

DEFV(LoF,GENERE__Fonction__OPT(DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS,U,___DEBUT_DE_L_INITIALISATION_DE_L_UNIVERS))

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N I T I A L I S A T I O N   D E   L ' U N I V E R S   ( F I N ,                                                          */
/*        A P R E S   L ' E N T R E E   D E S   P A R A M E T R E S )  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FIN_DE_L_INITIALISATION_DE_L_UNIVERS_PARTICULES                                                                               \
                    Bblock                                                                                                              \
                    DEFINITION_DE_L_ESPACE_PHYSIQUE;                                                                                    \
                                        /* Initialisation de la definition de l'espace physique.                                     */ \
                    INITIALISATION_ACCROISSEMENT_3D(champ_electrique,champ_electrique_X,champ_electrique_Y,champ_electrique_Z);         \
                    INITIALISATION_ACCROISSEMENT_3D(champ_magnetique,champ_magnetique_X,champ_magnetique_Y,champ_magnetique_Z);         \
                                        /* Initialisation de l'eventuel champ electro-magnetique.                                    */ \
                    INITIALISATION_D_UNE_PARTICULE_INEXISTANTE(PARTICULE_NON_DEFINIE);                                                  \
                                        /* Et ce afin de verifier que des particules non definies ne sont pas utilisees...           */ \
                    INITIALISATION_DE_L_ENSEMBLE_DES_PARTICULES;                                                                        \
                                        /* Initialisation de la liste des particules contenues dans le proton.                       */ \
                    Eblock                                                                                                              \
                                        /* Initialisation de l'univers de la simulation, en ce qui concerne les particules...        */
#define   FIN_DE_L_INITIALISATION_DE_L_UNIVERS_NUAGES                                                                                   \
                    Bblock                                                                                                              \
                    INJECTION_DE_NUAGES_DE_PARTICULES_VIRTUELLES;                                                                       \
                                        /* Enfin, une eventuelle initialisation du modele a l'aide de nuages de particules           */ \
                                        /* virtuelles autour des quarks REELs est effectuee...                                       */ \
                    Eblock                                                                                                              \
                                        /* Initialisation de l'univers de la simulation, en ce qui concerne les nuages de particules */ \
                                        /* virtuelles...                                                                             */

#ifdef    __VERSION__GENERATION_D_UN_NUCLEON
#    define    FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                     \
                         Bblock                                                                                                         \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_PARTICULES;                                                               \
                                        /* Initialisations relatives aux particules...                                               */ \
                                                                                                                                        \
                         DEFINITION_DU_QUARK_REEL_ROUGE;                                                                                \
                         DEFINITION_DU_QUARK_REEL_VERTE;                                                                                \
                         DEFINITION_DU_QUARK_REEL_BLEUE;                                                                                \
                                        /* Definition des trois quarks REELs constitutifs du proton, mais sans leurs charges         */ \
                                        /* de couleurs (voir ci-dessous) ; d'autre part les positions qui leurs sont assignees,      */ \
                                        /* sont celles dites "du triangle equilateral", et ce n'est que ci-dessous qu'elles seront   */ \
                                        /* fixees exactement...                                                                      */ \
                         POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_ROUGE(numero_de_la_periode_courante);                                      \
                         POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_VERTE(numero_de_la_periode_courante);                                      \
                         POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_BLEUE(numero_de_la_periode_courante);                                      \
                                        /* Maintenant que les eventuels fichiers d'interpolation des coordonnees des quarks REELs    */ \
                                        /* sont connus, on peut positionner initialement les quarks REELs, ce qui va permettre de    */ \
                                        /* definir precisemment l'etat initial du champ global d'interaction...                      */ \
                         COULEUR_DU_QUARK_REEL_ROUGE;                                                                                   \
                         COULEUR_DU_QUARK_REEL_VERTE;                                                                                   \
                         COULEUR_DU_QUARK_REEL_BLEUE;                                                                                   \
                                        /* Mise en place de la couleur (qr,qv,qb) d'un quark REEL. En effet, lors de la mise en      */ \
                                        /* place des quarks REELs par 'DEFINITION_DU_QUARK_REEL_ROUGE/VERTE/BLEUE', on ne peut       */ \
                                        /* simultanement definir leur charge de couleurs, car cette derniere reference les extrema   */ \
                                        /* du champ, qui sont eux-memes calcules a partir de la position des quarks REELs. Ainsi,    */ \
                                        /* en definissant 'DEFINITION_DU_QUARK_REEL_ROUGE' (le premier defini), il serait necessaire */ \
                                        /* de connaitre les quarks REELs VERTE et BLEUE, alors que leur position n'est pas encore    */ \
                                        /* definie. Donc, on attendra d'avoir defini la position des 3 quarks REELs avant de fixer   */ \
                                        /* leur charge de couleur par 'COULEUR_DU_QUARK_REEL_ROUGE/VERTE/BLEUE'...                   */ \
                                                                                                                                        \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_NUAGES;                                                                   \
                                        /* Enfin, une eventuelle initialisation du modele a l'aide de nuages de particules           */ \
                                        /* virtuelles autour des quarks REELs est effectuee...                                       */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation. ATTENTION : autrefois cette procedure etait */ \
                                        /* du type :                                                                                 */ \
                                        /*                                                                                           */ \
                                        /*   #define   ___FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                    \  */ \
                                        /*   (...)                                                                                   */ \
                                        /*   GENERE__Fonction__OPT                                                                   */ \
                                        /*       (FIN_DE_L_INITIALISATION_DE_L_UNIVERS,U,___FIN_DE_L_INITIALISATION_...);            */ \
                                        /*                                                                                           */ \
                                        /* mais depuis qu'on utilise 'POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_...(...)' qui ne sont pas  */ \
                                        /* encore definies, cela n'est plus possible...                                              */
#Aifdef   __VERSION__GENERATION_D_UN_NUCLEON
#Eifdef   __VERSION__GENERATION_D_UN_NUCLEON

#ifdef    __VERSION__GENERATION_D_UN_MESON
#    define    FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                     \
                         Bblock                                                                                                         \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_PARTICULES;                                                               \
                                        /* Initialisations relatives aux particules...                                               */ \
                                                                                                                                        \
                         DEFINITION_DU_QUARK_REEL;                                                                                      \
                         DEFINITION_DE_L_ANTI_QUARK_REEL;                                                                               \
                                        /* Definition des trois quarks REELs constitutifs du proton, mais sans leurs charges         */ \
                                        /* de couleurs (voir ci-dessous) ; d'autre part les positions qui leurs sont assignees,      */ \
                                        /* sont celles dites "du triangle equilateral", et ce n'est que ci-dessous qu'elles seront   */ \
                                        /* fixees exactement...                                                                      */ \
                         POSITIONNEMENT_ABSOLU_DU_QUARK_REEL(numero_de_la_periode_courante);                                            \
                         POSITIONNEMENT_ABSOLU_DE_L_ANTI_QUARK_REEL(numero_de_la_periode_courante);                                     \
                                        /* Maintenant que les eventuels fichiers d'interpolation des coordonnees des quarks REELs    */ \
                                        /* sont connus, on peut positionner initialement les quarks REELs, ce qui va permettre de    */ \
                                        /* definir precisemment l'etat initial du champ global d'interaction...                      */ \
                         COULEUR_DU_QUARK_REEL;                                                                                         \
                         COULEUR_DE_L_ANTI_QUARK_REEL;                                                                                  \
                                        /* Mise en place de la couleur (qr,qv,qb) des particules REELles. En effet, lors de la mise  */ \
                                        /* en place des particules REELles par 'DEFINITION_DU_QUARK_REEL' et par                     */ \
                                        /* 'DEFINITION_DE_L_ANTI_QUARK_REEL', on ne peut simultanement definir leur charge de        */ \
                                        /* couleurs, car cette derniere reference les extrema du champ, qui sont eux-memes calcules  */ \
                                        /* a partir de la position des quarks REELs. Ainsi en definissant 'DEFINITION_DU_QUARK_REEL' */ \
                                        /* il serait necessaire de connaitre deja les particules REELles, alors que leur position    */ \
                                        /* n'est pas encore definie. Donc, on attendra d'avoir defini la position des particules     */ \
                                        /* REELles avant de fixer leur charge de couleur par 'COULEUR_DU_QUARK_REEL' et par          */ \
                                        /* 'COULEUR_DE_L_ANTI_QUARK_REEL'...                                                         */ \
                                                                                                                                        \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_NUAGES;                                                                   \
                                        /* Enfin, une eventuelle initialisation du modele a l'aide de nuages de particules           */ \
                                        /* virtuelles autour des quarks REELs est effectuee...                                       */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation. ATTENTION : autrefois cette procedure etait */ \
                                        /* du type :                                                                                 */ \
                                        /*                                                                                           */ \
                                        /*   #define   ___FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                    \  */ \
                                        /*   (...)                                                                                   */ \
                                        /*   GENERE__Fonction__OPT                                                                   */ \
                                        /*       (FIN_DE_L_INITIALISATION_DE_L_UNIVERS,U,___FIN_DE_L_INITIALISATION_...);            */ \
                                        /*                                                                                           */ \
                                        /* mais depuis qu'on utilise 'POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_...(...)' qui ne sont pas  */ \
                                        /* encore definies, cela n'est plus possible...                                              */
#Aifdef   __VERSION__GENERATION_D_UN_MESON
#Eifdef   __VERSION__GENERATION_D_UN_MESON

#ifdef    __VERSION__GENERATION_DU_VIDE
#    define    FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                     \
                         Bblock                                                                                                         \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_PARTICULES;                                                               \
                                        /* Initialisations relatives aux particules...                                               */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation. ATTENTION : autrefois cette procedure etait */ \
                                        /* du type :                                                                                 */ \
                                        /*                                                                                           */ \
                                        /*   #define   ___FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                    \  */ \
                                        /*   (...)                                                                                   */ \
                                        /*   GENERE__Fonction__OPT                                                                   */ \
                                        /*       (FIN_DE_L_INITIALISATION_DE_L_UNIVERS,U,___FIN_DE_L_INITIALISATION_...);            */ \
                                        /*                                                                                           */ \
                                        /* mais depuis qu'on utilise 'POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_...(...)' qui ne sont pas  */ \
                                        /* encore definies, cela n'est plus possible...                                              */
#Aifdef   __VERSION__GENERATION_DU_VIDE
#Eifdef   __VERSION__GENERATION_DU_VIDE

#ifdef    __VERSION__GENERATION_D_UN_DI_ELECTRON
#    define    FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                                                                     \
                         Bblock                                                                                                         \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_PARTICULES;                                                               \
                                        /* Initialisations relatives aux particules...                                               */ \
                                                                                                                                        \
                         Test(IL_FAUT(initialiser_avec_l_electron_1_REEL))                                                              \
                              Bblock                                                                                                    \
                              DEFINITION_DE_L_ELECTRON_1_REEL;                                                                          \
                              COULEUR_DE_L_ELECTRON_1_REEL;                                                                             \
                                        /* Definition de l'electron 1 REEL constitutif du "di-electron"...                           */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                         Test(IL_FAUT(initialiser_avec_l_electron_2_REEL))                                                              \
                              Bblock                                                                                                    \
                              DEFINITION_DE_L_ELECTRON_2_REEL;                                                                          \
                              COULEUR_DE_L_ELECTRON_2_REEL;                                                                             \
                                        /* Definition de l'electron 2 REEL constitutif du "di-electron"...                           */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IL_FAUT(initialiser_avec_l_anti_electron_REEL))                                                           \
                              Bblock                                                                                                    \
                              DEFINITION_DE_L_ANTI_ELECTRON_REEL;                                                                       \
                              COULEUR_DE_L_ANTI_ELECTRON_REEL;                                                                          \
                                        /* Definition de l'anti-electron REEL constitutif du "di-electron"...                        */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                         Test(IL_FAUT(initialiser_avec_le_neutrino_REEL))                                                               \
                              Bblock                                                                                                    \
                              DEFINITION_DU_NEUTRINO_REEL;                                                                              \
                              COULEUR_DU_NEUTRINO_REEL;                                                                                 \
                                        /* Definition du neutrino REEL constitutif  du "di-electron"...                              */ \
                              Eblock                                                                                                    \
                         ATes                                                                                                           \
                              Bblock                                                                                                    \
                              Eblock                                                                                                    \
                         ETes                                                                                                           \
                                                                                                                                        \
                                        /* ATTENTION, il n'y a pas dans ce cas de listes :                                           */ \
                                        /*                                                                                           */ \
                                        /*                  liste_X_electron_1_REEL                                                  */ \
                                        /*                  liste_Y_electron_1_REEL                                                  */ \
                                        /*                  liste_Z_electron_1_REEL                                                  */ \
                                        /*                  liste_X_electron_2_REEL                                                  */ \
                                        /*                  liste_Y_electron_2_REEL                                                  */ \
                                        /*                  liste_Z_electron_2_REEL                                                  */ \
                                        /*                                                                                           */ \
                                        /* puisque les electrons REELs sont mobiles...                                               */ \
                                                                                                                                        \
                                                                                                                                        \
                         FIN_DE_L_INITIALISATION_DE_L_UNIVERS_NUAGES;                                                                   \
                                        /* Enfin, une eventuelle initialisation du modele a l'aide de nuages de particules           */ \
                                        /* virtuelles autour des electrons REELs est effectuee...                                    */ \
                         Eblock                                                                                                         \
                                        /* Initialisation de l'univers de la simulation. ATTENTION : autrefois cette procedure etait */ \
                                        /* du type :                                                                                 */ \
                                        /*                                                                                           */ \
                                        /*   #define   ___FIN_DE_L_INITIALISATION_DE_L_UNIVERS                                    \  */ \
                                        /*   (...)                                                                                   */ \
                                        /*   GENERE__Fonction__OPT                                                                   */ \
                                        /*       (FIN_DE_L_INITIALISATION_DE_L_UNIVERS,U,___FIN_DE_L_INITIALISATION_...);            */ \
                                        /*                                                                                           */ \
                                        /* mais depuis qu'on utilise 'POSITIONNEMENT_ABSOLU_DU_QUARK_REEL_...(...)' qui ne sont pas  */ \
                                        /* encore definies, cela n'est plus possible...                                              */
#Aifdef   __VERSION__GENERATION_D_UN_DI_ELECTRON
#Eifdef   __VERSION__GENERATION_D_UN_DI_ELECTRON

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C H O I X   E N T R E   L E   M O D E   R A P I D E   E T   L E   M O D E   N O R M A L  :                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FORCER_LE_MODE_RAPIDE_DE_LA_SYNTHESE_D_IMAGE                                                                                  \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(forcer_le_mode_rapide_de_la_synthese_d_image,FORCER_LE_MODE_RAPIDE_DE_LA_SYNTHESE_D_IMAGE)));
                                        /* Indicateur disant si la synthese d'image aura lieu suivant un mode degrade ('VRAI' : les  */
                                        /* trainees ainsi que les convolutions ne sont pas calculees) ou bien suivant le mode normal */
                                        /* ('FAUX' : ou les trainees ainsi que les convolutions sont conditionnelles).               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N I T I A L I S A T I O N   D E   L A   S Y N T H E S E   D ' I M A G E  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    PROJECTION_3D_2D_VERSION_02
#Aifdef   PROJECTION_3D_2D_VERSION_02
#    message   "ATTENTION : aux macros inexistantes..."
#Eifdef   PROJECTION_3D_2D_VERSION_02

#define   DEBUT_D_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE                                                                                 \
                    Bblock                                                                                                              \
                    SET_DIMENSIONS_2D(Xmin_IMAGE,Xmax_IMAGE,Ymin_IMAGE,Ymax_IMAGE);                                                     \
                                        /* Dimensionnement des images a generer...                                                   */ \
                    Eblock                                                                                                              \
                                        /* Debut d'initialisation de la synthese d'image...                                          */
#define   FIN_D_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE                                                                                   \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(forcer_le_mode_rapide_de_la_synthese_d_image))                                                         \
                                        /* ATTENTION : de facon a acceler au mieux le processus, il est evident que ce test doit     */ \
                                        /* etre tout au debut de 'FIN_D_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE'...                    */ \
                         Bblock                                                                                                         \
                         EGAL(memoriser_le_champ_global,FAUX);                                                                          \
                                        /* Dans le cas ou le mode rapide est force, le champ global ne peut etre memorise,           */ \
                         EGAL(generer_les_trainees,FAUX);                                                                               \
                                        /* Dans le cas ou le mode rapide est force, on inhibe le calcul des trainees,                */ \
                         EGAL(nombre_de_points_du_noyau_de_convolution,ABSENCE_DE_CONVOLUTION);                                         \
                                        /* Dans le cas ou le mode rapide est force, on inhibe les convolutions,                      */ \
                         EGAL(niveau_de_NOIR_remonte,NOIR);                                                                             \
                                        /* Dans le cas ou le mode rapide est force, le niveau de 'NOIR' restera inchange.            */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(IL_FAUT(synchroniser_la_generation_des_images))                                                                \
                         Bblock                                                                                                         \
                         INITIALISATION_D_UN_FEU(FEU_feu_DE_SYNCHRONISATION_DE_LA_SIMULATION_DES_HADRONS);                              \
                                        /* Initialisation du feu...                                                                  */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    RE_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE;                                                                           \
                                        /* Re-initialisation de la synthese d'image...                                               */ \
                    INITIALISATION_DU_NOYAU_DE_CONVOLUTION;                                                                             \
                                        /* Initialisation eventuelle du noyau de convolution...                                      */ \
                    MISE_A_JOUR_D_UN_CUMUL_POUR_LE_CALCUL_DES_TRAINEES(TRAINEES_ROUGE,Image_ROUGE);                                     \
                    MISE_A_JOUR_D_UN_CUMUL_POUR_LE_CALCUL_DES_TRAINEES(TRAINEES_VERTE,Image_VERTE);                                     \
                    MISE_A_JOUR_D_UN_CUMUL_POUR_LE_CALCUL_DES_TRAINEES(TRAINEES_BLEUE,Image_BLEUE);                                     \
                                        /* Initialisation eventuelle du calcul des trainees...                                       */ \
                    Eblock                                                                                                              \
                                        /* Fin d'initialisation de la synthese d'image...                                            */
#define   RE_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE                                                                                      \
                    Bblock                                                                                                              \
                    CALi(Inoir(Image_ROUGE));                                                                                           \
                    CALi(Inoir(Image_VERTE));                                                                                           \
                    CALi(Inoir(Image_BLEUE));                                                                                           \
                                        /* Initialisation des images Resultat avant le changement eventuel de (pasX,pasY) ; on       */ \
                                        /* notera qu'elles contiennent les differentes images de l'animation...                      */ \
                                        /*                                                                                           */ \
                                        /* ATTENTION : a cause de la notion de trainees (qui s'obtiennent car cumul iteratif des     */ \
                                        /* differentes images resultant de la simulation), on ne peut pas initialiser le fond des    */ \
                                        /* images avec autre chose que du 'NOIR', car sinon le fond des images augmenteraient au     */ \
                                        /* cours du temps...                                                                         */ \
                    SET_NOIR_PLANCHER(NOIR_PLANCHER);                                                                                   \
                                        /* Pour la prise en compte des problemes des quarks qui disparaissent visuellement a cause   */ \
                                        /* de 'MULTIPLEXAGE_RVB_223(...)' qui peut facilement generer du NOIR si les trois           */ \
                                        /* composantes chromatiques sont faibles dans [0,1]...                                       */ \
                    INITIALISATION_TRANSFORMATION;                                                                                      \
                                        /* Initialisation de la transformation tri-dimensionnelle courante.                          */ \
                                                                                                                                        \
                                        /* ATTENTION : on faisait autrefois :                                                        */ \
                                        /*                                                                                           */ \
                                        /*                  CALS(Iinit_Z_Buffer());                                                  */ \
                                        /*                                                                                           */ \
                                        /* mais maintenant, c'est 'VISUALISATION_D_UNE_LISTE_DE_POINTS' qui le prend en charge...    */ \
                                                                                                                                        \
                    SET_FACTEUR_D_ELOIGNEMENT_EN_Z_DE_L_OBSERVATEUR(FACTEUR_D_ELOIGNEMENT_EN_Z_DE_L_OBSERVATEUR);                       \
                                        /* Facteur d'eloignement en 'Z' de l'observateur destine a une projection "standard"...      */ \
                    SET_DECALAGE_ANGULAIRE_DE_L_OBSERVATEUR(decalage_angulaire_pour_la_stereoscopie);                                   \
                                        /* Initialisation du facteur de rotation de l'observateur permettant ainsi de creer          */ \
                                        /* des paires stereoscopiques...                                                             */ \
                    INITIALISATION_DE_LA_LISTE_DES_POINTS;                                                                              \
                                        /* (re-)initialisation de l'index de rangement dans la liste de tri des spheres...           */ \
                    Eblock                                                                                                              \
                                        /* Re-initialisation de la synthese d'image...                                               */



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.