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 
2 
9 
10 
11 #include <string>
12 
13 void
14 G4DSTreader( const char * outputFile = "G4sPHENIXCells.root",//
15  int absorberactive = 1, //
16  bool do_svtx = true, //
17  bool do_pstof = true, //
18  bool do_cemc = true, //
19  bool do_hcalin = true, //
20  bool do_magnet = true, //
21  bool do_hcalout = true, //
22  bool do_cemc_twr = true, //
23  bool do_hcalin_twr = true, //
24  bool do_magnet = true, //
25  bool do_hcalout_twr = true //
26  )
27 {
28 
30  const bool debug = false;
31 
33  const bool save_g4_raw = true;
34 
35  // save a comprehensive evaluation file
36  PHG4DSTReader* ana = new PHG4DSTReader(
37  string(outputFile) + string("_DSTReader.root"));
38  ana->set_save_particle(true);
39  ana->set_load_all_particle(false);
40  ana->set_load_active_particle(true);
41  ana->set_save_vertex(true);
42 
43  if (debug)
44  {
45  ana->Verbosity(2);
46  }
47 
48  if (save_g4_raw)
49  {
50  if (do_svtx)
51  {
52  ana->AddNode("SVTX");
53  }
54 
55  if (do_pstof)
56  {
57  ana->AddNode("PSTOF_0");
58  }
59 
60  if (do_cemc)
61  {
62  ana->AddNode("CEMC");
63  if (absorberactive)
64  {
65  ana->AddNode("ABSORBER_CEMC");
66  ana->AddNode("CEMC_ELECTRONICS");
67  ana->AddNode("CEMC_SPT");
68  }
69  }
70 
71  if (do_hcalin)
72  {
73  ana->AddNode("HCALIN");
74  if (absorberactive)
75  ana->AddNode("ABSORBER_HCALIN");
76  }
77 
78  if (do_magnet)
79  {
80  if (absorberactive)
81  ana->AddNode("MAGNET");
82  }
83 
84  if (do_hcalout)
85  {
86  ana->AddNode("HCALOUT");
87  if (absorberactive)
88  ana->AddNode("ABSORBER_HCALOUT");
89  }
90 
91 
92  ana->AddNode("BH_1");
93  ana->AddNode("BH_FORWARD_PLUS");
94  ana->AddNode("BH_FORWARD_NEG");
95 
96  }
97 
98  ana->set_tower_zero_sup(1e-6);
99  if (do_cemc_twr)
100  {
101  ana->AddTower("SIM_CEMC");
102  ana->AddTower("RAW_CEMC");
103  ana->AddTower("CALIB_CEMC");
104  }
105  if (do_hcalin_twr)
106  {
107  ana->AddTower("SIM_HCALIN");
108  ana->AddTower("RAW_HCALIN");
109  ana->AddTower("CALIB_HCALIN");
110  }
111  if (do_hcalout_twr)
112  {
113  ana->AddTower("SIM_HCALOUT");
114  ana->AddTower("RAW_HCALOUT");
115  ana->AddTower("CALIB_HCALOUT");
116  }
117 
118  // Jets disabled for now
119 // if (do_jet_reco)
120 // {
121 //
122 // ana->AddJet("AntiKt06JetsInPerfect");
123 // ana->AddJet("G4TowerJets_6");
124 // }
125 // if (embed_input_file && do_jet_reco)
126 // {
127 // ana->AddJet("G4TowerJets_combined_6");
128 // }
129 
131  se->registerSubsystem(ana);
132 }