Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EMCalAna.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EMCalAna.h
1 #ifndef __CALOEVALUATOR_H__
2 #define __CALOEVALUATOR_H__
3 
4 #include <fun4all/SubsysReco.h>
6 #include <g4hough/PHG4HoughTransform.h>
7 
8 #include <TNtuple.h>
9 #include <TFile.h>
10 
11 #include "EMCalTrk.h"
12 
13 #include <string>
14 #include <stdint.h>
15 
16 class PHCompositeNode;
17 class PHG4HitContainer;
19 class TH1F;
20 class TTree;
21 class SvtxEvalStack;
22 class PHG4Particle;
23 class RawTowerGeom;
24 class RawTowerContainer;
25 class SvtxTrack;
26 
28 class EMCalAna : public SubsysReco
29 {
30 
31 public:
32 
33  enum enu_flags
34  {
35  kProcessSF = 1 << 1,
36  kProcessTower = 1 << 2,
37  kProcessTrk = 1 << 3,
39 
41  };
42 
43  EMCalAna(const std::string &filename = "cemc_ana.root", enu_flags flags =
44  kDefaultFlag);
45  virtual
46  ~EMCalAna();
47 
48  int
49  Init(PHCompositeNode *topNode);
50  int
51  InitRun(PHCompositeNode *topNode);
52  int
54  int
55  End(PHCompositeNode *topNode);
56 
57  uint32_t
58  get_flags() const
59  {
60  return _flags;
61  }
62 
63  void
65  {
66  _flags = (uint32_t) flags;
67  }
68 
69  void
71  {
72  _flags |= (uint32_t) flag;
73  }
74 
75  bool
77  {
78  return _flags & flag;
79  }
80 
81  void
83  {
84  _flags &= ~(uint32_t) flag;
85  }
86 
87  float get_mag_field() const {return _magfield;}
89 
90 private:
91 
94 
95  int
96  Init_SF(PHCompositeNode *topNode);
97  int
99 
100  int
101  Init_Tower(PHCompositeNode *topNode);
102  int
104 
105  int
106  Init_Trk(PHCompositeNode *topNode);
107  int
109 
110  int
112  int
114 
115  void eval_trk(PHG4Particle * primary_particle, EMCalTrk & trk, PHCompositeNode *topNode);
116 
117  enum enu_calo
118  {
122  };
123 
124  void eval_trk_proj(//
125  SvtxTrack * track, //
126  EMCalTrk & trk,
127  enu_calo calo_id,//
128  const double gvz,
129  PHCompositeNode *topNode//
130  );
131 
133  TTree * _T_EMCalTrk;
135 
136  double _magfield;
137  PHG4HoughTransform _hough;
138 
140 
141  uint32_t _flags;
142  unsigned long _ievent;
143 
158 };
159 
160 #endif // __CALOEVALUATOR_H__