Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4DSTReader.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4DSTReader.h
1 // $Id: PHG4DSTReader.h,v 1.7 2015/02/27 23:42:23 jinhuang Exp $
2 
10 #ifndef G4EVAL_PHG4DSTREADER_H
11 #define G4EVAL_PHG4DSTREADER_H
12 
13 #include <fun4all/SubsysReco.h>
14 
15 #include <boost/smart_ptr.hpp>
16 
17 #include <set>
18 #include <string>
19 #include <vector>
20 
21 class PHCompositeNode;
22 
23 class PHG4Particle;
24 
25 class TClonesArray;
26 class TTree;
27 
32 class PHG4DSTReader : public SubsysReco
33 {
34  public:
36  ~PHG4DSTReader() override;
37 
39  int Init(PHCompositeNode *) override;
40 
42  int process_event(PHCompositeNode *) override;
43 
45  int End(PHCompositeNode *) override;
46 
47  void
49  {
50  _node_postfix.push_back(name);
51  }
52 
53  void
55  {
56  _node_postfix.push_back(name);
57  }
58 
59  void
61  {
62  _tower_postfix.push_back(name);
63  }
64 
65  void
67  {
68  _jet_postfix.push_back(name);
69  }
70 
73  void
75  {
77  }
78 
80  void
82  {
84  }
85 
87  void
89  {
90  _save_particle = b;
91  }
92 
94  void
96  {
97  _save_vertex = b;
98  }
99 
101  double
103  {
104  return _save_particle;
105  }
106 
108  void
110  {
111  _tower_zero_sup = b;
112  }
113 
114  protected:
115  std::vector<std::string> _node_postfix;
116  std::vector<std::string> _tower_postfix;
117  std::vector<std::string> _jet_postfix;
118  // std::vector<std::string> _node_name;
119  int nblocks = 0;
120 
122 
123  struct record
124  {
125  unsigned int _cnt;
128  TClonesArray *_arr_ptr;
129 
130  enum enu_type
131  {
137  };
139  };
140  typedef std::vector<record> records_t;
142 
143  int _event = 0;
144 
146 
147  // TFile * _file;
148  TTree *_T = nullptr;
149 
151  bool _save_particle = true;
152 
154  bool _load_all_particle = true;
155 
158 
159  typedef std::set<int> PartSet_t;
162 
164  bool _save_vertex = true;
165 
167  double _tower_zero_sup = 0.;
168 
170  void
171  add_particle(record &rec, PHG4Particle *part);
172 
173  void
174  build_tree();
175 };
176 
177 #endif /* G4EVAL_PHG4DSTREADER_H */