X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSgeomSDD.h;h=792a13ec5b161e54c0889c52f27346c0dd3af57a;hb=116083b1e4e27625a7a0144360efd52d32986522;hp=1c2e001021cec956781887774fae2306de3c1cab;hpb=5323dece46ce84ceaae8ea1839a75213eec7cbd7;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSgeomSDD.h b/ITS/AliITSgeomSDD.h index 1c2e001021c..792a13ec5b1 100644 --- a/ITS/AliITSgeomSDD.h +++ b/ITS/AliITSgeomSDD.h @@ -5,38 +5,143 @@ /* $Id$ */ + +//////////////////////////////////////////////////////////////////////// +// This class is for the Silicon Drift Detector, SDD, specific geometry. +// It is being replaced by AliITSsegmentationSDD class. This file also +// constains classes derived from AliITSgeomSDD which do nothing but +// initilize this one with predefined values. +//////////////////////////////////////////////////////////////////////// + #include -#include "TBRIK.h" -#include "AliITSgeom.h" +#include -// temporary +class TShape; class AliITSgeomSDD: public TObject { public: AliITSgeomSDD(); + AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel, + Float_t axL,Float_t axR, + Int_t nA0,Float_t *le0,Int_t nA1,Float_t *le1); AliITSgeomSDD(AliITSgeomSDD &source); - virtual ~AliITSgeomSDD(){}; AliITSgeomSDD& operator=(AliITSgeomSDD &source); - TBRIK *GetShape() const {return fShapeSDD;} - Float_t GetDx() {return fDx;} - Float_t GetDy() {return fDy;} - Float_t GetDz() {return fDz;} + virtual ~AliITSgeomSDD(); + void ResetSDD(const Float_t *box,Float_t per,Float_t vel, + Float_t axL,Float_t axR, + Int_t nA0,Float_t *le0,Int_t nA1,Float_t *le1); + virtual TShape *GetShape() const {return new TBRIK(fName.Data(), + fTitle.Data(),fMat.Data(),GetDx(),GetDy(),GetDz());} + virtual Float_t GetDx() const {return fDx;} // Get TBRIK Dx + virtual Float_t GetDy() const {return fDy;}// Get TBRIK Dy + virtual Float_t GetDz() const {return fDz;}// Get TBRIK Dz + virtual Float_t GetAnodeX(Int_t a,Int_t s) const { + // returns X position of anode + a = 0; if(s==0) return fAnodeXL; else return fAnodeXR;} + virtual Float_t GetAnodeZ(Int_t a,Int_t s)const { + // returns X position of anode + if(s==0) return 0.5*(fAnodeLowEdgeL[a]+fAnodeLowEdgeL[a+1]); + else return 0.5*(fAnodeLowEdgeR[a]+fAnodeLowEdgeR[a+1]);} + virtual void SetNAnodesL(Int_t s) + {fNAnodesL = s;} // sets the number of anodes on side 0. + virtual void SetNAnodesR(Int_t s) + {fNAnodesR = s;} // sets the anodes spacing for side 1. + virtual void SetSamplingPeriod(Float_t s) + {fPeriod = s;} // sets the clock sampling period s. + virtual void SetDriftVelocity(Float_t s) + {fDvelocity = s;} // sets the SDD Drift velocity cm/s. + virtual void SetShape(char *name,char *title,char *mat, + Float_t dx,Float_t dy,Float_t dz){fName=name; + fTitle=title;fMat=mat;fDx=dx;fDy=dy;fDz=dz;} + virtual void Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s); + virtual void Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl); + virtual void Print(ostream *os) const; // Output streamer to standard out. + virtual void Read(istream *is); // Input streamer to standard in. + virtual void Print(Option_t *option="") const {TObject::Print(option);} + virtual Int_t Read(const char *name) {return TObject::Read(name);} // or what other or different information that is needed. - private: - // define shape of active area using ROOT shapes so that they can - // be easly plotted. Inputs to TBRIK are - // Shape name (what ever that is) - // Shape title (what ever that means) - // name of material (something I took from ITSgeometry.tme file - // dx => 1/2 thickness of wafer's active volume (cm) - // dy => 1/2 r*phi size of active volume (cm) - // dz => 1/2 size of active volume (cm) - Float_t fDx; // Brick half width cm - Float_t fDy; // Brick half thickness cm - Float_t fDz; // Brick half length cm - TBRIK *fShapeSDD; // shape of sensitive volume - - ClassDef(AliITSgeomSDD,1) // ITS SDD detector geometry class + protected: + // (L) -+-> x (R) + // | + // V z + Float_t fPeriod; // ADC sampiling period + Float_t fDvelocity; // Drift velocity + Int_t fNAnodesL; // number of Anodes on size 0 + Int_t fNAnodesR; // number of Anodes on size 1 + Float_t fAnodeXL; // Anode location in x Left side + Float_t fAnodeXR; // Anode location in x Right side + Float_t *fAnodeLowEdgeL; //[fNAnodesL] Anode spacing left edge + Float_t *fAnodeLowEdgeR; //[fNAnodesR] Anode spacing right edge + TString fName; // Object name + TString fTitle; // Ojbect title + TString fMat; // Object material name Replacement for TBRIK + Float_t fDx; // half length in z Replacement for TBRIK + Float_t fDy; // half length in y Replacement for TBRIK + Float_t fDz; // half length in z Replacement for TBRIK + + ClassDef(AliITSgeomSDD,2) // ITS SDD detector geometry class + +}; +// Input and output function for standard C++ input/output. +ostream &operator<<(ostream &os,AliITSgeomSDD &source); +istream &operator>>(istream &os,AliITSgeomSDD &source); +#endif +//====================================================================== +#ifndef ALIITSGEOMSDD256_H +#define ALIITSGEOMSDD256_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* + $Id$ +*/ + +//#include "AliITSgeomSDD.h" + + +class AliITSgeomSDD256 : public AliITSgeomSDD { + + public: + AliITSgeomSDD256(); + AliITSgeomSDD256(Int_t npar,const Float_t *par); + + // This clas now has version 0 so that it will not be written to a root + // file. This is good since there are no longer any data members to this + // class. It is only designed to make it easer to define this standard + // SDD detector geometry. + ClassDef(AliITSgeomSDD256,1) // ITS SDD detector geometry class for 256 anodes per side + +}; +// Input and output function for standard C++ input/output. +ostream &operator<<(ostream &os,AliITSgeomSDD256 &source); +istream &operator>>(istream &os,AliITSgeomSDD256 &source); +#endif +//====================================================================== +#ifndef ALIITSGEOMSDD300_H +#define ALIITSGEOMSDD300_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* + $Id$ +*/ + +//#include "AliITSgeomSDD.h" + +class AliITSgeomSDD300 : public AliITSgeomSDD { + + public: + AliITSgeomSDD300(); + + // This clas now has version 0 so that it will not be written to a root + // file. This is good since there are no longer any data members to this + // class. It is only designed to make it easer to define this standard + // SDD detector geometry. + ClassDef(AliITSgeomSDD300,1) // ITS SDD detector geometry class for 300 anodes per side + }; +// Input and output function for standard C++ input/output. +ostream &operator<<(ostream &os,AliITSgeomSDD300 &source); +istream &operator>>(istream &os,AliITSgeomSDD300 &source); #endif