{"id":17222710,"url":"https://github.com/amadio/g4run","last_synced_at":"2025-08-21T19:17:24.720Z","repository":{"id":40640070,"uuid":"257277271","full_name":"amadio/g4run","owner":"amadio","description":"Simple Generic Program to Run Geant4 Simulations","archived":false,"fork":false,"pushed_at":"2022-12-01T09:55:08.000Z","size":7017,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-22T23:28:45.003Z","etag":null,"topics":["geant4","performance-monitoring","performance-visualization"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amadio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-20T12:41:53.000Z","updated_at":"2023-01-31T18:06:10.000Z","dependencies_parsed_at":"2023-01-22T10:45:05.577Z","dependency_job_id":null,"html_url":"https://github.com/amadio/g4run","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadio%2Fg4run","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadio%2Fg4run/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadio%2Fg4run/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amadio%2Fg4run/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amadio","download_url":"https://codeload.github.com/amadio/g4run/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227915650,"owners_count":17839465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geant4","performance-monitoring","performance-visualization"],"created_at":"2024-10-15T04:06:09.981Z","updated_at":"2024-12-03T12:21:32.133Z","avatar_url":"https://github.com/amadio.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# g4run - simple generic runner for Geant4 simulations\n\nThis program takes as input a GDML file,  a primary particle type and its\ninitial energy (position is always the origin), an optional a reference physics\nlist (default is `FTFP_BERT`), and runs an event loop in batch mode or an\ninteractive session. Its intented use is in profiling and benchmarking Geant4\nperformance.\n\n# Installation\nThe g4run can be built on your system by either manually compiling geant4 or by using the Jenkins CI and CVMFS. \nTo get started with the build , you need to first set up the CVMFS and mount Geant4 in it and get the bare clone of Geant4 to g4run. \n\nPlease install the CVMFS on your machine reffering the [ CVMFS Installation Guide ](https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html). \nAfter installing it, you need to mount the Geant4 into the CVMFS\n```\n$ mount -t cvmfs geant4.cern.ch /cvmfs/geant4.cern.ch\n$ cvmfs_config probe\n\nProbing /cvmfs/geant4.cern.ch... OK\n```\nIf you get the last line as the output then your geant4 was successfully mounted on your CVMFS. \nGo ahead into the `/g4run` directory and then create a `g4run/git` directory inside it. Now get the bare clone of Geant4 into this directory for allowing the Jenkins Scripts later to identify the head from this. \n\nInside the `/g4run` directory\n```\n$ mkdir git\n$ cd git\n$ git clone --bare https://github.com/geant4/geant4.git\n```\nNext you need to take a look at the different versions available using the `$git tag` command into `git/geant4.git` and set the variables for the GIT_PREVIOUS_COMMIT and the GIT_COMMIT which will be pointing towards two different versions of Geant4. `env GIT_PREVIOUS_COMMIT=version1 GIT_COMMIT=version2 ci/jenkins.sh` where version1 and version2 are two git tags from the Geant4 git repository. \n\nAgain into the `/g4run` directory\n```\n$ env GIT_PREVIOUS_COMMIT=v11.0.0 GIT_COMMIT=v11.0.2 ci/jenkins.sh\n```\n\n# Running the Tests\nIn order to make perf work as expected, You need to modify some of your kernel parameters.\n\n```\n$ sudo sysctl kernel.kptr_restrict=0\n$ sudo sysctl kernel.perf_event_paranoid=-2\n```\nIn order to run the tests, You need to install and build   [Pythia](https://pythia.org/) as instructed. After successfully installing Pythia you are all set to run the tests using the command \n```$ ctest```. \nIn case if you need a detailed test logs then you can do it as verbose by running \n```$ ctest --VV```\nand now you can run the reports with \n```$ ctest -R report```\n\n### Visualizing the reports\n\nYou can already generate the perf reports by running the `ctest`. Further, Those perf reports are converted into the CSV data file with the help of scripts present in `g4run/perf/scripts` directory. For hierarchical data used for TreeMaps or Sunbursts, You can use the perf2treemap script.\n``` \n$ ./perf2csv filename.perf\n$ ./perf2treemap filename.perf\n```\nThis will generate the CSV files. \n\nMake a new data directory inside `g4run/perf/g4Web` Generate those CSVs to the path `g4run/perf/g4Web/data` and now from the `/g4Web` directory run the HTTP server\n\n`$ python -m http.server \u003cport-number\u003e`\n\nAnd now you can visualize your data file into the dedicated tab into the g4Web. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famadio%2Fg4run","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famadio%2Fg4run","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famadio%2Fg4run/lists"}