diff --git a/macro/run/CMakeLists.txt b/macro/run/CMakeLists.txt index a6d75cba394be32b594fd91d19d254ac4c7fef0e..26f834b8880e5a070ba7dd1d6a2c29eb56023434 100644 --- a/macro/run/CMakeLists.txt +++ b/macro/run/CMakeLists.txt @@ -8,7 +8,7 @@ GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/run/run_reco.C) # ===== Copy the .rootrc file into the directory from which root is executed # --- Otherwise the rootalias file is not loaded -file(COPY ${CBMROOT_SOURCE_DIR}/macro/include/.rootrc +file(COPY ${CBMROOT_SOURCE_DIR}/macro/include/.rootrc DESTINATION ${CBMROOT_BINARY_DIR}/macro/run) # ============================================================================ @@ -31,7 +31,7 @@ math(EXPR nBeam "${nEvents} * 3") # ===== Define the different setups to be tested with ==================== if(($ENV{ctest_model} MATCHES Nightly) OR ($ENV{ctest_model} MATCHES Weekly)) - List(APPEND cbm_setup sis100_hadron sis100_electron sis100_muon_lmvm + List(APPEND cbm_setup sis100_hadron sis100_electron sis100_muon_lmvm sis100_muon_jpsi sis300_electron) else() List(APPEND cbm_setup sis100_electron sis100_muon_jpsi) @@ -40,9 +40,9 @@ endif() # ===== Cleanup the data directory ======================================= -add_test(run_cleanup ${CMAKE_COMMAND} +add_test(run_cleanup ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/scripts/cleanmacrodir.cmake) -set_tests_properties(run_cleanup PROPERTIES +set_tests_properties(run_cleanup PROPERTIES TIMEOUT ${timeOutTime} FIXTURES_SETUP cleanup ) @@ -53,15 +53,15 @@ set_tests_properties(run_cleanup PROPERTIES foreach(setup IN LISTS cbm_setup) # --- Short name for setup - if(setup MATCHES sis100_hadron) + if(setup MATCHES sis100_hadron) set(sname s100h) - elseif(setup MATCHES sis100_electron) + elseif(setup MATCHES sis100_electron) set(sname s100e) - elseif(setup MATCHES sis100_muon_lmvm) + elseif(setup MATCHES sis100_muon_lmvm) set(sname s100m2) - elseif(setup MATCHES sis100_muon_jpsi) + elseif(setup MATCHES sis100_muon_jpsi) set(sname s100m3) - elseif(setup MATCHES sis300_electron) + elseif(setup MATCHES sis300_electron) set(sname s300e) else() set(sname test) @@ -71,111 +71,137 @@ foreach(setup IN LISTS cbm_setup) # --- Transport run with collision events, using run_tra_file.C set(testname run_${sname}_tra_coll) set(input ${CBMROOT_SOURCE_DIR}/input/urqmd.auau.10gev.centr.root) - add_test(${testname} ${MACRO_DIR}/run_tra_file.sh + add_test(${testname} ${MACRO_DIR}/run_tra_file.sh \"${input}\" ${nEvents} \"data/${sname}_coll\" \"${setup}\") - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" FIXTURES_REQUIRED cleanup FIXTURES_SETUP "fixt_digi_ts_${setup};fixt_digi_ev_${setup}" RESOURCE_LOCK collParDb_${setup} ) - + # --- Test run_tra_sign # --- Transport run with signal events, using run_tra_file.C set(testname run_${sname}_tra_sign) set(input ${CBMROOT_SOURCE_DIR}/input/pluto.auau.8gev.omega.mpmm.0001.root) - add_test(${testname} ${MACRO_DIR}/run_tra_file.sh + add_test(${testname} ${MACRO_DIR}/run_tra_file.sh \"${input}\" ${nEvents} \"data/${sname}_sign\" \"${setup}\") - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" FIXTURES_REQUIRED cleanup FIXTURES_SETUP fixt_digi_ts_${setup} RESOURCE_LOCK signParDb_${setup} ) - + # --- Test run_tra_beam # --- Transport run with beam events, using run_tra_beam.C set(testname run_${sname}_tra_beam) - add_test(${testname} ${MACRO_DIR}/run_tra_beam.sh + add_test(${testname} ${MACRO_DIR}/run_tra_beam.sh ${nBeam} \"Au\" 10 -1 \"data/${sname}_beam\" \"${setup}\") - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" FIXTURES_REQUIRED cleanup FIXTURES_SETUP fixt_digi_ts_${setup} RESOURCE_LOCK beamParDb_${setup} ) - + # --- Test run_digi_ev # --- Detector response simulation, event-by-event, using run_digi.C set(testname run_${sname}_digi_ev) - add_test(${testname} ${MACRO_DIR}/run_digi.sh + add_test(${testname} ${MACRO_DIR}/run_digi.sh \"data/${sname}_coll\" -1 \"data/${sname}_ev\" -1.) - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" - FIXTURES_REQUIRED fixt_digi_ev_${setup} + FIXTURES_REQUIRED fixt_digi_ev_${setup} FIXTURES_SETUP fixt_reco_ev_${setup} RESOURCE_LOCK collParDb_${setup} ) - + # --- Test run_digi_ts # --- Detector response simulation, time-based, using run_digi.C set(testname run_${sname}_digi_ts) set(eventrate 1.e7) set(beamrate 1.e9) set(tslength 1.e6) - add_test(${testname} ${MACRO_DIR}/run_digi.sh - \"data/${sname}_coll\" -1 \"data/${sname}_ts\"\ ${eventrate} ${tslength} + add_test(${testname} ${MACRO_DIR}/run_digi.sh + \"data/${sname}_coll\" -1 \"data/${sname}_ts\"\ ${eventrate} ${tslength} \"data/${sname}_sign\" \"data/${sname}_beam\" ${beamrate}) - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" FIXTURES_REQUIRED fixt_digi_ts_${setup} FIXTURES_SETUP fixt_reco_ts_${setup} RESOURCE_LOCK collParDb_${setup} ) - + # --- Test run_reco_ev # --- Event-by-event reconstruction from event-based simulation set(testname run_${sname}_reco_ev) add_test(${testname} ${MACRODIR}/run_reco.sh \"data/${sname}_ev\" -1 0 \"\" \"Ideal\" \"${setup}\" \"data/${sname}_coll\") - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" - FIXTURES_REQUIRED fixt_reco_ev_${setup} + FIXTURES_REQUIRED fixt_reco_ev_${setup} RESOURCE_LOCK collParDb_${setup} ) - + # --- Test run_reco_ts_eb # --- Event-by-event reconstruction from time-based simulation set(testname run_${sname}_reco_ts_eb) add_test(${testname} ${MACRODIR}/run_reco.sh - \"data/${sname}_ts\" -1 0 \"data/${sname}_ts_eb\" \"Ideal\" \"${setup}\" + \"data/${sname}_ts\" -1 0 \"data/${sname}_ts_eb\" \"Ideal\" \"${setup}\" \"data/${sname}_coll\") - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" - FIXTURES_REQUIRED fixt_reco_ts_${setup} + FIXTURES_REQUIRED fixt_reco_ts_${setup} RESOURCE_LOCK collParDb_${setup} ) - + # --- Test run_reco_ts_tb # --- Time-based reconstruction from time-based simulation set(testname run_${sname}_reco_ts_tb) add_test(${testname} ${MACRODIR}/run_reco.sh - \"data/${sname}_ts\" -1 0 \"data/${sname}_ts_tb\" \"\" \"${setup}\" + \"data/${sname}_ts\" -1 0 \"data/${sname}_ts_tb\" \"\" \"${setup}\" \"data/${sname}_coll\") - set_tests_properties(${testname} PROPERTIES + set_tests_properties(${testname} PROPERTIES TIMEOUT ${timeOutTime} PASS_REGULAR_EXPRESSION "Macro finished successfully" - FIXTURES_REQUIRED fixt_reco_ts_${setup} + FIXTURES_REQUIRED fixt_reco_ts_${setup} RESOURCE_LOCK collParDb_${setup} ) - + + # --- Test run_reco_ev_real + # --- Event-by-event reconstruction from event-based simulation + set(testname run_${sname}_reco_ev_real) + add_test(${testname} ${MACRODIR}/run_reco.sh + \"data/${sname}_ev\" -1 0 \"data/${sname}_eb_eb_real\" \"Real\" \"${setup}\" + \"data/${sname}_coll\") + set_tests_properties(${testname} PROPERTIES + TIMEOUT ${timeOutTime} + PASS_REGULAR_EXPRESSION "Macro finished successfully" + FIXTURES_REQUIRED fixt_reco_ev_${setup} + RESOURCE_LOCK collParDb_${setup} + ) + + # --- Test run_reco_ts_eb_real + # --- Event-by-event reconstruction from time-based simulation + set(testname run_${sname}_reco_ts_eb_real) + add_test(${testname} ${MACRODIR}/run_reco.sh + \"data/${sname}_ts\" -1 0 \"data/${sname}_ts_eb_real\" \"Real\" \"${setup}\" + \"data/${sname}_coll\") + set_tests_properties(${testname} PROPERTIES + TIMEOUT ${timeOutTime} + PASS_REGULAR_EXPRESSION "Macro finished successfully" + FIXTURES_REQUIRED fixt_reco_ts_${setup} + RESOURCE_LOCK collParDb_${setup} + ) + endforeach(setup IN LISTS cbm_setup) # ============================================================================ @@ -183,7 +209,7 @@ endforeach(setup IN LISTS cbm_setup) -Install(FILES .rootrc run_transport.C run_digi.C run_reco_event.C check_overlaps.C +Install(FILES .rootrc run_transport.C run_digi.C run_reco_event.C check_overlaps.C DESTINATION share/cbmroot/macro/run ) Install(DIRECTORY modules DESTINATION share/cbmroot/macro/run) diff --git a/macro/run/run_reco.C b/macro/run/run_reco.C index bfdba83d3ae8bb80fea0b3435b2a2e4ae4b87f5f..7afd3921cc6dd13b1fb005164b66fa94fc88cf29 100644 --- a/macro/run/run_reco.C +++ b/macro/run/run_reco.C @@ -48,7 +48,7 @@ ** @param nTimeSlices Number of time-slices to process ** @param firstTimeSlice First time-slice (entry) to be processed ** @param output Name of output file (w/o extension .rec.root) - ** @param evBuildRaw Option for raw event building + ** @param sEvBuildRaw Option for raw event building ** @param setup Name of predefined geometry setup ** @param paramFile Parameter ROOT file (w/o extension .par.root) ** @@ -78,7 +78,7 @@ void run_reco(TString input = "", Int_t nTimeSlices = -1, Int_t firstTimeSlice = 0, TString output = "", - TString evBuildRaw = "", + TString sEvBuildRaw = "", TString setup = "sis100_electron", TString paramFile = "") { @@ -123,7 +123,7 @@ void run_reco(TString input = "", // ----- Some global switches ----------------------------------------- - Bool_t eventBased = !evBuildRaw.IsNull(); + Bool_t eventBased = !sEvBuildRaw.IsNull(); Bool_t useMvd = geo->IsActive(ECbmModuleId::kMvd); Bool_t useSts = geo->IsActive(ECbmModuleId::kSts); Bool_t useRich = geo->IsActive(ECbmModuleId::kRich); @@ -191,14 +191,14 @@ void run_reco(TString input = "", // ----- Raw event building from digis -------------------------------- if (eventBased) { - if (evBuildRaw.EqualTo("Ideal", TString::ECaseCompare::kIgnoreCase)) { + if (sEvBuildRaw.EqualTo("Ideal", TString::ECaseCompare::kIgnoreCase)) { FairTask* evBuildRaw = new CbmBuildEventsIdeal(); run->AddTask(evBuildRaw); std::cout << "-I- " << myName << ": Added task " << evBuildRaw->GetName() << std::endl; eventBased = kTRUE; } //? Ideal raw event building - else if (evBuildRaw.EqualTo("Real", TString::ECaseCompare::kIgnoreCase)) { + else if (sEvBuildRaw.EqualTo("Real", TString::ECaseCompare::kIgnoreCase)) { // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // /// to use 2018 version, uncomment this section and comment the next one /* @@ -252,7 +252,7 @@ void run_reco(TString input = "", eventBased = kTRUE; } //? Real raw event building else { - std::cerr << "-E- " << myName << ": Unknown option " << evBuildRaw + std::cerr << "-E- " << myName << ": Unknown option " << sEvBuildRaw << " for raw event building! Terminating macro execution." << std::endl; return;