00001 #ifndef STRARETRACK_HH
00002 #define STRARETRACK_HH
00003 #include "TObject.h"
00004 #include <math.h>
00005
00006 class StPrimaryTrack;
00007
00008 class StRareTrack : public TObject{
00009
00010 public:
00011 StRareTrack();
00012 StRareTrack(StPrimaryTrack* track);
00013 ~StRareTrack(){};
00014 int tracknumber() const;
00015 int iflag() const;
00016 float px() const;
00017 float py() const;
00018 float pz() const;
00019 float p() const;
00020 short chargesign() const;
00021 float rapidity(float mass) const;
00022 float pt() const;
00023 float dca() const;
00024 float dedx() const;
00025 short ndedx() const;
00026 float chisqxy() const;
00027 float chisqz() const;
00028 short npntpossible() const;
00029 short npntfit() const;
00030 float dedxExpected(float mass, float charge = 1) const;
00031 float dedxPi() const;
00032 float dedxProton() const;
00033 float dedxDeuteron() const;
00034 float dedxTriton() const;
00035 float dedxHe3() const;
00036 float dedxHe4() const;
00037 int trigtype() const;
00038 void SetTrigType(int type);
00039
00040 private:
00041 int ftracknumber;
00042 int fiflag;
00043 float fpx;
00044 float fpy;
00045 float fpz;
00046 short fchargesign;
00047 float fdca;
00048 float fdedx;
00049 short fndedx;
00050 float fchisqxy;
00051 float fchisqz;
00052 short fnpntpossible;
00053 short fnpntfit;
00054 int ftrigtype;
00055
00056 ClassDef(StRareTrack,2)
00057 };
00058
00059 inline int StRareTrack::tracknumber() const {return ftracknumber;}
00060 inline int StRareTrack::iflag() const {return fiflag;}
00061 inline float StRareTrack::px() const {return fpx;}
00062 inline float StRareTrack::py() const {return fpy;}
00063 inline float StRareTrack::pz() const {return fpz;}
00064 inline float StRareTrack::p() const {return ::sqrt(fpx*fpx+fpy*fpy+fpz*fpz);}
00065 inline float StRareTrack::pt() const {return ::sqrt(fpx*fpx+fpy*fpy);}
00066 inline short StRareTrack::chargesign() const {return fchargesign;}
00067 inline float StRareTrack::dca() const {return fdca;}
00068 inline float StRareTrack::dedx() const {return fdedx;}
00069 inline short StRareTrack::ndedx() const {return fndedx;}
00070 inline float StRareTrack::chisqxy() const {return fchisqxy;}
00071 inline float StRareTrack::chisqz() const {return fchisqz;}
00072 inline short StRareTrack::npntpossible() const {return fnpntpossible;}
00073 inline short StRareTrack::npntfit() const {return fnpntfit;}
00074 inline float StRareTrack::dedxPi() const {return dedxExpected(0.139,1);}
00075 inline float StRareTrack::dedxProton() const {return dedxExpected(0.939,1);}
00076 inline float StRareTrack::dedxDeuteron() const {return dedxExpected(1.88,1);}
00077 inline float StRareTrack::dedxTriton() const {return dedxExpected(2.82,1);}
00078 inline float StRareTrack::dedxHe3() const {return dedxExpected(2.82,2);}
00079 inline float StRareTrack::dedxHe4() const {return dedxExpected(3.76,2);}
00080 inline int StRareTrack::trigtype() const {return ftrigtype;}
00081
00082 #endif