diff --git a/macro/run/.gitignore b/macro/run/.gitignore index 6979d2cf3b6d87cbe943f48e45d4d90c2781afc9..fe1932d646e83d22cbe0c3a3cd9af735d273287c 100644 --- a/macro/run/.gitignore +++ b/macro/run/.gitignore @@ -2,3 +2,4 @@ all_*.par data/*.root data/qa/*.root CbmRecoUnpack.perf.root +gphysi.dat diff --git a/macro/run/CMakeLists.txt b/macro/run/CMakeLists.txt index e30e0ec8425505c78bc9ce861620ade5675a3c74..6b4d6b13d2af74b5a25b7062738a8f328faadca4 100644 --- a/macro/run/CMakeLists.txt +++ b/macro/run/CMakeLists.txt @@ -302,11 +302,11 @@ If(DEFINED ENV{RAW_DATA_PATH} ) Message( STATUS "Raw data path provided => Performing mCBM 2021 tests using tsa files in ${RAW_DATA_PATH}" ) ## Generate scripts + GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/run/create_mcbm_geo_setup.C ) # Geofile creation GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/run/run_unpack_tsa.C ) # Unpackers GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2021/check_timing_any.C ) # Check Timing mCBM 2021 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2022/mcbm_event.C ) # Event building mCBM 2022 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2022/mcbm_event_reco_L1.C ) # Reco + Event building + L1 mCBM 2022 - GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/mcbm/mcbm_transport.C) ## Run only if raw data files present: 2021 # =====> Set the timeouts depending on test model (profiling = slow) @@ -368,17 +368,6 @@ If(DEFINED ENV{RAW_DATA_PATH} ) endif() - ### Transport run to create geo file - Set(setup mcbm_beam_2022_05_23_nickel) - Set(testname mcbm_geo_${setup}) - Set(fixture_geo_run fixture_done_${testname}) - Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/mcbm/mcbm_transport.sh 1 \"${setup}\" \"${CBMROOT_BINARY_DIR}/macro/run/data/${setup}\" \"\" kTRUE) - Set_Tests_Properties(${testname} PROPERTIES - TIMEOUT "600" - PASS_REGULAR_EXPRESSION "Test Passed;All ok" - FIXTURES_REQUIRED run_cleanup - FIXTURES_SETUP ${fixture_geo_run} - ) # ==================================================================== ForEach(RUN 2391 2488 ) @@ -386,6 +375,17 @@ If(DEFINED ENV{RAW_DATA_PATH} ) If(EXISTS ${RAW_DATA_PATH}/${RUN}_first20Ts.tsa) Message( STATUS "Raw data file found, tests will be performed for mCBM run ${RUN}" ) + ### Transport run to create geo file + Set(testname mcbm_geo_${RUN}) + Set(fixture_geo_${RUN} fixture_done_${testname}) + Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/run/create_mcbm_geo_setup.sh ${RUN}) + Set_Tests_Properties(${testname} PROPERTIES + TIMEOUT "200" + PASS_REGULAR_EXPRESSION "Test Passed;All ok" + FIXTURES_REQUIRED run_cleanup + FIXTURES_SETUP ${fixture_geo_${RUN}} + ) + ## Define tests + dependencies ### Raw data analysis tests: unpacking Set(testname mcbm_unpack_${RUN}) @@ -415,15 +415,15 @@ If(DEFINED ENV{RAW_DATA_PATH} ) Set(testname mcbm_reco_2022_${RUN}) Set(fixture_reco_${RUN} fixture_done_${testname}) Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2022/mcbm_event_reco_L1.sh ${RUN} ${RECO_EVNTS_NB} - \"${CBMROOT_BINARY_DIR}/macro/run/data/\" \"${CBMROOT_BINARY_DIR}/macro/run/data/\" - -1 kFALSE kTRUE kTRUE kTRUE kTRUE kFALSE kTRUE kTRUE kFALSE kTRUE kTRUE kFALSE kFALSE - \"${CBMROOT_BINARY_DIR}/macro/run/data/${RUN}_first20Ts.digi.root\" - ) + \"${CBMROOT_BINARY_DIR}/macro/run/data/\" \"${CBMROOT_BINARY_DIR}/macro/run/data/\" + -1 kFALSE kTRUE kTRUE kTRUE kTRUE kFALSE kTRUE kTRUE kFALSE kTRUE kTRUE kFALSE kFALSE + \"${CBMROOT_BINARY_DIR}/macro/run/data/${RUN}_first20Ts.digi.root\" + ) Set_Tests_Properties(${testname} PROPERTIES TIMEOUT ${RAW_DATA_RECO_TO} FAIL_REGULAR_EXPRESSION "segmentation violation" PASS_REGULAR_EXPRESSION "Macro finished successfully" - FIXTURES_REQUIRED "${fixture_geo_run};${fixture_event_${RUN}}" + FIXTURES_REQUIRED "${fixture_geo_${RUN}};${fixture_event_${RUN}}" FIXTURES_SETUP ${fixture_reco_${RUN}} RESOURCE_LOCK mcbmRecoAllCoresBug ) diff --git a/macro/run/create_mcbm_geo_setup.C b/macro/run/create_mcbm_geo_setup.C new file mode 100644 index 0000000000000000000000000000000000000000..1b5a95c1c12a284762a82b2489a3d8aa4233d6d8 --- /dev/null +++ b/macro/run/create_mcbm_geo_setup.C @@ -0,0 +1,31 @@ +/* Copyright (C) 2022 Facility for Antiproton and Ion Research in Europe, Darmstadt + SPDX-License-Identifier: GPL-3.0-only + Authors: Pierre-Alain Loizeau [committer] */ + +void create_mcbm_geo_setup(uint64_t ulRunId) +{ + /// Do automatic mapping + std::string sSetupName = ""; + cbm::mcbm::ToForceLibLoad dummy; /// Needed to trigger loading of the library as no fct dict in ROOT6 and CLING + try { + sSetupName = cbm::mcbm::GetSetupFromRunId(ulRunId); + } + catch (const std::invalid_argument& e) { + std::cout << "Error in mapping from runID to setup name: " << e.what() << std::endl; + return; + } + std::string sPath = "data/" + sSetupName; + if (gSystem->AccessPathName(Form("%s.geo.root", sPath.data()))) { + std::string sSrcDir = gSystem->Getenv("VMCWORKDIR"); // top source directory + std::string sTransportMacro = sSrcDir + "/macro/mcbm/mcbm_transport.C"; + gROOT->LoadMacro(sTransportMacro.data()); + + std::string sTransportCall = "mcbm_transport( 1, \"" + sSetupName + "\", \"" + sPath + "\")"; + gInterpreter->ProcessLine(sTransportCall.data()); + } + else { + std::cout << "Geofile already existing for this run at: " << Form("%s.geo.root", sPath.data()) << std::endl; + std::cout << " Test passed" << std::endl; + std::cout << " All ok " << std::endl; + } +}