00001 /*! 00002 00003 $Id$ 00004 00005 Last update to: 00006 Id: Readme-Questions 92 2008-06-10 14:04:35Z maire 00007 00008 00009 \file "jour3a/.Readme-Questions" 00010 \brief L'exercise de jour3a 00011 00012 \mainpage jour3a 00013 00014 \section s1 GEOMETRIE 00015 00016 Une navette spatiale est modelisee par un cylindre d'Aluminium. 00017 A l'interieur de la cabine se trouve un plancher, egalement en Aluminium. 00018 La navette est placée dans l'espace ('World') : une boite aussi petite que 00019 possible. 00020 00021 Un astronaute est placé sur le plancher. 00022 00023 00024 \section s2 COMMENT DEMARRER ? 00025 00026 - lire le code : jour3a.cc (main) et les 5 classes DetectorConstruction, 00027 DetectorMessenger, PhysicsList, PrimaryGeneratorAction, 00028 PrimaryGeneratorMessenger. 00029 00030 - compiler et generer un executable : 00031 \verbatim 00032 % gmake 00033 \endverbatim 00034 00035 - executer jour3a en mode interactif avec visualisation : 00036 \verbatim 00037 % $G4WORKDIR/bin/$G4SYSTEM/jour3a 00038 .... 00039 Idle> /run/beamOn 1 00040 .... 00041 Idle> exit 00042 \endverbatim 00043 00044 00045 \section s3 EXERCICES 00046 00047 Il s'agit de calculer et dŽimprimer la dose recue par l'astronaute pour un 00048 flux donné de protons. 00049 00050 L'énergie totale recue par l'astronaute est la somme des énergies deposees 00051 par toutes les traces qui le traversent. L'information 'granulaire' est 00052 l'énergie déposée a chaque step : edep. Il faut sommer edep sur tous les 00053 steps de la trace, et sur toutes les traces. 00054 00055 L'information 'edep' est accessible depuis la fonction 00056 SteppingAction::UserSteppingAction(const G4Step*) 00057 00058 \subsection sub1 PARTIE 1 00059 00060 a) On a deja ajouté la classe SteppingAction. La lire. 00061 00062 b) Cette classe est instanciée et enregistrée dans le programme principal: 00063 jour3a.cc. Reperer ce morceau de code. 00064 00065 c) Via le constructeur de SteppingAction, on a passé un pointeur sur 00066 DetecteurConstruction. Pourquoi ? 00067 00068 d) /run/beamOn (Pour plus d'efficacite faire /tutotial/gun/rndm off ) 00069 Pour comprendre ce qui est imprimé depuis UserSteppingAction(), 00070 faire tracking/verbose 1 00071 00072 \subsection sub2 PARTIE 2 00073 00074 la sommation sur edep ne peut se faire qu'au niveau d'une trace, 00075 dŽun evenement ou du run. On sommera sur le run complet, en s'inspirant 00076 de : examples/extended/electromagnetic/TestEm1 00077 00078 a) Ajouter une classe RunAction (vide pour l'instant) 00079 00080 b) Prevoir la variable EdepTotal et la fonction AddEdep() 00081 00082 c) Instancier cette classe dans le main programme: jour3a.cc 00083 00084 d) Modifier le constructeur de SteppingAction pour passer un pointeur sur 00085 RunAction 00086 00087 e) Completer la function SteppingAction::UserSteppingAction() pour effectuer 00088 la somme sur edep 00089 00090 f) Imprimer EdepTotal depuis RunAction::EndOfRunAction() 00091 00092 g) Que faut-il encore faire pour calculer la dose recue par l'astronaute ? 00093 Si necessaire, modifier le constructeur de RunAction pour y passer un 00094 pointeur sur DetectorConstruction 00095 00096 \section s4 SOLUTIONS : voir le code jour3b 00097 00098 00099 */