* 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
+/* $Id$ */
-Revision 1.2.4.2 2000/03/04 23:55:35 nilsen
-Fixed up comments/documentation.
-
-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 <iostream.h>
-#include <iomanip.h>
+#include <Riostream.h>
#include <stdlib.h>
#include <TShape.h>
-#include <TBRIK.h>
#include "AliITSgeomSDD.h"
Int_t nAR,Float_t *leR){
////////////////////////////////////////////////////////////////////////
// Standard constructor
+////////////////////////////////////////////////////////////////////////
+ fPeriod = 0.0;
+ fDvelocity = 0.0;
+ fNAnodesL = 0;
+ fNAnodesR = 0;
+ fAnodeXL = 0.0;
+ fAnodeXR = 0.0;
+ fAnodeLowEdgeL = 0;
+ fAnodeLowEdgeR = 0;
+ fShapeSDD = 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;
fNAnodesR = nAR;
fAnodeXL = axL;
fAnodeXR = axR;
- if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
+// if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
fAnodeLowEdgeL = new Float_t[fNAnodesL];
- if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
+// if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
fAnodeLowEdgeR = new Float_t[fNAnodesR];
for(i=0;i<fNAnodesL;i++) fAnodeLowEdgeL[i] = leL[i];
for(i=0;i<fNAnodesR;i++) fAnodeLowEdgeR[i] = leR[i];
// Destructor
if(fShapeSDD!=0) delete fShapeSDD;
- if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
- if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
+ if(fAnodeLowEdgeL!=0) delete [] fAnodeLowEdgeL;
+ if(fAnodeLowEdgeR!=0) delete [] fAnodeLowEdgeR;
fShapeSDD = 0;
fPeriod = 0.0;
fDvelocity = 0.0;
fAnodeLowEdgeR = 0;
}
//________________________________________________________________________
-AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source){
+AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source) : TObject(source){
// Copy constructor
Int_t i;
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" << " ";
r.Read(&is);
return is;
}
-//======================================================================
-/*
-$Log$
-*/
-//#include <iostream.h>
-//#include <TBRIK.h>
-//#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
#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
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;
+ if(npar<3){
+ Error("AliITSgeomSDD256","npar=%d<3. array par must be [3] or greater",
+ npar);
+ return;
+ } // end if
// cout << "AliITSgeomSDD256 default creator called: start" << end;
- AnodeLowEdges[0] = kAnodesZ;
- for(i=0;i<kNAnodes;i++) AnodeLowEdges[i+1] = kAnodePitch+AnodeLowEdges[i];
- AliITSgeomSDD::AliITSgeomSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
- kNAnodes+1,AnodeLowEdges,
- kNAnodes+1,AnodeLowEdges);
+ anodeLowEdges[0] = kAnodesZ;
+ for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kAnodePitch+anodeLowEdges[i];
+ AliITSgeomSDD::ResetSDD(par,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
+ kNAnodes+1,anodeLowEdges,
+ kNAnodes+1,anodeLowEdges);
// cout << "AliITSgeomSDD256 default creator called: end" << endl;
}
//________________________________________________________________________
r.Read(&is);
return is;
}
-//======================================================================
-/*
-$Log$
-*/
-//#include <iostream.h>
-//#include <TBRIK.h>
-//#include "AliITSgeomSDD300.h"
+//======================================================================
ClassImp(AliITSgeomSDD300)
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<kNAnodes;i++) AnodeLowEdges[i+1] = kanode+AnodeLowEdges[i];
- AliITSgeomSDD::AliITSgeomSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
- kNAnodes+1,AnodeLowEdges,
- kNAnodes+1,AnodeLowEdges);
+ anodeLowEdges[0] = kAnodesZ;
+ for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kanode+anodeLowEdges[i];
+ AliITSgeomSDD::ResetSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
+ kNAnodes+1,anodeLowEdges,
+ kNAnodes+1,anodeLowEdges);
// cout << "AliITSgeomSDD300 default creator called: end" << endl;
}
//________________________________________________________________________