00001 /*! 00002 00003 $Id$ 00004 00005 Last update to: 00006 Id: 00007 00008 \file "jour4a/.Readme-Questions" 00009 \brief L'exercise de jour4a 00010 00011 \mainpage jour4a 00012 00013 00014 Cet exercice est decoupe en trois petits exercices : 00015 00016 - --> jour4a --> jour4b1 : implementation d'un sensitive detector 00017 pour collecter les depots d'energies 00018 dans les tranches, ces depots etant 00019 sommes dans un tableau du RunAction. 00020 - jour4b2 --> jour4b3 : implementation d'un format de hit, 00021 d'une collection de hits et relecture 00022 de ces hits dans EventAction, avec 00023 a nouveau sommation dans un tableau 00024 du RunAction. 00025 - jour4b4 --> jour4b5 : utilisation de "scorers" pour collecter 00026 des hits. 00027 00028 00029 \section s1 GEOMETRIE 00030 00031 Une navette spatiale est modelisee par un cylindre d'Aluminium. 00032 A l'interieur de la cabine se trouve un plancher, egalement en Aluminium. 00033 La navette est placée dans l'espace ('World') : une boite aussi petite que 00034 possible. 00035 00036 Un (mini)astronaute est placé sur le plancher. 00037 00038 00039 \section s2 COMMENT DEMARRER ? 00040 00041 - lire le code : jour4a.cc (main) et les 3 classes 00042 SensitiveDetector, <<-- new 00043 DetectorConstruction, 00044 RunAction. 00045 00046 - compiler et generer un executable : 00047 \verbatim 00048 % gmake 00049 \endverbatim 00050 00051 00052 \section s4 EXERCICES 00053 00054 \subsection sub1 But 00055 00056 On utilise un 'G4VSensitiveDetector' pour calculer le meme profil 00057 longitudinal que dans les exercices precedents. 00058 Dans ces exercices, le code permettant d'extraire les energies deposees 00059 etait place dans le 'SteppingAction'. Nous allons ici 'transplanter' 00060 ce code dans la classe 'SensitiveDetector', qui herite de la classe de 00061 base 'G4VSensitiveDetector'. 00062 00063 Pour faciliter la comparaison entre le profil de dose ecrit depuis 00064 le SteppingAction et le SensitiveDetector, un fichier ascii 00065 'depthDoseSD.ascii', similaire a 'depthDose.ascii' est ecrit 00066 en fin de run. Pour ce faire, le RunAction est dans cet exemple equipe 00067 d'un tableau 'std::vector<G4double> m_depthDoseSD;' similaire au 00068 'std::vector<G4double> m_depthDose;', et qui peut etre ecrit avec la 00069 methode 'SumDepthDoseSD(G4double, G4double)'. 00070 00071 \subsection sub2 Question 1 00072 00073 Examiner la classe SensitiveDetector, et sa methode ProcessHits. Dans 00074 le DetectorConstruction, un objet SensitiveDetector est attache au 00075 volume logique 'logicAstronaut'. Identifier la facon dont cela se fait. 00076 00077 La macro 'vis.mac' positionne /tracking/verbose 1. 00078 Executer jour4a en mode interactif avec visualisation : 00079 \verbatim 00080 % $G4WORKDIR/bin/$G4SYSTEM/jour4a 00081 \endverbatim 00082 00083 La methode ProcessHits imprime a l'ecran le numero de step plus un commentaire 00084 chaque fois qu'elle est appelee. A quels moments apparaissent ces prints ? 00085 Quelle difference par rapport au SteppingAction ? 00086 00087 \subsection sub3 Question 2 00088 00089 Une nouvelle serie de commandes apparait dans le menu 'help'. Laquelle ? 00090 00091 Essayer des commandes comme: 00092 00093 \verbatim 00094 % /hits/list 00095 ->> a quoi correspond le nom affiche ? 00096 00097 % /hits/inactivate astronautSD 00098 % /hits/list 00099 ->> le SensitiveDetector est inactive. 00100 Comment s'assurer que c'est bien le cas ? 00101 00102 % /hits/activate astronautSD 00103 % /hits/list 00104 ->> le SensitiveDetector est re-active. 00105 S'assurer que c'est bien le cas. 00106 \endverbatim 00107 00108 \subsection sub4 Question 3 00109 00110 Dans SensitiveDetector::ProcessHits(...) implementer le calcul de dose 00111 de facon similaire a ce qui a ete fait dans le SteppingAction (le code 00112 du SteppingAction est rappele en commentaire dans ProcessHits). 00113 00114 Utiliser RunAction::SumDepthDoseSD(zLocal,edep) pour ecrire dans le 00115 vecteur prevu a cet effet dans le RunAction. 00116 00117 Processer une statistique raisonnable. Comparer les sorties 'depthDose.ascii' 00118 et 'depthDoseSD.ascii'. Ces sorties sont elles similaires ? Pourquoi ne sont 00119 elles pas strictement identiques ? 00120 00121 \section s5 CORRIGE : voir jour4b1 00122 00123 00124 */