StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
TrackData.h
1 #ifndef TrackData_h
2 #define TrackData_h
3 /***********************************************
4  * $Id: TrackData.h,v 1.1 2013/08/16 22:19:56 perev Exp $
5  ******************************************************
6  */
7 #include <TVector3.h>
8 #include <StEvent/StTrackNode.h>
9 
10 
11 #include <vector>
12 class StGlobalTrack;
13 namespace StEvPPV {
14 
16 {
17 public:
18 union{double A[1];double _cXX;};
19  double _cYX,_cYY;
20  double _cZX,_cZY, _cZZ;
21  double _cEX,_cEY, _cEZ, _cEE;
22  double _cPX,_cPY, _cPZ, _cPE, _cPP;
23  double _cTX,_cTY, _cTZ, _cTE, _cTP, _cTT;
24 };
25 
26 class VertexData ;
27 
28 class DcaTrack
29 { // approximtion of track as stright line @ DCA to beamLine=0,0
30  public:
31  TVector3 R,gP; // position (3*cm), global momentum (3*GeV/c)
32  float sigYloc, sigZ;// error of position(2*cm), local sector ref frame
33 //VP MyNodeErrs fitErr; // covariance matrix
34  float gChi2; // global track, from Kalman
35  int nFitPoint;
36 // void print() { printf("#track@DCA(0,0) R/cm=[%5.2f %5.2f %.1f], errYloc=%.2fcm , errZ=%.1fcm, glob P=[%6.2f %6.2f %6.1f]GeV/c, PT=%.2f\n",R.x(),R.y(),R.z(),sigYloc, sigZ,gP.x(),gP.y(),gP.z(), gP.Pt() );
37 // printf(" chi2=%f, nFitP=%d, fitErr: cXX=%f cYX=%f cYY=%f cZX=%f cZY=%f cZZ=%f\n",gChi2, nFitPoint,fitErr._cXX,fitErr._cYX,fitErr._cYY,fitErr._cZX,fitErr._cZY,fitErr._cZZ); }
38 
39 };
40 
41 
42 class TrackData {
43  public:
44  int vertexID; /* >0 if assigned to a good vertex;
45  =0 free, not used for any vertex
46  */
47  const StGlobalTrack* mother; // oryginal track
48  DcaTrack dcaTrack; // for 3D vertex reco
49  float zDca, ezDca; // (cm) Z of track @ DCA to beam
50  float rxyDca;
51  float gPt; // (GeV) global
52  // 3-stat logic: 1=match, -1=veto, 0=dunno
53  int mBtof,mCtb,mBemc,mEemc,mTpc;
54  bool anyMatch,anyVeto;
55  float weight; // compound from all maching tests
56  int btofBin; // >=0 if track passed through BTOF cell
57  int ctbBin; // >=0 if track passed through CTB slat
58  int bemcBin; // >=0 if track passed through BTOW tower
59  int eemcBin; // >=0 if track passed through ETOW tower
60  // ........................methods
61  TrackData();
62  void scanNodes( vector<int> & hitPatt, int jz0);
63  bool matchVertex(VertexData &V, float kSig) ;
64  float getTpcWeight();
65  void updateAnyMatch(bool match, bool vet,int & mXXX);
66 };
67 }// end namespace StEvPPV
68 
69 #endif
70 
71 
72 /*
73  * $Log: TrackData.h,v $
74  * Revision 1.1 2013/08/16 22:19:56 perev
75  * PPV with only StEvent dependency
76  *
77  * Revision 1.3 2010/09/10 21:08:35 rjreed
78  * Added function UseBOTF and bool mUseBtof to switch the use of the TOF on and off in vertex finding. Default value is off (false).
79  * Added functions, and variables necessary to use the TOF in PPV for vertex finding. Includes matching tracks to the TOF and changing the track weight based on its matched status with the TOF.
80  *
81  * Revision 1.2 2009/07/09 21:29:03 balewski
82  * allow export of prim tracks for 3D beam line fit (use VtxSeedCalG option),
83  * oneTrack vertex thresholds was lowered form 15 to 10 GeV/c
84  *
85  * Revision 1.1 2005/07/11 20:38:12 balewski
86  * PPV added for real
87  *
88 
89  *
90  *
91  *********************************************************************/