Skip to content

Commit fb26057

Browse files
committed
save the WCSimRandomParameters options in WCSimRootOptions. To do this, more significant changes were required:
- moving of WCSimRandomGenerator enumeration to WCSimEnumerations & renaming as WCSimRandomGenerator_t - adding pointer to WCSimRandomParameters in WCSimRunAction
1 parent 7cf5055 commit fb26057

8 files changed

+60
-15
lines changed

WCSim.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ int main(int argc,char** argv)
9090
runManager->SetUserAction(myGeneratorAction);
9191

9292

93-
WCSimRunAction* myRunAction = new WCSimRunAction(WCSimdetector);
93+
WCSimRunAction* myRunAction = new WCSimRunAction(WCSimdetector, randomparameters);
9494

9595
//save all the options from WCSimTuningParameters & WCSimPhysicsListFactory
9696
//(set in tuning_parameters.mac & jobOptions*.mac)

include/WCSimEnumerations.hh

+7
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,19 @@ typedef enum EDigitizerType {
1515
kDigitizerSKI
1616
} DigitizerType_t;
1717

18+
typedef enum ERandomGeneratorType {
19+
RANDOM_E_RANLUX=1,
20+
RANDOM_E_RANECU=2,
21+
RANDOM_E_HEPJAMES=3
22+
} WCSimRandomGenerator_t;
23+
1824
class WCSimEnumerations
1925
{
2026
public:
2127

2228
static std::string EnumAsString(DigitizerType_t d);
2329
static std::string EnumAsString(TriggerType_t t);
30+
static std::string EnumAsString(WCSimRandomGenerator_t r);
2431
static TriggerType_t TriggerTypeFromString(std::string s);
2532

2633
};

include/WCSimRandomParameters.hh

+10-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
#ifndef WCSimRandomParameters_h
22
#define WCSimRandomParameters_h 1
33
#include "WCSimRandomMessenger.hh"
4+
#include "WCSimRootOptions.hh"
45
#include "CLHEP/Random/Random.h"
56
#include "CLHEP/Random/RanluxEngine.h"
67
#include "CLHEP/Random/JamesRandom.h"
78
#include "CLHEP/Random/RanecuEngine.h"
89

9-
typedef enum {
10-
RANDOM_E_RANLUX=1,
11-
RANDOM_E_RANECU=2,
12-
RANDOM_E_HEPJAMES=3
13-
} WCSimRandomGenerator;
14-
1510
class WCSimRandomParameters
1611
{
1712

@@ -24,8 +19,8 @@ public:
2419
}
2520
~WCSimRandomParameters() {delete RandomMessenger;}
2621

27-
WCSimRandomGenerator GetGenerator() {return generator; }
28-
void SetGenerator(WCSimRandomGenerator rng)
22+
WCSimRandomGenerator_t GetGenerator() {return generator; }
23+
void SetGenerator(WCSimRandomGenerator_t rng)
2924
{
3025
switch (rng)
3126
{
@@ -66,8 +61,14 @@ public:
6661
seed = iseed;
6762
}
6863

64+
void SaveOptionsToOutput(WCSimRootOptions * wcopt)
65+
{
66+
wcopt->SetRandomSeed(seed);
67+
wcopt->SetRandomGenerator(generator);
68+
}
69+
6970
private:
70-
WCSimRandomGenerator generator;
71+
WCSimRandomGenerator_t generator;
7172
int seed;
7273
WCSimRandomMessenger *RandomMessenger;
7374
};

include/WCSimRootOptions.hh

+13-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#include "TClonesArray.h"
1313
#include <string>
1414

15+
#include "WCSimEnumerations.hh"
16+
1517
class TDirectory;
1618
using std::string;
1719

@@ -113,8 +115,13 @@ public:
113115
//WCSimPrimaryGeneratorAction gets
114116
string GetVectorFileName() {return VectorFileName;}
115117
string GetGeneratorType() {return GeneratorType;}
116-
117-
118+
//WCSimRandomParameters sets
119+
void SetRandomSeed(int iRandomSeed) {RandomSeed = iRandomSeed;}
120+
void SetRandomGenerator(WCSimRandomGenerator_t iRandomGenerator) {RandomGenerator = iRandomGenerator;}
121+
//WCSimRandomParameters gets
122+
int GetRandomSeed() {return RandomSeed;}
123+
WCSimRandomGenerator_t GetRandomGenerator() {return RandomGenerator;}
124+
118125
private:
119126
//WCSimDetector*
120127
string DetectorName;
@@ -166,6 +173,10 @@ private:
166173
//WCSimPrimaryGeneratorAction
167174
string VectorFileName;
168175
string GeneratorType;
176+
177+
//WCSimRandomParameters
178+
int RandomSeed;
179+
WCSimRandomGenerator_t RandomGenerator;
169180

