Spring 2013 Class Overview 2 GEANT4 is an open-source code for the simulation of the passage of particles through matter Not limited to particle physics, G4DNA is currently including chemistry for the transport of radicals and solvated electrons Main site: http://geant4.cern.ch Download: http://geant4.web.cern.ch/geant4/support/downlo ad.shtml Class Overview Lecturers: Dr. Akabani Brought GEANT4 to Texas A&M by hosting GEANT4 tutorial in the winter of 2010 Jonathan Madsen Geant4 Collaboration Member Became a member of the Low Energy Electromagnetic Physics Group in 2012 9/26/2014 DRAFT 3 Class Overview The projects in the labs will involve Writing simple programs (in pure C++) Manipulating programs or adding functionality to programs Ive provided Building a GEANT4 project 9/26/2014 DRAFT 4 C++ We will start out reviewing/learning C++ Some think the syntax is ugly at first it is I am a self-taught C++ programmer I have learned from studying examples and others peoples codes, reading C++ books on general C++ and optimization, utilizing forums, etc. I will teach you the best way I know how and the best way I think you should learn with Geant4 in mind Feel free to jump in if you know C++ and think I should address something I have not yet 9/26/2014 DRAFT 5 C++ Please feel free to ask me to elaborate on anything when we are learning C++ and provide context to where and when you will use what I am currently teaching This is the first time I have had set out to actually teach C++ so if I gloss over anything, STOP me 9/26/2014 DRAFT 6 GEANT4 Once we get into GEANT4 (~week 4), I will expect you to have GEANT4 working by that time Sometime in the first few weeks, get it installed and compile and run an example or two There are some good manuals on the Geant4 website Ill explain the basics then try to install it yourself, consult the manuals, and only come to me when you are about to slam your head into your desk Its how you learn these sort of things Geant4 uses CMake, make sure you download and install it 9/26/2014 DRAFT 7 CMake If you have a Mac, install MacPorts Run sudo port install cmake to get CMake If you are using a Linux distribution, you should already have apt-get (or yum) Run sudo apt-get install cmake to get CMake If you are using Windows, there is a GUI for CMake but for GEANT4, good luck (we dont do windows) Ill help some but I dont use Windows and I kind of hate it Side note: At the last Geant4 Collaboration meeting I went to, I did not see a single person using Windows. They either had a Mac or were running Linux. Windows is just a hassle, especially with Geant4 9/26/2014 DRAFT 8 GEANT4 Download Only download the geant4 source files Dont download the data files These can be downloaded during installation You can also download a pre-compiled library I recommend build from source for customization reasons You can also download a Debian operating system for VirtualBox pre-configured with Geant4 from grove (in /scratch2/jmadsen/) 9/26/2014 DRAFT 9 Learning Geant4 Im not 100% sure how quickly some of Geant4 classes yall will pick up so the schedule on the syllabus is a bit tentative, some weeks we might be able to fit in 2-3 classes, others it might take 2-3 weeks (like physics lists for example) Projects will involve adding functionality to a GEANT4 program Since, GEANT4 covers such a large variety of capabilities, I would like to allow yall to dictate what kind of project you would like to do 9/26/2014 10 G4 Projects In other words, if you are interested in using GEANT4 for a specific use: Spallation Detectors using optical photons Low-energy Dosimetry High-energy accelerator physics I will create a set of project goals tailored for those interests for you to work on throughout the semester 9/26/2014 DRAFT 11 G4 Projects If you have a SPECIFIC PROJECT, not just a general use goal, I can accommodate that too If you dont have a particular interest, Ill have a general one too
9/26/2014 DRAFT 12 Learning Geant4 GEANT4 has a steep learning curve Initially, most beginner application developers start with an example that is attempting something similar and customize it to fit their needs You can also use a Geant4 generator program I wrote Generates the bare bones of a Geant4 program Written a long time ago and its not my best work C++- wise so its ugly but works well in general 9/26/2014 DRAFT 13