00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef STAR_StGammaTrack
00013 #define STAR_StGammaTrack
00014
00015 class StMuTrack;
00016 class StGammaCandidate;
00017
00018 #include "TObject.h"
00019 #include "TVector3.h"
00020 #include "TRefArray.h"
00021 #include "StPhysicalHelix.hh"
00022
00023 class StGammaTrack: public TObject
00024 {
00025
00026 public:
00027
00028 class Exception {};
00029
00030 StGammaTrack();
00031 StGammaTrack(StMuTrack* track);
00032 ~StGammaTrack();
00033
00034 virtual const char* GetCVS() const
00035 {static const char cvs[] = "Tag $Name: $ $Id: StGammaTrack.h,v 1.8 2008/12/03 15:38:35 betan Exp $ built "__DATE__" "__TIME__; return cvs; }
00036
00037 Int_t id;
00038 Int_t flag;
00039 Int_t type;
00040 Int_t charge;
00041 Int_t nhits;
00042 Float_t dEdx;
00043 TVector3 momentum;
00044 TVector3 dca;
00045 StPhysicalHelix helix;
00046 StPhysicalHelix outerHelix;
00047 TVector3 positionAtRadius(Double_t radius) const;
00048 TVector3 positionAtZ(Double_t z) const;
00049 TRefArray candidates;
00050
00051 Float_t pt() const;
00052 Float_t pz() const;
00053 Float_t eta() const;
00054 Float_t phi() const;
00055
00056 private:
00057
00058 ClassDef(StGammaTrack, 2);
00059
00060 };
00061
00062 inline Float_t StGammaTrack::pt() const { return momentum.Pt(); }
00063 inline Float_t StGammaTrack::pz() const { return momentum.Pz(); }
00064 inline Float_t StGammaTrack::eta() const { return momentum.Eta(); }
00065 inline Float_t StGammaTrack::phi() const { return momentum.Phi(); }
00066
00067 typedef std::vector<StGammaTrack> StGammaTrackVec_t;
00068 typedef std::vector<StGammaTrack*> StGammaTrackPtrVec_t;
00069
00070 #endif