X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCtrackerMI.h;h=8bda85a38c878b30ccbe2628ff4dc0ce5684b5a0;hb=8477f500cabc45260a7104663d089ade4d7200cc;hp=211e941497e902570cdde04df6620cf2b5fa2ae2;hpb=9996a03b550a5f4f839d71738c1c14f5af192f63;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCtrackerMI.h b/TPC/AliTPCtrackerMI.h index 211e941497e..8bda85a38c8 100644 --- a/TPC/AliTPCtrackerMI.h +++ b/TPC/AliTPCtrackerMI.h @@ -13,9 +13,11 @@ // Origin: //------------------------------------------------------- +#include #include "AliTracker.h" -#include "AliTPCtrack.h" -#include "AliComplexCluster.h" +#include "AliTPCreco.h" +#include "AliPID.h" + class TFile; class AliTPCParam; @@ -25,88 +27,8 @@ class AliTPCTrackerPoint; class AliESD; class TTree; class AliESDkink; - -class AliTPCseed : public AliTPCtrack { - friend class AliTPCtrackerMI; - public: - AliTPCseed(); - virtual ~AliTPCseed(); - AliTPCseed(const AliTPCtrack &t); - AliTPCseed(const AliTPCseed &s); - //AliTPCseed(const AliTPCseed &t, Double_t a); - AliTPCseed(UInt_t index, const Double_t xx[5], - const Double_t cc[15], Double_t xr, Double_t alpha); - Int_t Compare(const TObject *o) const; - void Reset(Bool_t all = kTRUE); - Int_t GetProlongation(Double_t xr, Double_t &y, Double_t & z) const; - virtual Double_t GetPredictedChi2(const AliTPCclusterMI *cluster) const; - virtual Int_t Update(const AliTPCclusterMI* c, Double_t chi2, UInt_t i); - AliTPCTrackerPoint * GetTrackPoint(Int_t i); - void RebuildSeed(); // rebuild seed to be ready for storing - Double_t GetDensityFirst(Int_t n); - Double_t GetSigma2C() const {return fC44;}; - void GetClusterStatistic(Int_t first, Int_t last, Int_t &found, Int_t &foundable, Int_t &shared, Bool_t plus2); - - void Modify(Double_t factor); - void SetClusterIndex2(Int_t row, Int_t index) { - fIndex[row] = index; - } - Int_t GetClusterIndex2(Int_t row) const { - return fIndex[row]; - } - Int_t GetClusterSector(Int_t row) const { - Int_t pica = -1; - if (fIndex[row]>=0) pica = ((fIndex[row]&0xff000000)>>24); - return pica; - } - - void SetErrorY2(Float_t sy2){fErrorY2=sy2;} - void SetErrorZ2(Float_t sz2){fErrorZ2=sz2;} - void CookdEdx(Double_t low=0.05, Double_t up=0.70, Int_t i1=0, Int_t i2=159, Bool_t onlyused = kFALSE); - // void CookdEdx2(Double_t low=0.05, Double_t up=0.70); - Bool_t IsActive() const { return !(fRemoval);} - void Desactivate(Int_t reason){ fRemoval = reason;} - // - // - private: - AliTPCseed & operator = (const AliTPCseed &); - AliESDtrack * fEsd; //! - AliTPCclusterMI* fClusterPointer[160]; //! array of cluster pointers - - TClonesArray * fPoints; // array with points along the track - TClonesArray * fEPoints; // array with exact points - calculated in special macro not used in tracking - //---CURRENT VALUES - Int_t fRow; //!current row number - Int_t fSector; //!current sector number - Int_t fRelativeSector; //! index of current relative sector - Float_t fCurrentSigmaY2; //!expected current cluster sigma Y - Float_t fCurrentSigmaZ2; //!expected current cluster sigma Z - Float_t fErrorY2; //!sigma of current cluster - Float_t fErrorZ2; //!sigma of current cluster - AliTPCclusterMI * fCurrentCluster; //!pointer to the current cluster for prolongation - Int_t fCurrentClusterIndex1; //! index of the current cluster - Bool_t fInDead; //! indicate if the track is in dead zone - Bool_t fIsSeeding; //!indicates if it is proces of seeading - Int_t fNoCluster; //!indicates number of rows without clusters - Int_t fSort; //!indicate criteria for sorting - Bool_t fBSigned; //indicates that clusters of this trackes are signed to be used - // - // - Float_t fDEDX[4]; // dedx according padrows - Float_t fSDEDX[4]; // sdedx according padrows - Int_t fNCDEDX[4]; // number of clusters for dedx measurment - // - Int_t fSeedType; //seeding type - Int_t fSeed1; //first row for seeding - Int_t fSeed2; //last row for seeding - Int_t fOverlapLabels[12]; //track labels and the length of the overlap - Float_t fMAngular; // mean angular factor - AliTPCTrackerPoint fTrackPoints[160]; //!track points - array track points - - ClassDef(AliTPCseed,1) -}; - - - +class TTreeSRedirector; +class AliTrackPoint; class AliTPCtrackerMI : public AliTracker { public: @@ -124,7 +46,7 @@ public: virtual Int_t LoadClusters (TTree * tree); Int_t LoadClusters(); void UnloadClusters(); - + void Transform(AliCluster * cluster); // void SetIO(); //set default IO from folders void SetIO(TTree * input, TTree * output, AliESD * event); @@ -134,6 +56,7 @@ public: void DeleteSeeds(); void SetDebug(Int_t debug){ fDebug = debug;} void FindKinks(TObjArray * array, AliESD * esd); + void FindV0s(TObjArray * array, AliESD * esd); void UpdateKinkQualityM(AliTPCseed * seed); void UpdateKinkQualityD(AliTPCseed * seed); Int_t CheckKinkPoint(AliTPCseed*seed, AliTPCseed &mother, AliTPCseed &daughter, AliESDkink &kink); @@ -141,10 +64,10 @@ public: Int_t ReadSeeds(const TFile *in); TObjArray * GetSeeds(){return fSeeds;} // - AliCluster * GetCluster (int) const {return 0;} + AliCluster * GetCluster(Int_t index) const {return (AliCluster*)GetClusterMI(index);} AliTPCclusterMI *GetClusterMI(Int_t index) const; Int_t Clusters2Tracks(); - virtual void CookLabel(AliTPCseed *t,Float_t wrong) const; + virtual void CookLabel(AliKalmanTrack *tk,Float_t wrong) const; virtual Int_t CookLabel(AliTPCseed *t,Float_t wrong, Int_t first,Int_t last ) const; void RotateToLocal(AliTPCseed *seed); @@ -152,7 +75,8 @@ public: Int_t FollowProlongation(AliTPCseed& t, Int_t rf=0, Int_t step=1); Int_t FollowProlongationFast(AliTPCseed& t, Int_t rf=0, Int_t step=1); - + Bool_t GetTrackPoint(Int_t index, AliTrackPoint &p ) const; + Int_t FollowBackProlongation(AliTPCseed& t, Int_t rf); Int_t FollowToNext(AliTPCseed& t, Int_t nr); Int_t FollowToNextFast(AliTPCseed& t, Int_t nr); @@ -338,6 +262,7 @@ private: Double_t fYMax[200]; // max y for given pad row Double_t fPadLength[200]; // max y for given pad row const AliTPCParam *fParam; //pointer to the parameters + TTreeSRedirector *fDebugStreamer; //!debug streamer ClassDef(AliTPCtrackerMI,1) };