Example: TestEm0 - TestEm18 1) Example compiles, runs (?) Ok, besides some small problems: Em1, 10, 11, 12, 14, 15, 16, 17, 18 No histograms are created (TestEmN.in) while they are described in README. In some examples, histograms are generated when running a macro proposed in HOW TO START, but not always. Em2: when run/beamOn is called 2x, example breaks ! Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7bb50bb in tools::wroot::file::write(unsigned int&) () from /work/packages/geant4/geant4_ref-gnumakefile/lib/Linux-g++/libG4analysis.so Em6: when running TestEm6, the generated histograms are empty Em14: no macro compt.mac (used in HOW TO START) Em15: no macro compt.mac (used in HOW TO START) 2) External software documentation (if present) - 3) Classification of classes List classes specific to demonstrated features: See general recommendations List of classes which can be replaced with common ones: See general recommendations 4) Messenger classes List commands defined in this example: - List commands which do not work as expected: a) not at all Em1: /testem/event/drawTracks - misused in implementation Em2: /testem/event/drawTracks - no effect; also in other examples Em3: /testem/stepMax/ wrong directory description (histograms control) Em10: /gun/random b) in some G4 phase(s) ... Command used in macros but not defined: Em1: /testem/histo/setFileType hbook (brems.mac) Commands which are provided by G4 kernel: Em10: /gun/xvertex, yvertex, zvertex Commands which could be provided by G4 kernel: Em1: /testem/phys/getRange energy 5) Code review: - See also general recommendations - TestEm4: to demonstrate re-processing a run/event with restoring random engine status, it would be good to print some accounted value per event (eg. deposited energy etc.) so that one can see also in results that the same event (or run) was really re-processed. - TestEm5: comparing strings in a process implementation (StepMax) should be avoided - TestEm7: G4LindhardRobinsonPartition and more G4 classes defined here; why not it Geant4 directly? - TestEm9: In SteppingAction comparing strings !! though with a comment about inefficiency. In EventAction: Possibility to switch on tracking/verbose mode for (a) selected event(s) can be of general interest - TestEm10: Implementing commands in standard G4 command directory (as in /gun) may be misleading; it is better to use an example own directory, eg. /testem, like in the other examples In SteppingAction, StepCut comparing strings is inefficient, it should be changed to pointers to objects Class Em10SteppingActionMessenger is empty, it should be removed. Use of const_cast in Em10TrackingAction should be avoided (tracks should be killed in stacking action) No description of the physics models and processes defined in Em10PhysicsList . Em10XTRTransparentRegRadModel - a special model defined in the example; why this one is not provided directly in G4 ? - TestEm13 Run Action: variable name "tickness" - is it meant to be thickness? - TestEm17 Why MuNuclearBuilder, MuCrossSections are not provided directly in G4 ? 6) Documentation review: Your recommendations to example owner: - In several examples (eg. TestEm7) there are several macros provides but not documented in README - The documentation on scoring is often very limited or missing (TestEm9) - Sections HOW TO START is not corect if example is build via CMake (the path to the example executable and the build instructions are different) TestEm3: How to print stopping power. - where is this in the example? TestEm5: There are 21 *.mac files, but only 12 is documented in README TestEm6: The stacking action (killing all secondaries) is not documented in README TestEm7: the tallies volumes should be described in GEOMETRY DEFINITION TestEm8: no documentation on histogramming TestEm9: How to define cut-per-region - where is this in the example? Section on Histogramming not yet updated Macro csi.mac requires G4NEUTRONXSDATA set (not documented) Class EmAcceptance not documented TestEm10: Many UI commands implemented and not documented TestEm13: Why PHYSICS LIST & PHYSICS in different sections? TestEm17: 10 histigrams defined in HistoManager, but only 4 documented Commands not documented in README /testem/phys/addPhysics - Em0 /test/gun/rndm - Em1, Em3 /testem/run/acceptance,verbose - Em2 /testem/phys/SetAnnihiToHadronFac - Em6 /testem/stepmax - Em8 /testem/phys/* (except for addPhysics) - Em8 /testem/histo/* - Em8 /testem/det/acceptance* - Em9 /testem/phys/VertexCuts - Em9 /testem/phys/MuonCuts - Em9 /testem//histo/setcsdaRange - Em12 /testem/tracking/setfMaxStepLength - Em16 (in README there is setMaxStepLength; the 'f' probably introduced by mistake when applying coding conventions) /testem/phys/analyticSR - Em16 7) Comment on the adequacy in its physics domain (skip this item if you are not an expert in physics demonstrated in the example): - 8) "Users questions to be addressed in examples" List questions which can be naturally addressed in this example: -