Skip to content

Commit 2c0dd25

Browse files
committed
Use unique pointers for the simulation config
Changes the FairGenericVMCConfig and FairRunSim, as well as macros/files using the config.
1 parent 61fb012 commit 2c0dd25

File tree

23 files changed

+63
-58
lines changed

23 files changed

+63
-58
lines changed

base/sim/FairGenericVMCConfig.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ FairGenericVMCConfig::FairGenericVMCConfig()
2121
, fPostInitName("g4ConfigPostInit.C")
2222
{}
2323

24+
FairGenericVMCConfig::FairGenericVMCConfig(const FairGenericVMCConfig& config)
25+
: fPostInitFlag(config.fPostInitFlag)
26+
, fPostInitName(config.fPostInitName)
27+
{}
28+
2429
FairGenericVMCConfig::~FairGenericVMCConfig() {}
2530

2631
void FairGenericVMCConfig::Setup(const char* mcEngine)

base/sim/FairGenericVMCConfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class FairGenericVMCConfig
1919
{
2020
public:
2121
FairGenericVMCConfig();
22+
FairGenericVMCConfig(const FairGenericVMCConfig& config);
2223
virtual ~FairGenericVMCConfig();
2324

2425
virtual void Setup(const char* mcEngine);

base/steer/FairRunSim.cxx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ FairRunSim::FairRunSim(Bool_t isMaster)
7474
, fUserCuts("SetCuts.C")
7575
, fIsMT(kFALSE)
7676
, fImportTGeoToVMC(kTRUE)
77-
, fSimulationConfig(nullptr)
78-
7977
{
8078
if (fginstance) {
8179
Fatal("FairRun", "Singleton instance already exists.");
@@ -290,7 +288,7 @@ void FairRunSim::SetMCConfig()
290288
fSimSetup();
291289
} else {
292290
if (fSimulationConfig == nullptr) // RKRKRK COMMENT
293-
fSimulationConfig = new FairGenericVMCConfig();
291+
fSimulationConfig = std::make_unique<FairGenericVMCConfig>();
294292
fSimulationConfig->Setup(GetName());
295293
}
296294

base/steer/FairRunSim.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
#ifndef FAIRRUNSIM_H
99
#define FAIRRUNSIM_H
1010

11-
#include "FairIon.h" // for FairIon
12-
#include "FairMCApplication.h" // for FairMCApplication
13-
#include "FairParticle.h" // for FairParticle
14-
#include "FairRun.h" // for FairRun
11+
#include "FairGenericVMCConfig.h" // for FairGenericVMCConfig
12+
#include "FairIon.h" // for FairIon
13+
#include "FairMCApplication.h" // for FairMCApplication
14+
#include "FairParticle.h" // for FairParticle
15+
#include "FairRun.h" // for FairRun
1516

1617
#include <Rtypes.h> // for Bool_t, Double_t, Int_t, etc
1718
#include <TMCtls.h> // for multi-threading
@@ -24,7 +25,6 @@ class FairMCEventHeader;
2425
class FairMesh;
2526
class FairModule;
2627
class FairPrimaryGenerator;
27-
class FairGenericVMCConfig;
2828

2929
/**
3030
* Configure the Simulation session
@@ -178,8 +178,8 @@ class FairRunSim : public FairRun
178178
fUseSimSetupPostInitFunction = true;
179179
}
180180

181-
void SetSimulationConfig(FairGenericVMCConfig* tconf) { fSimulationConfig = tconf; }
182-
FairGenericVMCConfig* GetSimulationConfig() { return fSimulationConfig; }
181+
void SetSimulationConfig(std::unique_ptr<FairGenericVMCConfig>&& tconf) { fSimulationConfig = std::move(tconf); }
182+
FairGenericVMCConfig* GetSimulationConfig() { return fSimulationConfig.get(); }
183183

184184
void SetIsMT(Bool_t isMT) { fIsMT = isMT; }
185185
Bool_t IsMT() const { return fIsMT; }
@@ -234,7 +234,7 @@ class FairRunSim : public FairRun
234234
std::function<void()> fSimSetupPostInit; //! /** A user provided function to do sim setup
235235
//! / instead of using macros **/
236236
bool fUseSimSetupPostInitFunction = false;
237-
FairGenericVMCConfig* fSimulationConfig; //! /** Simulation configuration */
237+
std::unique_ptr<FairGenericVMCConfig> fSimulationConfig{}; //! /** Simulation configuration */
238238

239239
ClassDefOverride(FairRunSim, 2);
240240
};

examples/MQ/pixelDetector/macros/run_sim.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3", Int_t fileId = 0,
6161
// ----- Create simulation run ----------------------------------------
6262
auto run = std::make_unique<FairRunSim>();
6363
run->SetName(mcEngine); // Transport engine
64-
run->SetSimulationConfig(new FairVMCConfig());
65-
run->SetIsMT(isMT); // Multi-threading mode (Geant4 only)
64+
run->SetSimulationConfig(std::make_unique<FairVMCConfig>());
65+
run->SetIsMT(isMT); // Multi-threading mode (Geant4 only)
6666
run->SetSink(std::make_unique<FairRootFileSink>(outFile));
6767
FairRuntimeDb* rtdb = run->GetRuntimeDb();
6868
// ------------------------------------------------------------------------

examples/MQ/pixelDetector/src/devices/FairMQSimDevice.cxx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void FairMQSimDevice::InitTask()
6060
}
6161

