]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSgeomSDD.h
New version including the full 3D vertex finder
[u/mrichter/AliRoot.git] / ITS / AliITSgeomSDD.h
CommitLineData
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 10class TShape;
58005f18 11
12class 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.
74ostream &operator<<(ostream &os,AliITSgeomSDD &source);
75istream &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
90class 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.
103ostream &operator<<(ostream &os,AliITSgeomSDD256 &source);
104istream &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
119class 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.
132ostream &operator<<(ostream &os,AliITSgeomSDD300 &source);
133istream &operator>>(istream &os,AliITSgeomSDD300 &source);
58005f18 134#endif