Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Proto3ShowerCalib.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Proto3ShowerCalib.h
1 #ifndef __Proto3ShowerCalib_H__
2 #define __Proto3ShowerCalib_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 TF1;
16 class TTree;
17 class SvtxEvalStack;
18 class PHG4Particle;
19 class RawTowerGeom;
20 class RawTowerContainer;
21 class SvtxTrack;
22 
24 class Proto3ShowerCalib : public SubsysReco
25 {
26 
27 public:
28 
29  Proto3ShowerCalib(const std::string &filename = "ana.root");
30  virtual
32 
33  int
34  Init(PHCompositeNode *topNode);
35  int
36  InitRun(PHCompositeNode *topNode);
37  int
39  int
40  End(PHCompositeNode *topNode);
41 
42  int
44 
45  class Eval_Run : public TObject
46  {
47  public:
49  {
50  reset();
51  }
52  virtual
54  {
55  }
56 
57  void
59  {
60  run = -31454;
61  event = -31454;
62  beam_mom = -0;
63  hodo_h = -31454;
64  hodo_v = -31454;
65  C2_sum = -31454;
66  C1 = -31454;
67  EoP = -31454;
68  valid_hodo_v = false;
69  valid_hodo_h = false;
70  trigger_veto_pass = false;
71  good_temp = false;
72  good_e = false;
73  good_h = false;
74  }
75 
76  int run;
77  int event;
78  float beam_mom;
79  int hodo_h;
80  int hodo_v;
81  float C2_sum;
82  float C1;
83  float EoP;
84  bool valid_hodo_v;
85  bool valid_hodo_h;
86  bool trigger_veto_pass;
87  bool good_temp;
88  bool good_e;
89  bool good_h;
90 
91  ClassDef(Eval_Run,2)
92  };
93 
94  class HCAL_shower : public TObject
95  {
96  public:
98  {
99  reset();
100  }
101 
102  virtual ~HCAL_shower(){}
103 
104  void reset()
105  {
106  emcal_e = 0.;
107  hcalin_e = 0.;
108  hcalout_e = 0.;
109  sum_e = 0.;
110  for(int itwr=0; itwr<16; itwr++)
111  {
112  hcalin_twr_e[itwr] = 0.;
113  hcalout_twr_e[itwr] = 0.;
114  }
115  for(int itwr=0; itwr<64; itwr++)
116  emcal_twr_e[itwr] = 0.;
117 
118  emcal_e_recal = 0.;
119  hcalin_e_recal = 0.;
120  hcalout_e_recal = 0.;
121  sum_e_recal = 0.;
122  hcal_asym = -999;
123  }
124 
125  float emcal_e;
126  float hcalin_e;
127  float hcalout_e;
128  float sum_e;
129  float emcal_twr_e[64];
130  float hcalin_twr_e[16];
131  float hcalout_twr_e[16];
132 
136  float hcal_asym;
137  float sum_e_recal;
138  };
139 
140  class Scientillators : public TObject
141  {
142  public:
144  virtual ~Scientillators(){}
145  void reset()
146  {
147  hcalin_edep = 0.;
148  hcalout_edep = 0.;
149  hcalin_lightyield = 0.;
150  hcalout_lightyield = 0.;
151  }
152  float hcalin_edep;
154 
157  };
158 
159  class Time_Samples : public TObject
160  {
161  public:
163  virtual ~Time_Samples(){}
164 
165  void reset()
166  {
167  for(int itower=0; itower<16; itower++)
168  {
169  for(int isamp=0; isamp<24; isamp++)
170  {
171  hcalin_time_samples[itower][isamp] = -9999;
172  hcalout_time_samples[itower][isamp] = -9999;
173  }
174  }
175 
176  for(int itower=0; itower<64; itower++)
177  {
178  for(int isamp=0; isamp<24; isamp++)
179  {
180  emcal_time_samples[itower][isamp] = -9999;
181  }
182  }
183  }
184  float hcalin_time_samples[16][24];
185  float hcalout_time_samples[16][24];
186  float emcal_time_samples[64][24];
187  };
188 
189  void set_sim(const bool b)
190  { _is_sim = b; }
191 
192  void fill_tower_samples(const bool);
193  void fill_time_samples(const bool);
194  void fill_slat_values(const bool);
195 private:
196 
197  // calorimeter size
198  enum
199  {
203  };
204 
207 
209 
210  unsigned long _ievent;
211 
212  fstream fdata;
213 
214  Eval_Run _eval_run;
215 
217 
219 
221 
222  //Add smearing
223  TF1 *smearing;
224  bool _is_sim;
228 
229  std::map<std::pair<int, int>, double> _emcal_recalib_const;
230  std::map<std::pair<int, int>, double> _hcalin_recalib_const;
231  std::map<std::pair<int, int>, double> _hcalout_recalib_const;
232 
233 };
234 
235 #endif // __Proto3ShowerCalib_H__