6262
fRunSim->SetName(fTransportName.data());
63-
fRunSim->SetSimulationConfig(new FairVMCConfig());
63+
fRunSim->SetSimulationConfig(std::make_unique<FairVMCConfig>());
6464
fRunSim->SetIsMT(kFALSE);
6565

6666
if (fUserConfig.Length() > 0)
@@ -88,10 +88,11 @@ void FairMQSimDevice::InitializeRun()
8888
// ----- ask the fParamMQServer ------------------------------------
8989
// ----- receive the run number and sampler id ---------------------
9090
std::string* askForRunNumber = new std::string("ReportSimDevice");
91-
auto req(NewMessage(const_cast<char*>(askForRunNumber->c_str()),
92-
askForRunNumber->length(),
93-
[](void* /*data*/, void* object) { delete static_cast<std::string*>(object); },
94-
askForRunNumber));
91+
auto req(NewMessage(
92+
const_cast<char*>(askForRunNumber->c_str()),
93+
askForRunNumber->length(),
94+
[](void* /*data*/, void* object) { delete static_cast<std::string*>(object); },
95+
askForRunNumber));
9596
auto rep(NewMessage());
9697

9798
unsigned int runId = 0;

examples/advanced/Tutorial3/macro/run_sim.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void run_sim(Int_t nEvents = 100, TString mcEngine = "TGeant3")
3535
// ------------------------
3636

3737
fRun->SetName(mcEngine);
38-
fRun->SetSimulationConfig(new FairVMCConfig());
38+
fRun->SetSimulationConfig(std::make_unique<FairVMCConfig>());
3939

4040
TString outFile = "data/testrun_";
4141
outFile = outFile + mcEngine + ".root";

examples/advanced/Tutorial3/macro/run_sim_sep.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ void run_sim_sep(Int_t fileId, Int_t nEvents = 1000, TString mcEngine = "TGeant3
2323
// ------------------------
2424

2525
fRun->SetName(mcEngine);
26-
fRun->SetSimulationConfig(new FairVMCConfig());
26+
fRun->SetSimulationConfig(std::make_unique<FairVMCConfig>());
2727

2828
TString outfile = Form("data/testrun_%s_f%d.root", mcEngine.Data(), fileId);
2929
TString outparam = Form("data/testpar_%s_f%d.root", mcEngine.Data(), fileId);

examples/advanced/propagator/macros/runMC.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ int runMC(Int_t nEvents = 1000, TString mcEngine = "TGeant4", Bool_t isMT = fals
5757
// ----- Create simulation run ----------------------------------------
5858
FairRunSim* run = new FairRunSim();
5959
run->SetName(mcEngine); // Transport engine
60-
run->SetSimulationConfig(new FairVMCConfig());
61-
run->SetIsMT(isMT); // Multi-threading mode (Geant4 only)
60+
run->SetSimulationConfig(std::make_unique<FairVMCConfig>());
61+
run->SetIsMT(isMT); // Multi-threading mode (Geant4 only)
6262
run->SetSink(std::make_unique<FairRootFileSink>(outFile));
6363
FairRuntimeDb* rtdb = run->GetRuntimeDb();
6464
// ------------------------------------------------------------------------

examples/advanced/propagator/macros/runMM.C

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ int runMM(Int_t nEvents = 1000, TString mcEngine = "TGeant4", Bool_t isMT = fals
4343
// ----- Create simulation run ----------------------------------------
4444
FairRunSim* run = new FairRunSim();
4545
run->SetName(mcEngine); // Transport engine
46-
run->SetSimulationConfig(new FairVMCConfig());
46+
run->SetSimulationConfig(make_unique<FairVMCConfig>());
4747
run->SetIsMT(isMT); // Multi-threading mode (Geant4 only)
4848
run->SetSink(new FairRootFileSink(outFile)); // Output file
4949
FairRuntimeDb* rtdb = run->GetRuntimeDb();
@@ -74,7 +74,7 @@ int runMM(Int_t nEvents = 1000, TString mcEngine = "TGeant4", Bool_t isMT = fals
7474
FairBoxGenerator* pionBoxGen = new FairBoxGenerator(211, 2);
7575

7676
pionBoxGen->SetThetaRange(0, 30);
77-
pionBoxGen->SetPRange(1.,3.);
77+
pionBoxGen->SetPRange(1., 3.);
7878

7979
pionBoxGen->SetPhiRange(0., 360.); // 10.,10. when looking for PCA
8080
pionBoxGen->SetDebug(kTRUE);
@@ -84,7 +84,7 @@ int runMM(Int_t nEvents = 1000, TString mcEngine = "TGeant4", Bool_t isMT = fals
8484
FairBoxGenerator* muonBoxGen = new FairBoxGenerator(13, 2);
8585

8686
muonBoxGen->SetThetaRange(0, 30);
87-
muonBoxGen->SetPRange(1.,3.);
87+
muonBoxGen->SetPRange(1., 3.);
8888
muonBoxGen->SetPhiRange(0., 360.); // 10.,10. when looking for PCA
8989
muonBoxGen->SetDebug(kTRUE);
9090

0 commit comments

Comments
 (0)