/*************************************************************************************************************************************/ /* */ /* 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... */