]>
Commit | Line | Data |
---|---|---|
26b7ec2a | 1 | #ifndef ALIITSGEOMSDD_H |
2 | #define ALIITSGEOMSDD_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
5323dece | 7 | #include <TObject.h> |
8253cd9a | 8 | #include <TBRIK.h> |
5323dece | 9 | |
8253cd9a | 10 | class TShape; |
58005f18 | 11 | |
12 | class AliITSgeomSDD: public TObject { | |
5323dece | 13 | public: |
14 | AliITSgeomSDD(); | |
8253cd9a | 15 | AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel, |
16 | Float_t axL,Float_t axR, | |
17 | Int_t nA0,Float_t *le0,Int_t nA1,Float_t *le1); | |
5323dece | 18 | AliITSgeomSDD(AliITSgeomSDD &source); |
5323dece | 19 | AliITSgeomSDD& operator=(AliITSgeomSDD &source); |
8253cd9a | 20 | virtual ~AliITSgeomSDD(); |
31b8cd63 | 21 | void ResetSDD(const Float_t *box,Float_t per,Float_t vel, |
22 | Float_t axL,Float_t axR, | |
23 | Int_t nA0,Float_t *le0,Int_t nA1,Float_t *le1); | |
8253cd9a | 24 | virtual TShape *GetShape() const {return fShapeSDD;} |
31b8cd63 | 25 | virtual Float_t GetDx() const { // Get TBRIK Dx |
8253cd9a | 26 | if(fShapeSDD!=0) return fShapeSDD->GetDx(); |
27 | else return 0.0;} | |
31b8cd63 | 28 | virtual Float_t GetDy() const {// Get TBRIK Dy |
8253cd9a | 29 | if(fShapeSDD!=0) return fShapeSDD->GetDy(); |
30 | else return 0.0;} | |
31b8cd63 | 31 | virtual Float_t GetDz() const {// Get TBRIK Dz |
8253cd9a | 32 | if(fShapeSDD!=0) return fShapeSDD->GetDz(); |
33 | else return 0.0;} | |
31b8cd63 | 34 | virtual Float_t GetAnodeX(Int_t a,Int_t s) const { // returns X position of anode |
8253cd9a | 35 | if(s==0) return fAnodeXL; else return fAnodeXR;} |
31b8cd63 | 36 | virtual Float_t GetAnodeZ(Int_t a,Int_t s)const { // returns X position of anode |
8253cd9a | 37 | if(s==0) return 0.5*(fAnodeLowEdgeL[a]+fAnodeLowEdgeL[a+1]); |
38 | else return 0.5*(fAnodeLowEdgeR[a]+fAnodeLowEdgeR[a+1]);} | |
39 | virtual void SetNAnodesL(Int_t s) | |
40 | {fNAnodesL = s;} // sets the number of anodes on side 0. | |
41 | virtual void SetNAnodesR(Int_t s) | |
42 | {fNAnodesR = s;} // sets the anodes spacing for side 1. | |
43 | virtual void SetSamplingPeriod(Float_t s) | |
44 | {fPeriod = s;} // sets the clock sampling period s. | |
45 | virtual void SetDriftVelocity(Float_t s) | |
46 | {fDvelocity = s;} // sets the SDD Drift velocity cm/s. | |
47 | virtual void SetShape(char *name,char *title,char *mat, | |
48 | Float_t dx,Float_t dy,Float_t dz) | |
49 | {fShapeSDD = new TBRIK(name,title,mat,dx,dy,dz);} | |
50 | virtual void Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s); | |
51 | virtual void Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl); | |
31b8cd63 | 52 | virtual void Print(ostream *os) const; // Output streamer to standard out. |
8253cd9a | 53 | virtual void Read(istream *is); // Input streamer to standard in. |
5323dece | 54 | // or what other or different information that is needed. |
55 | ||
8253cd9a | 56 | protected: |
57 | // (L) -+-> x (R) | |
58 | // | | |
59 | // V z | |
60 | Float_t fPeriod; // ADC sampiling period | |
61 | Float_t fDvelocity; // Drift velocity | |
62 | Int_t fNAnodesL; // number of Anodes on size 0 | |
63 | Int_t fNAnodesR; // number of Anodes on size 1 | |
64 | Float_t fAnodeXL; // Anode location in x Left side | |
65 | Float_t fAnodeXR; // Anode location in x Right side | |
66 | Float_t *fAnodeLowEdgeL; //[fNAnodesL] Anode spacing left edge | |
67 | Float_t *fAnodeLowEdgeR; //[fNAnodesR] Anode spacing right edge | |
5323dece | 68 | TBRIK *fShapeSDD; // shape of sensitive volume |
58005f18 | 69 | |
26b7ec2a | 70 | ClassDef(AliITSgeomSDD,1) // ITS SDD detector geometry class |
8253cd9a | 71 | |
72 | }; | |
73 | // Input and output function for standard C++ input/output. | |
74 | ostream &operator<<(ostream &os,AliITSgeomSDD &source); | |
75 | istream &operator>>(istream &os,AliITSgeomSDD &source); | |
76 | #endif | |
77 | //====================================================================== | |
78 | #ifndef ALIITSGEOMSDD256_H | |
79 | #define ALIITSGEOMSDD256_H | |
80 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
81 | * See cxx source for full Copyright notice */ | |
82 | ||
83 | /* | |
84 | $Id$ | |
85 | */ | |
86 | ||
87 | //#include "AliITSgeomSDD.h" | |
88 | ||
8253cd9a | 89 | |
90 | class AliITSgeomSDD256 : public AliITSgeomSDD { | |
91 | ||
92 | public: | |
93 | AliITSgeomSDD256(); | |
94 | ||
95 | // This clas now has version 0 so that it will not be written to a root | |
96 | // file. This is good since there are no longer any data members to this | |
97 | // class. It is only designed to make it easer to define this standard | |
98 | // SDD detector geometry. | |
99 | ClassDef(AliITSgeomSDD256,0) // ITS SDD detector geometry class for 256 anodes per side | |
100 | ||
101 | }; | |
102 | // Input and output function for standard C++ input/output. | |
103 | ostream &operator<<(ostream &os,AliITSgeomSDD256 &source); | |
104 | istream &operator>>(istream &os,AliITSgeomSDD256 &source); | |
105 | #endif | |
106 | //====================================================================== | |
107 | #ifndef ALIITSGEOMSDD300_H | |
108 | #define ALIITSGEOMSDD300_H | |
109 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
110 | * See cxx source for full Copyright notice */ | |
111 | ||
112 | /* | |
113 | $Id$ | |
114 | */ | |
115 | ||
116 | //#include "AliITSgeomSDD.h" | |
117 | ||
8253cd9a | 118 | |
119 | class AliITSgeomSDD300 : public AliITSgeomSDD { | |
120 | ||
121 | public: | |
122 | AliITSgeomSDD300(); | |
123 | ||
124 | // This clas now has version 0 so that it will not be written to a root | |
125 | // file. This is good since there are no longer any data members to this | |
126 | // class. It is only designed to make it easer to define this standard | |
127 | // SDD detector geometry. | |
128 | ClassDef(AliITSgeomSDD300,0) // ITS SDD detector geometry class for 300 anodes per side | |
129 | ||
58005f18 | 130 | }; |
8253cd9a | 131 | // Input and output function for standard C++ input/output. |
132 | ostream &operator<<(ostream &os,AliITSgeomSDD300 &source); | |
133 | istream &operator>>(istream &os,AliITSgeomSDD300 &source); | |
58005f18 | 134 | #endif |