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