maria grazia pia infn genova [email protected] salamanca, 15-19 july 2002

12
Maria Grazia Pia Maria Grazia Pia INFN Genova [email protected] Salamanca, 15-19 July 2002 http://cern.ch/geant4/ geant4.html http://www.ge.infn.it/geant4/events/ salamanca.html Basics of a user Basics of a user application application

Upload: sabina-rice

Post on 13-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Maria Grazia PiaINFN Genova

[email protected]

Salamanca, 15-19 July 2002

http://cern.ch/geant4/geant4.htmlhttp://www.ge.infn.it/geant4/events/salamanca.html

Basics of a user Basics of a user applicationapplication

Page 2: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Page 3: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

The main program

Geant4 does not provide the main()

In his/her main(), the user must– construct G4RunManager (or his/her own derived class)– notify the mandatory user classes to G4RunManager

G4VUserDetectorConstruction

G4VUserPhysicsList

G4VUserPrimaryGeneratorAction

The user can define – VisManager, (G)UI session, optional user action classes, one’s

own persistency manager, an AnalysisManager… in his/her main()

Page 4: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

User classesInitialization classesInitialization classesInvoked at the initialization

G4VUserDetectorConstruction

G4VUserPhysicsList

Action classesAction classesInvoked during the execution loop

G4VUserPrimaryGeneratorAction

G4UserRunAction

G4UserEventAction

G4UserStackingAction

G4UserTrackingAction

G4UserSteppingAction

Mandatory classes:

G4VUserDetectorConstruction describe the experimental set-up

G4VUserPhysicsList select the physics you want to activate

G4VUserPrimaryGeneratorAction generate primary events

Page 5: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Describe the experimental set-up

Derive your own concrete class from the G4VUserDetectorConstruction abstract base class

Implement the Construct() method (modularise it according to each detector component or sub-detector)

– construct all necessary materialsmaterials– define shapes/solidsshapes/solids required to describe the geometry– construct and place volumes volumes of your detector geometry– define sensitive detectorssensitive detectors and identify detector volumes to associate

them to– associate magnetic fieldmagnetic field to detector regions– define visualisation attributesvisualisation attributes for the detector elements

Page 6: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Select physics processes

Geant4 does not have any default particles or processes– even for the particle transportation, one has to define it explicitly

Derive your own concrete class from the G4VUserPhysicsList abstract base class

– define all necessary particlesparticles– define all necessary processes processes and assign them to proper particles– define production thresholdsproduction thresholds (in terms of range)

Read the Physics Reference Manual first!Read the Physics Reference Manual first!

The Advanced Examples offer a guidance for various typical experimental The Advanced Examples offer a guidance for various typical experimental domainsdomains

Page 7: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Generate primary events

Derive your concrete class from the G4VUserPrimaryGeneratorAction abstract base class

Pass a G4Event object to one or more primary generator concrete class objects, which generate primary vertices and primary particles

The user can implement or interface his/her own generator– specific to a physics domain or to an experiment

Page 8: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Optional user action classesG4UserRunActionG4UserRunAction

BeginOfRunActionBeginOfRunAction(const G4Run*)– example: book histograms

EndOfRunActionEndOfRunAction(const G4Run*)– example: store histograms

G4UserEventActionBeginOfEventActionBeginOfEventAction(const G4Event*)

– example: event selection

EndOfEventActionEndOfEventAction(const G4Event*)– example: analyse the event

G4UserTrackingActionPreUserTrackingActionPreUserTrackingAction(const G4Track*)

– example: decide whether a trajectory should be stored or not

PostUserTrackingActionPostUserTrackingAction(const G4Track*)

G4UserSteppingActionG4UserSteppingActionUserSteppingActionUserSteppingAction(const G4Step*)

– example: kill, suspend, postpone the track

G4UserStackingActionG4UserStackingActionPrepareNewEventPrepareNewEvent()

– reset priority control

ClassifyNewTrackClassifyNewTrack(const G4Track*)– Invoked every time a new track is pushed – Classify a new track (priority control) Urgent, Waiting, PostponeToNextEvent,

Kill

NewStage()NewStage()– invoked when the Urgent stack becomes

empty– change the classification criteria – event filtering (event abortion)

Page 9: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Select (G)UI and visualisation

In your main(), taking into account your computer environment, construct a G4UIsession concrete class provided by Geant4 and invoke its sessionStart() method

Geant4 provides:– G4UIterminalG4UIterminal csh or tcsh like character terminal– G4GAG G4GAG tcl/tk or Java PVM based GUI– G4WoG4Wo Opacs– G4UIBatchG4UIBatch batch job with macro file– etc…

Derive your own concrete class from G4VVisManager, according to your computer environment

Geant4 provides interfaces to various graphics drivers:

– DAWNDAWN Fukui renderer – WIREDWIRED– RayTracerRayTracer ray tracing by Geant4 tracking– OPACSOPACS– OpenGLOpenGL– OpenInventorOpenInventor– VRMLVRML

Page 10: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Initialisationmain Run manager user detector

const ructionuser physics

list

1: initialize2 : const ruct

3: material const ruct ion

4: geometry construct ion5: world volume

6 : const ruct

7 : physics process const ruction

8: set cuts

Describe a geometrical set-up: a Si-W tracker, a CsI calorimeter and an anti-coincidence system made out of plastic scintillators.

Activate electromagnetic/hadronic

processes appropriate to the energy range of the experiment

Page 11: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Beam On

main Run Manager Geometry manager

Event generator

EventManager

1: Beam On2: close

3: generate one event

4: process one event

5: open

Generate primary events according to various distributions relevant to gamma astrophysics

Page 12: Maria Grazia Pia INFN Genova Maria.Grazia.Pia@cern.ch Salamanca, 15-19 July 2002

Maria Grazia Pia

Event processing

Event manager

Stacking manager

Tracking manager

Stepping manager

User sensitive detector

1: pop

2: process one track3: Stepping

4: generate hits

5: secondaries

6: push

Record the coordinates of impact of tracks in the tracker layersRecord the energy deposited in each element of the calorimeter at every event