Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DBCALShower.h
Go to the documentation of this file.
1 #ifndef _DBCALShower_
2 #define _DBCALShower_
3 
4 #include <JANA/JObject.h>
5 #include <JANA/JFactory.h>
6 #include <math.h>
7 #include <DMatrix.h>
8 #include <TMatrixFSym.h>
9 using namespace jana;
10 
11 class DBCALShower:public JObject{
12  public:
13  JOBJECT_PUBLIC(DBCALShower);
14 
15  DBCALShower():ExyztCovariance(5) {} ///< Constructor initializes matrix to 5x5
16 
17  float E;
18  float E_raw;
19  float E_preshower;
20  float E_L2;
21  float E_L3;
22  float E_L4;
23  float x;
24  float y;
25  float z;
26  float t;
27  float sigLong;
28  float sigTrans;
29  float sigTheta;
30 // float sigTime;
31  float rmsTime;
32  int N_cell;
33  int Q;
34  TMatrixFSym ExyztCovariance;
35 
36  float const EErr() const { return sqrt(ExyztCovariance(0,0)); }
37  float const xErr() const { return sqrt(ExyztCovariance(1,1)); }
38  float const yErr() const { return sqrt(ExyztCovariance(2,2)); }
39  float const zErr() const { return sqrt(ExyztCovariance(3,3)); }
40  float const tErr() const { return sqrt(ExyztCovariance(4,4)); }
41  float const XYcorr() const {
42  if (xErr()>0 && yErr()>0) return ExyztCovariance(1,2)/xErr()/yErr();
43  else return 0;
44  }
45  float const XZcorr() const {
46  if (xErr()>0 && zErr()>0) return ExyztCovariance(1,3)/xErr()/zErr();
47  else return 0;
48  }
49  float const YZcorr() const {
50  if (yErr()>0 && zErr()>0) return ExyztCovariance(2,3)/yErr()/zErr();
51  else return 0;
52  }
53  float const EXcorr() const {
54  if (EErr()>0 && xErr()>0) return ExyztCovariance(0,1)/EErr()/xErr();
55  else return 0;
56  }
57  float const EYcorr() const {
58  if (EErr()>0 && yErr()>0) return ExyztCovariance(0,2)/EErr()/yErr();
59  else return 0;
60  }
61  float const EZcorr() const {
62  if (EErr()>0 && zErr()>0) return ExyztCovariance(0,3)/EErr()/zErr();
63  else return 0;
64  }
65  float const XTcorr() const {
66  if (xErr()>0 && tErr()>0) return ExyztCovariance(1,4)/xErr()/tErr();
67  else return 0;
68  }
69  float const YTcorr() const {
70  if (yErr()>0 && tErr()>0) return ExyztCovariance(2,4)/yErr()/tErr();
71  else return 0;
72  }
73  float const ZTcorr() const {
74  if (zErr()>0 && tErr()>0) return ExyztCovariance(3,4)/zErr()/tErr();
75  else return 0;
76  }
77  float const ETcorr() const {
78  if (EErr()>0 && tErr()>0) return ExyztCovariance(0,4)/EErr()/tErr();
79  else return 0;
80  }
81 
82  void toStrings(vector<pair<string,string> > &items)const{
83  AddString(items, "E", "%5.3f", E);
84  AddString(items, "x", "%5.2f", x);
85  AddString(items, "y", "%5.2f", y);
86  AddString(items, "z", "%5.1f", z);
87  AddString(items, "t", "%5.1f", t);
88  AddString(items, "r", "%5.1f", sqrt(x*x+y*y));
89  AddString(items, "phi", "%5.3f",atan2(y,x));
90  AddString(items, "E_preshower", "%5.3f", E_preshower);
91  AddString(items, "E_L2", "%5.3f", E_L2);
92  AddString(items, "E_L3", "%5.3f", E_L3);
93  AddString(items, "E_L4", "%5.3f", E_L4);
94  AddString(items, "N_cell", "%d", N_cell);
95  AddString(items, "Q", "%d", Q);
96  AddString(items, "dE", "%5.3f", EErr());
97  AddString(items, "dx", "%5.3f", xErr());
98  AddString(items, "dy", "%5.3f", yErr());
99  AddString(items, "dz", "%5.2f", zErr());
100  AddString(items, "dt", "%5.3f", tErr());
101  AddString(items, "EXcorr", "%5.3f", EXcorr());
102  AddString(items, "EYcorr", "%5.3f", EYcorr());
103  AddString(items, "EZcorr", "%5.3f", EZcorr());
104  AddString(items, "ETcorr", "%5.3f", ETcorr());
105  AddString(items, "XYcorr", "%5.3f", XYcorr());
106  AddString(items, "XZcorr", "%5.3f", XZcorr());
107  AddString(items, "XTcorr", "%5.3f", XTcorr());
108  AddString(items, "YZcorr", "%5.3f", YZcorr());
109  AddString(items, "YTcorr", "%5.3f", YTcorr());
110  AddString(items, "ZTcorr", "%5.3f", ZTcorr());
111  AddString(items, "sigLong", "%5.3f", sigLong);
112  AddString(items, "sigTrans", "%5.3f", sigTrans);
113  AddString(items, "sigTheta", "%5.3f", sigTheta);
114 // AddString(items, "sigTime", "%5.3f", sigTime);
115  AddString(items, "rmsTime", "%5.3f", rmsTime);
116  }
117 };
118 
119 #endif // _DBCALShower_
120 
float const YTcorr() const
Definition: DBCALShower.h:69
float const EErr() const
Definition: DBCALShower.h:36
float const EXcorr() const
Definition: DBCALShower.h:53
float sigTrans
Definition: DBCALShower.h:28
DBCALShower()
Constructor initializes matrix to 5x5.
Definition: DBCALShower.h:15
Double_t x[NCHANNELS]
Definition: st_tw_resols.C:39
TMatrixFSym ExyztCovariance
Definition: DBCALShower.h:34
#define y
float const tErr() const
Definition: DBCALShower.h:40
float const xErr() const
Definition: DBCALShower.h:37
float sigLong
Definition: DBCALShower.h:27
float E_L4
Definition: DBCALShower.h:22
float const EZcorr() const
Definition: DBCALShower.h:61
void toStrings(vector< pair< string, string > > &items) const
Definition: DBCALShower.h:82
float const ETcorr() const
Definition: DBCALShower.h:77
float const XZcorr() const
Definition: DBCALShower.h:45
float rmsTime
Definition: DBCALShower.h:31
float E_L3
Definition: DBCALShower.h:21
float const XTcorr() const
Definition: DBCALShower.h:65
float const XYcorr() const
Definition: DBCALShower.h:41
float const zErr() const
Definition: DBCALShower.h:39
double sqrt(double)
float const YZcorr() const
Definition: DBCALShower.h:49
float const EYcorr() const
Definition: DBCALShower.h:57
float sigTheta
Definition: DBCALShower.h:29
float E_preshower
Definition: DBCALShower.h:19
float const ZTcorr() const
Definition: DBCALShower.h:73
float const yErr() const
Definition: DBCALShower.h:38
float E_raw
Definition: DBCALShower.h:18
float E_L2
Definition: DBCALShower.h:20