]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSsegmentationSDD.h
Added two missing includes to allow macro compilation (thanks to Laurent for remarkin...
[u/mrichter/AliRoot.git] / ITS / AliITSsegmentationSDD.h
index 44089d6d55a93a9ca88bc9bd301d26b003ca7d39..dacd449e5bda047afc4f9ed70dc6e1631aa48294 100644 (file)
@@ -13,10 +13,9 @@ public AliITSsegmentation {
  public:
 
 
-    AliITSsegmentationSDD();
+    AliITSsegmentationSDD(Option_t *opt="");
     AliITSsegmentationSDD(const AliITSsegmentationSDD &source);
     AliITSsegmentationSDD& operator=(const AliITSsegmentationSDD &source);
-    AliITSsegmentationSDD(AliITSgeom *gm);
     virtual ~AliITSsegmentationSDD(){}
 
     // Set Detector Segmentation Parameters
@@ -53,6 +52,10 @@ public AliITSsegmentation {
     virtual void    DetToLocal(Int_t ix,Int_t iz,Float_t &x,Float_t &z) const;
     //
     virtual Float_t GetAnodeFromLocal(Float_t x,Float_t z) const;
+    virtual Int_t   GetSideFromLocalX(Float_t xloc) const {
+      if(xloc>0) return 0;   // left side (channel 0) positive xloc
+      else return 1;         // right side (channel 1) negative xloc
+    }
     virtual Float_t GetLocalZFromAnode(Int_t nAnode) const;
     virtual Float_t GetLocalZFromAnode(Float_t zAnode) const;
     virtual Float_t GetDriftTimeFromTb(Int_t tb) const {
@@ -62,9 +65,21 @@ public AliITSsegmentation {
     virtual Float_t GetDriftTimeFromTb(Float_t xtb) const {
       return xtb*fTimeStep;
     }
-    //
+    virtual Int_t    GetNumberOfChips() const {
+      return fgkNchipsPerHybrid;
+    }
+    virtual Int_t    GetMaximumChipIndex() const{
+      return fgkNchipsPerHybrid*2-1;
+    }
+    virtual Int_t    GetChipFromLocal(Float_t xloc, Float_t zloc) const;
+    virtual Int_t    GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t xmin, Float_t xmax) const;
+      
+
+    virtual Int_t    GetChipFromChannel(Int_t ix, Int_t iz) const; 
+
     // Initialisation
     virtual void Init();
+
     //
     // Get member data
     //
@@ -92,6 +107,7 @@ public AliITSsegmentation {
 // Print default parameters (static const data members, if any)
     virtual void PrintDefaultParameters() const;           
 
+    static Int_t GetNAnodesPerHybrid()  { return fgkHalfNanodesDefault;}
   protected:
 
     virtual void Copy(TObject &obj) const;
@@ -109,9 +125,11 @@ public AliITSsegmentation {
     static const Float_t fgkClockDefault; //Default value for the clock freq.
     static const Int_t fgkHalfNanodesDefault; //Default value for fNanodes/2
     static const Int_t fgkNsamplesDefault; //Default value for fNsamples
-    static const Float_t fgkCm2Micron;
-    static const Float_t fgkMicron2Cm;
-    ClassDef(AliITSsegmentationSDD,5) // SDD segmentation
+    static const Int_t fgkNchipsPerHybrid;    //number of chips per hybrid
+    static const Int_t fgkNanodesPerChip;    //number of chips per hybrid
+    static const Float_t fgkCm2Micron;  // conversion from cm to micron
+    static const Float_t fgkMicron2Cm;  // conversion from micron to cm
+    ClassDef(AliITSsegmentationSDD,6) // SDD segmentation
 };
 
 #endif