Geant4  10.02.p03
DMXRunAction Class Reference

#include <DMXRunAction.hh>

Inheritance diagram for DMXRunAction:
Collaboration diagram for DMXRunAction:

Public Member Functions

 DMXRunAction ()
 
 ~DMXRunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
void SetsavehitsFile (G4String val)
 
void SetsavepmtFile (G4String val)
 
void SetsavehistFile (G4String val)
 
G4String GetsavehitsFile () const
 
G4String GetsavepmtFile () const
 
- Public Member Functions inherited from G4UserRunAction
 G4UserRunAction ()
 
virtual ~G4UserRunAction ()
 
virtual G4RunGenerateRun ()
 
void SetMaster (G4bool val=true)
 
G4bool IsMaster () const
 

Private Member Functions

void Book ()
 

Private Attributes

G4String savehitsFile
 
G4String savepmtFile
 
G4String savehistFile
 
DMXRunActionMessengerrunMessenger
 

Additional Inherited Members

- Protected Attributes inherited from G4UserRunAction
G4bool isMaster
 

Detailed Description

Definition at line 54 of file DMXRunAction.hh.

Constructor & Destructor Documentation

◆ DMXRunAction()

DMXRunAction::DMXRunAction ( )

Definition at line 58 of file DMXRunAction.cc.

59 {
61  savehitsFile = "hits.out";
62  savepmtFile = "pmt.out";
63  savehistFile = "dmx";
64 }
G4String savehistFile
Definition: DMXRunAction.hh:78
G4String savehitsFile
Definition: DMXRunAction.hh:76
G4String savepmtFile
Definition: DMXRunAction.hh:77
DMXRunActionMessenger * runMessenger
Definition: DMXRunAction.hh:80

◆ ~DMXRunAction()

DMXRunAction::~DMXRunAction ( )

Definition at line 68 of file DMXRunAction.cc.

69 {
70  delete runMessenger;
71  runMessenger = 0;
72 
73 }
DMXRunActionMessenger * runMessenger
Definition: DMXRunAction.hh:80

Member Function Documentation

◆ BeginOfRunAction()

void DMXRunAction::BeginOfRunAction ( const G4Run aRun)
virtual

Reimplemented from G4UserRunAction.

Definition at line 77 of file DMXRunAction.cc.

78 {
79  //Master mode or sequential
80  if (IsMaster())
81  G4cout << "### Run " << aRun->GetRunID() << " starts (master)." << G4endl;
82  else
83  G4cout << "### Run " << aRun->GetRunID() << " starts (worker)." << G4endl;
84 
85  // Book histograms and ntuples
86  Book();
87 
88 }
G4bool IsMaster() const
G4GLOB_DLL std::ostream G4cout
G4int GetRunID() const
Definition: G4Run.hh:76
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:

◆ Book()

void DMXRunAction::Book ( )
private

Definition at line 97 of file DMXRunAction.cc.

