Un astronaute est placé sur le plancher.
% gmake
% $G4WORKDIR/bin/$G4SYSTEM/jour3b .... Idle> /run/beamOn 1 .... Idle> exit
(1 evenement = 1 proton initial qui 'touche' l'astronaute.)
Il faut donc sommer l'energie recue evenement par evenement avant de la sommer sur tout le run.
On prendra modele sur examples/extended/electromagnetic/TestEm11
b) Prevoir la variable EdepPerEvent et la fonction inline AddEdep()
c) Instancier la classe EventAction dans le main programme: jour3b.cc
d) Modifier le constructeur de SteppingAction pour passer un pointeur sur EventAction, en plus de celui sur RunAction
e) Modifier la fonction SteppingAction::UserSteppingAction() pour effectuer la somme sur edep dans EventAction
f) Imprimer EdepPerEvent depuis EventAction::EndOfEventAction()
a) dans RunAction.hh, prevoir 3 données membres privées : sumEdep, sumEdep2 (pour les carrés), nbEntry (pour le nombre d'evenements avec EdepPerEvent non nul)
b) prevoir aussi une fonction inline SumEvents() (voir dans TestEm11 la fonction inline RunAction::AddEdep(e)). Y ajouter l'incrementation du compteur nbEntry.
c) Dans EventAction::EndOfEventAction(), si EdepPerEvent est non nul, la passer a RunAction::SumEvents()
d) Dans RunAction::EndOfRunAction(), calculer la moyenne et l'ecart type de EdepPerEvent (voir TestEm11).
L'erreur relative sur la dose cumulée est (1/sqrt(nbEntry))*(rms/mean) Imprimer la dose cumulée et son erreur.
e) supprimer l'impression dans EventAction et faire une macro pour executer un job en mode 'batch' avec 50000 evenements.