Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EMCalCalib.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EMCalCalib.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 "MCPhoton.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 EMCalCalib : public SubsysReco
29 {
30 
31 public:
32 
33  enum enu_flags
34  {
35  kProcessSF = 1 << 1,
36  kProcessTower = 1 << 2,
37  kProcessMCPhoton = 1 << 3,
39 
41  };
42 
43  EMCalCalib(const std::string &filename = "cemc_ana.root", enu_flags flags =
44  kDefaultFlag);
45  virtual
46  ~EMCalCalib();
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
88  get_mag_field() const
89  {
90  return _magfield;
91  }
92  void
94  {
96  }
97 
98 private:
99 
102 
103  int
104  Init_SF(PHCompositeNode *topNode);
105  int
107 
108  int
109  Init_Tower(PHCompositeNode *topNode);
110  int
112 
113  int
114  Init_MCPhoton(PHCompositeNode *topNode);
115  int
117 
118  int
120  int
122 
124  void
125  eval_photon(PHG4Particle * primary_particle, MCPhoton & trk,
126  PHCompositeNode *topNode);
127 
128  enum enu_calo
129  {
131  };
132 
133  void eval_photon_proj(//
134  PHG4Particle * g4particle, //
135  MCPhoton & trk,
136  enu_calo calo_id,//
137  const double gvz,
138  PHCompositeNode *topNode//
139  );
140 
142  TTree * _T_EMCalTrk;
144 
145  double _magfield;
146  PHG4HoughTransform _hough;
147 
149 
150  uint32_t _flags;
151  unsigned long _ievent;
152 
167 };
168 
169 #endif // __CALOEVALUATOR_H__