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