]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackPointArray.h
removerd double filling of histogram
[u/mrichter/AliRoot.git] / STEER / AliTrackPointArray.h
index 0a3e571aa6afd5d50a5da69b6abd90a88cddb276..551ffba3135034eec0b2e416b78dfaac383af265 100644 (file)
 #include <TObject.h>
 #include <TMatrixDSym.h>
 
+class TGeoRotation;
+
 class AliTrackPoint : public TObject {
 
  public:
   AliTrackPoint();
-  AliTrackPoint(Float_t x, Float_t y, Float_t z, const Float_t *cov, UShort_t volid, Float_t charge = 0);
-  AliTrackPoint(const Float_t *xyz, const Float_t *cov, UShort_t volid, Float_t charge = 0);
+  AliTrackPoint(Float_t x, Float_t y, Float_t z, const Float_t *cov, UShort_t volid, Float_t charge = 0, Float_t drifttime = 0,Float_t chargeratio = 0, Int_t clutype = 0);
+  AliTrackPoint(const Float_t *xyz, const Float_t *cov, UShort_t volid, Float_t charge = 0, Float_t drifttime = 0,Float_t chargeratio = 0, Int_t clutype=0);
   AliTrackPoint(const AliTrackPoint &p);
   AliTrackPoint& operator= (const AliTrackPoint& p);
   virtual ~AliTrackPoint() {}
@@ -31,6 +33,10 @@ class AliTrackPoint : public TObject {
   void     SetXYZ(const Float_t *xyz, const Float_t *cov = 0);
   void     SetVolumeID(UShort_t volid) { fVolumeID = volid; }
   void     SetCharge(Float_t charge) { fCharge = charge; }
+  void     SetDriftTime(Float_t time) { fDriftTime = time; }
+  void     SetChargeRatio(Float_t ratio) {  fChargeRatio= ratio; }
+  void     SetClusterType(Int_t clutype) {  fClusterType= clutype; }
+  void     SetExtra(Bool_t flag=kTRUE) { fIsExtra = flag; }
 
   Float_t  GetX() const { return fX; }
   Float_t  GetY() const { return fY; }
@@ -39,11 +45,16 @@ class AliTrackPoint : public TObject {
   const Float_t *GetCov() const { return &fCov[0]; }
   UShort_t GetVolumeID() const { return fVolumeID; }
   Float_t  GetCharge() const { return fCharge; }
+  Float_t  GetDriftTime() const { return fDriftTime;}
+  Float_t  GetChargeRatio() const { return fChargeRatio;}
+  Int_t    GetClusterType() const { return fClusterType;}
+  Bool_t   IsExtra() const { return fIsExtra;}
 
   Float_t  GetResidual(const AliTrackPoint &p, Bool_t weighted = kFALSE) const;
   Bool_t   GetPCA(const AliTrackPoint &p, AliTrackPoint &out) const;
 
   Float_t  GetAngle() const;
+  Bool_t   GetRotMatrix(TGeoRotation& rot) const;
   void SetAlignCovMatrix(const TMatrixDSym alignparmtrx);
 
   AliTrackPoint& Rotate(Float_t alpha) const;
@@ -57,10 +68,14 @@ class AliTrackPoint : public TObject {
   Float_t  fY;        // Y coordinate
   Float_t  fZ;        // Z coordinate
   Float_t  fCharge;   // Cluster charge in arbitrary units
+  Float_t  fDriftTime;// Drift time in SDD (in ns)
+  Float_t  fChargeRatio; // Charge ratio in SSD 
+  Int_t    fClusterType; // Cluster Type (encoded info on size and shape)
   Float_t  fCov[6];   // Cov matrix
+  Bool_t   fIsExtra;  // attached by tracker but not used in fit
   UShort_t fVolumeID; // Volume ID
 
-  ClassDef(AliTrackPoint,2)
+  ClassDef(AliTrackPoint,7)
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -93,6 +108,10 @@ class AliTrackPointArray : public TObject {
   const Float_t*  GetY() const { return &fY[0]; }
   const Float_t*  GetZ() const { return &fZ[0]; }
   const Float_t*  GetCharge() const { return &fCharge[0]; }
+  const Float_t*  GetDriftTime() const { return &fDriftTime[0]; }
+  const Float_t*  GetChargeRatio() const { return &fChargeRatio[0]; }
+  const Int_t*    GetClusterType() const { return &fClusterType[0]; }
+  const Bool_t*   GetExtra() const { return &fIsExtra[0]; }
   const Float_t*  GetCov() const { return &fCov[0]; }
   const UShort_t* GetVolumeID() const { return &fVolumeID[0]; }
 
@@ -108,11 +127,16 @@ class AliTrackPointArray : public TObject {
   Float_t   *fY;         //[fNPoints] Array with space point Y coordinates
   Float_t   *fZ;         //[fNPoints] Array with space point Z coordinates
   Float_t   *fCharge;    //[fNPoints] Array with clusters charge
+  Float_t   *fDriftTime; //[fNPoints] Array with drift times
+  Float_t   *fChargeRatio; //[fNPoints] Array with charge ratio
+  Int_t     *fClusterType; //[fNPoints] Array with cluster type
+  Bool_t    *fIsExtra;   //[fNPoints] Array with extra flags
   Int_t     fSize;       // Size of array with cov matrices = 6*N of points
   Float_t   *fCov;       //[fSize] Array with space point coordinates cov matrix
   UShort_t  *fVolumeID;  //[fNPoints] Array of space point volume IDs
 
-  ClassDef(AliTrackPointArray,3)
+  ClassDef(AliTrackPointArray,7)
 };
 
 #endif
+