Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RICHEvaluator.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file RICHEvaluator.h
1 #ifndef __RICHEvaluator_H__
2 #define __RICHEvaluator_H__
3 
4 #include <fun4all/SubsysReco.h>
5 #include <math.h>
6 
7 class TTree;
8 class TFile;
9 class TH1D;
10 
11 class PHCompositeNode;
13 class PHG4Hit;
14 class PHG4HitContainer;
15 class SvtxTrackMap;
16 class SvtxTrack;
17 class TDatabasePDG;
18 
19 class TrackProjectorPid;
21 
22 class RICHEvaluator : public SubsysReco
23 {
24 
25 public:
26 
28 
29  int
31  int
33  int
35  int
37 
38  /* set refractive index of RICH radiator */
39  void set_refractive_index( float newidx )
40  {
41  _refractive_index = newidx;
42  return;
43  }
44 
45 private:
46 
48  void reset_tree_vars();
49 
51  int init_tree();
52  int init_tree_small();
53 
55  double calculate_true_emission_angle( PHG4TruthInfoContainer* truthinfo, SvtxTrack * track, double index );
56 
58  double calculate_reco_mass( double mom, double theta_reco, double index );
59 
61  double calculate_true_mass( PHG4TruthInfoContainer* truthinfo, SvtxTrack * track);
62 
63  bool _verbose;
64 
65  int _ievent;
66 
67  /* RICH detecto name */
69 
70  /* Collection sotring track information */
72 
73  /* Hit collection storing RICH photon hits */
75 
76  /* Refractive index of RICH radiator */
78 
79  /* ROOT file to store output ROOT tree */
81  TFile *_fout_root;
82 
83  /* output tree and variables */
84  TTree* _tree_rich;
86 
87  double _hit_x0;
88  double _hit_y0;
89  double _hit_z0;
90 
91  double _emi_x;
92  double _emi_y;
93  double _emi_z;
94 
95  double _track_px;
96  double _track_py;
97  double _track_pz;
98 
99  double _mtrack_px;
100  double _mtrack_py;
101  double _mtrack_pz;
102  double _mtrack_ptot;
103 
104  double _track_e;
105  double _mtrack_e;
106  double _edep;
107 
108  int _bankid;
110  int _hitid;
111  int _pid;
112  int _mpid;
113  int _trackid;
116 
117  double _theta_true;
118  double _theta_reco;
119  double _theta_mean;
120  double _theta_rms;
121 
122  /* track projector object */
124 
125  /* acquire object */
127 
128  /* PDG databse access object */
129  TDatabasePDG *_pdg;
130 
131  /* Radius for track extrapolation */
132  float _radius;
133 
134 };
135 
136 #endif // __RICHEvaluator_H__