detector simulation writing a detector simulaton program bockjoo kim seoul n. univ. chep, summer...
TRANSCRIPT
Detector SimulationDetector SimulationWriting a Detector Simulaton Writing a Detector Simulaton
ProgramProgram
Bockjoo KimSeoul N. Univ.
CHEP, Summer School 2002
Kyunpook N. Univ., October 24-26, 2002
This talk will be made available on
http://susy07.snu.ac.kr/~bockjoo/ss2002.ppt
Goal of the Lecture (Overall)Goal of the Lecture (Overall)
What is the detector simulation
How simulation proceeds
How to write the detector simulation code in Geant3 (in Geant4)
Compiling, linking, running (Tommorow)
Some taste of simulation from exercises (Tommorow)
Installation of Geant 4 if time permits(Tommorow)
Make understand…Make understand…
Learns WhatLearns What
What is a particle physics detector?What is a detector simulation?Why detector simulation?What is Geant?How simulation proceeds in Geant?Geant codes from an eampleGeant4, what is it?Where do we go from here?
Accelerators (Time Structure)Accelerators (Time Structure)
Fermilab Tevatron (CDF and D0 exp) √S = 1.96 TeV 36 bunches and 396x10-9 sec www-bd.fnal.gov/runII/index.html
KEK-B (BELLE exp) Asignment
KEK-Neutrino beam line (K2K exp) Every 2.2 sec 1.3sec width beam
LHC (CMS, ATLAS, …) Asignment
ZoomZoom
A bunchA bunch
A collider A collider experimentexperiment
An acceleratorAn accelerator
빵빵 ------
2.7x102.7x101111 protons for protons for
Fermilab RunIIaFermilab RunIIa~37cm~37cm
Numbers in magenta is Tevatron RunIIa parameters
396 x 10396 x 10-19-19 sec sec
Asignment: Given Tevatron RunIIa parameters, calculate instant luminosity, assuming P = P-bar
Answer is:~1032 cm-2sec –
1,explain!
Particle Physics DetectorsParticle Physics Detectors
Detectors ≡ An experiment Each layer(detector) identifies and measures energy of particlesNo single detector measures all the particle ID. and E/p
MuonsMuons (())
Hadrons (h)Hadrons (h) ee±±, ,
Charged Charged TracksTracks
ee±±, , ±, ±, hh±±
Heavy Heavy absorber, e.g., absorber, e.g., FeFeZone where Zone where only only and and remainremain
LightweigLightweightht
High Z materials, e.g., High Z materials, e.g., lead tungstate lead tungstate
crystalscrystals
Heavy material, Heavy material, Iron+active materialIron+active material
TrackerTrackerE.M.E.M.Cal.Cal.
HADHADCal.Cal.
MuonMuonCham.Cham.
PhotonsPhotons
ee±±
±±
±±,, PPnn
CDFIICDFIICDF II: All front-end, DAQ and
trigger replaced!!! New L1 tracking
trigger New L2 secondary
vertex trigger New Time of Flight
New Full acceptance 7(8) layer silicon system: ||<2 coverage New COT drift chamber: B=1.4 T, Naxial = 48, Nstereo = 48, pt/pt < 0.001 pt
New Plug calorimeter has smaller inner hole Central muon chambers up to || < 1.5 – Some new Forward calorimeters and muons removed
CDF, Detector Roll-In
Calorimeters Tracker
Muon System
Beamline Shielding
Electronics
protons antiprotons
20 m
K2K ExperimentK2K Experiment
PP
To SuperKamiokandeTo SuperKamiokande
Spectrum Spectrum MeasurementMeasurement
Silicon Detectors (SVXII)Silicon Detectors (SVXII)
Sense wiresPotential wiresCathode
Calorimeter DataCalorimeter Data
Dijets jets with Et ~ 400 GeV
W -> e
Missing Et
= 38 GeV
Trigger and DAQ Upgrade
Calorimeter energyCentral Tracker (Pt,)Muon stubs
Cal Energy-track matchE/P, EM shower maxSilicon secondary vertexMulti object triggers
Farm of PC’s runningfast versions of Offline Code moresophisticated selections
What is a detector What is a detector simulatoinsimulatoin
Describe particle passage through detectors
Probabilistic treatment of particle passages, i.e., xsec of particle interactions with matter.
Knowing timing and geometry (detector)
Knowing material (detector)
Tracking (tracing) particles
Describing responses
Why detector Why detector simualtionsimualtion
Physics processes needed to be checked in advance to understand data reconstruction
HEP apparatus requires huge expenses.
Detector optimization is necessary ahead of detector construction: It’s possible to see what is happened at detector itself, and to shorten a period of time of detector completion
Detector performance can be compared with data.
ADC Distribution : Data ADC Distribution : Data vs Simvs Sim
ADC (East) ADC (West)
ADC_peak/ADC
(East)ADC_peak/ADC
(West)
Black : Store832
Red : Simulation
2 4 6 8 10 x 103 2 4 6 8 10 x 103
6 6
MMtt Systematics Systematics
Better control of the jet energy scales using Z bb and W qq (in double tagged top events).
Simulation ConsiderationsSimulation Considerations
Beam Crossings
Geometry description
Material description
Response
Speed needs to be fast preferablyPractically most important
From where to where to From where to where to simulatesimulate
From: a physics event from a event generator (x,y,z,px,py,pz,t) Nparticles Particle type Added Particles
To: End of detector boundaries
Electronics reponses need to be simulated in (typically) parametric way
All possible physics processes inside detector, active or inactive
All possible physics processesAll possible physics processes(( 이런 이런 processprocess 들을 알고 싶다들을 알고 싶다 .).)
Photon Processes(e+,e-) pair conversion
Compton collision
Photoelectric effect
Photo fission of heavy elements
Rayleigh effect
e-/e+ ProcessesMultiple scattering
Ionization and -rays production
Bremsstrahlung
Annihilation of positron
Generation of Cerenkov light
Synchrotron radiation
Hadrons ProcessesDecay in flight
Multiple scattering
Ionization and -rays production
Hadronic interaction
Generation of Cerenkov light
-/+ Processes Decay in flight
Multiple scattering
Ionization and -rays production
Ionisation by heavy ions
Bremsstrahlung
Direct (e+,e-) pair production
Photonuclear interaction
Generation of Cerenkov light
RecordingRecording
All readout channels from each subdetector should be recorded as real experiment
Hit and Digitization information are recorded
Simulation package gives more detailed information to make system debugging possible.
Simulation PackagesSimulation Packages
Geant
Experiment dependent fast simulations
Describes particle passage through matter Experimental setup Energy loss Particle track (time and space)
Designed originally for high energy physics Application in the medical and biological sciences Application in the radioprotection and astronautics
Geant3: written in traditional Fortan Geant4: written in C++ Include hadronic package FLUKA, GHEISHA,…
GeantGeant
Geant and PackagesGeant and Packages
ZEBRA : memory mangement and data structure (bank)
HBOOK : package for histogramming and fitting
HIGZ : High level Interface to Graphics and ZEBRA
PAW : Physics Analysis Workstation
GEANT : Detector Description and Simulation Tool
ROOT : OO Data Analysis Framework
Geant Event Simulation FrameworkGeant Event Simulation FrameworkInitialization – part 1 Initialize common block /GCBANK/ Read free format data to modify default values Initialize memory manager (ZEBRA) Initialize drawing package Fill partilce properties data structure Fill characteristics of the materials used
Initialization – part 2 – user code Geometry – shape (cylindrical, rectangle, ….)
and boundaries Medium – materials (Aluminium, air, scintillator,
Iron,…) Digitizability – sensitive detectors (length of
particle path, energy deposit, …)
FenceFence
WSWS
ReserveReservedd
Event Event DivDiv
Const Const DivDiv
System DivSystem Div
GCBANKGCBANK
Geant Event Simulation Geant Event Simulation Framework…Framework… 계속계속Initialization – part 3
Process all the user provided informaton Book standard Geant histogram~~^^~~ Compute energy loss and cross section tables
and store them in the data structureMaterialsMaterials
JMATE/JTMEDJMATE/JTMED
GeometryGeometryJVOLUM/JROTMJVOLUM/JROTM
TrackingTrackingGUSTEPGUSTEP
JSTAKJSTAK
Event Processing Event Processing HistoryHistory
JVERTX/JKINEJVERTX/JKINE
Simulated Raw Simulated Raw DataData
JHITS/JDIGIJHITS/JDIGI
JSETJSET
DrawingDrawingJDRAWJDRAW
PHYSICSPHYSICS
ParticlesParticlesJPARTJPART
Initialization ofInitialization ofKinematicsKinematics
Relation between GEANT data structure
Geant Event Simulation Geant Event Simulation Framework…Framework… 계속계속Event processing
Initialize dynamic memory banks for next event and create event head bank Process an event
Read an event kiinematics (x,y,z,px,py,pz,t) For each vertex, A. JKINE→JSTAK B. each particle is tracked. (User stores useful information for user’s own use, e.g.,
energy deposit when sensitive material is traversed.) Secondary particles generated for each particle processed first (Geant does not process secondaries by default. User should
indicate, see GSKING/GSKPHO) Next particle is taken care
User can store (x,y,z) to JXYZ Hadronic interactions by GHEISHA or FLUKA User can skip unwated tracking Can steer particles according to B-field Simulate detector response (JDIGI) End of event processing
Clean up memory used by the event and check time for next eventTermination : close files, hbook, print stats.
Head (Bank name, etc)
Tail (EOF, etc)
JKINE JSTAK
(LIFO)
12345
Q:Common block 2ndary particles are stored(2)
A:/GCKING/ /GCKIN2/ (Cerenkov
photons)
Geant Program Flow ChartGeant Program Flow Chart
See next slideSee next slide
MAIN user routine GZEBRA initialisation of ZEBRA system, dynamic core allocation UGINIT user routine
GINIT initialisation of GEANT variables GFFGO interpretation of data records GZINIT initialisation of ZEBRA core divisions and link areas GPART/GSPART creation of the particle data structure JPART GMATE/GSMATE creation of the material data structure JMATE user code description of the geometrical setup, of the sensitive detectors, creation of data structures JVOLUM, JTMED, JROTM, JSETS GPHYSI preparation of cross-section and energy-loss tables for all used materials
GRUN loop over events GTRIGI initialisation for event processing GTRIG event processing
GUKINE (user) generation (or input) of event initial kinematics GUTREV (user)
GTREVE loop over tracks, including any secondaries generated GUTRAK (user)
GTRACK control tracking of current track GFINDS find current volume in the geometry tree GUSTEP (user) recording of hits in data structure
JHITS and of space points in data structure JXYZ GUPARA called if the particle falls below the tracking
threshold GTGAMA/GTELEC/... tracking of particle according to type GFSTAT fill banks for volume statistics GSTRAC store information of the current track
segment GUSTEP (user) recording of hits in data structure
JHITS and of space points in data structure JXYZ GTMEDI finds in which volume/medium the current
space point is GUSTEP (user) recording of hits in data structure
JHITS and of space points in data structure JXYZ GUDIGI computation of digitisations and recording in data structure JDIGI GUOUT output of current event GTRIGC clearing of memory for next event
UGLAST (user) GLAST standard GEANT termination
Geant ConstantsGeant Constants
Material numbers and medium numbers are the constants stored for tracking
Described in Geant manual CONSXXXX
Geant DrawingGeant Drawing
Based on HIGZ which uses X11 and other graphics system
Drawing package visualizes Detector components Logical tree of detector components Geometrical dimensions Particle trajectories Hits recorded in the sensitive detector
components
Documented in DRAWXXXX
Geant GeometryGeant GeometryAt init., define the geometry in which the particles will be trackedCommunicate with tracking codes Volume ID for a given point Distance to the nearest volume along the track Distance to the nearest volume Given point in the current volume or exited?
Experimental setup consists of various shape, material, conditions (.e.g. magnetic field) Geant describes experimental setup by defining
shape, material, conditions of detector components Local reference frame should be defined
Geant Geometry…Geant Geometry… 계속계속Mother volume: a volume that has contentsNew volume: predefined volumes or by divisionPositioning a volume : by specifying its rotation and translation and a number is given to a positioned volumeExperimental setup consists of various shape, material, conditions (.e.g. magnetic field)16 basic shapes are used(2nd order surfaces)Tracking of particles through the geometrical data structure is the key functionality of Geant
Geant Geometry…Geant Geometry… 계속계속
CADINT: Geant Geom CAD (IGES)Uses concept of overlapping volume Reduces tracking time Can be used to compose any kind of shape Can be used to ellimiate regions “ONLY” and “MANY” distinguishes overlapping
Q:List all 16 shapes used in GeantQ:List all 16 shapes used in GeantA:Box, TRD1, TRD2, ….A:Box, TRD1, TRD2, ….
Geant HitGeant Hit
Hit : User-defined info recorded during tracking Example: dE/dx in a sensitive
detector
Digitization : User-defined info for detector response TDC counts and ADC counts for
a hit
Geant KINE, Phys, …Geant KINE, Phys, …
•Stores and retrieves kinematic Stores and retrieves kinematic Information and physics processes inside Information and physics processes inside detectordetector
•Sometimes one can provided one’s own Sometimes one can provided one’s own parameters for physics processesparameters for physics processes
Geant trackingGeant tracking
Continuous tracks a set of pointsStep size : estimated a priori by Particle type Type of current medium Geometry (particularly around boundaries between different
medium) Can be optimized by the user
Every particle is transported by a tracking type GGTGAMAGTRACK EGTELECGTRACK …
Magnetic filed transportAll the user action is taken by GUSTEP
Interactive GeantInteractive GeantPROGRAM GXINT * * GEANT main program. To link with the MOTIF user interface * the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas * the routine GPAW(NWGEAN,NWPAW) gives access to the basic * graphics version. * PARAMETER (NWGEAN=3000000,NWPAW=1000000) COMMON/GCBANK/GEANT(NWGEAN) COMMON/PAWC/PAW(NWPAW) * CALL GPAWPP(NWGEAN,NWPAW) * END
Initializes Geant and PAWInitializes Geant and PAW
Stores for Geant and PAWStores for Geant and PAW
Requires Geant library (libgeant321.a), X11 library (libX11.a), +system libs
Compile gxint321.F using a compiler gcc –c –o gxint321.o gxint321.F ; gcc –c –o uginit.o uginit.F ; gcc –c –o uglast.o uglast.F
Link (make the executable) gcc -o gxint -O -L/usr/X11R6/lib -L/cern/2000/lib gxint321.o uglast.o uginit.o -lX11 -lgeant321 -lpawlib -lmathlib -lpacklib -lgraflib -lgrafX11 -lpacklib -lkernlib -lmathlib -lstdc++ -lg2c -lm -ldl -lcrypt -lnsl
Building Interactive Geant Building Interactive Geant
Practice: link gxint without –Practice: link gxint without –
lg2clg2c
Invoking Interactive GeantInvoking Interactive Geant
Execute gxint created in previous slide ./gxint Will show GEANT> prompt
Getting help At GEANT> prompt, ‘GEANT>help’ ‘GEANT> help geant’ for geant help
Example of Creating a Volume GEANT>geant/create/sbox ‘mybox’ 1 10 10 10 EXAMPLE –
dopt hide on satt * seen -2 draw mybox 40 40 0 10 10 .01 .01 next box mybox 0 1000 0 1000 0 1000 draw mybox 40 40 0 10 10 .01 .01 box .
Geant in Batch ModeGeant in Batch Mode
Given experimental setup and process
Runs in a number of events
Need to provide input files
Execute ./gbatch < gbatch.inp
Examine output histogram and data
Example Batch CodeExample Batch Code
PROGRAM MAIN_BATCHC GEANT main program for batch running
PARAMETER (NGBANK=5000000, NHBOOK=1000000)COMMON/GCBANK/Q(NGBANK)COMMON/PAWC/H(NHBOOK)
C initialize HBOOK and GEANT memoryCALL GZEBRA(NGBANK)CALL HLIMIT(-NHBOOK)
C initialize GEANTCALL UGINIT
C start event processingCALL GRUN
C end of run; terminateCALL UGLASTEND
Geant 4 : c++ version of Geant3Geant 4 : c++ version of Geant3
Totally written in OO language
Physics is same
Supplementory features: CAD Geant4
Serves for Geant3 in coming HEP Exp
Where do we go from here?Where do we go from here?
Practice and apply Geant3 knowledge to actual experimental setup
One of best way of understanding detector simulation is to install Geant
Geant4 is the next generation tool for detector simulation. Learn it and you will be ready for next generation particle physics experiments
SummarySummaryDetector simulation is explained by focusing on Geant3
Detector simulation requires knowledges on experimental setup and thus geometry and material
Geant4 hopefully will ease some of the tasks like complex shaped detector construction in simulation
Installing and practicing is the best way to farmiliarize one with the Geant simulation
ReferencesReferences
Collider Physics
Particle Detectors, C.Grupen, Cambridge Univ. Press, 1996
Experimental techniques in HEP, T.Ferbel, World Scientific, 1991
http://www.cern.ch/Physics/ParticleDetector/BriefBook
http://wwwinfo.cern.ch/asd/geant4/genat4.html
Inside Programming TechniquesInside Programming Techniques
Search for undefined references by using ‘nm –o *.a | grep something_a | more ‘Debuging : gdb program core ; where
Unrecognized library?: move around libraries …^^…