ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PurgMagRunAction.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PurgMagRunAction.cc
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // Code developed by:
27 // S.Larsson
28 //
29 // ******************************
30 // * *
31 // * PurgMagRunAction.cc *
32 // * *
33 // ******************************
34 //
35 //
36 
37 #include "PurgMagRunAction.hh"
38 
39 #include "G4Run.hh"
40 #include "G4UnitsTable.hh"
41 #include "Randomize.hh"
42 
44 
45 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
46 
48 {
49  saveRndm = 1;
50 }
51 
52 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
53 
55 {}
56 
57 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
58 
60 {
61  //Analysis must be handled by master and workers
62  Book();
63 
64  if (IsMaster())
65  G4cout << "---> Run " << aRun->GetRunID() << " (master) start."
66  << G4endl;
67  else
68  G4cout << "---> Run " << aRun->GetRunID() << " (worker) start."
69  << G4endl;
70 
71 
72  // save Rndm status
73  if (saveRndm > 0 && IsMaster())
74  {
75  G4Random::showEngineStatus();
76  G4Random::saveEngineStatus("beginOfRun.rndm");
77  }
78 
79 }
80 
81 
82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
83 
85 {
86  if (IsMaster())
87  G4cout << "Total number of event = " << aRun->GetNumberOfEvent() << G4endl;
88  else
89  G4cout << "Partial number of event in this worker = "
90  << aRun->GetNumberOfEvent() << G4endl;
91 
92 
93  if (IsMaster())
94  {
95  // save Rndm status
96  if (saveRndm == 1)
97  {
98  G4Random::showEngineStatus();
99  G4Random::saveEngineStatus("endOfRun.rndm");
100  }
101  }
102 }
103 
104 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
105 
107 {
108  // Get/create analysis manager
110 
111  // Open an output file
112  man->OpenFile("purgmag");
113  man->SetFirstNtupleId(1);
114 
115  // Create 1st ntuple (id = 1)
116  //
117  man->CreateNtuple("n101", "Electron");
118  man->CreateNtupleDColumn("ex");
119  man->CreateNtupleDColumn("ey");
120  man->CreateNtupleDColumn("ez");
121  man->CreateNtupleDColumn("ee");
122  man->CreateNtupleDColumn("epx");
123  man->CreateNtupleDColumn("epy");
124  man->CreateNtupleDColumn("epz");
125  man->FinishNtuple();
126  G4cout << "Ntuple-1 created" << G4endl;
127 
128  // Create 2nd ntuple (id = 2)
129  //
130  man->CreateNtuple("n102", "Gamma");
131  man->CreateNtupleDColumn("gx");
132  man->CreateNtupleDColumn("gy");
133  man->CreateNtupleDColumn("gz");
134  man->CreateNtupleDColumn("ge");
135  man->CreateNtupleDColumn("gpx");
136  man->CreateNtupleDColumn("gpy");
137  man->CreateNtupleDColumn("gpz");
138  man->FinishNtuple();
139  G4cout << "Ntuple-2 created" << G4endl;
140 
141  // Create 3rd ntuple (id = 3)
142  //
143  man->CreateNtuple("n103", "Positron");
144  man->CreateNtupleDColumn("px");
145  man->CreateNtupleDColumn("py");
146  man->CreateNtupleDColumn("pz");
147  man->CreateNtupleDColumn("pe");
148  man->CreateNtupleDColumn("ppx");
149  man->CreateNtupleDColumn("ppy");
150  man->CreateNtupleDColumn("ppz");
151  man->FinishNtuple();
152  G4cout << "Ntuple-3 created" << G4endl;
153 
154  return;
155 }
156 
157 
158