Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4_DSTReader.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4_DSTReader.C
1 #ifndef MACRO_G4DSTREADER_C
2 #define MACRO_G4DSTREADER_C
3 
4 #include <GlobalVariables.C>
5 
6 #include <G4_Mbd.C>
7 #include <G4_BlackHole.C>
8 #include <G4_CEmc_Spacal.C>
9 #include <G4_EPD.C>
10 #include <G4_HcalIn_ref.C>
11 #include <G4_HcalOut_ref.C>
12 #include <G4_TrkrVariables.C>
13 /*
14 #include <G4_Intt.C>
15 #include <G4_Magnet.C>
16 #include <G4_Mvtx.C>
17 #include <G4_TPC.C>
18 */
19 #include <g4eval/PHG4DSTReader.h>
20 
21 #include <fun4all/Fun4AllServer.h>
22 
23 R__LOAD_LIBRARY(libg4eval.so)
24 
25 
26 
33 
34 
35 namespace Enable
36 {
37  bool DSTREADER = false;
39 } // namespace Enable
40 
41 namespace G4DSTREADER
42 {
43  bool save_g4_raw = true;
44  double tower_zero_supp = 1.e-6;
45 } // namespace G4DSTREADER
46 
47 void G4DSTreaderInit() {}
48 
49 void G4DSTreader(const string &outputFile = "G4sPHENIXCells.root")
50 {
52 
53  // save a comprehensive evaluation file
54  PHG4DSTReader *ana = new PHG4DSTReader(outputFile);
55  ana->set_save_particle(true);
56  ana->set_load_all_particle(false);
57  ana->set_load_active_particle(true);
58  ana->set_save_vertex(true);
59 
60  ana->Verbosity(verbosity);
61 
63  {
64  if (Enable::MVTX)
65  {
66  ana->AddNode("MVTX");
67  }
68  if (Enable::INTT)
69  {
70  ana->AddNode("INTT");
71  }
72  if (Enable::TPC)
73  {
74  ana->AddNode("TPC");
75  }
76  if (Enable::MBD)
77  {
78  ana->AddNode("MBD");
79  }
80 
81  if (Enable::CEMC)
82  {
83  ana->AddNode("CEMC");
85  {
86  ana->AddNode("ABSORBER_CEMC");
87  ana->AddNode("CEMC_ELECTRONICS");
88  ana->AddNode("CEMC_SPT");
89  }
90  }
91 
92  if (Enable::HCALIN)
93  {
94  ana->AddNode("HCALIN");
96  {
97  ana->AddNode("ABSORBER_HCALIN");
98  }
99  }
100 
101  if (Enable::MAGNET)
102  {
104  {
105  ana->AddNode("MAGNET");
106  }
107  }
108 
109  if (Enable::HCALOUT)
110  {
111  ana->AddNode("HCALOUT");
113  {
114  ana->AddNode("ABSORBER_HCALOUT");
115  }
116  }
117 
118  if (Enable::EPD)
119  {
120  ana->AddNode("EPD");
121  }
122 
123  if (Enable::BLACKHOLE)
124  {
125  ana->AddNode("BH_1");
126  ana->AddNode("BH_FORWARD_PLUS");
127  ana->AddNode("BH_FORWARD_NEG");
128  }
129  }
130 
132  if (Enable::CEMC_TOWER)
133  {
134  ana->AddTower("SIM_CEMC");
135  ana->AddTower("RAW_CEMC");
136  ana->AddTower("CALIB_CEMC");
137  }
139  {
140  ana->AddTower("SIM_HCALIN");
141  ana->AddTower("RAW_HCALIN");
142  ana->AddTower("CALIB_HCALIN");
143  }
145  {
146  ana->AddTower("SIM_HCALOUT");
147  ana->AddTower("RAW_HCALOUT");
148  ana->AddTower("CALIB_HCALOUT");
149  }
150  // Jets disabled for now
151  // if (do_jet_reco)
152  // {
153  //
154  // ana->AddJet("AntiKt06JetsInPerfect");
155  // ana->AddJet("G4TowerJets_6");
156  // }
157  // if (embed_input_file && do_jet_reco)
158  // {
159  // ana->AddJet("G4TowerJets_combined_6");
160  // }
161 
163  se->registerSubsystem(ana);
164 }
165 #endif