00001 #ifndef TrackData_h
00002 #define TrackData_h
00003
00004
00005
00006
00007 #include <TVector3.h>
00008 #include <Sti/StiTrackNode.h>
00009
00010
00011 #include <vector>
00012 using namespace std;
00013
00014 class VertexData ;
00015 class StiKalmanTrack;
00016
00017 class DcaTrack {
00018 public:
00019 TVector3 R,gP;
00020 float sigYloc, sigZ;
00021 StiNodeErrs fitErr;
00022 float gChi2;
00023 int nFitPoint;
00024 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() );
00025 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);
00026 }
00027
00028 };
00029
00030
00031 class TrackData {
00032 public:
00033 int vertexID;
00034
00035
00036 const StiKalmanTrack* mother;
00037 DcaTrack dcaTrack;
00038 float zDca, ezDca;
00039 float rxyDca;
00040 float gPt;
00041
00042 int mBtof,mCtb,mBemc,mEemc,mTpc;
00043 bool anyMatch,anyVeto;
00044 float weight;
00045 int btofBin;
00046 int ctbBin;
00047 int bemcBin;
00048 int eemcBin;
00049
00050 TrackData();
00051 void scanNodes( vector<int> & hitPatt, int jz0);
00052 bool matchVertex(VertexData &V, float kSig) ;
00053 float getTpcWeight();
00054 void updateAnyMatch(bool match, bool vet,int & mXXX);
00055 };
00056 #endif
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075