A typo corrected
[u/mrichter/AliRoot.git] / ITS / AliITSsegmentationSDD.h
index 8ec440895be530f963daec3bd8b5094c918ada6c..1eedf8d1c077b9523f98b2d1f4d553ca7e423276 100644 (file)
@@ -3,10 +3,10 @@
 
 
 #include "AliITSsegmentation.h"
-#include "AliITSresponse.h"
 
 // segmentation for SDD
 
+class AliITSresponse;
 class AliITSsegmentationSDD :
 public AliITSsegmentation {
  public:
@@ -22,25 +22,35 @@ public AliITSsegmentation {
     //
     // Detector size : x,z,y
   virtual  void   SetDetSize
-          (Float_t p1=35000., Float_t p2=76800., Float_t p3= 300.) 
+          (Float_t p1=35000., Float_t p2=75264., Float_t p3= 300.) 
           {fDx=p1; fDz=p2; fDy=p3;}
 
     // Cell size dz*dx  
-    virtual void    SetCellSize(Float_t pitch=200., Float_t clock=40.) 
+    virtual void    SetPadSize(Float_t pitch=294., Float_t clock=40.) 
                          {fPitch=pitch;fTimeStep=1000./clock;}
 
     // Maximum number of cells along the two coordinates z,x (anodes,samples) 
-    virtual void    SetNCells(Int_t p1=384, Int_t p2=256) 
+    virtual void    SetNPads(Int_t p1=256, Int_t p2=256) 
                          {fNanodes=2*p1;fNsamples=p2;}
+    // Returns the maximum number of cells (digits) posible
+    virtual Int_t   GetNPads(){return fNanodes*fNsamples;}
 
     // Transform from real local to cell coordinates
-    virtual void    GetCellIxz(Float_t &x ,Float_t &z ,Int_t   &ix,Int_t   &iz);
+    virtual void    GetPadIxz(Float_t x ,Float_t z ,Int_t   &ix,Int_t   &iz);
     // Transform from cell to real local coordinates
-    virtual void    GetCellCxz(Int_t   ix,Int_t   iz,Float_t &x ,Float_t &z );
+    virtual void    GetPadCxz(Int_t   ix,Int_t   iz,Float_t &x ,Float_t &z );
     // Transform from real global to local coordinates
     virtual void    GetLocal(Int_t module,Float_t *g ,Float_t *l);
     // Transform from real local to global coordinates
     virtual void    GetGlobal(Int_t module,Float_t *l ,Float_t *g);
+    // Get anode and time bucket as floats - numbering from 0
+    virtual void    GetPadTxz(Float_t &x ,Float_t &z);
+    // Transformation from Geant cm detector center local coordinates
+    // to detector segmentation/cell coordiantes starting from (0,0).
+    virtual void    LocalToDet(Float_t x,Float_t z,Int_t &ix,Int_t &iz);
+    // Transformation from detector segmentation/cell coordiantes starting
+    // from (0,0) to Geant cm detector center local coordinates.
+    virtual void    DetToLocal(Int_t ix,Int_t iz,Float_t &x,Float_t &z);
     //
     // Initialisation
     virtual void Init();
@@ -51,7 +61,7 @@ public AliITSsegmentation {
     virtual AliITSgeom* Geometry() {return fGeom;}
     // Detector length
     virtual Float_t Dx() {return fDx;}
-    // Detector width
+    // Detector drift distance or detector active area half width
     virtual Float_t Dz()  {return fDz;}  
     // Detector thickness
     virtual Float_t Dy() {return fDy;}
@@ -78,12 +88,12 @@ public AliITSsegmentation {
     //
     // Iterate over cells 
     // Initialiser
-    virtual void  FirstCell
+    virtual void  FirstPad
           (Float_t xhit, Float_t zhit, Float_t dx, Float_t dz) {}
     // Stepper
-    virtual void  NextCell() {}
+    virtual void  NextPad() {}
     // Condition
-    virtual Int_t MoreCells() {return 0;}
+    virtual Int_t MorePads() {return 0;}
     //
     // Current cell cursor during disintegration
     // x-coordinate
@@ -105,18 +115,20 @@ public AliITSsegmentation {
     virtual void SetCorrFunc(Int_t, TF1*) {}
     // Get the correction Function
     virtual TF1* CorrFunc(Int_t) {return 0;}
+    // Print Parameters
+    virtual void    Print();
            
   protected:
 
-    Int_t      fNsamples;      // Number of time samples in x
-    Int_t      fNanodes;       // Summed # of anodes in the two det halves (z)
-    Float_t    fPitch;         // Anode pitch - microns
-    Float_t    fTimeStep;      // Sampling time - ns
-    Float_t    fDx   ;         // Full width of the detector (x axis) - microns
-    Float_t    fDz    ;        // Length of half-detector (z axis) - microns
-    Float_t    fDy;            // Full thickness of the detector (y axis)
+    Int_t      fNsamples; // Number of time samples in x
+    Int_t      fNanodes;  // Summed # of anodes in the two det halves (z)
+    Float_t    fPitch;    // Anode pitch - microns
+    Float_t    fTimeStep; // Sampling time - ns
+    Float_t    fDx;       // Drift distance of the 1/2detector (x axis)-microns
+    Float_t    fDz;       // Length of half-detector (z axis) - microns
+    Float_t    fDy;       // Full thickness of the detector (y axis) - microns
 
-    AliITSgeom *fGeom;         // pointer to the geometry class
+    AliITSgeom *fGeom;         //! pointer to the geometry class
     AliITSresponse *fResponse; // pointer to the response class
    
     TF1*       fCorr;          // correction function