jour4b2

1.0

Cet exercice est decoupe en trois petits exercices :

GEOMETRIE

Une navette spatiale est modelisee par un cylindre d'Aluminium. A l'interieur de la cabine se trouve un plancher, egalement en Aluminium. La navette est placée dans l'espace ('World') : une boite aussi petite que possible.

Un (mini)astronaute est placé sur le plancher.

COMMENT DEMARRER ?

EXERCICES

But

On montre un exemple d'utilisation des outils de Geant4 pour definir des hits et des collections de hits.

Dans le cas present de notre exercice, soyons clairs : c'est un peu prendre un marteau-pilon pour ecraser une mouche. La mise en place de cette infrastructure pour gerer les hits et les collections de hits demande en effet un certain investissement, qui ne se justifie pas dans le cas de notre exemple simple. Cette infrastructure est en revanche bien utile dans le cas de grosses applications, avec beaucoup d'informations a collecter, de differents endroits.

Mais revenons a notre exemple... ;-)

o AstroHit:

Nous commencons par definir notre format de hit : AstroHit. Ici nous gardons comme information:

o AstroHitCollection:

Les hits que nous allons crees seront places dans une collection de ce type. Cette collection est creee en debut d'evenement par le SensitiveDetector, qui "l'accroche" au G4Event. Cette collection est accessible dans l'EventAction, au travers du pointeur sur le G4Event, passe en argument.

o SensitiveDetector:

La methode ProcessHits(...) est modifiee pour creer les hits et les inserer dans la collection. La methode Initialize(...) a ete modifiee aussi pour creer la collection en debut d'evenement et "l'accrocher" au G4Event. Des lors, c'est le kernel qui se charge de gerer la collection, et, en particulier, c'est le kernel qui fait le delete de cette collection avant de passer a l'evenement suivant.

o EventAction:

Dans EventAction::EndOfEventAction(const G4Event* event), on montre comment acceder a la collection creee, et les hits pour les 5 premiers evenements sont imprimes.

o RunAction:

Une methode nouvelle methode SumDepthDose(G4int, G4double) qui permet d'ecrire dans le tableau m_depthDoseSD en passant le numero de tranche (et pas le z) est definie.

Question 1

On se propose d'enrichir la classe AstroHit pour avoir comme informations:

Que faut-il modifier pour avoir ces informations ?

Question 2

Accumuler les quantites des hits pour des runs entiers et modifier l'ecriture du fichier depthDoseSD.ascii pour ajouter le nombre de proton et l'energie moyenne de ces protons.

CORRIGE : voir jour4b3


Generated on Fri Nov 21 10:21:00 2008 for jour4b2 by  doxygen 1.5.7.1