Line data Source code
1 : #ifndef ALIITSSEGMENTATIONSSD_H
2 : #define ALIITSSEGMENTATIONSSD_H
3 :
4 : #include "AliITSsegmentation.h"
5 :
6 : //////////////////////////////////////////////////////
7 : // Segmentation class for SSD //
8 : // //
9 : //////////////////////////////////////////////////////
10 :
11 : /* $Id$ */
12 :
13 : class AliITSsegmentationSSD :
14 : public AliITSsegmentation {
15 : public:
16 :
17 : AliITSsegmentationSSD(Option_t *opt="");
18 : AliITSsegmentationSSD(const AliITSsegmentationSSD &source);
19 50 : virtual ~AliITSsegmentationSSD(){}
20 : AliITSsegmentationSSD& operator=(const AliITSsegmentationSSD &source);
21 :
22 :
23 : // Strip size
24 : virtual void SetPadSize(Float_t pitch,Float_t /* d */)
25 18 : {fPitch=pitch;}
26 :
27 : // Maximum number of strips along the two coordinates
28 18 : virtual void SetNPads(Int_t p1,Int_t /* d */){fNstrips=p1;}
29 : // Returns the maximum number of cells (digits) posible
30 0 : virtual Int_t GetNPads() const {return 2*fNstrips;}
31 :
32 :
33 : // Set stereo angles Pside-Nside
34 : virtual void SetAngles(Float_t pa=0.0075, Float_t na=0.0275)
35 18 : {fStereoP=pa; fStereoN=na;}
36 :
37 : // Set stereo angles Pside-Nside
38 : // Transform from real coordinates to strips
39 : virtual void GetPadIxz(Float_t x ,Float_t z ,Int_t &iP,Int_t &iN) const;
40 : // Transform from strips to real coordinates
41 : void GetPadCxz(Float_t iP, Float_t iN, Float_t &x , Float_t &z) const;
42 0 : virtual void GetPadCxz(Int_t iP, Int_t iN, Float_t &x , Float_t &z) const { GetPadCxz((Float_t) iP, (Float_t) iN, x, z); }
43 : virtual void GetPadTxz(Float_t &x , Float_t &z) const;
44 : // Transformation from Geant cm detector center local coordinates
45 : // to detector P and N side strip numbers..
46 : virtual Bool_t LocalToDet(Float_t x,Float_t z,Int_t &iP,Int_t &iN) const;
47 : // Transformation from detector segmentation/cell coordiantes starting
48 : // from 0. iPN=0 for P side and 1 for N side strip. Returned is z=0.0
49 : // and the corresponding x value..
50 : virtual void DetToLocal(Int_t ix,Int_t iPN,Float_t &x,Float_t &z) const;
51 :
52 : virtual Int_t GetNumberOfChips() const {
53 0 : return fgkNchipsPerSide;
54 : }
55 : virtual Int_t GetMaximumChipIndex() const{
56 6792 : return fgkNchipsPerSide*2-1;
57 : }
58 : virtual Int_t GetChipFromLocal(Float_t xloc, Float_t zloc) const;
59 : virtual Int_t GetChipFromChannel(Int_t ix, Int_t iz) const;
60 : virtual Int_t GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t xmin, Float_t xmax) const;
61 :
62 : virtual void Init();
63 :
64 : // Strip size in x
65 8690 : virtual Float_t Dpx(Int_t) const {return fPitch;}
66 : // Strip size in z
67 0 : virtual Float_t Dpz(Int_t) const {return fDz;}
68 : // Maximum number of Strips in x
69 114920504 : virtual Int_t Npx() const {return fNstrips;}
70 : // Maximum number of Strips in z
71 2 : virtual Int_t Npz()const {return 1;}
72 :
73 : // Angles : Pside stereo angle-Nside stereo angle
74 : virtual void Angles(Float_t &aP,Float_t &aN) const;
75 : virtual void SetLayer(Int_t l);
76 5320 : virtual Int_t GetLayer() const {return fLayer;}
77 : // Print Default parameters
78 : virtual void PrintDefaultParameters() const;
79 :
80 : protected:
81 :
82 : virtual void Copy(TObject &obj) const;
83 :
84 : Int_t fNstrips; // Number of strips in x
85 : Float_t fStereoP; // Stereo angle for Pside (rad)
86 : Float_t fStereoN; // Stereo angle for Nside (rad)
87 : Float_t fPitch; // Pitch of the strips
88 :
89 : Int_t fLayer; //! layer number (5 or 6)
90 : static const Float_t fgkDxDefault; // Default value for fDx
91 : static const Float_t fgkDzDefault; // Default value for fDz
92 : static const Float_t fgkDyDefault; // Default value for fDy
93 : static const Float_t fgkPitchDefault; //Default value for fPitch
94 : static const Int_t fgkNstripsDefault; //Default value for fNstrips
95 : static const Int_t fgkNchipsPerSide; //number of chips per side
96 : static const Int_t fgkNstripsPerChip; //number of strips per chip
97 :
98 118 : ClassDef(AliITSsegmentationSSD,4) //Segmentation class for SSD
99 : };
100 :
101 : #endif
|