]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSsegmentationSSD.h
New ITS code for new structure and simulations.
[u/mrichter/AliRoot.git] / ITS / AliITSsegmentationSSD.h
1 #ifndef ALIITSSEGMENTATIONSSD_H
2 #define ALIITSSEGMENTATIONSSD_H
3
4 #include "AliITSsegmentation.h"
5
6 // segmentation for SSD
7
8 class AliITSsegmentationSSD :
9 public AliITSsegmentation {
10  public:
11
12     AliITSsegmentationSSD();
13     AliITSsegmentationSSD(AliITSgeom *gm);
14     AliITSsegmentationSSD(AliITSsegmentationSSD &source);
15     virtual ~AliITSsegmentationSSD(){}
16     AliITSsegmentationSSD& operator=(AliITSsegmentationSSD &source);
17
18
19     // Detector size: x,z,y 
20     virtual  void   SetDetSize
21           (Float_t p1=72960., Float_t p2=40000., Float_t p3= 300.) 
22                         {fDx=p1; fDz=p2; fDy=p3;}
23
24     // Strip size  
25     virtual void    SetCellSize(Float_t pitch=95., Float_t dummy=1.) 
26                          {fPitch=pitch;}
27
28     // Maximum number of strips along the two coordinates  
29     virtual void    SetNCells(Int_t p1=768, Int_t dummy=1) 
30                          {fNstrips=p1;}
31
32
33     // Set stereo angles Pside-Nside 
34     virtual void    SetAngles(Float_t pa=0.0175, Float_t na=0.0175) 
35                          {fStereoP=pa; fStereoN=na;}
36
37     // Transform from real coordinates to strips
38     virtual void    GetCellIxz
39     (Float_t &x ,Float_t &z ,Int_t   &iP,Int_t  &iN);
40     // Transform from strips to real coordinates
41     virtual void    GetCellCxz
42     (Int_t iP, Int_t iN, Float_t &x , Float_t &z);
43
44     // Transform from real global to local coordinates
45     virtual void    GetLocal(Int_t module,Float_t *g ,Float_t *l) {}
46     // Transform from real local to global coordinates
47     virtual void    GetGlobal(Int_t module,Float_t *l ,Float_t *g) {}
48
49     virtual void Init();
50
51     // Detector type geometry
52     virtual AliITSgeom* Geometry() {return 0;}
53     // Detector length
54     virtual Float_t Dx() {return fDx;}
55     // Detector width
56     virtual Float_t Dz() {return fDz;}
57     // Detector thickness
58     virtual Float_t Dy() {return fDy;}
59     // Strip size in x
60     virtual Float_t Dpx(Int_t) {return fPitch;}
61     // Strip size in z 
62     virtual Float_t Dpz(Int_t) {return fDz;}
63     // Maximum number of Strips in x
64     virtual Int_t    Npx() {return fNstrips;}
65     // Maximum number of Strips in z
66     virtual Int_t    Npz(){return 1;}
67
68     // Angles : Pside stereo angle-Nside stereo angle
69     virtual void Angles(Float_t &aP,Float_t &aN) 
70                      {aP=fStereoP;aN=fStereoN;}
71
72   protected:
73
74   Int_t      fNstrips;       // Number of strips in x 
75   Float_t    fStereoP;       // Stereo angle for Pside
76   Float_t    fStereoN;       // Stereo angle for Nside
77   Float_t    fPitch;         // Pitch of the strips
78   Float_t    fDz;            // Full width of the detector (z axis)- microns
79   Float_t    fDx;            // Full length of the detector (x axis)- microns
80   Float_t    fDy;            // Full thickness of the detector (y axis) -um 
81   
82   AliITSgeom *fGeom;         // pointer to the geometry class
83   TF1*       fCorr;          // correction function
84   
85   ClassDef(AliITSsegmentationSSD,1) //Segmentation class for SSD 
86 };
87
88 #endif