G4DataQuestionnair =================== A quick survey to collect information about usage patterns of "Data Libraries"(*) in Geant4. Goal is to: 1. Ease setup and use by clients of Geant4 (currently require 1 environment variable per library), whilst supporting developers. 2. Identify and reduce any bottlenecks caused by reading of the many ASCII based files, in both single and multi threaded modes. (*) A directory containing 1-N file(s), possible organized hierarchically, that are read by code in Geant4 for the purposes of physics modelling. Currently known/used Data Libraries, plus listed purpose are: - G4NDL4.5, Neutron data files with thermal cross-sections - version 4.5 - G4EMLOW7.3, data files for low energy electromagnetic processes - version 7.3 - G4PhotonEvaporation5.2, data files for photon evaporation - version 5.2 - G4RadioactiveDecay5.2, data files for radioactive decay hadronic processes - version 5.2 - G4SAIDDATA1.1, data files from evaluated cross-sections in SAID data-base - version 1.1 - G4NEUTRONXS1.4, data files for evaluated neutron cross-sections on natural composition of elements - version 1.4 - G4ABLA3.1, data files for nuclear shell effects in INCL/ABLA hadronic mode - version 3.1 - G4PII1.3, data files for shell ionisation cross-sections - version 1.3 - G4ENSDFSTATE2.2, data files for nuclides properties - version 2.2 - G4RealSurface2.1.1, Optional data files for measured optical surface reflectance - version 2.1.1 - G4TENDL1.3.2, Optional data files for incident particles - version 1.3.2 Questions ========= If any question does not apply, just enter "N/A". 1. For the Geant4 categories your Working Group maintains, please list: i. The subcategories (if appropriate) and files/classes which access data libraries. This is too much. I can say "many" ii. In these files/classes, how is the data accessed? a) directly via `getenv`? Yes b) indirectly via C++ objects, if so which ones? No iii. For each access use above, please list the Geant4 states in which data may be accessed, e.g. on Physics List creation, once per event, during tracking. EM data normally read in master thread when processes are called via method BuildPhysicsTable(….), data are red per element used in geometry. Not EM but the data set for which I am responsible: Nuclear Gamma Level data partially is red in master thread with BuildPhysicsTable(…), partially in run time when corresponding isotope appears. The full size data is about order of magnitude larger than a sub-set used in LHC simulation. The data are red by element (for all its isotopes). An improvement may be to merge all isotope data files for given atom, so number of files will be dramatically reduced. Not EM but G4NEUTRONXS data set includes element and isotope data. Here it is difficult to reduce number of files. The advantage: all are red with BuildPhysicsTable(…) in the master thread. iv. What method is used to parse the data? Standard c++ stream std::ifstream v. What C++ object(s) are used to hold the read/parsed data in memory? G4PhysicsVector, G4ElementData, .... vi. Do you check or otherwise use the Data Library version? Not If so, give use cases (e.g new features added, file format/interface changes). 2. Please list any Data Libraries your Working Group maintains/develops/contributes to. G4LEDATA and G4RealSurface for EM For each library in this list, please provide i. How data is added/edited/removed? ii. Under what circumstances are the Major, Minor and Patch elements of the version number changed? This is decided not by us but Geant4, each dataset is a subject of tag for cmake.