Download presentation
Presentation is loading. Please wait.
Published byLogan McDonough Modified over 11 years ago
1
DPMJET-2.5 & DPMJET-3 Treats hadron-nuclear and nuclear-nuclear interactions >5 GeV/nuc, with the upper limited reported to be of order 1000TeV Two versions currently available, both of which treat nuclear-nuclear interactions: DPMJET-2.5 (Johannes Ranft) - source code publicly released DPMJET-3 (Stefan Roesler) - access to source controlled by Roesler Both versions of DPMJET available in FLUKA-2006, but distributed as compiled libraries A version of DPMJET-II.5 has been implemented as the model G4DPMJET2_5Model and is being tested. There have been challenges: Very limited documentation on the code, none covering explanation of design / organisation How to handling Glauber data generated as a part of the DPMJET-II.5 initialisation process You can say that I have been negotiating with Stefan Roesler about the release of the source code to me in order to implement a Geant4 hadronics interface.
2
What do (stored) Glauber data refer to?
Target Projectile b Cumulative probability distribution function Used to sample impact parameter, once it is confirmed an impact has occurred Unique to each projectile (AZNP) and target (AZNT) and must be generated as a function of momentum This is more for your understanding, Dennis in case you’re curious of what the Glauber data refer to.
3
Need to Generation Glauber Profile Data Has Added Significant Complexity
DPMJET-II.5 expects the data to be a function of: A & Z of projectile A & Z of target Projectile momentum/nucleon If we created data for 2546 projectiles (~301 stable nuclides + ~2245 well-quantified radioactive nuclides) on 301 stable targets = 676,046 combinations ~100 GBytes is full-size ASCII files This is the reason this wasn’t pre-computed.
4
DPMJET-II.5 interface (Old Version)
theExcitationHandler->SetEvaporation(theEvaporation); theExcitationHandler->SetFermiModel(theFermiBreakUp); theExcitationHandler->SetMaxAandZForFermiBreakUp(12, 6); G4DPMJET2_5Model *theDPM = new G4DPMJET2_5Model(theExcitationHandler); theDPM->SetMinEnergy(9.0*GeV); theDPM->SetVerboseLevel(2); Get or define Glauber Data for projectiles and target G4GlauberDataSetHandler *theGDSHandler = theDPM->GetGlauberDataSetHandler(); theGDSHandler->AddGlauberDataDir(“/home/geant4/g4/geant4/data/GlauberDat”); theGDSHandler->AddGlauberDataDir(“.”); theGDSHandler->LoadGlauberData(12,6,false); theGDSHandler->LoadGlauberData(56,26,27,13,false); theGDSHandler->CreateGlauberData(24,12, true); This is a explanation of how you would load the instantiate G4DPMJET2_5Model in the physics list, for the latest iteration of the code I’m testing the code at the moment, so I cannot confirm that the final version will work as shown here (e.g. in the event that I have misunderstood the initialisation sequence for materials/elements/isotopes associated with the geometry). Line 5: the default range for the model is 5GeV/nucleon to 1000 TeV/nucleon See next few slides if you want an explanation of what the Glauber data are. In short, they’re a real pain to deal with, but a necessary evil! The generation, saving, loading of Glauber data sets is controlled through the G4GlauberDataSetHandler (a static object) Line 8: This line defines a directory where the program can find pre-calculated Glauber data sets. The user can identify a number of directories where G4DPMJET2_5Model should look for appropriate Glauber data (Line 9). Line 10 & 11: User instructs handler to load data for specific projectiles : carbon on all materials used in the geometry, and specifically iron-56 on aluminium-27. Line 12: Not all data already exist, this instruction creates new data, but it does take a couple of minutes for each target isotope! Note: the boolean at the end of each list of arguments simply instructs whether any existing data for that projectile-target system which has been loaded by the handler can be overwritten or not if another set is found or created. Carbon on all materials in geometry Iron on aluminium magnesium on all materials in geometry
5
DPMJET-II.5 interface (Old Version)
G4ParticleDefinition *anIon = G4ParticleTable::GetParticleTable()->GetIonTable()-> GetIon(8,16) theGDSHandler->CreateGlauberData(anIon); theGDSHandler->SetSaveGlauberDataType(1); theGDSHandler->SetSaveGlauberDataDir (“/home/geant4/g4/geant4/data/GlauberDat”); theGDSHandler->SaveGlauberData(anIon); Or for saving lots of data: theGDSHandler->SaveAllGlauberData(); Set limits for the amount of Glauber data which can be generated or loaded. theGDSHandler->SetMaxGlauberDataSets (0,75); theGDSHandler->SetMaxGlauberDataSets (-1,1000); oxygen on all materials in geometry Save as parameterised (not full) data oxygen in any material Line 1 & 2: The user can create (or load) Glauber identifying the projectile and target by A and Z (as in previous lines) or using G4ParticleDefinition and G4Isotope objects. Lines 3-6: The user can save her data… Lines 7: Sets the limit of the number of full Glauber data sets (as used by the original DPMJET-II.5) to 75. The first argument of 0 designates “full Glauber data sets” but 1 would designate parameterised data sets. -1 means all and any Glauber data sets, so Line 8 says we can only load a maximum of 1000 sets of any type. During execution, if G4DPMJET2_5Model::ApplyYourself is called with a projectile-target system where the data aren’t loaded, provided the limits aren’t exceeded, the handler will search the directories to see if the data exist. If the data do not exist, they are calculated (again taking a couple of minutes). If there is no more space to load or create Glauber data, no interaction is assumed to have taken place - projectile continues propagating.
6
LOGICAL FLOW DIAGRAM – Old Version (part 1 of 2)
7
LOGICAL FLOW DIAGRAM – Old Version (part 2 of 2)
8
Review of Existing Sources of Error and Assessment of Approximations to Reduce Demand on No. Data Sets There are three sources of error already within the Glauber profile data as used/generated by DPMJET-II.5 Stochastic errors: generated by MC calculation (up to ~3%) MODB interpolation errors i.e. interpolation between different probabilities->impact parameters shown in page 2 (80% of data within error of ~10% for light proj/targets, rising to 90% for others) Errors in interpolation between different projectile momenta (90% with 3%) There is a better way: Only generate and store Glauber profile data as a function of Aprojectile and Atarget (typically <3% error) Instead of MODB interpolation, fit impact parameter as a function of integral probability: 200 datapoints -> 10 parameters ~300 Mbytes ASCII (uncompressed)
9
DPMJET-II.5 interface (New Version)
theExcitationHandler->SetEvaporation(theEvaporation); theExcitationHandler->SetFermiModel(theFermiBreakUp); theExcitationHandler->SetMaxAandZForFermiBreakUp(12, 6); G4DPMJET2_5Model *theDPM = new G4DPMJET2_5Model(theExcitationHandler); theDPM->SetMinEnergy(9.0*GeV); theDPM->SetVerboseLevel(2); G4GlaubAADataSetHandler *theGDSHandler = theDPM->GetGlauberDataSetHandler(); theGDSHandler->SetMaxGlauberDataSets (0,75); This is a explanation of how you would load the instantiate G4DPMJET2_5Model in the physics list, for the latest iteration of the code I’m testing the code at the moment, so I cannot confirm that the final version will work as shown here (e.g. in the event that I have misunderstood the initialisation sequence for materials/elements/isotopes associated with the geometry). Line 5: the default range for the model is 5GeV/nucleon to 1000 TeV/nucleon See next few slides if you want an explanation of what the Glauber data are. In short, they’re a real pain to deal with, but a necessary evil! The generation, saving, loading of Glauber data sets is controlled through the G4GlauberDataSetHandler (a static object) Line 8: This line defines a directory where the program can find pre-calculated Glauber data sets. The user can identify a number of directories where G4DPMJET2_5Model should look for appropriate Glauber data (Line 9). Line 10 & 11: User instructs handler to load data for specific projectiles : carbon on all materials used in the geometry, and specifically iron-56 on aluminium-27. Line 12: Not all data already exist, this instruction creates new data, but it does take a couple of minutes for each target isotope! Note: the boolean at the end of each list of arguments simply instructs whether any existing data for that projectile-target system which has been loaded by the handler can be overwritten or not if another set is found or created.
10
LOGICAL FLOW DIAGRAM – New Version (part 1 of 2)
11
LOGICAL FLOW DIAGRAM – New Version (part 2 of 2)
12
Data Generation Just completed re-writing of code; need to test/debug
Currently generating Glauber profiles for 2AP 58 and 2 AT 58 Also, as part of this process, generating cross-sections for all inelastic interactions and intend to produce updated cross-section class for E>2GeV/nuc Necessary since currently using Tripathi, Shen or Kox approximations, and Tripathi only seems to be tested to ~2GeV/nuc Taking ~4 CPU-months Need to extent to 2 AP 240 and 2 AT 240 Need for proton-nuclear interactions acknowledged
13
WP1 DPMJET-II.5 interface design constraints
Will NOT be able to instantiate G4DPMJET2_5Model more than once, due to reliance on FORTRAN subroutines In order to run G4DPMJET2_5Model, you require cernlib, kernlib, mathlib, Currently uses g77 + g2c Looking into gfortran
14
Back-up slides
15
Error in Glauber Profiles from Monte Carlo statistics (1 of 2)
16
Error in Glauber Profiles from Monte Carlo statistics (2 of 2)
17
Error in determination of impact parameter due to existing MODB interpolation
18
Errors from interpolating in projectile momentum
19
Each Curve Represents the Variations in Glauber profiles for fixed Aprojectile and Atarget but range of Zprojectile and Ztarget
20
Each Curve Represents the Variations in Glauber profiles for fixed Aprojectile and Atarget but range of Zprojectile and Ztarget
21
Each Curve Represents the Variations in Glauber profiles for fixed Aprojectile and Atarget but range of Zprojectile and Ztarget
22
Each Curve Represents the Variations in Glauber profiles for fixed Aprojectile and Atarget but range of Zprojectile and Ztarget
23
WP1 Parameterisation of Glauber data - inverse function
24
Errors due to use of parametric fit of impact parameter to integral probability
25
Without de-excitation With de-excitation
12C on GeV/n Without de-excitation With de-excitation protons protons These graphs show the spectrum of secondary protons and neutrons from specific nuclear-nuclear interactions. They are a sanity check to make sure the implementation is correct, rather than a full validation against experimental results. The pink curves are the G4DPMJET2_5Model results. Left curves: are without a G4ExcitationHandler, and here we compare with the standalone DPMJET-II.5 results (in blue) without any evaporation model Right curves: are with a G4ExcitationHandler declared, and results are compared with FLUKA (blue) using it’s integrated version of DPMJET-II.5. FLUKA uses a different de-excitation model, so it’s reasonable for there to be differences between G4 and FLUKA implementations in the “hump” around 10GeV. Previous results (e.g. shown at the Geant4 workshop at Hebden Bridge) had discrepancies due to: (1) I believe common block data were not being initialised (through FORTRAN BLOCK DATA statements) since the main program is C++. It was actually Gunter who told me that this was potentially a problem. It’s resolved quite easily by including a call to a FORTRAN subroutine during the instantiation of the G4DPMJET2_5Model class - the FORTRAN subroutine includes “EXTERNAL XYZ” where XYZ is the name of the BLOCK DATA routine, thus forcing the block data to be executed. (2) There’s about 600 lines of code in G4DPMJET2_5Model to initialise all of the variables. These had not be perfectly correct, and I had to double check the values as applied by the standalone version of DPMJET-II.5 and the CORSIKA (another FORTRAN program which uses DPMJET-II.5). (3) I goofed … in some cases I binned the spectra incorrectly, or switched on evaporation, when I thought I’d switched it off. Subsequent graphs in this sequence follow the same format, but are different reactions. neutrons neutrons
26
Without de-excitation With de-excitation
12C on GeV/n Without de-excitation With de-excitation protons protons I’m sure you don’t need all of these curves, so please select as you see fit, Dennis… neutrons neutrons
27
Without de-excitation With de-excitation
12C on GeV/n Without de-excitation With de-excitation protons protons neutrons neutrons
28
Without de-excitation With de-excitation
12C on GeV/n Without de-excitation With de-excitation protons protons neutrons neutrons
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.