]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSclusterTable.h
Bug fix, thanks to Ludovic.
[u/mrichter/AliRoot.git] / ITS / AliITSclusterTable.h
index 0028f746ccfb8014f31d3bff72db6caa423ff230..ff80d5933a63c358d7569a5b436da2492d522386 100644 (file)
 
 
 #include <TArrayI.h>
+#include <TArrayD.h>
+#include <TArrayF.h>
 #include <TObject.h>
 
 class TTree;
 class AliITStrackerSA;
 class AliITSgeom;
+class AliITSclusterV2;
 
 class AliITSclusterTable : public TObject {
 
@@ -29,21 +32,39 @@ class AliITSclusterTable : public TObject {
  public:
 
   AliITSclusterTable();
-  AliITSclusterTable(AliITSgeom* geom, AliITStrackerSA* tracker);
-  void FillArray(TTree* clusterTree,Int_t evnumber=0);
-  void FillArrayLabel(const Int_t numberofparticles,TTree* clusterTree,
-                     Int_t evnumber=0);
+  AliITSclusterTable(AliITSgeom* geom, AliITStrackerSA* tracker, Double_t* primaryVertex);
+  void FillArray(TTree* clusterTree);
+  void FillArrayLabel(Int_t numberofparticles);
+  void FillArrayCoorAngles();
+  void GetCoorAngles(AliITSclusterV2* cl,Int_t module,Double_t &phi,Double_t &lambda,Float_t &x,Float_t &y,Float_t &z);
+  void GetCoorErrors(AliITSclusterV2* cl, Int_t module,Float_t &sx,Float_t &sy, Float_t &sz);
   virtual ~AliITSclusterTable();
 
 
   Int_t      GetNCluster(Int_t mod) const {return fNCl[mod];}
   Int_t      GetClusterIndMod(Int_t mod,Int_t i){return fDet[mod]->At(i);} 
-  TArrayI*   GetListOfClusters(Int_t mod) const {return fDet[mod];}
-  TArrayI*   GetNClustersSameLabel(Int_t label) const {return fLbl[label];}
   Int_t      ThereIsClusterOnLayer(Int_t label,Int_t layer)
              {return fLbl[label]->At(layer);}
   Int_t      ThisParticleIsTrackable(Int_t label,Int_t numberofpoints=6);
+  Double_t   GetPhiCluster(Int_t layer, Int_t i){return fPhiList[layer]->At(i);}
+  Double_t   GetLambdaCluster(Int_t layer, Int_t i) {return fLambdaList[layer]->At(i);}
+  Float_t   GetXCluster(Int_t layer, Int_t i){return fXList[layer]->At(i);}
+  Float_t   GetYCluster(Int_t layer, Int_t i) {return fYList[layer]->At(i);}
+  Float_t   GetZCluster(Int_t layer, Int_t i) {return fZList[layer]->At(i);}
+  Float_t   GetXClusterError(Int_t layer, Int_t i) {return fSxList[layer]->At(i);}
+  Float_t   GetYClusterError(Int_t layer, Int_t i) {return fSyList[layer]->At(i);}
+  Float_t   GetZClusterError(Int_t layer, Int_t i) {return fSzList[layer]->At(i);}
 
+  TArrayI*   GetListOfClusters(Int_t mod) const {return fDet[mod];}
+  TArrayI*   GetNClustersSameLabel(Int_t label) const {return fLbl[label];}
+  TArrayD*   GetListOfPhi(Int_t layer) const {return fPhiList[layer];}
+  TArrayD*   GetListOfLambda(Int_t layer) const {return fLambdaList[layer];}
+  TArrayF*   GetListOfX(Int_t layer) const {return fXList[layer];}
+  TArrayF*   GetListOfY(Int_t layer) const {return fYList[layer];}
+  TArrayF*   GetListOfZ(Int_t layer) const {return fZList[layer];}
+  TArrayF*   GetListOfSx(Int_t layer)const {return fSxList[layer];}
+  TArrayF*   GetListOfSy(Int_t layer)const {return fSyList[layer];}
+  TArrayF*   GetListOfSz(Int_t layer)const {return fSzList[layer];}
  protected: 
 
   // copy constructor (NO copy allowed: the constructor is protected
@@ -54,10 +75,20 @@ class AliITSclusterTable : public TObject {
 
   static Int_t FindIndex(Int_t ndim, Int_t *ptr, Int_t value);
 
-  Int_t        *fNCl;//number of clusters per module
-  TArrayI**    fDet;      //Array of cluster indices for each detector
-  TArrayI**    fLbl;      //Array of number of clusters (on each layer) 
-                          // with the same label for each label.
+  Int_t        *fNCl;      //number of clusters per module
+  Double_t     fPrimaryVertex[3]; //primaryVertex
+  TArrayI**    fDet;       //Array of cluster indices for each detector
+  TArrayI**    fLbl;       //Array of number of clusters (on each layer) 
+                           // with the same label for each label.
+  TArrayD**    fPhiList;   //Array of cluster azimuthal angles on each layer
+  TArrayD**    fLambdaList;//Array of cluster Lambda angles on each layer
+  TArrayF**    fXList;     //Array of cluster x coordinates on each layer
+  TArrayF**    fYList;     //Array of cluster y coordinates on each layer
+  TArrayF**    fZList;    // Array of cluster z coordinates on each layer
+  TArrayF**    fSxList;    //Array of cluster errors on x on each layer
+  TArrayF**    fSyList;    //Array of cluster errors on y on each layer
+  TArrayF**    fSzList;    //Array of cluster errors on z on each layer
   AliITSgeom *fGeom;      //! ITS geometry
   AliITStrackerSA *fTracker; //! SA tracker