diff --git a/sim/transport/steer/CbmTransport.cxx b/sim/transport/steer/CbmTransport.cxx index c79d77955a8bce1d620d92bba44ab471358b90a3..b16713eb3d8b16f50f8910fe9767a3a3d4494151 100644 --- a/sim/transport/steer/CbmTransport.cxx +++ b/sim/transport/steer/CbmTransport.cxx @@ -33,6 +33,7 @@ #include "TGeant4.h" #include "TGeoManager.h" #include "TPythia6Decayer.h" +#include "TRandom.h" #include "TROOT.h" #include "TStopwatch.h" #include "TString.h" @@ -469,6 +470,9 @@ void CbmTransport::Run(Int_t nEvents) { // --- Timer TStopwatch timer; + // --- Set the global random seed + gRandom->SetSeed(fRandomSeed); + // --- Check presence of required requisites if (fOutFileName.IsNull()) LOG(fatal) << GetName() << ": No output file specified!"; diff --git a/sim/transport/steer/CbmTransport.h b/sim/transport/steer/CbmTransport.h index 5e927912d953a5f7616f8230f04fa66ae8ff6618..8ed7564a356b24e531ecf8fc2616caadcd873b93 100644 --- a/sim/transport/steer/CbmTransport.h +++ b/sim/transport/steer/CbmTransport.h @@ -304,6 +304,16 @@ public: Double_t phiMax = 2. * TMath::Pi()); + /** @brief Set global random seed value + ** @param seedValue + ** + ** This function allows to set the global seed value used + ** by ROOTs random number generator TRandom + **/ + void SetRandomSeed(const ULong_t seedValue) { + fRandomSeed = seedValue; + } + /** @brief Enable smearing of event vertex in x and y. ** @param choice If kTRUE(default), smearing is enabled. ** @@ -381,6 +391,8 @@ private: CbmGeant3Settings* fGeant3Settings {nullptr}; //! CbmGeant4Settings* fGeant4Settings {nullptr}; //! + ULong_t fRandomSeed {0}; + /** @brief Event generator initialisation **/ void InitEventGenerator(); @@ -403,7 +415,7 @@ private: /** @brief Create and register the setup modules **/ void RegisterSetup(); - ClassDef(CbmTransport, 3); + ClassDef(CbmTransport, 4); }; #endif /* CBMTRANSPORT_H */