From 7123e90bda43a616f7f279afe6aab5ee22b01cab Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Tue, 21 Mar 2023 16:53:34 +0100 Subject: [PATCH] Allow fixed random seed for all transport macros There were still some transport macros which did not allow to fix the random seed. This is fixed now such that all transport macros from the CI suite now run with a fixed random seed of 1. This allows to compare results of different software versions for identity. --- macro/dimuon/CMakeLists.txt | 3 ++- macro/dimuon/dimuon_transport.C | 3 ++- macro/mcbm/CMakeLists.txt | 3 ++- macro/mcbm/mcbm_transport.C | 4 +++- macro/much/CMakeLists.txt | 4 ++-- macro/much/run_transport.C | 4 +++- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/macro/dimuon/CMakeLists.txt b/macro/dimuon/CMakeLists.txt index 8a907ba74f..ba689e2f15 100644 --- a/macro/dimuon/CMakeLists.txt +++ b/macro/dimuon/CMakeLists.txt @@ -13,6 +13,7 @@ File(COPY ${CBMROOT_SOURCE_DIR}/parameters/much/TOF8gev_fitParam_sigma2.sis100_m # Define the number of events to run Set(NumEvents 1000) +Set(randomSeed 1) # Define the different setups to be tested List(APPEND cbm_setup sis100_muon_lmvm) @@ -36,7 +37,7 @@ ForEach(setup IN LISTS cbm_setup) # --- Transport run, using run_transport.C Set(testname dimuon_transport_${setup}) Set(fixture_dimuon_digi fixture_dimuon_digi_${testname}) - Add_Test(${testname} ${MACRO_DIR}/dimuon_transport.sh ${NumEvents} \"${setup}\" \"data/${setup}_test\" \"\" kTRUE) + Add_Test(${testname} ${MACRO_DIR}/dimuon_transport.sh ${NumEvents} \"${setup}\" \"data/${setup}_test\" \"\" kTRUE ${randomSeed}) Set_Tests_Properties(${testname} PROPERTIES TIMEOUT "600" PASS_REGULAR_EXPRESSION "Test Passed;All ok" diff --git a/macro/dimuon/dimuon_transport.C b/macro/dimuon/dimuon_transport.C index dcc342354c..fed7502812 100644 --- a/macro/dimuon/dimuon_transport.C +++ b/macro/dimuon/dimuon_transport.C @@ -40,7 +40,7 @@ //--------------------------------------------------- void dimuon_transport(Int_t nEvents = 1000, const char* setupName = "sis100_muon_lmvm", const char* output = "test", - const char* inputFile = "", Bool_t overwrite = kFALSE) + const char* inputFile = "", Bool_t overwrite = kFALSE, int randomSeed = 0) { // --- Logger settings ---------------------------------------------------- @@ -86,6 +86,7 @@ void dimuon_transport(Int_t nEvents = 1000, const char* setupName = "sis100_muon run.SetTarget("Gold", 0.025, 2.5); run.SetBeamPosition(0., 0., 0.1, 0.1); run.SetEngine(kGeant3); + run.SetRandomSeed(randomSeed); // ------------------------------------------------------------------------ run.Run(nEvents); diff --git a/macro/mcbm/CMakeLists.txt b/macro/mcbm/CMakeLists.txt index 4400925cd6..6e7ec126df 100644 --- a/macro/mcbm/CMakeLists.txt +++ b/macro/mcbm/CMakeLists.txt @@ -22,6 +22,7 @@ File(COPY ${CBMROOT_SOURCE_DIR}/macro/include/.rootrc DESTINATION ${CBMROOT_BINA # Define the number of events to run Set(NumEvents 10) Set(BeamAngle 25) +Set(randomSeed 1) # Define the different setups to be tested # Default should always be tested in all case @@ -53,7 +54,7 @@ ForEach(setup IN LISTS cbm_setup) Set(testname mcbm_transport_${setup}) Set(fixture_mcbm_transport fixture_${testname}) - Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/mcbm/mcbm_transport.sh ${NumEvents} \"${setup}\" \"data/${setup}_test\" \"\" kTRUE) + Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/mcbm/mcbm_transport.sh ${NumEvents} \"${setup}\" \"data/${setup}_test\" \"\" kTRUE ${randomSeed}) Set_Tests_Properties(${testname} PROPERTIES TIMEOUT "600" PASS_REGULAR_EXPRESSION "Test Passed;All ok" diff --git a/macro/mcbm/mcbm_transport.C b/macro/mcbm/mcbm_transport.C index 3ca8404f43..3f502c314c 100644 --- a/macro/mcbm/mcbm_transport.C +++ b/macro/mcbm/mcbm_transport.C @@ -43,7 +43,8 @@ void mcbm_transport(Int_t nEvents = 10, // const char* setupName = "mcbm_beam_2019_11", // const char* setupName = "mcbm_beam_2019_03", // const char* setupName = "sis18_mcbm_25deg_long", - const char* output = "data/test", const char* inputFile = "", Bool_t overwrite = kTRUE) + const char* output = "data/test", const char* inputFile = "", + Bool_t overwrite = kTRUE, int randomSeed = 0) { // --- Define the beam angle ---------------------------------------------- Double_t beamRotY = 25.; @@ -208,6 +209,7 @@ void mcbm_transport(Int_t nEvents = 10, run.SetBeamAngle(beamRotY * TMath::DegToRad(), 0.); if (nEvents <= 10) // store only for small number of events run.StoreTrajectories(); + run.SetRandomSeed(randomSeed); run.Run(nEvents); // ------------------------------------------------------------------------ diff --git a/macro/much/CMakeLists.txt b/macro/much/CMakeLists.txt index 17f10a509a..ac3045443d 100644 --- a/macro/much/CMakeLists.txt +++ b/macro/much/CMakeLists.txt @@ -10,6 +10,7 @@ GENERATE_CBM_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/run/run_reco_event.C ${MACR File(COPY ${CBMROOT_SOURCE_DIR}/macro/include/.rootrc DESTINATION ${CBMROOT_BINARY_DIR}/macro/much) Set(NumEvents 3) +Set(randomSeed 1) # ===== Cleanup the data directory ======================================= add_test(much_cleanup ${CMAKE_COMMAND} @@ -19,10 +20,9 @@ set_tests_properties(much_cleanup PROPERTIES FIXTURES_SETUP much_cleanup ) - # --- Transport of UrQMD events Set(testname much_transport) -add_test(${testname} ${MACRO_DIR}/run_transport.sh ${NumEvents} \"sis100_muon_lmvm\" \"data/muons\") +add_test(${testname} ${MACRO_DIR}/run_transport.sh ${NumEvents} \"sis100_muon_lmvm\" \"data/muons\" \"\" \"\" kFALSE ${randomSeed}) SET_TESTS_PROPERTIES(${testname} PROPERTIES TIMEOUT "1200" PASS_REGULAR_EXPRESSION "TestPassed;All ok" diff --git a/macro/much/run_transport.C b/macro/much/run_transport.C index 4fdbbf93d7..750892210a 100644 --- a/macro/much/run_transport.C +++ b/macro/much/run_transport.C @@ -40,7 +40,8 @@ //--------------------------------------------------- void run_transport(Int_t nEvents = 3, const char* setupName = "sis100_muon_lmvm", const char* output = "muons", - const char* inputFile = "", const char* plutoFile = "", Bool_t overwrite = kFALSE) + const char* inputFile = "", const char* plutoFile = "", Bool_t overwrite = kFALSE, + int randomSeed = 0) { // --- Logger settings ---------------------------------------------------- @@ -119,6 +120,7 @@ void run_transport(Int_t nEvents = 3, const char* setupName = "sis100_muon_lmvm" run.SetTarget("Gold", 0.025, 2.5); run.SetBeamPosition(0., 0., 0.1, 0.1); run.SetEngine(kGeant3); + run.SetRandomSeed(randomSeed); // run.GetStackFilter()->SetMinNofPoints(kSts,0); // run.GetStackFilter()->SetMinNofPoints(kMuch,0); // run.GetStackFilter()->SetMinNofPoints(kTrd,0); -- GitLab