eic / drich-dev Goto Github PK
View Code? Open in Web Editor NEWResources for EPIC dRICH Development
Resources for EPIC dRICH Development
allow for running simulations and reconstruction for athena
, in place of epic
main
for latest released): main
HEAD
for the most recent on git):drich-dev
and EICrecon
make
success
failure
so we can interrupt simulation jobs with SIGINT
(^C from keyboard); currently SIGINT
just kills simulate.py
and leaves the underlying npsim
job continuing
main
for latest released): main
HEAD
for the most recent on git):make
Successful build of the local code
2023-11-27T19:06:39.3888671Z ----- build lib/libRichGeo.so -----
2023-11-27T19:06:39.3902231Z g++ /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeo.cc /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoDRICH.cc /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoPFRICH.cc /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/ReadoutGeo.cc -shared -o lib/libRichGeo.so -g -Wno-deprecated -fPIC -m64 -fno-inline -Wno-write-strings -DSPDLOG_FMT_EXTERNAL -pthread -std=c++20 -m64 -I/opt/software/linux-debian12-x86_64_v2/gcc-12.2.0/root-6.28.06-p6t2pezsnnydlb2a5wrv4xdvzzvnqorg/include/root -I/home/runner/work/drich-dev/drich-dev/prefix/include -I/home/runner/work/drich-dev/drich-dev/prefix/include/IRT -Isrc -I/usr/local/include -I/home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo -L/opt/software/linux-debian12-x86_64_v2/gcc-12.2.0/root-6.28.06-p6t2pezsnnydlb2a5wrv4xdvzzvnqorg/lib/root -lGui -lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTVecOps -lTree -lTreePlayer -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lMultiProc -lROOTDataFrame -Wl,-rpath,/opt/software/linux-debian12-x86_64_v2/gcc-12.2.0/root-6.28.06-p6t2pezsnnydlb2a5wrv4xdvzzvnqorg/lib/root -pthread -lm -ldl -rdynamic -L/home/runner/work/drich-dev/drich-dev/prefix/lib -lIRT -ledm4eic -L/usr/local/lib -lDDCore -lDDRec -lpodio -lpodioRootIO -ledm4hep -lfmt -lspdlog -lG4global -lG4materials -lG4geometry -lG4persistency
2023-11-27T19:06:42.9913706Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeo.cc:22:
2023-11-27T19:06:42.9932479Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:20:9: error: redefinition of 'class richgeo::Sensor'
2023-11-27T19:06:42.9934092Z 20 | class Sensor {
2023-11-27T19:06:42.9934570Z | ^~~~~~
2023-11-27T19:06:42.9937777Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeo.h:21,
2023-11-27T19:06:42.9940197Z from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeo.cc:4:
2023-11-27T19:06:42.9943000Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:20:9: note: previous definition of 'class richgeo::Sensor'
2023-11-27T19:06:42.9944745Z 20 | class Sensor {
2023-11-27T19:06:42.9945288Z | ^~~~~~
2023-11-27T19:06:42.9952018Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:34:8: error: multiple definition of 'enum richgeo::radiator_enum'
2023-11-27T19:06:42.9953812Z 34 | enum radiator_enum {
2023-11-27T19:06:42.9954347Z | ^~~~~~~~~~~~~
2023-11-27T19:06:42.9955896Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:34:8: note: previous definition here
2023-11-27T19:06:42.9957266Z 34 | enum radiator_enum {
2023-11-27T19:06:42.9957803Z | ^~~~~~~~~~~~~
2023-11-27T19:06:42.9960080Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:41:22: error: redefinition of 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:42.9962423Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9963442Z | ^~~~~~~~~~~~
2023-11-27T19:06:42.9965729Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:41:22: note: 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:42.9968406Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9969420Z | ^~~~~~~~~~~~
2023-11-27T19:06:42.9971682Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:52:14: error: redefinition of 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:42.9973943Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9974897Z | ^~~~~~~~~~~
2023-11-27T19:06:42.9977072Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:52:14: note: 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:42.9979359Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9980374Z | ^~~~~~~~~~~
2023-11-27T19:06:42.9982621Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:62:14: error: redefinition of 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:42.9984988Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9986075Z | ^~~~~~~~~~~
2023-11-27T19:06:42.9988393Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:62:14: note: 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:42.9990589Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9991550Z | ^~~~~~~~~~~
2023-11-27T19:06:42.9993841Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:67:14: error: redefinition of 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:42.9996691Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:42.9997820Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:43.0000175Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:67:14: note: 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:43.0002872Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:43.0003993Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:48.2492781Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoDRICH.h:19,
2023-11-27T19:06:48.2494911Z from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoDRICH.cc:4:
2023-11-27T19:06:48.2497332Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:20:9: error: redefinition of 'class richgeo::Sensor'
2023-11-27T19:06:48.2498820Z 20 | class Sensor {
2023-11-27T19:06:48.2499277Z | ^~~~~~
2023-11-27T19:06:48.2500381Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeo.h:21,
2023-11-27T19:06:48.2502147Z from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoDRICH.h:18:
2023-11-27T19:06:48.2504553Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:20:9: note: previous definition of 'class richgeo::Sensor'
2023-11-27T19:06:48.2506106Z 20 | class Sensor {
2023-11-27T19:06:48.2506575Z | ^~~~~~
2023-11-27T19:06:48.2508415Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:34:8: error: multiple definition of 'enum richgeo::radiator_enum'
2023-11-27T19:06:48.2510009Z 34 | enum radiator_enum {
2023-11-27T19:06:48.2510571Z | ^~~~~~~~~~~~~
2023-11-27T19:06:48.2511927Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:34:8: note: previous definition here
2023-11-27T19:06:48.2513313Z 34 | enum radiator_enum {
2023-11-27T19:06:48.2513828Z | ^~~~~~~~~~~~~
2023-11-27T19:06:48.2516007Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:41:22: error: redefinition of 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:48.2518318Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2519309Z | ^~~~~~~~~~~~
2023-11-27T19:06:48.2521615Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:41:22: note: 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:48.2523977Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2525017Z | ^~~~~~~~~~~~
2023-11-27T19:06:48.2527576Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:52:14: error: redefinition of 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:48.2529910Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2530934Z | ^~~~~~~~~~~
2023-11-27T19:06:48.2533234Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:52:14: note: 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:48.2535649Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2536655Z | ^~~~~~~~~~~
2023-11-27T19:06:48.2539411Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:62:14: error: redefinition of 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:48.2541819Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2543147Z | ^~~~~~~~~~~
2023-11-27T19:06:48.2545391Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:62:14: note: 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:48.2547776Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2548759Z | ^~~~~~~~~~~
2023-11-27T19:06:48.2550948Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:67:14: error: redefinition of 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:48.2553334Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2554394Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:48.2556723Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:67:14: note: 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:48.2559260Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:48.2560366Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:53.5627511Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoPFRICH.cc:29:
2023-11-27T19:06:53.5630269Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:20:9: error: redefinition of 'class richgeo::Sensor'
2023-11-27T19:06:53.5631748Z 20 | class Sensor {
2023-11-27T19:06:53.5632208Z | ^~~~~~
2023-11-27T19:06:53.5633423Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeo.h:21,
2023-11-27T19:06:53.5635149Z from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoPFRICH.h:16,
2023-11-27T19:06:53.5636951Z from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/IrtGeoPFRICH.cc:4:
2023-11-27T19:06:53.5639420Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:20:9: note: previous definition of 'class richgeo::Sensor'
2023-11-27T19:06:53.5641016Z 20 | class Sensor {
2023-11-27T19:06:53.5641506Z | ^~~~~~
2023-11-27T19:06:53.5643324Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:34:8: error: multiple definition of 'enum richgeo::radiator_enum'
2023-11-27T19:06:53.5644853Z 34 | enum radiator_enum {
2023-11-27T19:06:53.5645353Z | ^~~~~~~~~~~~~
2023-11-27T19:06:53.5647079Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:34:8: note: previous definition here
2023-11-27T19:06:53.5648441Z 34 | enum radiator_enum {
2023-11-27T19:06:53.5648970Z | ^~~~~~~~~~~~~
2023-11-27T19:06:53.5651138Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:41:22: error: redefinition of 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:53.5653488Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5654495Z | ^~~~~~~~~~~~
2023-11-27T19:06:53.5656749Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:41:22: note: 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:53.5659163Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5660728Z | ^~~~~~~~~~~~
2023-11-27T19:06:53.5663104Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:52:14: error: redefinition of 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:53.5665911Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5666969Z | ^~~~~~~~~~~
2023-11-27T19:06:53.5669249Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:52:14: note: 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:53.5671634Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5672659Z | ^~~~~~~~~~~
2023-11-27T19:06:53.5674885Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:62:14: error: redefinition of 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:53.5677249Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5678268Z | ^~~~~~~~~~~
2023-11-27T19:06:53.5680435Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:62:14: note: 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:53.5682850Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5683932Z | ^~~~~~~~~~~
2023-11-27T19:06:53.5686534Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:67:14: error: redefinition of 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:53.5688950Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5690037Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:53.5692371Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:67:14: note: 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:53.5694925Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:53.5696042Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:59.2859065Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/ReadoutGeo.cc:26:
2023-11-27T19:06:59.2862010Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:20:9: error: redefinition of 'class richgeo::Sensor'
2023-11-27T19:06:59.2863120Z 20 | class Sensor {
2023-11-27T19:06:59.2863455Z | ^~~~~~
2023-11-27T19:06:59.2864365Z In file included from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/ReadoutGeo.h:24,
2023-11-27T19:06:59.2865687Z from /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/ReadoutGeo.cc:6:
2023-11-27T19:06:59.2867314Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:20:9: note: previous definition of 'class richgeo::Sensor'
2023-11-27T19:06:59.2868254Z 20 | class Sensor {
2023-11-27T19:06:59.2868529Z | ^~~~~~
2023-11-27T19:06:59.2869542Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:34:8: error: multiple definition of 'enum richgeo::radiator_enum'
2023-11-27T19:06:59.2870624Z 34 | enum radiator_enum {
2023-11-27T19:06:59.2871111Z | ^~~~~~~~~~~~~
2023-11-27T19:06:59.2872477Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:34:8: note: previous definition here
2023-11-27T19:06:59.2874220Z 34 | enum radiator_enum {
2023-11-27T19:06:59.2874626Z | ^~~~~~~~~~~~~
2023-11-27T19:06:59.2875865Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:41:22: error: redefinition of 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:59.2877405Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2877994Z | ^~~~~~~~~~~~
2023-11-27T19:06:59.2879205Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:41:22: note: 'std::string richgeo::RadiatorName(int, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:59.2880465Z 41 | static std::string RadiatorName(int num, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2881021Z | ^~~~~~~~~~~~
2023-11-27T19:06:59.2882232Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:52:14: error: redefinition of 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:59.2883491Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2884048Z | ^~~~~~~~~~~
2023-11-27T19:06:59.2885240Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:52:14: note: 'int richgeo::RadiatorNum(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:59.2887593Z 52 | static int RadiatorNum(std::string name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2888518Z | ^~~~~~~~~~~
2023-11-27T19:06:59.2890570Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:62:14: error: redefinition of 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:59.2892774Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2893712Z | ^~~~~~~~~~~
2023-11-27T19:06:59.2895763Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:62:14: note: 'int richgeo::RadiatorNum(const char*, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:59.2897164Z 62 | static int RadiatorNum(const char * name, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2897724Z | ^~~~~~~~~~~
2023-11-27T19:06:59.2898940Z /home/runner/work/drich-dev/drich-dev/prefix/include/services/geometry/richgeo/RichGeo.h:67:14: error: redefinition of 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)'
2023-11-27T19:06:59.2900269Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2900855Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:06:59.2902081Z /home/runner/work/drich-dev/drich-dev/EICrecon/src/services/geometry/richgeo/RichGeo.h:67:14: note: 'int richgeo::ParseRadiatorName(std::string, std::shared_ptr<spdlog::logger>)' previously defined here
2023-11-27T19:06:59.2903405Z 67 | static int ParseRadiatorName(std::string input, std::shared_ptr<spdlog::logger> m_log = nullptr) {
2023-11-27T19:06:59.2903994Z | ^~~~~~~~~~~~~~~~~
2023-11-27T19:07:01.5378096Z make: *** [Makefile:61: lib/libRichGeo.so] Error 1
Is your feature request related to a problem? Please describe.
Need continuous testing of everything.
Describe the solution you'd like
Add a CI workflow to run simulation, reconstruction, and benchmarks. PR reviews are proceeding slowly, so it would be very advantageous to run our own custom CI pipelines from here, configured to use our irt-algo
development branches. We also have some performance studies here in drich-dev
, that should be eventually migrated to reconstruction_benchmarks
, but in the meantime, we can run them in CI here too.
Describe alternatives you've considered
Continue running everything by hand and being surprised by sudden problems.
main
for latest released): main
simulate.py -t 6 -k 5 -n 30
(eta scan, used in CI)Likely other tests (set with -t
option) fail as well. simulate.py
generates a Geant4 macro file then runs it with npsim
; the tests that now (likely) fail have the following pattern:
/control/verbose 2
/run/initialize
/gps/verbose 2
/gps/particle pi+
/gps/number 1
/gps/position 0 0 0 cm
# eta scan, with varied azimuth for each eta bin
# eta=1.6 theta=22.828754832963863 deg
/gps/direction 0.2679262666315343 -0.2806111036063496 0.9216685544064713
/gps/ene/mono 4.862377599175745 GeV
/run/beamOn 1
/gps/direction 0.35670337364908533 -0.15260989170314782 0.9216685544064713
/gps/ene/mono 4.862377599175745 GeV
/run/beamOn 1
/gps/direction 0.355244674481362 -0.15597530917076796 0.9216685544064713
/gps/ene/mono 4.862377599175745 GeV
/run/beamOn 1
/gps/direction -0.3269047091825161 -0.2089506806224379 0.9216685544064713
/gps/ene/mono 4.862377599175745 GeV
/run/beamOn 1
/gps/direction 0.1315721232832751 0.3649874685424366 0.9216685544064713
/gps/ene/mono 4.862377599175745 GeV
/run/beamOn 1
...
An output file with many events, and stdout
from npsim
includes (irrelevant lines omitted):
ParticleHandler INFO +++ Event 0 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 1 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 2 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 3 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 4 Begin event action. Access event related information.
...
An output file with 1 event, and the corresponding stdout
is repeated for event 0
:
ParticleHandler INFO +++ Event 0 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 0 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 0 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 0 Begin event action. Access event related information.
ParticleHandler INFO +++ Event 0 Begin event action. Access event related information.
...
See example CI log
Some are at the top level, others are in scripts
. Some scripts are only meant to be called by another script.
build_*.sh
and check_*.sh
at the top level, since they are for general maintenancesimulate.py
and reconstruct.sh
scripts/
directory; it would be nice to categorize them but some scripts may fit in multiple categoriesscripts/src
ruby/
to scripts/src/
epic/templates/setup.sh.in
juggler
variablesLet's wait until it's clear how the EICrecon
environment will be configured before attempting to resolve this issue.
eic/epic#54 would mean that "main" XML files such as ecce.xml
and ecce_drich_only.xml
would only appear in a build prefix.
DETECTOR_PREFIX
, which points to this prefix (likely EIC_SHELL_PREFIX/share/epic
); already have done this on the dev-irt
branch
DETECTOR_PATH
will continue to point to ./epic
, so local compact files such as epic/compact/drich.xml
can still be edited on-the-flyDETECTOR_PREFIX
, on the other hand, will be for rendered XML files, and upstream ip6
filessimulate.py
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.