]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding a flag in order to tag the space points not used in the tracking - so called...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Jan 2009 10:54:52 +0000 (10:54 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Jan 2009 10:54:52 +0000 (10:54 +0000)
STEER/AliReconstruction.cxx
STEER/AliTrackPointArray.cxx
STEER/AliTrackPointArray.h

index 47c4d0fc08bd0f07455b6b37ab6f8f25d5169f04..ec1fb880cbc1439f78c94dca29a92ab58622ce81 100644 (file)
@@ -2723,6 +2723,7 @@ void AliReconstruction::WriteAlignmentData(AliESDEvent* esd)
            } 
            isp2++;
            if (!isvalid) continue;
+           if (iDet==0 && (isp-1)>=6) p.SetExtra();
            sp->AddPoint(isptrack,&p); isptrack++;
          }
        }       
index aa1c8d7f4acf69d77d7d84e116bb17327a2f4be0..ddff099fe8281279f47527ae0757d7b64d253c67 100644 (file)
@@ -42,6 +42,7 @@ AliTrackPointArray::AliTrackPointArray() :
   fZ(0),
   fCharge(0),
   fDriftTime(0),
+  fIsExtra(0),
   fSize(0),
   fCov(0),
   fVolumeID(0)
@@ -58,6 +59,7 @@ AliTrackPointArray::AliTrackPointArray(Int_t npoints):
   fZ(new Float_t[npoints]),
   fCharge(new Float_t[npoints]),
   fDriftTime(new Float_t[npoints]),
+  fIsExtra(new Bool_t[npoints]),
   fSize(6*npoints),
   fCov(new Float_t[fSize]),
   fVolumeID(new UShort_t[npoints])
@@ -70,6 +72,7 @@ AliTrackPointArray::AliTrackPointArray(Int_t npoints):
     fZ[ip]=0;
     fCharge[ip]=0;
     fDriftTime[ip]=0;
+    fIsExtra[ip]=kFALSE;
     fVolumeID[ip]=0;
     for (Int_t icov=0;icov<6; icov++)
       fCov[6*ip+icov]=0;
@@ -86,6 +89,7 @@ AliTrackPointArray::AliTrackPointArray(const AliTrackPointArray &array):
   fZ(new Float_t[fNPoints]),
   fCharge(new Float_t[fNPoints]),
   fDriftTime(new Float_t[fNPoints]),
+  fIsExtra(new Bool_t[fNPoints]),
   fSize(array.fSize),
   fCov(new Float_t[fSize]),
   fVolumeID(new UShort_t[fNPoints])
@@ -105,6 +109,11 @@ AliTrackPointArray::AliTrackPointArray(const AliTrackPointArray &array):
   } else {
     memset(fDriftTime, 0, fNPoints*sizeof(Float_t));
   }
+  if (array.fIsExtra) {
+    memcpy(fIsExtra,array.fIsExtra,fNPoints*sizeof(Bool_t));
+  } else {
+    memset(fIsExtra, 0, fNPoints*sizeof(Bool_t));
+  }
   memcpy(fVolumeID,array.fVolumeID,fNPoints*sizeof(UShort_t));
   memcpy(fCov,array.fCov,fSize*sizeof(Float_t));
 }
@@ -130,6 +139,8 @@ AliTrackPointArray &AliTrackPointArray::operator =(const AliTrackPointArray& arr
   fCharge = new Float_t[fNPoints];
   delete [] fDriftTime;
   fDriftTime = new Float_t[fNPoints];
+  delete [] fIsExtra;
+  fIsExtra = new Bool_t[fNPoints];
   delete [] fVolumeID;
   fVolumeID = new UShort_t[fNPoints];
   delete [] fCov;
@@ -139,6 +150,7 @@ AliTrackPointArray &AliTrackPointArray::operator =(const AliTrackPointArray& arr
   memcpy(fZ,array.fZ,fNPoints*sizeof(Float_t));
   memcpy(fCharge,array.fCharge,fNPoints*sizeof(Float_t));
   memcpy(fDriftTime,array.fDriftTime,fNPoints*sizeof(Float_t));
+  memcpy(fIsExtra,array.fIsExtra,fNPoints*sizeof(Bool_t));
   memcpy(fVolumeID,array.fVolumeID,fNPoints*sizeof(UShort_t));
   memcpy(fCov,array.fCov,fSize*sizeof(Float_t));
 
@@ -155,6 +167,7 @@ AliTrackPointArray::~AliTrackPointArray()
   delete [] fZ;
   delete [] fCharge;
   delete [] fDriftTime;
+  delete [] fIsExtra;
   delete [] fVolumeID;
   delete [] fCov;
 }
@@ -171,6 +184,7 @@ Bool_t AliTrackPointArray::AddPoint(Int_t i, const AliTrackPoint *p)
   fZ[i] = p->GetZ();
   fCharge[i] = p->GetCharge();
   fDriftTime[i] = p->GetDriftTime();
+  fIsExtra[i] = p->IsExtra();
   fVolumeID[i] = p->GetVolumeID();
   memcpy(&fCov[6*i],p->GetCov(),6*sizeof(Float_t));
   return kTRUE;
@@ -187,6 +201,7 @@ Bool_t AliTrackPointArray::GetPoint(AliTrackPoint &p, Int_t i) const
   p.SetVolumeID(fVolumeID[i]);
   p.SetCharge(fCharge[i]);
   p.SetDriftTime(fDriftTime[i]);
+  p.SetExtra(fIsExtra[i]);
   return kTRUE;
 }
 
