]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITStrackerMI.h
Replace AliTRDCalibra
[u/mrichter/AliRoot.git] / ITS / AliITStrackerMI.h
index 48cf2a90f3e34f26aeec5bcc9ed86c27c04247e6..7c6ea58f542c4a20752a8c9f752ae12c3e6bee2f 100644 (file)
@@ -14,8 +14,6 @@
 class TTree;
 class TTreeSRedirector;
 class AliESD;
-class AliHelix;
-class AliITSgeom;
 
 #include <TObjArray.h>
 #include "AliITSRecPoint.h"
@@ -25,9 +23,9 @@ class AliITSgeom;
 //-------------------------------------------------------------------------
 class AliITStrackerMI : public AliTracker {
 public:
-  AliITStrackerMI():AliTracker(){}
-  AliITStrackerMI(const AliITSgeom *geom);
-  ~AliITStrackerMI();
+  AliITStrackerMI();
+  AliITStrackerMI(const Char_t *geom);
+  virtual ~AliITStrackerMI();
   AliCluster *GetCluster(Int_t index) const;
   virtual Bool_t GetTrackPoint(Int_t index, AliTrackPoint& p) const;
   AliITSRecPoint *GetClusterLayer(Int_t layn, Int_t ncl) const
@@ -39,7 +37,8 @@ public:
   Int_t Clusters2Tracks(AliESD *event);
   Int_t PropagateBack(AliESD *event);
   Int_t RefitInward(AliESD *event);
-  Bool_t RefitAt(Double_t x, AliITStrackMI *seed, const AliITStrackMI *t);
+  Bool_t RefitAt(Double_t x, AliITStrackMI *seed, 
+                const AliITStrackMI *t, Bool_t extra=kFALSE);
   Bool_t RefitAt(Double_t x, AliITStrackMI *seed, const Int_t *clindex);
   void SetupFirstPass(Int_t *flags, Double_t *cuts=0);
   void SetupSecondPass(Int_t *flags, Double_t *cuts=0);
@@ -55,9 +54,8 @@ public:
   Int_t UpdateMI(AliITStrackMI* track, const AliITSRecPoint* cl,Double_t chi2,Int_t layer) const;
   class AliITSdetector { 
   public:
-    AliITSdetector(){}
-    AliITSdetector(Double_t r,Double_t phi) {fR=r; fPhi=phi; fSinPhi = TMath::Sin(phi); fCosPhi = TMath::Cos(phi);
-    fYmin=10000;fYmax=-1000; fZmin=10000;fZmax=-1000;}
+    AliITSdetector():fR(0),fPhi(0),fSinPhi(0),fCosPhi(0),fYmin(0),fYmax(0),fZmin(0),fZmax(0){}
+    AliITSdetector(Double_t r,Double_t phi):fR(r),fPhi(phi),fSinPhi(TMath::Sin(phi)),fCosPhi(TMath::Cos(phi)),fYmin(10000),fYmax(-1000),fZmin(10000),fZmax(-1000) {}
     inline void GetGlobalXYZ( const AliITSRecPoint *cl, Double_t xyz[3]) const;
     Double_t GetR()   const {return fR;}
     Double_t GetPhi() const {return fPhi;}
@@ -81,7 +79,6 @@ public:
   };
 
   class AliITSlayer {
-    friend class AliITStrackerMI;
   public:
     AliITSlayer();
     AliITSlayer(Double_t r, Double_t p, Double_t z, Int_t nl, Int_t nd);
@@ -109,9 +106,13 @@ public:
     void  SetSkip(Int_t skip){fSkip=skip;}
     void IncAccepted(){fAccepted++;}
     Int_t GetAccepted() const {return fAccepted;}    
+    Int_t GetClusterTracks(Int_t i, Int_t j) const {return fClusterTracks[i][j];}
+    void SetClusterTracks(Int_t i, Int_t j, Int_t c) {fClusterTracks[i][j]=c;}
   protected:
-    AliITSlayer(const AliITSlayer& /*layer*/);
-    AliITSlayer & operator=(const AliITSlayer& /*layer*/);
+    AliITSlayer(const AliITSlayer& layer);
+    AliITSlayer & operator=(const AliITSlayer& layer){
+      this->~AliITSlayer();new(this) AliITSlayer(layer);
+      return *this;}
     Double_t fR;                // mean radius of this layer
     Double_t fPhiOffset;        // offset of the first detector in Phi
     Int_t fNladders;            // number of ladders
@@ -231,8 +232,8 @@ protected:
   AliESD  * fEsd;                        //! pointer to the ESD event
   TTreeSRedirector *fDebugStreamer;     //!debug streamer
 private:
-  AliITStrackerMI(const AliITStrackerMI &);
-  AliITStrackerMI & operator=(const AliITStrackerMI &);
+  AliITStrackerMI(const AliITStrackerMI &tracker);
+  AliITStrackerMI & operator=(const AliITStrackerMI &tracker);
   ClassDef(AliITStrackerMI,2)   //ITS tracker MI
 };
 
@@ -291,11 +292,11 @@ inline Double_t AliITStrackerMI::NormalizedChi2(AliITStrackMI * track, Int_t lay
   //--------------------------------------------------------------------
   //get normalize chi2
   //--------------------------------------------------------------------
-  track->fNormChi2[layer] = 2.*track->fNSkipped+0.25*track->fNDeadZone+track->fdEdxMismatch+track->GetChi2()/
+  track->SetNormChi2(layer,2.*track->GetNSkipped()+0.25*track->GetNDeadZone()+track->GetdEdxMismatch()+track->GetChi2()/
   //track->fNormChi2[layer] = 2.*track->fNSkipped+0.25*track->fNDeadZone+track->fdEdxMismatch+track->fChi22/
-    TMath::Max(double(track->GetNumberOfClusters()-track->fNSkipped),
-              1./(1.+track->fNSkipped));
-  return track->fNormChi2[layer];
+    TMath::Max(double(track->GetNumberOfClusters()-track->GetNSkipped()),
+              1./(1.+track->GetNSkipped())));
+  return track->GetNormChi2(layer);
 }
 inline void  AliITStrackerMI::AliITSdetector::GetGlobalXYZ(const AliITSRecPoint *cl, Double_t xyz[3]) const
 {