{"id":19155957,"url":"https://github.com/lyokha/cexmc","last_synced_at":"2025-08-26T16:33:33.525Z","repository":{"id":26363700,"uuid":"29812840","full_name":"lyokha/cexmc","owner":"lyokha","description":"original repository for Geant4 ChargeExchangeMC advanced example","archived":false,"fork":false,"pushed_at":"2020-03-13T12:59:28.000Z","size":2423,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-03T19:47:04.195Z","etag":null,"topics":["advanced-example","geant4","physics"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lyokha.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-25T12:11:26.000Z","updated_at":"2020-03-13T12:59:30.000Z","dependencies_parsed_at":"2022-08-30T09:31:22.715Z","dependency_job_id":null,"html_url":"https://github.com/lyokha/cexmc","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/lyokha%2Fcexmc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyokha%2Fcexmc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyokha%2Fcexmc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyokha%2Fcexmc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lyokha","download_url":"https://codeload.github.com/lyokha/cexmc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240241799,"owners_count":19770463,"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":["advanced-example","geant4","physics"],"created_at":"2024-11-09T08:32:49.093Z","updated_at":"2025-02-22T21:41:33.381Z","avatar_url":"https://github.com/lyokha.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n     =====================================================================\n                        Geant4 - Cexmc advanced example\n     =====================================================================\n\n                                    README\n                             -----------------------\n\nAuthor: A. Radkov (alexey.radkov@gmail.com)\n\n------\u003e Introduction\n\nCexmc stands for Charge EXchange Monte Carlo. The program was used to simulate\nreal experiments in Petersburg Nuclear Physics Institute (PNPI, Russia).\nDetailed User's Manual and explanatory images of the experimental setup can be\nfound in directory doc/ of this example.\n\n------\u003e Compilation\n\nBasic modules of Cexmc must compile with Geant4 version 9.4. Cexmc won't compile\nwith older versions of Geant4. Cexmc contains several optional modules which can\nbe enabled or disabled in the makefile by setting dedicated macros: most of them\nare listed in the beginning of the makefile and well commented. Modules may\ninvolve additional dependencies. In the following table the dependencies and\nrelated modules are shown.\n\nDependency        Requirement  Makefile Macro / Module      Comment\n--------------------------------------------------------------------------------\nboost::serialize  Optional      CEXMC_USE_PERSISTENCY /     used when\n                                Persistency                 (de)serialization of\n                                                            events and run data\n\nboost::split      Optional      CEXMC_USE_PERSISTENCY /     used when parsing\n                                Main                        command line\n                                                            arguments related to\n                                                            persistency module\n\nboost::spirit     Optional      CEXMC_USE_CUSTOM_FILTER /   used in custom\n                                Custom filter               filter engine\n\ncernlib           Optional      CEXMC_USE_GENBOD / Main     user can choose\n                                                            native GENBOD() as\n                                                            phase space\n                                                            generator\n\nCERN ROOT         Optional      CEXMC_USE_ROOT /            used in histograming\n                                Histograming\n\nCERN ROOT / Qt    Optional      CEXMC_USE_ROOTQT /          used for live\nbinding                         Histograming                histograms in Qt\n                                                            sessions\n--------------------------------------------------------------------------------\n\nThe persistency module is compatible with a pretty old boost::serialize version\n(compilation was tested under Scientific Linux 4.8 with gcc 3.4.6 and boost\nversion 1.32). Custom filter requires a newer boost as far as it uses modern\nboost::spirit library which requires boost version 1.37 and higher.\nPresence of CERN ROOT libraries is tested automatically in the makefile, but it\nis possible to disable or enable the histograming framework manually using flag\nCEXMC_USE_HISTOGRAMING in the makefile.\nCompilation of visualization modules and interactive sessions depends on whether\nstandard Geant4 macros like G4VIS_USE, G4UI_USE, G4UI_USE_TCSH and G4UI_USE_QT\nhave been set.\nIf boost is installed in a special path in your system then you may need to\nproperly set environment variables BOOST_INCLUDE_PATH and BOOST_LIBRARY_PATH\nwhich denote directories where boost include files and libraries are located.\n\n------\u003e Run modes\n\nRun modes are set from command-line options. To see available command-line\noptions type in terminal 'cexmc -h' or just 'cexmc'. Some run modes can be\nunavailable if certain modules were not compiled.\n\nHere is list of run modes categorized by type of interaction with user:\n\n   1. Batch mode. The simplest mode without any interaction with user.\n      No command line option is required.\n   2. Interactive mode. The program provides an interactive shell.\n      To run in the interactive mode command line option -i must be specified.\n   3. Graphical Qt mode. This mode is specified by command line option -g.\n\nList of run modes categorized by task:\n\n   1. Straight mode (or Monte Carlo mode). The program will read preinit and\n      init macros, then calculate acceptances and (optionally) save data in\n      project files. Project files are saved in a directory defined by\n      environment variable CEXMC_PROJECTS_DIR (or in the current directory if it\n      is not defined), name of the project is specified by option -w. Preinit\n      and init macros are set by options -p and -m respectively. In the straight\n      mode preinit macro must be specified explicitly, as far as desired\n      production model can be instantiated only in preinit phase.\n   2. Replay mode (or Read project mode). In this mode the program will not use\n      common Geant4's event loop. Instead, it will sequentially read event data\n      from an existing project and pass them into\n      CexmcEventAction::EndOfEventAction(). The read project is specified by\n      option -r. This mode is useful when user wants to recalculate data from an\n      existing project with different conditions (for example with different\n      reconstruction parameters) or apply a custom filter. The results of run\n      can be written again into another project.\n   3. Show results mode (or Output mode). The program will output various data\n      from an existing project (specified by option -r). Type(s) of data are\n      specified in option -o. For example, to show results of a run user can\n      specify -orun in command line. To show events, geometry and run results\n      user can specify -oevents,geom,run.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyokha%2Fcexmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyokha%2Fcexmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyokha%2Fcexmc/lists"}