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