@@ -236,6 +251,7 @@ AliTrackPoint::AliTrackPoint() :
   fZ(0),
   fCharge(0),
   fDriftTime(0),
+  fIsExtra(kFALSE),
   fVolumeID(0)
 {
   // Default constructor
@@ -252,6 +268,7 @@ AliTrackPoint::AliTrackPoint(Float_t x, Float_t y, Float_t z, const Float_t *cov
   fZ(0),
   fCharge(0),
   fDriftTime(0),
+  fIsExtra(kFALSE),
   fVolumeID(0)
 {
   // Constructor
@@ -270,6 +287,7 @@ AliTrackPoint::AliTrackPoint(const Float_t *xyz, const Float_t *cov, UShort_t vo
   fZ(0),
   fCharge(0),
   fDriftTime(0),
+  fIsExtra(kFALSE),
   fVolumeID(0)
 {
   // Constructor
@@ -288,6 +306,7 @@ AliTrackPoint::AliTrackPoint(const AliTrackPoint &p):
   fZ(0),
   fCharge(0),
   fDriftTime(0),
+  fIsExtra(kFALSE),
   fVolumeID(0)
 {
   // Copy constructor
@@ -295,6 +314,7 @@ AliTrackPoint::AliTrackPoint(const AliTrackPoint &p):
   SetXYZ(p.fX,p.fY,p.fZ,&(p.fCov[0]));
   SetCharge(p.fCharge);
   SetDriftTime(p.fDriftTime);
+  SetExtra(p.fIsExtra);
   SetVolumeID(p.fVolumeID);
 }
 
@@ -309,6 +329,7 @@ AliTrackPoint &AliTrackPoint::operator =(const AliTrackPoint& p)
   SetXYZ(p.fX,p.fY,p.fZ,&(p.fCov[0]));
   SetCharge(p.fCharge);
   SetDriftTime(p.fDriftTime);
+  SetExtra(p.fIsExtra);
   SetVolumeID(p.fVolumeID);
 
   return *this;
@@ -559,6 +580,7 @@ void AliTrackPoint::Print(Option_t *) const
   printf("Z = %12.6f    Tz = %12.6f%12.6f%12.6f\n", fZ, fCov[2], fCov[4], fCov[5]);
   printf("Charge = %f\n", fCharge);
   printf("Drift Time = %f\n", fDriftTime);
+  if(fIsExtra) printf("This is an extra point\n");
 
 }
 
@@ -604,3 +626,4 @@ void AliTrackPoint::SetAlignCovMatrix(const TMatrixDSym alignparmtrx){
 
 }
 
+
index 250f0317883fd81919aa9b85427ddcd92636e2b6..4f1ff4ba36b2a6a56d92546ef14cc6d9ac0e141e 100644 (file)
@@ -34,6 +34,7 @@ class AliTrackPoint : public TObject {
   void     SetVolumeID(UShort_t volid) { fVolumeID = volid; }
   void     SetCharge(Float_t charge) { fCharge = charge; }
   void     SetDriftTime(Float_t time) { fDriftTime = time; }
+  void     SetExtra(Bool_t flag=kTRUE) { fIsExtra = flag; }
 
   Float_t  GetX() const { return fX; }
   Float_t  GetY() const { return fY; }
@@ -43,6 +44,7 @@ class AliTrackPoint : public TObject {
   UShort_t GetVolumeID() const { return fVolumeID; }
   Float_t  GetCharge() const { return fCharge; }
   Float_t  GetDriftTime() const { return fDriftTime;}
+  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;
@@ -64,9 +66,10 @@ class AliTrackPoint : public TObject {
   Float_t  fCharge;   // Cluster charge in arbitrary units
   Float_t  fDriftTime;// Drift time in SDD (in ns)
   Float_t  fCov[6];   // Cov matrix
+  Bool_t   fIsExtra;  // attached by tracker but not used in fit
   UShort_t fVolumeID; // Volume ID
 
-  ClassDef(AliTrackPoint,4)
+  ClassDef(AliTrackPoint,5)
 };
 
 //////////////////////////////////////////////////////////////////////////////
@@ -100,6 +103,7 @@ class AliTrackPointArray : public TObject {
   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 Bool_t*   GetExtra() const { return &fIsExtra[0]; }
   const Float_t*  GetCov() const { return &fCov[0]; }
   const UShort_t* GetVolumeID() const { return &fVolumeID[0]; }
 
@@ -116,11 +120,13 @@ class AliTrackPointArray : public TObject {
   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
+  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,4)
+  ClassDef(AliTrackPointArray,5)
 };
 
 #endif
+