X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliTrackReference.h;h=198f6c4f0633ae6cbe8b3cdfaf50aca960d985f7;hb=40389866548fc06fcc5655701a58bb65f61e09a6;hp=4ab594004f779aa5a8dd39e21935b9c852355bc7;hpb=0742d588b78b013ee7a733f4cd4131805bf32822;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliTrackReference.h b/STEER/AliTrackReference.h index 4ab594004f7..198f6c4f063 100644 --- a/STEER/AliTrackReference.h +++ b/STEER/AliTrackReference.h @@ -15,13 +15,23 @@ #include "TMath.h" class AliTrackReference : public TObject { - public: + enum constants {kDisappeared = -1, + kITS = 0, + kTPC = 1, + kFRAME = 2, + kTRD = 3, + kTOF = 4, + kMUON = 5, + kHMPID = 6 + }; AliTrackReference(); - AliTrackReference(Int_t label); + AliTrackReference(Int_t label, Int_t id = -999); + AliTrackReference(const AliTrackReference &tr); virtual ~AliTrackReference() {} +// static AliExternalTrackParam * MakeTrack(const AliTrackReference *ref, Double_t mass); virtual Int_t GetTrack() const {return fTrack;} virtual void SetTrack(Int_t track) {fTrack=track;} virtual void SetLength(Float_t length){fLength=length;} @@ -41,9 +51,13 @@ public: virtual Float_t Py() const {return fPy;} virtual Float_t Pz() const {return fPz;} virtual Float_t P() const {return TMath::Sqrt(fPx*fPx+fPy*fPy+fPz*fPz);} + virtual Int_t UserId() const {return fUserId;} + virtual Int_t DetectorId() const {return fDetectorId;} + virtual void SetDetectorId(Int_t id){fDetectorId = id;} virtual void SetPosition(Float_t x, Float_t y, Float_t z){fX=x; fY=y; fZ=z;} virtual void SetMomentum(Float_t px, Float_t py, Float_t pz){fPx=px; fPy=py; fPz=pz;} - + virtual void SetUserId(Int_t userId){fUserId=userId;} + // Methods to get position of the track reference in // in the TPC/TRD/TOF Tracking coordinate system @@ -53,18 +67,28 @@ public: virtual Float_t LocalX() const {return fX*TMath::Cos(-Alpha()) - fY*TMath::Sin(-Alpha());} virtual Float_t LocalY() const {return fX*TMath::Sin(-Alpha()) + fY*TMath::Cos(-Alpha());} + Bool_t IsSortable() const {return kTRUE;} + Int_t Compare(const TObject *obj) const { + Int_t ll = ((AliTrackReference*)obj)->GetTrack(); + if (ll < fTrack) return 1; + if (ll > fTrack) return -1; + return 0; + } + virtual void Print(Option_t* opt="") const; + protected: - Int_t fTrack; // Track number - Float_t fX; // X reference position of the track - Float_t fY; // Y reference position of the track - Float_t fZ; // Z reference position of the track - Float_t fPx; // momentum - Float_t fPy; // momentum - Float_t fPz; // momentum - Float_t fLength; // track lenght from its origin in cm - Float_t fTime; // time of flight in cm - - ClassDef(AliTrackReference,3) //Base class for all Alice track references + Int_t fTrack; // Track number + Float_t fX; // X reference position of the track + Float_t fY; // Y reference position of the track + Float_t fZ; // Z reference position of the track + Float_t fPx; // momentum + Float_t fPy; // momentum + Float_t fPz; // momentum + Float_t fLength; // track lenght from its origin in cm + Float_t fTime; // time of flight in cm + Int_t fUserId; // optional Id defined by user + Int_t fDetectorId; // Detector Id + ClassDef(AliTrackReference,6) //Base class for all Alice track references }; #endif