]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSURecoDet.h
Set the TPC-ITS matching check R between the outer acctive layer and fiducial mat...
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoDet.h
index edb63bc3c81c9524ef000994367261407a7c771c..4a1b980d874408311ff995f4c8dcd3c96f132469 100644 (file)
@@ -5,6 +5,7 @@
 #include <TObjArray.h>
 #include "AliITSURecoLayer.h"
 class AliITSUGeomTGeo;
+class TTree;
 
 ///////////////////////////////////////////////////////////////////////
 //                                                                   //
@@ -23,34 +24,45 @@ class AliITSURecoDet : public TNamed
   //
   Double_t           GetRMin()                     const {return fRMin;}
   Double_t           GetRMax()                     const {return fRMax;}
+  Double_t           GetRITSTPCRef()               const {return fRITSTPCRef;}
   Int_t              GetNLayers()                  const {return fNLayers;}
   Int_t              GetNLayersActive()            const {return fNLayersActive;}
   Int_t              GetLrIDActive(Int_t lrActID)  const;
+  Int_t              FindLastLayerID(Double_t r, int dir)  const;
+  Int_t              FindFirstLayerID(Double_t r, int dir) const;
   AliITSURecoLayer*  GetLayer(Int_t i)             const;
   AliITSURecoLayer*  GetLayerActive(Int_t i)       const;
   AliITSUGeomTGeo*   GetGeom()                     const {return fGeom;}
   //
   void               SetRMin(Double_t r)                 {fRMin = r;}
   void               SetRMax(Double_t r)                 {fRMax = r;}
+  void               SetRITSTPCRef(Double_t r)           {fRITSTPCRef = r;}
   //
   void               AddLayer(const AliITSURecoLayer* lr);
   //
   void               ProcessClusters(Int_t mode=0);
+  void               CreateClusterArrays();
+  Int_t              LoadClusters(TTree* treeRP);
   //
   virtual void       Print(Option_t* option = "")  const;
   //
  protected:
   Bool_t             Build();
+  void               IndexLayers();
   //
  protected:
   Int_t              fNLayers;        // total number of layers
   Int_t              fNLayersActive;  // N of active layers
   Double_t           fRMax;           // max  R
   Double_t           fRMin;           // min  R
+  Double_t           fRITSTPCRef;     // reference radius for ITS/TPC matching check
   TObjArray          fLayers;         // layers
   TObjArray          fLayersActive;   // active layers
   AliITSUGeomTGeo*   fGeom;           // ITS geometry
   //
+ protected:
+  static const Char_t*     fgkBeamPipeVolName;    // name of the beam pipe volume
+
  private:
   AliITSURecoDet(const AliITSURecoDet &source); 
   AliITSURecoDet& operator=(const AliITSURecoDet &source); 
@@ -64,21 +76,22 @@ class AliITSURecoDet : public TNamed
 inline Int_t AliITSURecoDet::GetLrIDActive(Int_t lrActID) const 
 {
   // get global layer id from active id
-  return (lrActID<fNLayersActive) ? ((AliITSURecoLayer*)fLayersActive.UncheckedAt(lrActID))->GetID() : fNLayers;
+  return (lrActID<fNLayersActive) ? ((AliITSURecoLayer*)fLayersActive.UncheckedAt(lrActID))->GetID() 
+    : GetLayerActive(fNLayersActive-1)->GetID()+1;
 }
 
 //_____________________________________________________________
 inline AliITSURecoLayer* AliITSURecoDet::GetLayer(Int_t i) const 
 {
   // get layer with global id=i
-  return i<fNLayers ? (AliITSURecoLayer*)fLayers.UncheckedAt(i):0;
+  return i>=0&&i<fNLayers ? (AliITSURecoLayer*)fLayers.UncheckedAt(i):0;
 }
 
 //_____________________________________________________________
 inline AliITSURecoLayer* AliITSURecoDet::GetLayerActive(Int_t i) const
 {
   // get layer with activeID=i
-  return i<fNLayersActive ? (AliITSURecoLayer*)fLayersActive.UncheckedAt(i):0;
+  return i>=0&&i<fNLayersActive ? (AliITSURecoLayer*)fLayersActive.UncheckedAt(i):0;
 }
 
 //______________________________________________________