StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StiPullEvent.h
1 
5 /***************************************************************************
6  *
7  * $Id: StiPullEvent.h,v 1.9 2018/01/16 22:46:01 smirnovd Exp $
8  *
9  * Author: Victor Perev, Jan 2006
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StiPullEvent.h,v $
17  * Revision 1.9 2018/01/16 22:46:01 smirnovd
18  * Removed declared but undefined functions
19  *
20  * Revision 1.8 2012/11/09 18:52:33 perev
21  * Erros added
22  *
23  * Revision 1.7 2009/10/24 20:35:33 perev
24  * Remove redundante definition of StiPullEvent::~StiPullEvent()
25  *
26  * Revision 1.6 2009/10/18 22:02:12 perev
27  * Propagate primary info into globals(Finish())
28  *
29  * Revision 1.5 2009/10/15 03:28:58 perev
30  * Add primary vertex number and charge(GVB)
31  *
32  * Revision 1.4 2007/10/16 20:56:00 fisyak
33  * Add pull entries for Pxl and Ist
34  *
35  * Revision 1.3 2006/12/19 19:44:41 perev
36  * tracks added
37  *
38  * Revision 1.2 2006/12/18 01:33:35 perev
39  * + branch mHitsR(nd) +nHitCand +iHitCand
40  *
41  * Revision 1.1 2006/04/07 17:34:41 perev
42  * StiPullEvent class added
43  *
44  * Revision 1.1 2006/02/14 19:02:09 perev
45  * Svt self alignment maker
46  *
47  *
48  **************************************************************************/
49 #ifndef StiPullEvent_hh
50 #define StiPullEvent_hh
51 #include "TObject.h"
52 #include "TClonesArray.h"
53 #include "TDatime.h"
54 
55 
56 class StiPullTrk : public TObject {
57 public:
58  StiPullTrk();
59  ~StiPullTrk(){}
60  void Clear(const char *opt = "");
61  void Print(const char* option = "") const;
62 public:
63 char mBeg[1]; //|NoIO
64 short mTrackNumber; //track number
65 unsigned char mVertex; //vertex number for primary track
66 unsigned char nAllHits; //number of all hits in track
67 unsigned char nTpcHits; //number of tpc hits in track
68 unsigned char nSvtHits; //number of svt hits in track
69 unsigned char nSsdHits; //number of ssd hits in track
70 unsigned char nPxlHits; //number of pxl hits in track
71 unsigned char nIstHits; //number of ist hits in track
72 unsigned char mL; //Length of track
73 
74 float mChi2;
75 float mCurv; //curvature
76 float mPt; //pt
77 float mPsi; //track Psi(around beam) in global Sti frame
78 float mDip; //track Dip in global Sti frame
79 float mRxy; //Rxy of track begining
80 float mPhi; //Phi angle of track begining
81 float mZ;
82 // Errors
83 float mPtErr; //pt error
84 float mPsiErr; //track Psi error
85 float mDipErr; //track Dip error
86 float mRxyErr; //Rxy error
87 float mZErr; //z error
88 short int mIdTruTk;
89 short int mQaTruTk;
90 char mEnd[1]; //|NoIO
91  ClassDef(StiPullTrk,3);
92 };
93 
94 class StiPullHit : public TObject {
95 public:
96  StiPullHit();
97  ~StiPullHit(){}
98  void Clear(const char *opt = "");
99  void Print(const char* option = "") const;
100 int TestIt();
101 public:
102 char mBeg[1];
103 short mTrackNumber; //track number of hit
104 unsigned char mVertex; //vertex number for primary track
105 unsigned char nAllHits; //number of all hits in track
106 unsigned char nTpcHits; //number of tpc hits in track
107 unsigned char nSvtHits; //number of svt hits in track
108 unsigned char nSsdHits; //number of ssd hits in track
109 unsigned char nPxlHits; //number of pxl hits in track
110 unsigned char nIstHits; //number of ist hits in track
111 unsigned char mDetector; //see StHit.h
112 unsigned char nHitCand; //number of Hit Candidates
113 unsigned char iHitCand; //number of selected Hit Candidate.
114  // 0=smallest Xi2
115 
116 
117 UInt_t mHardwarePosition; //see StHit.h
118 float mNormalRefAngle; //rotation angle in Sti style
119 float mNormalRadius; // >= 0
120 float mNormalYOffset;
121 float mZCenter;
122 float mChi2;
123 float mCurv; //curvature
124 float mPt; //pt
125 float mCharge; //charge (Q)
126 // locals
127 float lXHit; // x of Hit in local Sti frame
128 float lYHit; // y of Hit in local Sti frame
129 float lZHit; // z of Hit in local Sti frame
130 float lYHitErr; // y Hit Err in local Sti frame
131 float lZHitErr; // z Hit Err in local Sti frame
132 float lHitEmx[3]; // hit error mtx:yy,yz,zz
133 
134 float lXFit; // x of Fit in local Sti frame
135 float lYFit; // y of Fit in local Sti frame
136 float lZFit; // z of Fit in local Sti frame
137 float lYFitErr; // y Fit Err in local Sti frame
138 float lZFitErr; // z Fit Err in local Sti frame
139 float lFitEmx[3]; // hit error mtx:yy,yz,zz
140 
141 float lYPul; // dy of Pul in local Sti frame
142 float lZPul; // dz of Pul in local Sti frame
143 float lYPulErr; // dy Pul Err in local Sti frame
144 float lZPulErr; // dz Pul Err in local Sti frame
145 float lPulEmx[3]; // hit error mtx:yy,yz,zz
146 
147 float lPsi; // track Psi in local Sti frame
148 float lDip; // track Dip in local Sti frame
149 
150 // Globals
151 float gRHit; // Rxy of Hit in global Sti frame
152 float gPHit; // Phi of Hit in global Sti frame
153 float gZHit; // Z of Hit in global Sti frame
154 float gPHitErr; // Phi Hit err in global Sti frame
155 float gZHitErr; // Z Hit err in global Sti frame
156 float gHitEmx[3]; // hit error mtx:PhiPhi,PhiZ,ZZ
157 
158 float gRFit; // Rxy of Fit in global Sti frame
159 float gPFit; // Phi of Fit in global Sti frame
160 float gZFit; // Z of Fit in global Sti frame
161 float gPFitErr; // Phi Fit err in global Sti frame
162 float gZFitErr; // Z Fit err in global Sti frame
163 float gFitEmx[3]; // hit error mtx:PhiPhi,PhiZ,ZZ
164 
165 float gPPul; // dPhi*Rxy of Pul in global Sti frame
166 float gZPul; // dZ of Pul in global Sti frame
167 float gPPulErr; // dPhi Pul err in global Sti frame
168 float gZPulErr; // dZ Pul err in global Sti frame
169 float gPulEmx[3]; // hit error mtx:PhiRPhiR,PhiRZ,ZZ
170 
171 float gPsi; // track Psi in global Sti frame
172 float gDip; // track Dip in global Sti frame
173 short int mIdTruth;
174 short int mQaTruth;
175 char mEnd[1];
176  ClassDef(StiPullHit,3);
177 };
178 
179 class StiPullEvent : public TObject {
180 public:
181  StiPullEvent();
182 void Clear(const char *opt = "");
183 void Finish();
184 void Add(StiPullHit &ph,int gloPrim);
185 void Add(StiPullTrk &pt,int gloPrim=0);
186 const int *GetNHits() const;
187 public:
188  int mRun;
189  int mEvt;
190  TDatime mDate; //DAQ time (GMT)
191 
192  float mVtx[3]; //Primary vertex position in global frame
193  float mEtx[6]; //errors xx,yx,yy,zx,zy,zz
194  float mChi2; //Chi square of vertex fit
195  int mNTrks[2]; //N glob,N Prim tracks
196  int mNHits[6]; //nTpc,nSvt,nSsd,nPxl,nIst,nRnd hits
197 
198 TClonesArray mTrksG; //global tracks
199 TClonesArray mTrksP; //primary tracks
200 TClonesArray mHitsG; //StiPullHits for global tracks
201 TClonesArray mHitsP; //StiPullHits for primary tracks
202 TClonesArray mHitsR; //StiPullHits for Rnd detectors
203  ClassDef(StiPullEvent,5);
204 };
205 
206 
207 #endif