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
© Copyright 2024