Skip to content

Commit d59e2aa

Browse files
karabowidennisklein
authored andcommitted
Implement Finish function for generator
Solves the issue #1184.
1 parent eb1fb85 commit d59e2aa

File tree

4 files changed

+24
-5
lines changed

4 files changed

+24
-5
lines changed

base/sim/FairGenerator.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ class FairGenerator : public TNamed
5252
/**Initialize the generator if needed */
5353
virtual Bool_t Init() { return kTRUE; }
5454

55+
/**Finalize the generator if needed */
56+
virtual void Finish() { return; }
57+
5558
/** Clone this object (used in MT mode only) */
5659
virtual FairGenerator* CloneGenerator() const;
5760

base/sim/FairMCApplication.cxx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,10 @@ void FairMCApplication::FinishRun()
411411
fRootManager->CloseSink();
412412
}
413413

414+
if (fEvGen) {
415+
fEvGen->Finish();
416+
}
417+
414418
if (!fMC->IsMT()) {
415419
UndoGeometryModifications();
416420
}

base/sim/FairPrimaryGenerator.cxx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,15 +144,24 @@ FairPrimaryGenerator::FairPrimaryGenerator(const FairPrimaryGenerator &rhs)
144144
Bool_t FairPrimaryGenerator::Init()
145145
{
146146
/** Initialize list of generators*/
147-
for (Int_t i = 0; i < fGenList->GetEntries(); i++) {
148-
FairGenerator *gen = static_cast<FairGenerator *>(fGenList->At(i));
149-
if (gen) {
150-
gen->Init();
151-
}
147+
for (auto gen : TRangeDynCast<FairGenerator>(fGenList)) {
148+
if (!gen)
149+
continue;
150+
gen->Init();
152151
}
153152
return kTRUE;
154153
}
155154

155+
void FairPrimaryGenerator::Finish()
156+
{
157+
/** Finalize list of generators*/
158+
for (auto gen : TRangeDynCast<FairGenerator>(fGenList)) {
159+
if (!gen)
160+
continue;
161+
gen->Finish();
162+
}
163+
}
164+
156165
FairPrimaryGenerator::~FairPrimaryGenerator()
157166
{
158167

base/sim/FairPrimaryGenerator.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ class FairPrimaryGenerator : public TNamed
5252
/** Initialize the generater (if needed!)*/
5353
virtual Bool_t Init();
5454

55+
/** Finalize the generater (if needed!)*/
56+
virtual void Finish();
57+
5558
/** Register a generator derived from FairGenerator. **/
5659
void AddGenerator(FairGenerator *generator)
5760
{

0 commit comments

Comments
 (0)