EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
QAG4SimulationEicCalorimeterSum.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file QAG4SimulationEicCalorimeterSum.h
1 #ifndef EICQA_QAG4SIMULATIONEICCALORIMETERSUM_H
2 #define EICQA_QAG4SIMULATIONEICCALORIMETERSUM_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  void set_track_nodename(const std::string &name) { m_TrackNodeName = name; }
112 
113  private:
114  // int
115  // Init_Tower(PHCompositeNode *topNode);
116  // int
117  // process_event_Tower(PHCompositeNode *topNode);
118 
119  int Init_Cluster(PHCompositeNode *topNode);
121 
122  int Init_TrackProj(PHCompositeNode *topNode);
124 
125  std::shared_ptr<CaloEvalStack> _caloevalstack_cemc;
126  std::shared_ptr<CaloEvalStack> _caloevalstack_hcalin;
127  std::shared_ptr<CaloEvalStack> _caloevalstack_hcalout;
128  std::shared_ptr<SvtxEvalStack> _svtxevalstack;
129 
131 
132  std::string m_TrackNodeName;
133  std::string _calo_name_cemc;
134  std::string _calo_name_hcalin;
135  std::string _calo_name_hcalout;
136 
138 
140  PHG4Particle *
142 
144  bool
145  eval_trk_proj(const std::string &detector, SvtxTrack *track,
146  PHCompositeNode *topNode);
147 
149  float _magField;
150 
151  enum
152  {
155  };
156 };
157 
158 #endif // EICQA_QAG4SIMULATIONEICCALORIMETERSUM_H