170181
ClassDef(WCSimRootOptions,1) //WCSimRootEvent structure
171182
};

include/WCSimRunAction.hh

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@
1111
#include "WCSimRootGeom.hh"
1212
#include "WCSimRootOptions.hh"
1313
#include "WCSimDetectorConstruction.hh"
14+
#include "WCSimRandomParameters.hh"
1415

1516
class G4Run;
1617
class WCSimRunActionMessenger;
1718

1819
class WCSimRunAction : public G4UserRunAction
1920
{
2021
public:
21-
WCSimRunAction(WCSimDetectorConstruction*);
22+
WCSimRunAction(WCSimDetectorConstruction*, WCSimRandomParameters*);
2223
~WCSimRunAction();
2324

2425
public:
@@ -54,6 +55,7 @@ private:
5455
WCSimRootGeom* wcsimrootgeom;
5556
WCSimRootOptions* wcsimrootoptions;
5657
WCSimDetectorConstruction* wcsimdetector;
58+
WCSimRandomParameters* wcsimrandomparameters;
5759

5860
int numberOfEventsGenerated;
5961
int numberOfTimesWaterTubeHit;

src/WCSimEnumerations.cc

+19
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,25 @@ std::string WCSimEnumerations::EnumAsString(TriggerType_t t)
3535
return "";
3636
}
3737

38+
std::string WCSimEnumerations::EnumAsString(WCSimRandomGenerator_t r)
39+
{
40+
switch(r) {
41+
case (RANDOM_E_RANLUX) :
42+
return "RANLUX";
43+
break;
44+
case (RANDOM_E_RANECU) :
45+
return "RANECU";
46+
break;
47+
case (RANDOM_E_HEPJAMES) :
48+
return "HEPJAMES";
49+
break;
50+
default:
51+
return "";
52+
break;
53+
}
54+
return "";
55+
}
56+
3857
TriggerType_t WCSimEnumerations::TriggerTypeFromString(std::string s)
3958
{
4059
for(int i = int(kTriggerUndefined)+1; i <= kTriggerFailure; i++) {

src/WCSimRootOptions.cc

+3
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,8 @@ void WCSimRootOptions::Print()
7272
<< "WCSimPrimaryGeneratorAction" << endl
7373
<< "\tVectorFileName: " << VectorFileName << endl
7474
<< "\tGeneratorType: " << GeneratorType << endl
75+
<< "WCSimPrimaryGeneratorAction" << endl
76+
<< "\tRandomSeed: " << RandomSeed << endl
77+
<< "\tRandomGenerator: " << WCSimEnumerations::EnumAsString(RandomGenerator) << endl
7578
<< endl;
7679
}

src/WCSimRunAction.cc

+4-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
int pawc_[500000]; // Declare the PAWC common
2626
struct ntupleStruct jhfNtuple;
2727

28-
WCSimRunAction::WCSimRunAction(WCSimDetectorConstruction* test)
28+
WCSimRunAction::WCSimRunAction(WCSimDetectorConstruction* test, WCSimRandomParameters* rand)
29+
: wcsimrandomparameters(rand)
2930
{
3031
ntuples = 1;
3132

@@ -90,8 +91,9 @@ void WCSimRunAction::BeginOfRunAction(const G4Run* /*aRun*/)
9091
optionsTree = new TTree("wcsimRootOptionsT","WCSim Options Tree");
9192
optionsTree->Branch("wcsimrootoptions", "WCSimRootOptions", &wcsimrootoptions, bufsize, 0);
9293

93-
//set detector options
94+
//set detector & random options
9495
wcsimdetector->SaveOptionsToOutput(wcsimrootoptions);
96+
wcsimrandomparameters->SaveOptionsToOutput(wcsimrootoptions);
9597
}
9698

9799
void WCSimRunAction::EndOfRunAction(const G4Run*)

0 commit comments

Comments
 (0)