X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliStrLine.h;h=38110ff88b1eaaa06d43fce69887b3f83f7c4a15;hb=74dbd6a43db248cbe8004729477a31746ad543ff;hp=c8ce38d60bc7c7fc0da9d05cac0287836500230f;hpb=c48f9ca243a3ba4f037d9227d45eea4afcc2919c;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliStrLine.h b/STEER/AliStrLine.h index c8ce38d60bc..38110ff88b1 100644 --- a/STEER/AliStrLine.h +++ b/STEER/AliStrLine.h @@ -10,17 +10,16 @@ // // /////////////////////////////////////////////////////////////////// +#include "AliLog.h" class AliStrLine : public TObject { - public: +public: AliStrLine(); // default constructor - AliStrLine(Double_t *point, Double_t *cd, Bool_t twopoints=kFALSE); // standard constructor - AliStrLine(Float_t *pointf, Float_t *cdf, Bool_t twopoints=kFALSE); - AliStrLine(Double_t *point, Double_t *sig2point, Double_t *cd, Bool_t twopoints=kFALSE); - AliStrLine(Float_t *pointf, Float_t *sig2point, Float_t *cdf, Bool_t twopoints=kFALSE); - AliStrLine(Double_t *point, Double_t *sig2point, Double_t *wmat, Double_t *cd, Bool_t twopoints=kFALSE); - AliStrLine(Float_t *pointf, Float_t *sig2point, Float_t *wmat, Float_t *cdf, Bool_t twopoints=kFALSE); + AliStrLine(const Double_t *const point, const Double_t *const cd, Bool_t twopoints=kFALSE, UShort_t id1=65535, UShort_t id2=65535); // standard constructor + AliStrLine(const Double_t *const point, const Double_t *const sig2point, const Double_t *const cd, Bool_t twopoints=kFALSE, UShort_t id1=65535, UShort_t id2=65535); + AliStrLine(const Double_t *const point, const Double_t *const sig2point, const Double_t *const wmat, const Double_t *const cd, Bool_t twopoints=kFALSE, UShort_t id1=65535, UShort_t id2=65535); + AliStrLine(const AliStrLine& source); AliStrLine& operator=(const AliStrLine& source); virtual ~AliStrLine(); // destructor @@ -30,20 +29,30 @@ class AliStrLine : public TObject { void SetSigma2P0(const Double_t *sigsq) {for(Int_t i=0;i<3;i++)fSigma2P0[i]=sigsq[i];} void SetWMatrix(const Double_t *wmat); void SetCd(const Double_t *cd) {for(Int_t i=0;i<3;i++)fCd[i]=cd[i];} + void SetIdPoints(UShort_t id1, UShort_t id2){ + fIdPoint[0]=id1; + fIdPoint[1]=id2; + } + void GetP0(Double_t *point) const {for(Int_t i=0;i<3;i++)point[i]=fP0[i];} void GetSigma2P0(Double_t *sigsq) const {for(Int_t i=0;i<3;i++)sigsq[i]=fSigma2P0[i];} void GetWMatrix(Double_t *wmat) const; void GetCd(Double_t *cd) const {for(Int_t i=0;i<3;i++)cd[i]=fCd[i];} void GetCurrentPoint(Double_t *point) const; - Int_t IsParallelTo(AliStrLine *line) const; - Int_t Crossrphi(AliStrLine *line); + UShort_t GetIdPoint(Int_t i) const { + if(i<2) return fIdPoint[i]; + AliError("Wrong element: only 2 points are stored in AliStrLine"); + return 65535; + } + Int_t IsParallelTo(const AliStrLine *line) const; + Int_t Crossrphi(const AliStrLine *line); Int_t CrossPoints(AliStrLine *line, Double_t *point1, Double_t *point2); Int_t Cross(AliStrLine *line, Double_t *point); - Double_t GetDCA(AliStrLine *line) const; - Double_t GetDistFromPoint(Double_t *point) const; + Double_t GetDCA(const AliStrLine *line) const; + Double_t GetDistFromPoint(const Double_t *point) const; protected: - void InitDirection(Double_t *point, Double_t *cd); - void InitTwoPoints(Double_t *pA, Double_t *pB); + void InitDirection(const Double_t *const point, const Double_t *const cd); + void InitTwoPoints(const Double_t *const pA, const Double_t *const pB); Double_t fP0[3]; // given point Double_t fSigma2P0[3]; // errors on coordinates of given point Double_t *fWMatrix; //[6] weighting matrix @@ -64,12 +73,14 @@ class AliStrLine : public TObject { 6 --> 2,0 7 --> 2,1 8 --> 2,2 */ - Double_t fCd[3]; // direction cosines - Double_t fTpar; //! parameter + Double_t fCd[3]; // direction cosines + Double_t fTpar; //! parameter + UShort_t fIdPoint[2]; // Identifiers of RecPoints defining the line + private: void SetPar(const Double_t par){fTpar = par;} - ClassDef(AliStrLine,4); + ClassDef(AliStrLine,5); }; #endif