Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4_DSTReader_EICDetector.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4_DSTReader_EICDetector.C
1 
2 
9 
10 
11 #include <string>
12 
13 void
14 G4DSTreader_EICDetector( const char * outputFile = "G4sPHENIXCells.root",//
15  int absorberactive = 1, //
16  bool do_svtx = true, //
17  bool do_cemc = true, //
18  bool do_hcalin = true, //
19  bool do_magnet = true, //
20  bool do_hcalout = true, //
21  bool do_cemc_twr = true, //
22  bool do_hcalin_twr = true, //
23  bool do_magnet = true, //
24  bool do_hcalout_twr = true, //
25  bool do_FGEM = true, //
26  bool do_EGEM = true, //
27  bool do_FHCAL = true, //
28  bool do_FHCAL_twr = true, //
29  bool do_FEMC = true, //
30  bool do_FEMC_twr = true, //
31  bool do_EEMC = true, //
32  bool do_EEMC_twr = true //
33  )
34 {
35 
37  const bool debug = false;
38 
40  const bool save_g4_raw = true;
41 
42  // save a comprehensive evaluation file
43  PHG4DSTReader* ana = new PHG4DSTReader(
44  string(outputFile) + string("_DSTReader.root"));
45  ana->set_save_particle(true);
46  ana->set_load_all_particle(false);
47  ana->set_load_active_particle(true);
48  ana->set_save_vertex(true);
49 
50  if (debug)
51  {
52  ana->Verbosity(2);
53  }
54 
55  if (save_g4_raw)
56  {
57  if (do_svtx)
58  {
59  ana->AddNode("SVTX");
60  }
61 
62  if (do_cemc)
63  {
64  ana->AddNode("CEMC");
65  if (absorberactive)
66  {
67  ana->AddNode("ABSORBER_CEMC");
68  ana->AddNode("CEMC_ELECTRONICS");
69  ana->AddNode("CEMC_SPT");
70  }
71  }
72 
73  if (do_hcalin)
74  {
75  ana->AddNode("HCALIN");
76  if (absorberactive)
77  ana->AddNode("ABSORBER_HCALIN");
78  }
79 
80  if (do_magnet)
81  {
82  if (absorberactive)
83  ana->AddNode("MAGNET");
84  }
85 
86  if (do_hcalout)
87  {
88  ana->AddNode("HCALOUT");
89  if (absorberactive)
90  ana->AddNode("ABSORBER_HCALOUT");
91  }
92 
93  if (do_FHCAL)
94  {
95  ana->AddNode("FHCAL");
96  if (absorberactive)
97  ana->AddNode("ABSORBER_FHCAL");
98  }
99 
100  if (do_FEMC)
101  {
102  ana->AddNode("FEMC");
103  if (absorberactive)
104  ana->AddNode("ABSORBER_FEMC");
105  }
106 
107  if (do_EEMC)
108  {
109  ana->AddNode("EEMC");
110  if (absorberactive)
111  ana->AddNode("ABSORBER_EEMC");
112  }
113 
114  if (do_FGEM)
115  {
116  ana->AddNode("FGEM_0");
117  ana->AddNode("FGEM_1");
118  ana->AddNode("FGEM_2");
119  ana->AddNode("FGEM_3");
120  ana->AddNode("FGEM_4");
121  }
122 
123  if (do_EGEM)
124  {
125  ana->AddNode("EGEM_0");
126  ana->AddNode("EGEM_1");
127  ana->AddNode("EGEM_2");
128  }
129 
130  ana->AddNode("BH_1");
131  ana->AddNode("BH_FORWARD_PLUS");
132  ana->AddNode("BH_FORWARD_NEG");
133 
134  }
135 
136  ana->set_tower_zero_sup(1e-6);
137  if (do_cemc_twr)
138  {
139  ana->AddTower("SIM_CEMC");
140  ana->AddTower("RAW_CEMC");
141  ana->AddTower("CALIB_CEMC");
142  }
143  if (do_hcalin_twr)
144  {
145  ana->AddTower("SIM_HCALIN");
146  ana->AddTower("RAW_HCALIN");
147  ana->AddTower("CALIB_HCALIN");
148  }
149  if (do_hcalout_twr)
150  {
151  ana->AddTower("SIM_HCALOUT");
152  ana->AddTower("RAW_HCALOUT");
153  ana->AddTower("CALIB_HCALOUT");
154  }
155  if (do_FHCAL_twr)
156  {
157  ana->AddTower("SIM_FHCAL");
158  ana->AddTower("RAW_FHCAL");
159  ana->AddTower("CALIB_FHCAL");
160  }
161  if (do_FEMC_twr)
162  {
163  ana->AddTower("SIM_FEMC");
164  ana->AddTower("RAW_FEMC");
165  ana->AddTower("CALIB_FEMC");
166  }
167  if (do_EEMC_twr)
168  {
169  ana->AddTower("SIM_EEMC");
170  ana->AddTower("RAW_EEMC");
171  ana->AddTower("CALIB_EEMC");
172  }
173 
174  // Jets disabled for now
175  // if (do_jet_reco)
176  // {
177  //
178  // ana->AddJet("AntiKt06JetsInPerfect");
179  // ana->AddJet("G4TowerJets_6");
180  // }
181  // if (embed_input_file && do_jet_reco)
182  // {
183  // ana->AddJet("G4TowerJets_combined_6");
184  // }
185 
187  se->registerSubsystem(ana);
188 }