ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
QAG4SimulationCalorimeterSum.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file QAG4SimulationCalorimeterSum.h
1 #ifndef QA_QAG4SIMULATIONCALORIMETERSUM_H
2 #define QA_QAG4SIMULATIONCALORIMETERSUM_H
3 
4 #include <fun4all/SubsysReco.h>
5 
6 #include <cstdint>
7 #include <memory>
8 #include <string>
9 
10 class PHCompositeNode;
12 class PHG4Particle;
13 class CaloEvalStack;
14 class SvtxEvalStack;
15 class SvtxTrack;
16 
19 {
20  public:
21  enum enu_flags
22  {
23  // kProcessTower = 1 << 1,
24  kProcessCluster = 1 << 2, // histograms of best cluster matched to truth particle
25  kProcessTrackProj = 1 << 3, // histograms of tower/tower sums VS track projections
26 
28  };
29 
31 
33 
34  int Init(PHCompositeNode *topNode);
35  int InitRun(PHCompositeNode *topNode);
36  int process_event(PHCompositeNode *topNode);
37 
38  uint32_t
39  get_flags() const
40  {
41  return _flags;
42  }
43 
44  void
46  {
47  _flags = (uint32_t) flags;
48  }
49 
50  void
52  {
53  _flags |= (uint32_t) flag;
54  }
55 
56  bool
58  {
59  return _flags & flag;
60  }
61 
62  void
64  {
65  _flags &= ~(uint32_t) flag;
66  }
67 
69  std::string
71 
72  std::string
74  {
75  return _calo_name_cemc;
76  }
77 
78  void
79  set_calo_name_cemc(const std::string &caloNameCemc)
80  {
81  _calo_name_cemc = caloNameCemc;
82  }
83 
84  std::string
86  {
87  return _calo_name_hcalin;
88  }
89 
90  void
91  set_calo_name_hcalin(const std::string &caloNameHcalin)
92  {
93  _calo_name_hcalin = caloNameHcalin;
94  }
95 
96  std::string
98  {
99  return _calo_name_hcalout;
100  }
101 
102  void
103  set_calo_name_hcalout(const std::string &caloNameHcalout)
104  {
105  _calo_name_hcalout = caloNameHcalout;
106  }
107 
108  float get_mag_field() const { return _magField; }
109  void set_mag_field(float magField) { _magField = magField; }
110 
111  private:
112  // int
113  // Init_Tower(PHCompositeNode *topNode);
114  // int
115  // process_event_Tower(PHCompositeNode *topNode);
116 
117  int Init_Cluster(PHCompositeNode *topNode);
119 
120  int Init_TrackProj(PHCompositeNode *topNode);
122 
123  std::shared_ptr<CaloEvalStack> _caloevalstack_cemc;
124  std::shared_ptr<CaloEvalStack> _caloevalstack_hcalin;
125  std::shared_ptr<CaloEvalStack> _caloevalstack_hcalout;
126  std::shared_ptr<SvtxEvalStack> _svtxevalstack;
127 
128  uint32_t _flags;
129 
130  std::string _calo_name_cemc;
131  std::string _calo_name_hcalin;
132  std::string _calo_name_hcalout;
133 
135 
137  PHG4Particle *
139 
141  bool
142  eval_trk_proj(const std::string &detector, SvtxTrack *track,
143  PHCompositeNode *topNode);
144 
146  float _magField;
147 
148  enum
149  {
152  };
153 };
154 
155 #endif // QA_QAG4SIMULATIONCALORIMETERSUM_H