Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Proto2ShowerCalib.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Proto2ShowerCalib.h
1 #ifndef __Proto2ShowerCalib_H__
2 #define __Proto2ShowerCalib_H__
3 
4 #include <fun4all/SubsysReco.h>
5 #include <TNtuple.h>
6 #include <TFile.h>
7 #include <string>
8 #include <stdint.h>
9 #include <fstream>
10 
11 class PHCompositeNode;
12 class PHG4HitContainer;
14 class TH1F;
15 class TTree;
16 class SvtxEvalStack;
17 class PHG4Particle;
18 class RawTowerGeom;
19 class RawTowerContainer;
20 class SvtxTrack;
21 
23 class Proto2ShowerCalib : public SubsysReco
24 {
25 
26 public:
27 
28  Proto2ShowerCalib(const std::string &filename = "ana.root");
29  virtual
31 
32  int
33  Init(PHCompositeNode *topNode);
34  int
35  InitRun(PHCompositeNode *topNode);
36  int
38  int
39  End(PHCompositeNode *topNode);
40 
41  int
43 
44  class Eval_Run : public TObject
45  {
46  public:
48  {
49  reset();
50  }
51  virtual
53  {
54  }
55 
56  void
58  {
59  run = -31454;
60  event = -31454;
61  beam_mom = -0;
62  hodo_h = -31454;
63  hodo_v = -31454;
64  C2_sum = -31454;
65  C1 = -31454;
66  EoP = -31454;
67  valid_hodo_v = false;
68  valid_hodo_h = false;
69  trigger_veto_pass = false;
70  good_temp = false;
71  good_e = false;
72  good_h = false;
73  }
74 
75  int run;
76  int event;
77  float beam_mom;
78  int hodo_h;
79  int hodo_v;
80  float C2_sum;
81  float C1;
82  float EoP;
83  bool valid_hodo_v;
84  bool valid_hodo_h;
85  bool trigger_veto_pass;
86  bool good_temp;
87  bool good_e;
88  bool good_h;
89 
90  ClassDef(Eval_Run,2)
91  };
92 
93  class HCAL_shower : public TObject
94  {
95  public:
97  {
98  reset();
99  }
100 
101  virtual ~HCAL_shower(){}
102 
103  void reset()
104  {
105  emcal_e = 0.;
106  hcalin_e = 0.;
107  hcalout_e = 0.;
108  sum_e = 0.;
109 
110  emcal_e_recal = 0.;
111  hcalin_e_recal = 0.;
112  hcalout_e_recal = 0.;
113  sum_e_recal = 0.;
114  hcal_asym = -999;
115  }
116 
117 
118  float emcal_e;
119  float hcalin_e;
120  float hcalout_e;
121  float sum_e;
122 
126  float hcal_asym;
127  float sum_e_recal;
128  };
129 
130 
131  class Time_Samples : public TObject
132  {
133  public:
135  virtual ~Time_Samples(){}
136 
137  void reset()
138  {
139  for(int itower=0; itower<16; itower++)
140  {
141  for(int isamp=0; isamp<24; isamp++)
142  {
143  hcalin_time_samples[itower][isamp] = -9999;
144  hcalout_time_samples[itower][isamp] = -9999;
145  }
146  }
147 
148  for(int itower=0; itower<64; itower++)
149  {
150  for(int isamp=0; isamp<24; isamp++)
151  {
152  emcal_time_samples[itower][isamp] = -9999;
153  }
154  }
155  }
156  float hcalin_time_samples[16][24];
157  float hcalout_time_samples[16][24];
158  float emcal_time_samples[64][24];
159  };
160 
161  void set_sim(const bool b)
162  { _is_sim = b; }
163 
164  void fill_time_samples(const bool);
165 
166 private:
167 
168  // calorimeter size
169  enum
170  {
174  };
175 
178 
180 
181  unsigned long _ievent;
182 
183  fstream fdata;
184 
185  Eval_Run _eval_run;
186 
188 
190 
191  bool _is_sim;
193  std::map<std::pair<int, int>, double> _emcal_recalib_const;
194  std::map<std::pair<int, int>, double> _hcalin_recalib_const;
195  std::map<std::pair<int, int>, double> _hcalout_recalib_const;
196 
197 };
198 
199 #endif // __Proto2ShowerCalib_H__