Les hooks
11 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
11 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

  • cours - matière potentielle : g4track
1 Les hooks 10 minutes
  • volume courant
  • nom g4string
  • g4threevector position
  • l 
  • temps de vol g4double
  • poststeppoint … l 
  • g4double tracklen
  • hiérarchie g4touchablehandle
  • volume
  • volumes

Sujets

Informations

Publié par
Nombre de lectures 72
Langue Français
Poids de l'ouvrage 1 Mo

Extrait

Les hooks
1
Extrairelinformation utile
Une fois la géométrie, la physique et la génération des primaires définis, Geant4 simule la physique de façonsilencieuseA vous dajouter du code pourextraire linformation qui vous intéresse
Plusieurs façons: Lesuser hooks(G4UserSteppingAction, etc.) Accès complet à toute linformation Facile mais tout faire soi-même
Définir des détecteurssensibles: assignerG4VSensitiveDetectorà un volume et en option générer des “hitsUtiliser desuser hooks(G4UserEventAction,G4UserRunAction) pour obtenir un résumé de lévénement ou du run
Utiliser les commandes existantes descoring La plupart des quantités physiques sont disponibles.
2
Userhooks
Approche “faites-le vous-même”
Dans Geant4, on a accès a presque toute linformation G4UserSteppingActionG4UserEventActionG4UserRunActionG4UserTrackingAction
Bien adaptés auxpetites applications& exemples Geant4
Trop lourd pour lesapplications complexes, où de nombreuses données de nombreux volumes doivent être enregistrées: SteppingAction trop chargé Subdiviser le problème, avec des Sensitive Detectors
3
Principe
Dans leSteppingAction, vérifier que la particule est dans le volume A et faîtes ce dont vous avez besoin
En général, vos conteneurs et histogrammes seront des attributs deTrack,EventouRunAinsi il faudrainstancierTrackingActionet/ouEventActionet/ouRunActionpasser leur pointeur au SteppingAction.
Voir par exemple examples/novice N03, N06, extended/electromagnetic, optical, ...
4
Informationgéométrique- 1
Un objetG4Stepest constitué dedeux points: G4StepPoint* point1 = step->GetPreStepPoint();  G4StepPoint* point2 = step->GetPostStepPoint(); Pour obtenirleur position dans le système de coordonnées globales:
G4ThreeVector pos1 = point1->GetPosition();  G4ThreeVector pos2 = point2->GetPosition(); Ensuite, on appellera volume courant le volume que le step a traversé
nformation géométrique sobtient dupreStepPoint
5
Information géométrique - 2
G4VTouchableet ses dérivéesconservent linformation géométrique et la hiérarchie G4TouchableHandle touch1 = point1->GetTouchableHandle();
Pour avoir levolume courant
G4VPhysicalVolume* volume = touch1->GetVolume(); Sonnom
G4String name = volume->GetName(); Sonnuméro de copie
G4int copyNumber = touch1->GetCopyNumber();
Sonlogical volume G4LogicalVolume* lVolume = volume->GetLogicalVolume();
6
Information géométrique - 3
Pour récupérer lematériau, les deux lignes suivantes sont équivalentes
G4Material* material = point1 ->GetMaterial(); G4Material* material = lVolume ->GetMaterial();Pour obtenir laregion
G4Region* region = lVolume->GetRegion(); Et levolume mère
G4VPhysicalVolume* mother = touch1->GetVolume(depth=1); Grand-mère: depth=2 ...etc... Et lenuméro de copie de la mère
G4int copyNumber = touch1->GetCopyNumber(depth=1); Grand-mère: depth=2 ...etc
7
Information géométrique - 4
Pour vérifier que la particule a pénétré dans le volume courant, cad se trouve au premier step dans le volume, lepreStepPointest à la frontière (boundary) if (point1->GetStepStatus() == fGeomBoundary) Pour vérifier que la partticule quitte le volume courant , cad quelle se trouve au dernier step du volume, lepostStepPointest à la frontière (boundary)if (point2->GetStepStatus() == fGeomBoundary) Dans cette situation, on récupère letouchable du volume suivant
G4TouchableHandle touch2 = point2->GetTouchableHandle();
Depuistouch2, toute linformation sur le volume suivant, comme ci-dessus.
8
InformationPhysique
Récupérerle processus qui a limité le step courant:
G4VProcess* aProcess = point2->GetProcessDefinedStep();
Nomde la particulestep->GetTrack()->GetDynamicParticle()->GetDefinition() ->GetParticleName()
Les quantités physiques sont disponibles depuis le step (G4Step) ou le track (G4Track).
Energie déposée, longueur de step, déplacement, temps de vol
G4double eDeposit = step->GetTotalEnergyDeposit(); G4double sLength = step->GetStepLength(); G4ThreeVector displace = step->GetDeltaPosition(); G4double tof = step->GetDeltaTime();
Moment, énergie cinétique, temps global(depuis le commencement de levent) de la trackaprès le step en co
= step->GetTrack();G4Track* track G4ThreeVector momentum = track->GetMomentum(); G4double kinEnergy = track->GetKineticEnergy(); G4double globalTime = track->GetGlobalTime();
Pour transformerdu système de coordonnées globales au système local du volume en cours, utiliser linformation preStepPoint G4ThreeVector localPosi = touch1->GetHistory()->GetTopTransform().TransformPoint(position); 9
Et plus encore
De même dansTrackingActionon accède aux information de latrackvoid MyTrackingAction::PostUserTrackingAction(const G4Track* track) { G4double tracklen = track->GetTrackLength(); G4double charge = track->GetDefinition()->GetPDGCharge(); G4ThreeVector position = track->GetPosition(); // Cest celle du PostStepPoint
Voir dans $G4INSTALL/source/track/include/G4Step.hh$G4INSTALL/source/track/include/G4Track.hh
On peut récupérer facilement à chaque step des quantités et les cumuler sur les événements ou sur le run en utilisant desaccesseurs/enregistreursajoutés à vos classesEventActionetRunActionG4double dose = (aStep->GetTotalEnergyDeposit()/joule)/(Run->GetMassTarget()/kg); Run->AddDoseN(dose); 10
En résumé
Nécessaire décrire votre propre code pour extraire les informations qui vous intéressent Usage dehooks Grande flexibilité (géométrie, physique) mais à réserver à un usage simple Alternativement, utilisation dedétecteurs sensiblesou deméthodes de scoring
11
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents