X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSgeomSDD.cxx;h=eac5ba516ac0e089c74e6fcf25c928f7ad213774;hb=c58d9e7d2d8604c70b4c25fd28b037dcdc2b1671;hp=bc32ac912d5a67dbc3184a82b88fc2a08f4b5868;hpb=8253cd9a5d0623cc12e3988805226c336ee99c0f;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSgeomSDD.cxx b/ITS/AliITSgeomSDD.cxx index bc32ac912d5..eac5ba516ac 100644 --- a/ITS/AliITSgeomSDD.cxx +++ b/ITS/AliITSgeomSDD.cxx @@ -13,38 +13,38 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -Revision 1.8 2000/10/02 16:32:35 barbera -Forward declaration added - -Revision 1.2.4.8 2000/10/02 15:52:05 barbera -Forward declaration added - -Revision 1.7 2000/07/10 16:07:18 fca -Release version of ITS code - -Revision 1.2.4.2 2000/03/04 23:55:35 nilsen -Fixed up comments/documentation. +/* $Id$ */ -Revision 1.2.4.1 2000/01/12 19:03:32 nilsen -This is the version of the files after the merging done in December 1999. -See the ReadMe110100.txt file for details - -Revision 1.2 1999/09/29 09:24:20 fca -Introduction of the Copyright and cvs Log +//////////////////////////////////////////////////////////////////////// +// 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 +#include #include #include -#include #include "AliITSgeomSDD.h" ClassImp(AliITSgeomSDD) -AliITSgeomSDD::AliITSgeomSDD(){ +AliITSgeomSDD::AliITSgeomSDD(): +TObject(), +fPeriod(0.0), +fDvelocity(0.0), +fNAnodesL(0), +fNAnodesR(0), +fAnodeXL(0.0), +fAnodeXR(0.0), +fAnodeLowEdgeL(0), +fAnodeLowEdgeR(0), +fName(), +fTitle(), +fMat(), +fDx(0.0), +fDy(0.0), +fDz(0.0){ //////////////////////////////////////////////////////////////////////// // default constructor //////////////////////////////////////////////////////////////////////// @@ -52,7 +52,6 @@ AliITSgeomSDD::AliITSgeomSDD(){ // const Float_t kDy = 0.014;//cm. (Geant 3.12 units) Radialy from the Beam // const Float_t kDz = 3.763;//cm. (Geant 3.12 units) Allong the Beam Pipe -// cout << "AliITSgeomSDD default creator called: start" << endl; fPeriod = 0.0; fDvelocity = 0.0; fNAnodesL = 0; @@ -61,16 +60,47 @@ AliITSgeomSDD::AliITSgeomSDD(){ fAnodeXR = 0.0; fAnodeLowEdgeL = 0; fAnodeLowEdgeR = 0; - fShapeSDD = 0; -// cout << "AliITSgeomSDD default creator called: end" << endl; } //________________________________________________________________________ AliITSgeomSDD::AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel, Float_t axL,Float_t axR, Int_t nAL,Float_t *leL, - Int_t nAR,Float_t *leR){ + Int_t nAR,Float_t *leR): +TObject(), +fPeriod(0.0), +fDvelocity(0.0), +fNAnodesL(0), +fNAnodesR(0), +fAnodeXL(0.0), +fAnodeXR(0.0), +fAnodeLowEdgeL(0), +fAnodeLowEdgeR(0), +fName(), +fTitle(), +fMat(), +fDx(0.0), +fDy(0.0), +fDz(0.0){ //////////////////////////////////////////////////////////////////////// // Standard constructor +//////////////////////////////////////////////////////////////////////// + fPeriod = 0.0; + fDvelocity = 0.0; + fNAnodesL = 0; + fNAnodesR = 0; + fAnodeXL = 0.0; + fAnodeXR = 0.0; + fAnodeLowEdgeL = 0; + fAnodeLowEdgeR = 0; + ResetSDD(box,per,vel,axL,axR,nAL,leL,nAR,leR); +} +//________________________________________________________________________ +void AliITSgeomSDD::ResetSDD(const Float_t *box,Float_t per,Float_t vel, + Float_t axL,Float_t axR, + Int_t nAL,Float_t *leL, + Int_t nAR,Float_t *leR){ +//////////////////////////////////////////////////////////////////////// +// Standard Filler //////////////////////////////////////////////////////////////////////// Int_t i; @@ -86,17 +116,19 @@ AliITSgeomSDD::AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel, fAnodeLowEdgeR = new Float_t[fNAnodesR]; for(i=0;ifShapeSDD = new TBRIK(*(source.fShapeSDD)); - this->fPeriod = source.fPeriod; - this->fDvelocity = source.fDvelocity; - this->fNAnodesL = source.fNAnodesL; - this->fNAnodesR = source.fNAnodesR; - this->fAnodeXL = source.fAnodeXL; - this->fAnodeXR = source.fAnodeXR; - if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL; - this->fAnodeLowEdgeL = new Float_t[fNAnodesL]; - if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR; - this->fAnodeLowEdgeR = new Float_t[fNAnodesR]; - for(i=0;ifAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i]; - for(i=0;ifAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i]; - return; +AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source) : TObject(source), +fPeriod(source.fPeriod), +fDvelocity(source.fDvelocity), +fNAnodesL(source.fNAnodesL), +fNAnodesR(source.fNAnodesR), +fAnodeXL(source.fAnodeXL), +fAnodeXR(source.fAnodeXR), +fAnodeLowEdgeL(0), +fAnodeLowEdgeR(0), +fName(source.fName), +fTitle(source.fTitle), +fMat(source.fMat), +fDx(source.fDx), +fDy(source.fDy), +fDz(source.fDz){ + // Copy constructor + fAnodeLowEdgeL = new Float_t[fNAnodesL]; + fAnodeLowEdgeR = new Float_t[fNAnodesR]; + for(Int_t i=0;ifShapeSDD = new TBRIK(*(source.fShapeSDD)); - this->fPeriod = source.fPeriod; - this->fDvelocity = source.fDvelocity; - this->fNAnodesL = source.fNAnodesL; - this->fNAnodesR = source.fNAnodesR; - this->fNAnodesR = source.fNAnodesR; - this->fAnodeXL = source.fAnodeXL; - this->fAnodeXR = source.fAnodeXR; - if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL; - this->fAnodeLowEdgeL = new Float_t[fNAnodesL]; - if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR; - this->fAnodeLowEdgeR = new Float_t[fNAnodesR]; - for(i=0;ifAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i]; - for(i=0;ifAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i]; - return *this; + this->~AliITSgeomSDD(); + new(this) AliITSgeomSDD(source); + return *this; + } //______________________________________________________________________ void AliITSgeomSDD::Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s){ @@ -190,12 +211,24 @@ void AliITSgeomSDD::Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl){ return; } //______________________________________________________________________ -void AliITSgeomSDD::Print(ostream *os){ +void AliITSgeomSDD::Print(ostream *os) const { //////////////////////////////////////////////////////////////////////// // Standard output format for this class. //////////////////////////////////////////////////////////////////////// Int_t i; +#if defined __GNUC__ +#if __GNUC__ > 2 ios::fmtflags fmt; +#else + Int_t fmt; +#endif +#else +#if defined __ICC || defined __ECC || defined __xlC__ + ios::fmtflags fmt; +#else + Int_t fmt; +#endif +#endif fmt = os->setf(ios::scientific); // set scientific floating point output *os << "TBRIK" << " "; @@ -220,14 +253,13 @@ void AliITSgeomSDD::Read(istream *is){ // Standard input format for this class. //////////////////////////////////////////////////////////////////////// Int_t i; - Float_t dx,dy,dz; char shp[20]; *is >> shp; - *is >> dx >> dy >> dz; - if(fShapeSDD!=0) delete fShapeSDD; - fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET", - dx,dy,dz); + *is >> fDx >> fDy >> fDz; + fName="AcrtiveSDD"; + fTitle="Active volulme of SDD"; + fMat="SDD Si Det"; *is >> fPeriod >> fDvelocity >> fNAnodesL >> fNAnodesR; *is >> fAnodeXL >> fAnodeXR; if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL; @@ -256,20 +288,19 @@ istream &operator>>(istream &is,AliITSgeomSDD &r){ r.Read(&is); return is; } -//====================================================================== -/* -$Log$ -*/ -//#include -//#include -//#include "AliITSgeomSDD256.h" +//====================================================================== ClassImp(AliITSgeomSDD256) -AliITSgeomSDD256::AliITSgeomSDD256(){ +AliITSgeomSDD256::AliITSgeomSDD256() : AliITSgeomSDD(){ + // Default Constructor +} +//---------------------------------------------------------------------- +AliITSgeomSDD256::AliITSgeomSDD256(Int_t npar,const Float_t *par) : + AliITSgeomSDD(){ //////////////////////////////////////////////////////////////////////// -// default constructor +// constructor /* Pads for probe cards in ALICE-D2 /05.03.2000/ (X,Y) coordinates are quoted in microns and referred to the centers of @@ -661,7 +692,7 @@ _____________________________________________ #R (37779, 35085), pad size (184, 140) */ //////////////////////////////////////////////////////////////////////// - const Float_t kDxyz[] = {3.6250,0.0150,4.3794};//cm. (Geant 3.12 units) +// const Float_t kDxyz[] = {3.6250,0.01499,4.3794};//cm. (Geant 3.12 units) // Size of sensitive region of detector const Float_t kPeriod = 25.0E-09; // 40 MHz sampling frequence const Float_t kVelocity = 5.46875E+03; // cm/s drift velocity @@ -670,16 +701,19 @@ _____________________________________________ const Int_t kNAnodes = 256; // nuber of anodes connected const Float_t kAnodePitch = 0.0294; // cm const Float_t kAnodesZ = -3.7485; // cm Starting location of anodes in z - Float_t AnodeLowEdges[kNAnodes+1]; + Float_t anodeLowEdges[kNAnodes+1]; Int_t i; -// cout << "AliITSgeomSDD256 default creator called: start" << end; - AnodeLowEdges[0] = kAnodesZ; - for(i=0;i>(istream &is,AliITSgeomSDD256 &r){ r.Read(&is); return is; } -//====================================================================== -/* -$Log$ -*/ -//#include -//#include -//#include "AliITSgeomSDD300.h" +//====================================================================== ClassImp(AliITSgeomSDD300) @@ -721,17 +749,15 @@ AliITSgeomSDD300::AliITSgeomSDD300() : AliITSgeomSDD(){ const Float_t kAnodeXL = -3.500; // cm const Float_t kAnodeXR = +3.500; // cm const Float_t kAnodesZ = -3.75; // cm - Float_t AnodeLowEdges[kNAnodes+1]; + Float_t anodeLowEdges[kNAnodes+1]; const Float_t kanode = 0.0250;// cm anode separation. Int_t i; -// cout << "AliITSgeomSDD300 default creator called: start" << endl; - AnodeLowEdges[0] = kAnodesZ; - for(i=0;i