]>
Commit | Line | Data |
---|---|---|
a3d834a0 | 1 | #ifndef ALIITSGEOMSPD_H |
2 | #define ALIITSGEOMSPD_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$ */ | |
023ae34b | 7 | #include <Riostream.h> |
8253cd9a | 8 | #include <TObject.h> |
9 | #include <TBRIK.h> | |
195d8dfe | 10 | |
85f1e34a | 11 | //////////////////////////////////////////////////////////////////////// |
12 | // This class is for the Silicon Pixel Detector, SPD, specific geometry. | |
13 | // It is being replaced by AliITSsegmentationSPD class. This file also | |
14 | // constains classes derived from AliITSgeomSPD which do nothing but | |
15 | // initilize this one with predefined values. | |
16 | //////////////////////////////////////////////////////////////////////// | |
58005f18 | 17 | |
8253cd9a | 18 | class TShape; |
195d8dfe | 19 | |
8253cd9a | 20 | class AliITSgeomSPD : public TObject { |
a3d834a0 | 21 | |
8253cd9a | 22 | public: |
23 | AliITSgeomSPD(); | |
24 | AliITSgeomSPD(Float_t dy,Int_t nx,Float_t *bx,Int_t nz,Float_t *bz); | |
25 | AliITSgeomSPD(AliITSgeomSPD &source); | |
26 | AliITSgeomSPD& operator=(AliITSgeomSPD &source); | |
27 | virtual ~AliITSgeomSPD(); | |
28 | virtual void ReSetBins(Float_t dy,Int_t nx,Float_t *bx, | |
29 | Int_t nz,Float_t *bz); | |
023ae34b | 30 | virtual TShape *GetShape() const {return new TBRIK(fName.Data(), |
31 | fTitle.Data(),fMat.Data(),GetDx(),GetDy(),GetDz());} | |
32 | virtual Float_t GetDx() const {return fDx;} // Get TBRIK Dx | |
33 | virtual Float_t GetDy() const {return fDy;}// Get TBRIK Dy | |
34 | virtual Float_t GetDz() const {return fDz;}// Get TBRIK Dz | |
8f74f9fa | 35 | virtual Int_t GetNbinsX() const {return fNbinx-1;} // returns the number of bins x |
36 | virtual Int_t GetNbinsZ() const {return fNbinz-1;} // returns the number of bins z | |
31b8cd63 | 37 | virtual Float_t GetBinSizeX(Int_t i) const |
8253cd9a | 38 | {if(i<fNbinx-1&&i>=0) return fLowBinEdgeX[i+1]-fLowBinEdgeX[i]; |
39 | else return 0.0;}; // give size of bin i in x. | |
31b8cd63 | 40 | virtual Float_t GetBinSizeZ(Int_t i) const |
8253cd9a | 41 | {if(i<fNbinx-1&&i>=0) return fLowBinEdgeZ[i+1]-fLowBinEdgeZ[i]; |
42 | else return 0.0;}; // give size of bin i in z. | |
31b8cd63 | 43 | virtual Float_t GetBinLowEdgeX(Int_t i) const |
8253cd9a | 44 | {if(i<fNbinx-1&&i>=0) return fLowBinEdgeX[i]; |
45 | else return 0.0;}; // give size of bin i in x. | |
31b8cd63 | 46 | virtual Float_t GetBinLowEdgeZ(Int_t i) const |
8253cd9a | 47 | {if(i<fNbinz-1&&i>=0) return fLowBinEdgeZ[i]; |
48 | else return 0.0;}; // give size of bin i in z. | |
49 | virtual void InitLowBinEdgeX(){// allocate memory for fLowBinEdgeX. | |
50 | if(fLowBinEdgeX!=0) delete[] fLowBinEdgeX; | |
51 | if(fNbinx>0) fLowBinEdgeX = new Float_t[fNbinx];else fLowBinEdgeX = 0;} | |
52 | virtual void InitLowBinEdgeZ(){// allocate memory for fLowBinEdgeZ. | |
53 | if(fLowBinEdgeZ!=0) delete[] fLowBinEdgeZ; | |
54 | if(fNbinz>0) fLowBinEdgeZ = new Float_t[fNbinz];else fLowBinEdgeZ = 0;} | |
55 | virtual void SetShape(const char *name,const char *title,const char *mat, | |
023ae34b | 56 | Float_t dx,Float_t dy,Float_t dz); |
8253cd9a | 57 | virtual void SetNbinX(Int_t i){fNbinx = i+1;} // Set nubmer of pixels in x |
58 | virtual void SetNbinZ(Int_t i){fNbinz = i+1;} // Set nubmer of pixels in z | |
59 | virtual void SetLowBinEdgeX(Int_t i,Float_t s){//puts value in fLowbinEdgeX | |
60 | if(i>=0&&i<fNbinx) fLowBinEdgeX[i] = s;} | |
61 | virtual void SetLowBinEdgeZ(Int_t i,Float_t s){//puts value in fLowbinEdgeZ | |
62 | if(i>=0&&i<fNbinz) fLowBinEdgeZ[i] = s;}; | |
63 | virtual void LToDet(Float_t xl,Float_t zl,Int_t &row,Int_t &col); | |
64 | virtual void DetToL(Int_t row,Int_t col,Float_t &xl,Float_t &zl); | |
31b8cd63 | 65 | virtual void Print(ostream *os) const; // output streamer to standard out. |
8253cd9a | 66 | virtual void Read(istream *is); // input streamer from standard in. |
d2f55a22 | 67 | virtual void Print(Option_t *option="") const {TObject::Print(option);} |
68 | virtual Int_t Read(const char *name) {return TObject::Read(name);} | |
8253cd9a | 69 | |
70 | protected: | |
023ae34b | 71 | TString fName; // Object name Replacement for TBRIK |
72 | TString fTitle; // Ojbect title Replacement for TBRIK | |
73 | TString fMat; // Object material name Replacement for TBRIK | |
74 | Float_t fDx; // half length in z Replacement for TBRIK | |
75 | Float_t fDy; // half length in y Replacement for TBRIK | |
76 | Float_t fDz; // half length in z Replacement for TBRIK | |
8253cd9a | 77 | Int_t fNbinx; // the number of elements in fLowBinEdgeX (#bins-1) |
78 | Int_t fNbinz; // the number of elements in fLowBinEdgeZ (#bins-1) | |
79 | Float_t *fLowBinEdgeX; //[fNbinx] Array of X lower bin edges for the pixels | |
80 | Float_t *fLowBinEdgeZ; //[fNbinz] Array of Z lower bin edges for the pixels | |
81 | ||
023ae34b | 82 | ClassDef(AliITSgeomSPD,2) // ITS SPD detector geometry class.. |
8253cd9a | 83 | |
84 | }; | |
85 | // Input and output function for standard C++ input/output. | |
86 | ostream &operator<<(ostream &os,AliITSgeomSPD &source); | |
87 | istream &operator>>(istream &os,AliITSgeomSPD &source); | |
88 | #endif | |
89 | //====================================================================== | |
90 | ||
91 | #ifndef ALIITSGEOMSPD300_H | |
92 | #define ALIITSGEOMSPD300_H | |
93 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
94 | * See cxx source for full Copyright notice */ | |
95 | ||
96 | /* $Id$ */ | |
97 | ||
98 | //#include "AliITSgeomSPD.h" | |
99 | ||
8253cd9a | 100 | |
101 | class AliITSgeomSPD300 : public AliITSgeomSPD { | |
a3d834a0 | 102 | |
58005f18 | 103 | public: |
8253cd9a | 104 | AliITSgeomSPD300(); |
105 | ||
106 | // This clas now has version 0 so that it will not be written to a root | |
107 | // file. This is good since there are no longer any data members to this | |
108 | // class. It is only designed to make it easer to define this standard | |
109 | // SPD detector geometry. | |
110 | ClassDef(AliITSgeomSPD300,0) // ITS SPD detector geometry class for 300X50 micron pixel size. | |
111 | ||
112 | }; | |
113 | // Input and output function for standard C++ input/output. | |
114 | ostream &operator<<(ostream &os,AliITSgeomSPD300 &source); | |
115 | istream &operator>>(istream &os,AliITSgeomSPD300 &source); | |
116 | #endif | |
117 | //====================================================================== | |
118 | ||
119 | #ifndef ALIITSGEOMSPD425SHORT_H | |
120 | #define ALIITSGEOMSPD425SHORT_H | |
121 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
122 | * See cxx source for full Copyright notice */ | |
123 | ||
124 | /* $Id$ */ | |
125 | ||
126 | //#include "AliITSgeomSPD.h" | |
127 | ||
128 | ||
129 | // temporary - this will migrate into the segmentation class | |
130 | ||
8253cd9a | 131 | |
132 | class AliITSgeomSPD425Short : public AliITSgeomSPD { | |
133 | ||
134 | public: | |
135 | AliITSgeomSPD425Short(); | |
e99dbc71 | 136 | AliITSgeomSPD425Short(Int_t npar,Float_t *par); |
8253cd9a | 137 | |
138 | // This clas now has version 0 so that it will not be written to a root | |
139 | // file. This is good since there are no longer any data members to this | |
140 | // class. It is only designed to make it easer to define this standard | |
141 | // SPD detector geometry. | |
142 | ClassDef(AliITSgeomSPD425Short,0) // ITS SPD detector geometry class for 425X50 micron pixel size Short version. | |
143 | ||
144 | }; | |
145 | // Input and output function for standard C++ input/output. | |
146 | ostream &operator<<(ostream &os,AliITSgeomSPD425Short &source); | |
147 | istream &operator>>(istream &os,AliITSgeomSPD425Short &source); | |
148 | #endif | |
149 | //====================================================================== | |
150 | ||
151 | #ifndef ALIITSGEOMSPD425LONG_H | |
152 | #define ALIITSGEOMSPD425LONG_H | |
153 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
154 | * See cxx source for full Copyright notice */ | |
155 | ||
156 | /* $Id$ */ | |
157 | ||
158 | //#include "AliITSgeomSPD.h" | |
159 | ||
160 | ||
161 | // temporary - this will migrate into the segmentation class | |
162 | ||
8253cd9a | 163 | |
164 | class AliITSgeomSPD425Long : public AliITSgeomSPD { | |
165 | ||
166 | public: | |
167 | AliITSgeomSPD425Long(); | |
168 | ||
169 | // This clas now has version 0 so that it will not be written to a root | |
170 | // file. This is good since there are no longer any data members to this | |
171 | // class. It is only designed to make it easer to define this standard | |
172 | // SPD detector geometry. | |
173 | ClassDef(AliITSgeomSPD425Long,0) // ITS SPD detector geometry class for 425X50 micron pixel size. | |
a3d834a0 | 174 | |
58005f18 | 175 | }; |
8253cd9a | 176 | // Input and output function for standard C++ input/output. |
177 | ostream &operator<<(ostream &os,AliITSgeomSPD425Long &source); | |
178 | istream &operator>>(istream &os,AliITSgeomSPD425Long &source); | |
58005f18 | 179 | #endif |