Physics introduction

Geant4 10.1 p01 Geant4 Physics Geant4 Tutorial at M&C+SNA+MC2015 19 April 2015 Dennis Wright (SLAC) Outline •  Overview of Geant4 physics •  Physics lists •  Choosing the appropriate physics list •  ValidaMng your physics list •  Recent developments 2 Geant4 Physics •  Geant4 provides a wide variety of physics components for use in simulaMon •  Physics components are coded as processes –  a process is a class which tells a parMcle how to interact –  Geant4 provides many of these –  users may write their own, but must be derived from a Geant4 process •  Processes are classified as –  electromagneMc, hadronic, decay, parameterized or transportaMon 3 Geant4 Physics: ElectromagneMc •  standard – complete set of processes covering charged parMcles and gammas –  energy range 1 keV to ~PeV •  low energy – specialized rouMnes for e-­‐, γ, charged hadrons –  more atomic shell structure details –  some processes valid down to 250 eV or below –  others not valid above a few GeV •  OpMcal photon – only for long wavelength photons (x-­‐rays, UV, visible) –  processes for reflecMon/refracMon, absorpMon, wavelength shi_ing, Rayleigh sca`ering 4 Geant4 Physics: Hadronic •  pure hadronic (0 -­‐ ~TeV) – 
– 
– 
– 
elasMc inelasMc capture fission •  radioacMve decay –  at rest and in-­‐flight •  photo-­‐nuclear (~10 MeV – ~TeV) •  lepto-­‐nuclear (~10 MeV -­‐ ~TeV) –  e+, e-­‐ induced nuclear reacMons –  muon induced nuclear reacMons 5 Geant4 Physics: Decay, Parameterized and TransportaMon •  decay processes include –  weak decay (leptonic, semi-­‐leptonic decays, radioacMve decay of nuclei) –  electromagneMc decay (π0 , Σ0 , etc. ) –  strong decays not included here (they are part of hadronic models) •  parameterized process –  electromagneMc showers propagated according to parameters averaged over many events –  faster than detailed shower simulaMon •  transportaMon –  only one process which is responsible for moving the parMcle through the geometry 6 Physics Processes •  All the work of parMcle decays and interacMons is done by processes •  A process does two things: –  decides when and where an interacMon will occur –  method: GetPhysicalInteracMonLength() –  this requires a cross secMon or decay lifeMme –  for the transportaMon process, the distance to the nearest object along the track is required –  generates the final state of the interacMon (changes momentum, generates secondaries, etc.) –  method: DoIt() –  this requires a model of the physics 7 Physics Processes •  There are three flavors of processes: •  well-­‐located in space -­‐> PostStep •  distributed in space -­‐> AlongStep •  well-­‐located in Mme -­‐> AtRest •  A process may be a combinaMon of all three of the above –  in that case six methods must be implemented, one GetPhysicalInteracMonLength() and one DoIt() for each type •  “Shortcut” processes are defined which invoke only one –  Discrete process (has only PostStep physics) –  ConMnuous process (has only AlongStep physics) –  AtRest process (has only AtRest physics) 8 Example Processes •  Discrete process: Compton sca`ering –  length of step determined by cross secMon, interacMon is at end of step •  PostStepGetPhysicalInteracMonLength() •  PostStepDoIt() •  ConMnuous process: Cerenkov effect –  photons created along step, # proporMonal to step length •  AlongStepGetPhysicalInteracMonLength() •  AlongStepDoIt() •  At rest process: positron annihilaMon at rest –  no spaMal displacement, Mme is the relevant variable •  AtRestGetPhysicalInteracMonLength() •  AtRestDoIt() 9 Handling MulMple Processes •  How does Geant4 decide which interacMon happens at any one Mme? – 
– 
– 
– 
interacMon length (or decay length) is sampled from each process sampling is done from the distribuMon 1 – e– σρL done for each process assigned to the parMcle now we have several lengths, including distance to next volume boundary –  the interacMon (or boundary crossing) that happens is the one with the shortest length –  processes which did not occur are not re-­‐sampled, but have the previous step length subtracted from their originally sampled lengths 10 Threshold for Secondary ProducMon •  Every simulaMon developer must answer the quesMon: how low can you go? –  at what energy do I stop tracking parMcles? •  This is a balancing act: –  need to go low enough to get the physics you’re interested in –  can’t go too low because some processes have infrared divergence causing CPU to skyrocket •  The tradiMonal Monte Carlo soluMon is to impose an absolute cutoff in energy –  parMcles are stopped when this energy is reached –  remaining energy is dumped at that point 11 Threshold for Secondary ProducMon •  Geant4 soluMon: impose a producMon threshold •  this threshold is a distance, not an energy •  default = 0.7 mm •  the primary parMcle loses energy by producing secondary electrons or gammas •  if primary no longer has enough energy to produce secondaries which travel at least 0.7 mm, two things happen: •  discrete energy loss ceases (no more secondaries produced) •  the primary is tracked down to zero energy using conMnuous energy loss •  Stopping locaMon is therefore correct •  Only one value of producMon threshold distance is needed for all materials because it corresponds to different energies depending on material 12 ProducMon Threshold vs. Energy Cut Example: 500 MeV p in LAr-­‐Pb Sampling Calorimeter Geant3 (and others) Geant4 ProducMon range = 1.5 mm 13 What is a Physics List? •  A class which collects all the parMcles, physics processes and producMon thresholds needed for your applicaMon •  It tells the run manager how and when to invoke physics •  It is a very flexible way to build a physics environment –  user can pick the parMcles he wants –  user can pick the physics to assign to each parMcle •  But, user must have a good understanding of the physics required –  omission of parMcles or physics could cause errors or poor simulaMon 14 Why Do We Need a Physics List? •  Physics is physics – shouldn’t Geant4 provide, as a default, a complete set of physics processes that everyone can use? •  No: –  there are many different physics models and approximaMons –  very much the case for hadronic physics –  but also true for electromagneMc physics –  computaMon speed is an issue –  a user may want a less-­‐detailed, but faster approximaMon –  no applicaMon requires all the physics and parMcles that Geant4 has to offer –  e.g., most medical applicaMons do not want mulM-­‐GeV physics 15 Why Do We Need a Physics List? •  For this reason Geant4 takes an atomisMc, rather than an integral approach to physics –  provide many physics components (processes) which are decoupled from one another (for the most part) –  user selects these components in custom-­‐designed physics lists in much the same way as a detector geometry is built •  ExcepMons –  a few electromagneMc processes must be used together –  future processes involving interference of electromagneMc and strong interacMons may require coupling as well 16 Physics Lists Provided by Geant4 •  For most applicaMons, you will not need to write your own physics list –  Geant4 provides a number of physics lists tailored to specific use cases –  called “packaged” physics lists –  some of these are “reference” physics lists: regularly tested and validated by Geant4 –  known by their nicknames: FTFP_BERT, QGSP_BIC, etc. –  simply instanMate in your main() and register to G4RunManager •  You can also use these as starMng points or templates for developing your own list 17 Packaged Physics Lists •  Each packaged physics list includes different choices of EM and hadronic physics •  A list of these can be found in your copy of the toolkit at geant4/source/physics_lists/lists/include •  Caveats –  these lists are provided as a “best guess” of the physics needed in a given use case –  the user is responsible for validaMng the physics for his own applicaMon and adding (or subtracMng) the appropriate physics –  they are intended as starMng points or templates 18 Physics List Naming ConvenMon •  The following acronyms refer to various hadronic opMons •  FTF -­‐> FriMof string model (>~5 GeV) •  QGS -­‐> Quark Gluon String model (>~20 GeV) • 
• 
• 
• 
• 
BERT -­‐> BerMni-­‐style cascade (<~ 10 GeV) INCL -­‐> Liege cascade (<~ 10 GeV) BIC -­‐> Binary Cascade (<~ 10 GeV) HP -­‐> High Precision neutron model ( < 20 MeV) P -­‐> G4Precompund model used for de-­‐excitaMon 19 Physics List Naming ConvenMon •  EM opMons designated by • 
• 
• 
• 
no suffix : standard EM physics EMV suffix : older but faster EM processes LIV : Livermore (G4EmLivermorePhysics) PEN : Penelope (G4EmPenelopePhysics) •  other opMons: •  G4EmLivermorePolarized •  G4EmDNAPhysics 20 A Few Reference Physics Lists •  FTFP_BERT – 
– 
– 
– 
recommended by Geant4 for HEP contains all standard EM processes uses BerMni-­‐style cascade for hadrons < 5 GeV uses FTF (FriMof) model for high energies ( > 4 GeV) •  QGSP_BERT – 
– 
– 
– 
all standard EM processes BerMni-­‐style cascade up to 9.9 GeV QGS model for high energies (> ~18 GeV) FTF in between 21 A Few Reference Physics Lists •  QGSP_BIC –  same as QGSP_BERT, but replaces BerMni cascade with Binary cascade and G4Precompound model –  recommended for use at energies below 200 MeV (many medical applicaMons) •  FTFP_BERT_HP –  same as FTFP_BERT, but with high precision neutron model used for neutrons below 20 MeV –  significantly slower than FTFP_BERT when full thermal cross secMons used – there’s an opMon to turn this off –  for radiaMon protecMon and shielding applicaMons 22 Other Physics Lists •  Shielding –  based on FTFP_BERT_HP with improved neutron cross secMons from JENDL –  be`er ion interacMons using QMD model –  currently used by SuperCDMS dark ma`er search –  recommended for: – shielding applicaMons – space physics – HEP 23 Other Physics Lists •  FTFP_INCLXX, FTFP_INCLXX_HP –  like FTFP_BERT, but with BERT replaced by INCL++ cascade model •  QBBC –  uses both BERT and BIC cascade models –  latest coherent elasMc sca`ering •  QGSP_BIC_HP –  same as QGSP_BIC, but with high precision neutron model used for neutrons below 20 MeV –  recommended for radiaMon protecMon, shielding and medical applicaMons 24 Other Physics Lists (based on use case) •  If primary parMcle energy in your applicaMon is < 5 GeV (for example, clinical proton beam of 150 MeV) –  start with a physics list which includes BIC or BERT –  e.g. QGSP_BIC, QGSP_BERT, FTFP_BERT, etc. •  If neutron transport is important –  start with physics list containing “HP” –  e.g. QGSP_BIC_HP, FTFP_BERT_HP, etc. •  If you’re interested in Bragg curve physics –  use a physics list ending in “EMV” or “EMX” –  e.g. QGSP_BERT_EMV 25 Choosing a Physics List •  Which physics list you use is highly dependent on your use case •  Before choosing, or building your own, familiarize yourself with the major physics processes available •  the process-­‐model catalog is useful for this •  see Geant4 web page under User Support, item 11b •  There are many physics lists in the examples which you can copy •  these are o_en very specific to a given use case 26 Using Geant4 ValidaMon to Choose Physics Lists •  UlMmately you must choose a physics list based on how well its component processes and models perform •  physics performance •  CPU performance •  Geant4 provides validaMon (comparison to data) for most of its physics codes •  validaMon is a conMnuing task, performed at least as o_en as each release •  more validaMon tests added as Mme goes on •  To access these comparisons, go to Geant4 website –  follow the chain: click on “Results and PublicaMons” -­‐> “ValidaMon and tesMng” -­‐> ValidaMon Database: “FNAL_DB” 27 New Hadronic ValidaMon Framework 28 29 30 31 WriMng Your Own Physics List •  Start by deriving from G4VModularPhysicsList –  implement three methods: –  ConstructParMcle() –  ConstructProcess() –  SetCuts() •  Can also use physics constructors: –  G4EmStandardPhysics, G4DecayPhysics, G4GenericBiasingPhysics, G4HadronPhysicsShielding, etc. •  For example: FTFP_BERT* physList = new FTFP_BERT; G4RadioacMveDecayPhysics* rdp = new G4RadioacMveDecayPhysics; physList-­‐>RegisterPhysics(rpd); 32 Recent Developments •  The “backbone” for hadronic physics in the reference lists is now based on the FTF and BerMni models (hence FTFP_BERT) –  replaces all physics lists which used CHIPS, LEP or HEP models •  Faster neutron propagaMon using XS classes –  G4NeutronXS, G4NeutronInelasMcXS for E < 20 MeV •  New physics lists: –  FTFP_INCLXX, FTFP_INCLXX_HP, QGSP_INCLXX_HP •  G4LEND alternate neutron model –  based on Livermore libraries, potenMally faster the NeutronHP •  High precision parMcle model –  like NeutronHP , but for p, d, t, alpha 33 Summary •  All the parMcles, physics processes and producMon cuts needed for an applicaMon must go into a physics list •  Geant4 provides many ready-­‐made physics lists -­‐> plug and play! •  Many tools provided to help you build your own physics list •  Some physics lists are provided by Geant4 as a starMng point for users –  see the basic examples •  Care is required by user in choosing the right physics list –  applicaMon-­‐dependent –  use the validaMon, Luke 34 Backup Slides Data Files (1) •  Many Geant4 physics models depend on data files –  must be downloaded from Geant4 web page and incorporated into your build –  environment variables must be set which point to these files •  G4EMLOW-­‐6.35 (env. var. G4LEDATA) –  low energy electromagneMc data, mostly from Livermore libs •  G4NDL-­‐4.4 (env. var. G4NEUTRONHPDATA) –  evaluated low energy neutron data for cross secMons, final states •  G4NEUTRONXS-­‐1.4 (env. var. G4NEUTRONXSDATA) –  evaluated neutron cross secMons derived from G4NDL by averaging energy bins 36 Data Files (2) •  G4RadioacMveDecay-­‐4.0 (env. var. G4RADIOACTIVEDATA) –  radioacMve decay data from ENSDF and NUDAT (used only if radioacMve decay process is acMve) •  G4PhotonEvaporaMon-­‐3.0 (env. var. G4LEVELGAMMADATA) –  photon evaporaMon data from ENSDF •  G4ABLA-­‐3.0 (env. var. G4ABLADATA) –  data set for INCL/ABLA hadronic models •  G4ENSDFSTATE-­‐1.0 (env. var. G4ENSDFSTATEDATA) –  opMonal data set for nuclear state properMes from ENSDF 37 Handling MulMple Processes •  Step 1: –  all lengths sampled –  Compton occurs •  Step 2: –  Compton re-­‐sampled –  boundary is crossed •  Step 3: –  Compton occurs again –  new boundary found •  Step 4: –  Compton re-­‐sampled –  pair producMon occurs 38 SetCuts() void MyPhysicsList::SetCuts() { defaultCutValue = 0.7*mm; SetCutValue(defaultCutValue, “gamma”); SetCutValue(defaultCutValue, “e-­‐”); SetCutValue(defaultCutValue, “e+”); SetCutValue(defaultCutValue, “proton”); // // These are all the producMon cuts you need to set // -­‐ not required for any other parMcle } 39