]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSgeomSPD.h
Fixed bug in read "new" and old .det files. Fix missing init of
[u/mrichter/AliRoot.git] / ITS / AliITSgeomSPD.h
CommitLineData
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 18class TShape;
195d8dfe 19
8253cd9a 20class 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.
86ostream &operator<<(ostream &os,AliITSgeomSPD &source);
87istream &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
101class 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.
114ostream &operator<<(ostream &os,AliITSgeomSPD300 &source);
115istream &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
132class 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.
146ostream &operator<<(ostream &os,AliITSgeomSPD425Short &source);
147istream &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
164class 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.
177ostream &operator<<(ostream &os,AliITSgeomSPD425Long &source);
178istream &operator>>(istream &os,AliITSgeomSPD425Long &source);
58005f18 179#endif