98 {
99  // Get/create analysis manager
100  G4AnalysisManager* man = G4AnalysisManager::Instance();
101 
102  // Open an output file
103  man->OpenFile(savehistFile);
104  man->SetFirstHistoId(1);
105  man->SetFirstNtupleId(1);
106 
107 
108  // ---- primary ntuple ------
109  // id==1
110  man->CreateNtuple("tree1", "Particle Source Energy");
111  man->CreateNtupleDColumn("energy");
112  man->FinishNtuple();
113 
114  // ---- secondary ntuple ------
115  //id==2
116  man->CreateNtuple("tree2", "Scintillation Hits Info");
117  man->CreateNtupleDColumn("Event");
118  man->CreateNtupleDColumn("e_prim");
119  man->CreateNtupleDColumn("tot_e");
120  man->CreateNtupleDColumn("s_hits");
121  man->CreateNtupleDColumn("xe_time");
122  man->CreateNtupleDColumn("num_ph");
123  man->CreateNtupleDColumn("avphtime");
124  man->CreateNtupleDColumn("firstpart");
125  man->CreateNtupleDColumn("firstparte");
126  man->CreateNtupleDColumn("gamma");
127  man->CreateNtupleDColumn("neutron");
128  man->CreateNtupleDColumn("posi");
129  man->CreateNtupleDColumn("elec");
130  man->CreateNtupleDColumn("other");
131  man->CreateNtupleDColumn("seed1");
132  man->CreateNtupleDColumn("seed2");
133  man->FinishNtuple();
134 
135  // ---- tertiary ntuple ------
136  //id==3
137  man->CreateNtuple("tree3", "PMT Hits Info");
138  man->CreateNtupleDColumn("event");
139  man->CreateNtupleDColumn("hits");
140  man->CreateNtupleDColumn("xpos");
141  man->CreateNtupleDColumn("ypos");
142  man->CreateNtupleDColumn("zpos");
143  man->FinishNtuple();
144 
145  // Creating 1-dimensional histograms
146  man->CreateH1("h1","Source Energy /keV", 1000,0.,10000.);
147  man->CreateH1("h2","Energy Deposit /keV", 1000,0.,1000.);
148  man->CreateH1("h3","Nuclear Recoil Edep /keV", 100,0.,100.);
149  man->CreateH1("h4","Number of Photons - LowE", 200,0.,200.);
150  man->CreateH1("h5","Number of Photons - HighE", 100,0.,10000.);
151  man->CreateH1("h6","Average Photon Arrival/ns", 200,0.,200.);
152  man->CreateH1("h7","1st event Photon Arrival", 200,0.,200.);
153  man->CreateH1("h8","Gamma Energy Deposit/keV", 1000,0.,1000.);
154  man->CreateH1("h9","Neutron Ener Deposit/keV", 1000,0.,1000.);
155  man->CreateH1("h10","Electron Ener Deposit/keV",1000,0.,1000.);
156  man->CreateH1("h11","Positron Ener Deposit/keV",1000,0.,1000.);
157  man->CreateH1("h12","Other Ener Deposit/keV", 1000,0.,1000.);
158 
159  //Creating 2-dimensional histograms
160  man->CreateH2("hh1","PMT Hit Pattern",
161  300 ,-30.,30.,300,-30.,30.);
162  man->CreateH2("hh2","1st event PMT Hit Pattern",
163  300 ,-30.,30.,300,-30.,30.);
164 
165  return;
166 
167 }
G4bool SetFirstHistoId(G4int firstId)
G4int CreateH1(const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
G4int CreateNtuple(const G4String &name, const G4String &title)
G4bool OpenFile(const G4String &fileName="")
G4String savehistFile
Definition: DMXRunAction.hh:78
G4bool SetFirstNtupleId(G4int firstId)
G4int CreateNtupleDColumn(const G4String &name)
G4int CreateH2(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
Here is the call graph for this function:
Here is the caller graph for this function:

◆ EndOfRunAction()

void DMXRunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

Definition at line 92 of file DMXRunAction.cc.

93 {;}

◆ GetsavehitsFile()

G4String DMXRunAction::GetsavehitsFile ( ) const
inline

Definition at line 69 of file DMXRunAction.hh.

69 {return savehitsFile;};
G4String savehitsFile
Definition: DMXRunAction.hh:76
Here is the caller graph for this function:

◆ GetsavepmtFile()

G4String DMXRunAction::GetsavepmtFile ( ) const
inline

Definition at line 70 of file DMXRunAction.hh.

70 {return savepmtFile;};
G4String savepmtFile
Definition: DMXRunAction.hh:77
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetsavehistFile()

void DMXRunAction::SetsavehistFile ( G4String  val)
inline

Definition at line 67 of file DMXRunAction.hh.

67 { savehistFile = val;};
G4String savehistFile
Definition: DMXRunAction.hh:78
Here is the caller graph for this function:

◆ SetsavehitsFile()

void DMXRunAction::SetsavehitsFile ( G4String  val)
inline

Definition at line 65 of file DMXRunAction.hh.

65 { savehitsFile = val;};
G4String savehitsFile
Definition: DMXRunAction.hh:76
Here is the caller graph for this function:

◆ SetsavepmtFile()

void DMXRunAction::SetsavepmtFile ( G4String  val)
inline

Definition at line 66 of file DMXRunAction.hh.

66 { savepmtFile = val;};
G4String savepmtFile
Definition: DMXRunAction.hh:77
Here is the caller graph for this function:

Member Data Documentation

◆ runMessenger

DMXRunActionMessenger* DMXRunAction::runMessenger
private

Definition at line 80 of file DMXRunAction.hh.

◆ savehistFile

G4String DMXRunAction::savehistFile
private

Definition at line 78 of file DMXRunAction.hh.

◆ savehitsFile

G4String DMXRunAction::savehitsFile
private

Definition at line 76 of file DMXRunAction.hh.

◆ savepmtFile

G4String DMXRunAction::savepmtFile
private

Definition at line 77 of file DMXRunAction.hh.


The documentation for this class was generated from the following files: