]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSclusterTable.h
Another histos for lumi
[u/mrichter/AliRoot.git] / ITS / AliITSclusterTable.h
index 2580eda11c8590832e7593b064c845041cabab00..7c204dd4ba2df12ede6545bbdc6c7b4104aab899 100644 (file)
 ///////////////////////////////////////////////////////////////////////////
 
 
-#include <TArrayI.h>
-#include <TArrayD.h>
 #include <TObject.h>
 
-class TTree;
-class AliITStrackerSA;
-class AliITSgeom;
-class AliITSclusterV2;
 
 class AliITSclusterTable : public TObject {
 
@@ -31,68 +25,40 @@ class AliITSclusterTable : public TObject {
  public:
 
   AliITSclusterTable();
-  AliITSclusterTable(AliITSgeom* geom, AliITStrackerSA* tracker, Double_t* primaryVertex);
-  void FillArray(TTree* clusterTree,Int_t evnumber=0);
-  void FillArrayLabel(Int_t numberofparticles,TTree* clusterTree,
-                     Int_t evnumber=0);
-  void FillArrayCoorAngles(TTree* clusterTree, Int_t evnumber=0);
-  void GetCoorAngles(AliITSclusterV2* cl,Int_t module,Double_t &phi,Double_t &lambda,Double_t &x,Double_t &y,Double_t &z);
-  void GetCoorErrors(AliITSclusterV2* cl, Int_t module,Double_t &sx,Double_t &sy, Double_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);} 
-  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);}
-  Double_t   GetXCluster(Int_t layer, Int_t i){return fXList[layer]->At(i);}
-  Double_t   GetYCluster(Int_t layer, Int_t i) {return fYList[layer]->At(i);}
-  Double_t   GetZCluster(Int_t layer, Int_t i) {return fZList[layer]->At(i);}
-  Double_t   GetXClusterError(Int_t layer, Int_t i) {return fSxList[layer]->At(i);}
-  Double_t   GetYClusterError(Int_t layer, Int_t i) {return fSyList[layer]->At(i);}
-  Double_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];}
-  TArrayD*   GetListOfX(Int_t layer) const {return fXList[layer];}
-  TArrayD*   GetListOfY(Int_t layer) const {return fYList[layer];}
-  TArrayD*   GetListOfZ(Int_t layer) const {return fZList[layer];}
-  TArrayD*   GetListOfSx(Int_t layer)const {return fSxList[layer];}
-  TArrayD*   GetListOfSy(Int_t layer)const {return fSyList[layer];}
-  TArrayD*   GetListOfSz(Int_t layer)const {return fSzList[layer];}
+  AliITSclusterTable(Double_t x, Double_t y, Double_t z, Double_t sx, Double_t sy, Double_t sz, Double_t phi, Double_t lambda, Int_t index);
+  virtual ~AliITSclusterTable(){;}
+
+  Int_t   GetOrInd() const {return fOrInd;}
+  Double_t GetX() const {return fX;}
+  Double_t GetY() const {return fY;}
+  Double_t GetZ() const {return fZ;}
+  Double_t GetSx() const {return fSx;}
+  Double_t GetSy() const {return fSy;}
+  Double_t GetSz() const {return fSz;}
+  Double_t GetPhi() const {return fPhi;}
+  Double_t GetLambda() const {return fLam;}
+
+  virtual Bool_t IsEqual(const TObject *obj) const 
+    {return fLam == ((AliITSclusterTable*)obj)->fLam;}
+  virtual Bool_t      IsSortable() const { return kTRUE; }
+  virtual Int_t       Compare(const TObject *obj) const 
+    {if(fLam<((AliITSclusterTable*)obj)->fLam) return -1;
+    else if(fLam>((AliITSclusterTable*)obj)->fLam) return 1;
+    else return 0; }
+
  protected: 
 
-  // copy constructor (NO copy allowed: the constructor is protected
-  // to avoid misuse)
-  AliITSclusterTable(const AliITSclusterTable& tab);
-  // assignment operator (NO assignment allowed)
-  AliITSclusterTable& operator=(const AliITSclusterTable& /* tab */);
-
-  static Int_t FindIndex(Int_t ndim, Int_t *ptr, Int_t value);
-
-  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
-  TArrayD**    fXList;     //Array of cluster x coordinates on each layer
-  TArrayD**    fYList;     //Array of cluster y coordinates on each layer
-  TArrayD**    fZList;    // Array of cluster z coordinates on each layer
-  TArrayD**    fSxList;    //Array of cluster errors on x on each layer
-  TArrayD**    fSyList;    //Array of cluster errors on y on each layer
-  TArrayD**    fSzList;    //Array of cluster errors on z on each layer
-  AliITSgeom *fGeom;      //! ITS geometry
-  AliITStrackerSA *fTracker; //! SA tracker
-
-  ClassDef(AliITSclusterTable,1)
+  Int_t   fOrInd; //! original index in tracker
+  Double_t fX;  //!x of cluster 
+  Double_t fY;  //!y of cluster
+  Double_t fZ;  //!z of cluster
+  Double_t fSx; //! error on x
+  Double_t fSy; //! error on y
+  Double_t fSz; //! error on z
+  Double_t fPhi; //! azimuthal angle
+  Double_t fLam; //! lambda angle
+
+  ClassDef(AliITSclusterTable,3)
 };
 
 #endif