]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSgeomSDD.cxx
Correct static library list in case of profile target
[u/mrichter/AliRoot.git] / ITS / AliITSgeomSDD.cxx
CommitLineData
4c039060 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
88cb7938 16/* $Id$ */
85f1e34a 17
18////////////////////////////////////////////////////////////////////////
19// This class is for the Silicon Drift Detector, SDD, specific geometry.
20// It is being replaced by AliITSsegmentationSDD class. This file also
21// constains classes derived from AliITSgeomSDD which do nothing but
22// initilize this one with predefined values.
23////////////////////////////////////////////////////////////////////////
24
4ae5bbc4 25#include <Riostream.h>
8253cd9a 26#include <stdlib.h>
27#include <TShape.h>
4c039060 28
58005f18 29#include "AliITSgeomSDD.h"
30
31ClassImp(AliITSgeomSDD)
023ae34b 32AliITSgeomSDD::AliITSgeomSDD():
33TObject(),
34fPeriod(0.0),
35fDvelocity(0.0),
36fNAnodesL(0),
37fNAnodesR(0),
38fAnodeXL(0.0),
39fAnodeXR(0.0),
40fAnodeLowEdgeL(0),
41fAnodeLowEdgeR(0),
42fName(),
43fTitle(),
44fMat(),
45fDx(0.0),
46fDy(0.0),
47fDz(0.0){
1f74eff4 48////////////////////////////////////////////////////////////////////////
49// default constructor
50////////////////////////////////////////////////////////////////////////
8253cd9a 51// const Float_t kDx = 3.500;//cm. (Geant 3.12 units) Orthonormal to y and z
52// const Float_t kDy = 0.014;//cm. (Geant 3.12 units) Radialy from the Beam
53// const Float_t kDz = 3.763;//cm. (Geant 3.12 units) Allong the Beam Pipe
1f74eff4 54
8253cd9a 55 fPeriod = 0.0;
56 fDvelocity = 0.0;
57 fNAnodesL = 0;
58 fNAnodesR = 0;
59 fAnodeXL = 0.0;
60 fAnodeXR = 0.0;
61 fAnodeLowEdgeL = 0;
62 fAnodeLowEdgeR = 0;
8253cd9a 63}
64//________________________________________________________________________
65AliITSgeomSDD::AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel,
66 Float_t axL,Float_t axR,
67 Int_t nAL,Float_t *leL,
023ae34b 68 Int_t nAR,Float_t *leR):
69TObject(),
70fPeriod(0.0),
71fDvelocity(0.0),
72fNAnodesL(0),
73fNAnodesR(0),
74fAnodeXL(0.0),
75fAnodeXR(0.0),
76fAnodeLowEdgeL(0),
77fAnodeLowEdgeR(0),
78fName(),
79fTitle(),
80fMat(),
81fDx(0.0),
82fDy(0.0),
83fDz(0.0){
8253cd9a 84////////////////////////////////////////////////////////////////////////
85// Standard constructor
31b8cd63 86////////////////////////////////////////////////////////////////////////
87 fPeriod = 0.0;
88 fDvelocity = 0.0;
89 fNAnodesL = 0;
90 fNAnodesR = 0;
91 fAnodeXL = 0.0;
92 fAnodeXR = 0.0;
93 fAnodeLowEdgeL = 0;
94 fAnodeLowEdgeR = 0;
31b8cd63 95 ResetSDD(box,per,vel,axL,axR,nAL,leL,nAR,leR);
96}
97//________________________________________________________________________
98void AliITSgeomSDD::ResetSDD(const Float_t *box,Float_t per,Float_t vel,
99 Float_t axL,Float_t axR,
100 Int_t nAL,Float_t *leL,
101 Int_t nAR,Float_t *leR){
102////////////////////////////////////////////////////////////////////////
103// Standard Filler
8253cd9a 104////////////////////////////////////////////////////////////////////////
105 Int_t i;
1f74eff4 106
8253cd9a 107 fPeriod = per;
108 fDvelocity = vel;
109 fNAnodesL = nAL;
110 fNAnodesR = nAR;
111 fAnodeXL = axL;
112 fAnodeXR = axR;
023ae34b 113 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
8253cd9a 114 fAnodeLowEdgeL = new Float_t[fNAnodesL];
023ae34b 115 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
8253cd9a 116 fAnodeLowEdgeR = new Float_t[fNAnodesR];
117 for(i=0;i<fNAnodesL;i++) fAnodeLowEdgeL[i] = leL[i];
118 for(i=0;i<fNAnodesR;i++) fAnodeLowEdgeR[i] = leR[i];
023ae34b 119 fName="ActiveSDD";
120 fTitle="Active volume of SDD";
121 fMat="SDD Si Det";
122 fDx=box[0];
123 fDy=box[1];
124 fDz=box[2];
8253cd9a 125}
126//________________________________________________________________________
127AliITSgeomSDD::~AliITSgeomSDD(){
128// Destructor
129
cd77595e 130 if(fAnodeLowEdgeL!=0) delete [] fAnodeLowEdgeL;
131 if(fAnodeLowEdgeR!=0) delete [] fAnodeLowEdgeR;
8253cd9a 132 fPeriod = 0.0;
133 fDvelocity = 0.0;
134 fAnodeXL = 0.0;
135 fAnodeXR = 0.0;
136 fNAnodesL = 0;
137 fNAnodesR = 0;
138 fAnodeLowEdgeL = 0;
139 fAnodeLowEdgeR = 0;
5323dece 140}
141//________________________________________________________________________
ac74f489 142AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source) : TObject(source){
8253cd9a 143 // Copy constructor
144 Int_t i;
145
146 if(this==&source) return;
023ae34b 147 fName=source.fName;
148 fTitle=source.fTitle;
149 fMat=source.fMat;
150 fDx=source.fDx;
151 fDy=source.fDy;
152 fDz=source.fDz;
8253cd9a 153 this->fPeriod = source.fPeriod;
154 this->fDvelocity = source.fDvelocity;
155 this->fNAnodesL = source.fNAnodesL;
156 this->fNAnodesR = source.fNAnodesR;
157 this->fAnodeXL = source.fAnodeXL;
158 this->fAnodeXR = source.fAnodeXR;
159 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
160 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
161 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
162 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
163 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
164 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
165 return;
5323dece 166}
167//________________________________________________________________________
168AliITSgeomSDD& AliITSgeomSDD::operator=(AliITSgeomSDD &source){
8253cd9a 169 // = operator
170 Int_t i;
171
172 if(this==&source) return *this;
023ae34b 173 fName=source.fName;
174 fTitle=source.fTitle;
175 fMat=source.fMat;
176 fDx=source.fDx;
177 fDy=source.fDy;
178 fDz=source.fDz;
8253cd9a 179 this->fPeriod = source.fPeriod;
180 this->fDvelocity = source.fDvelocity;
181 this->fNAnodesL = source.fNAnodesL;
182 this->fNAnodesR = source.fNAnodesR;
183 this->fNAnodesR = source.fNAnodesR;
184 this->fAnodeXL = source.fAnodeXL;
185 this->fAnodeXR = source.fAnodeXR;
186 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
187 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
188 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
189 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
190 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
191 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
192 return *this;
193}
194//______________________________________________________________________
195void AliITSgeomSDD::Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s){
196// Give the local detector coordinate it returns the anode number, time
197// bucket, and detector side.
198 Int_t i;
199
200 if(xl>0) {
201 if(zl<fAnodeLowEdgeR[0]) i=-1;
202 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
203 a = i;
204 s = 1;
205 } else if(xl<0){
206 if(zl<fAnodeLowEdgeL[0]) i=-1;
207 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
208 a = i;
209 s = 0;
210 } else { // x==0.
211 if(zl<fAnodeLowEdgeR[0]) i=-1;
212 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
213 a = i;
214 if(zl<fAnodeLowEdgeL[0]) i=-1;
215 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
216 s = -i;
217 } // end if
218 t = (Int_t)TMath::Abs((GetAnodeX(a,s)-xl)/fDvelocity/fPeriod);
219 return;
220}
221//______________________________________________________________________
222void AliITSgeomSDD::Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl){
223// Give the anode number, time bucket, and detector side, it returns the
224// local detector coordinate.
225
226 zl = 0.5*GetAnodeZ(a,s);
227 if(s==0){
228 xl = GetAnodeX(a,s)+(t+0.5)*fPeriod*fDvelocity;
229 } else { // s==1
230 xl = GetAnodeX(a,s)-(t+0.5)*fPeriod*fDvelocity;
231 } // end if s==0;
232 return;
233}
234//______________________________________________________________________
31b8cd63 235void AliITSgeomSDD::Print(ostream *os) const {
8253cd9a 236////////////////////////////////////////////////////////////////////////
237// Standard output format for this class.
238////////////////////////////////////////////////////////////////////////
239 Int_t i;
31673006 240#if defined __GNUC__
431a7819 241#if __GNUC__ > 2
242 ios::fmtflags fmt;
243#else
244 Int_t fmt;
245#endif
94831058 246#else
9f69211c 247#if defined __ICC || defined __ECC || defined __xlC__
94831058 248 ios::fmtflags fmt;
431a7819 249#else
31b8cd63 250 Int_t fmt;
94831058 251#endif
b48af428 252#endif
8253cd9a 253
254 fmt = os->setf(ios::scientific); // set scientific floating point output
255 *os << "TBRIK" << " ";
256 *os << setprecision(16) << GetDx() << " ";
257 *os << setprecision(16) << GetDy() << " ";
258 *os << setprecision(16) << GetDz() << " ";
259 *os << setprecision(16) << fPeriod << " ";
260 *os << setprecision(16) << fDvelocity << " ";
261 *os << fNAnodesL << " ";
262 *os << fNAnodesR << " ";
263 *os << fAnodeXL << " ";
264 *os << fAnodeXR << " ";
265 for(i=0;i<fNAnodesL;i++) *os <<setprecision(16)<<fAnodeLowEdgeL[i]<< " ";
266 for(i=0;i<fNAnodesR;i++) *os <<setprecision(16)<<fAnodeLowEdgeR[i]<< " ";
267 *os << endl;
268 os->flags(fmt); // reset back to old formating.
269 return;
270}
271//______________________________________________________________________
272void AliITSgeomSDD::Read(istream *is){
273////////////////////////////////////////////////////////////////////////
274// Standard input format for this class.
275////////////////////////////////////////////////////////////////////////
276 Int_t i;
8253cd9a 277 char shp[20];
278
279 *is >> shp;
023ae34b 280 *is >> fDx >> fDy >> fDz;
281 fName="AcrtiveSDD";
282 fTitle="Active volulme of SDD";
283 fMat="SDD Si Det";
8253cd9a 284 *is >> fPeriod >> fDvelocity >> fNAnodesL >> fNAnodesR;
285 *is >> fAnodeXL >> fAnodeXR;
286 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
287 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
288 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
289 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
290 for(i=0;i<fNAnodesL;i++) *is >> fAnodeLowEdgeL[i];
291 for(i=0;i<fNAnodesR;i++) *is >> fAnodeLowEdgeR[i];
292 return;
293}
294//----------------------------------------------------------------------
295ostream &operator<<(ostream &os,AliITSgeomSDD &p){
296////////////////////////////////////////////////////////////////////////
297// Standard output streaming function.
298////////////////////////////////////////////////////////////////////////
299
300 p.Print(&os);
301 return os;
302}
303//----------------------------------------------------------------------
304istream &operator>>(istream &is,AliITSgeomSDD &r){
305////////////////////////////////////////////////////////////////////////
306// Standard input streaming function.
307////////////////////////////////////////////////////////////////////////
308
309 r.Read(&is);
310 return is;
311}
94831058 312
88cb7938 313//======================================================================
8253cd9a 314
315ClassImp(AliITSgeomSDD256)
316
31b8cd63 317AliITSgeomSDD256::AliITSgeomSDD256() : AliITSgeomSDD(){
e99dbc71 318 // Default Constructor
319}
320//----------------------------------------------------------------------
85f1e34a 321AliITSgeomSDD256::AliITSgeomSDD256(Int_t npar,const Float_t *par) :
322 AliITSgeomSDD(){
8253cd9a 323////////////////////////////////////////////////////////////////////////
e99dbc71 324// constructor
8253cd9a 325/*
326Pads for probe cards in ALICE-D2 /05.03.2000/
327(X,Y) coordinates are quoted in microns and referred to the centers of
328bonding pads. (0, 0) corrispond to the center of the detector.
329Convention:
330left is for negative X, right is for positive X;
331DOWN half is for negative Y, UP half is for positive Y.
332
333Detector size: X= 87588 micrometers; Y= 72500 micrometers.
334Detector corners:
335 LEFT UP: (-43794, 36250)
336RIGHT UP: (43794, 36250)
337 LEFT DOWN: (-43794, -36250)
338RIGHT DOWN: (43794, -36250)
339
340 Drift cathodes (n-side)
341
342cathode #0 (Ubias)
343(-1477, 0), pad size (150, 60)
344 (875, 0), pad size (150, 60)
345(-36570, 0), pad size (200, 70)
346(-37570, 0), pad size (200, 70)
347(36570, 0), pad size (200, 70)
348(37570, 0), pad size (200, 70)
349
350cathode #1 DOWN half
351(-1477, -120), pad size (150, 60)
352 (875, -120), pad size (150, 60)
353(-36570, -120), pad size (200, 70)
354(-37570, -120), pad size (200, 70)
355(36570, -120), pad size (200, 70)
356(37570, -120), pad size (200, 70)
357
358cathode #2 DOWN half
359(-1477, -240), pad size (150, 60)
360 (875, -240), pad size (150, 60)
361(-36570, -240), pad size (200, 70)
362(-37570, -240), pad size (200, 70)
363(36570, -240), pad size (200, 70)
364(37570, -240), pad size (200, 70)
365
366cathode #3 DOWN half
367(-1477, -360), pad size (150, 60)
368 (875, -360), pad size (150, 60)
369(-36570, -360), pad size (200, 70)
370(-37570, -360), pad size (200, 70)
371(36570, -360), pad size (200, 70)
372(37570, -360), pad size (200, 70)
373.....................................
374......................................
375......................................
376cathode #30 DOWN half
377(-1477, -3600), pad size (150, 60)
378 (875, -3600), pad size (150, 60)
379(-36570, -3600), pad size (200, 70)
380(-37570, -3600), pad size (200, 70)
381(36570, -3600), pad size (200, 70)
382(37570, -3600), pad size (200, 70)
383...................................
384cathode #60 DOWN half
385(-1477, -7200), pad size (150, 60)
386 (875, -7200), pad size (150, 60)
387(-36570, -7200), pad size (200, 70)
388(-37570, -7200), pad size (200, 70)
389(36570, -7200), pad size (200, 70)
390(37570, -7200), pad size (200, 70)
391....................................
392cathode #90 DOWN half
393(-1477, -10800), pad size (150, 60)
394 (875, -10800), pad size (150, 60)
395(-36570, -10800), pad size (200, 70)
396(-37570, -10800), pad size (200, 70)
397(36570, -10800), pad size (200, 70)
398(37570, -10800), pad size (200, 70)
399....................................
400cathode #120 DOWN half
401(-1477, -14400), pad size (150, 60)
402 (875, -14400), pad size (150, 60)
403(-36570, -14400), pad size (200, 70)
404(-37570, -14400), pad size (200, 70)
405(36570, -14400), pad size (200, 70)
406(37570, -14400), pad size (200, 70)
407....................................
408cathode #150 DOWN half
409(-1477, -18000), pad size (150, 60)
410 (875, -18000), pad size (150, 60)
411(-36570, -18000), pad size (200, 70)
412(-37570, -18000), pad size (200, 70)
413(36570, -18000), pad size (200, 70)
414(37570, -18000), pad size (200, 70)
415....................................
416cathode #180 DOWN half
417(-1477, -21600), pad size (150, 60)
418 (875, -21600), pad size (150, 60)
419(-36570, -21600), pad size (200, 70)
420(-37570, -21600), pad size (200, 70)
421(36570, -21600), pad size (200, 70)
422(37570, -21600), pad size (200, 70)
423....................................
424cathode #210 DOWN half
425(-1477, -25200), pad size (150, 60)
426 (875, -25200), pad size (150, 60)
427(-36570, -25200), pad size (200, 70)
428(-37570, -25200), pad size (200, 70)
429(36570, -25200), pad size (200, 70)
430(37570, -25200), pad size (200, 70)
431....................................
432cathode #240 DOWN half
433(-1477, -28800), pad size (150, 60)
434 (875, -28800), pad size (150, 60)
435(-36570, -28800), pad size (200, 70)
436(-37570, -28800), pad size (200, 70)
437(36570, -28800), pad size (200, 70)
438(37570, -28800), pad size (200, 70)
439....................................
440cathode #270 DOWN half
441(-1477, -32400), pad size (150, 60)
442 (875, -32400), pad size (150, 60)
443(-36570, -32400), pad size (200, 70)
444(-37570, -32400), pad size (200, 70)
445(36570, -32400), pad size (200, 70)
446(37570, -32400), pad size (200, 70)
447....................................
448cathode #290 DOWN half
449(-1477, -34800), pad size (150, 60)
450 (875, -34800), pad size (150, 60)
451(-36570, -34800), pad size (200, 70)
452(-37570, -34800), pad size (200, 70)
453(36570, -34800), pad size (200, 70)
454(37570, -34800), pad size (200, 70)
455___________________________________________________
456cathode #1 UP half
457(-1477, 120), pad size (150, 60)
458 (875, 120), pad size (150, 60)
459(-36570, 120), pad size (200, 70)
460(-37570, 120), pad size (200, 70)
461(36570, 120), pad size (200, 70)
462(37570, 120), pad size (200, 70)
463
464cathode #2 UP half
465(-1477, 240), pad size (150, 60)
466 (875, 240), pad size (150, 60)
467(-36570, 240), pad size (200, 70)
468(-37570, 240), pad size (200, 70)
469(36570, 240), pad size (200, 70)
470(37570, 240), pad size (200, 70)
471
472cathode #3 UP half
473(-1477, 360), pad size (150, 60)
474 (875, 360), pad size (150, 60)
475(-36570, 360), pad size (200, 70)
476(-37570, 360), pad size (200, 70)
477(36570, 360), pad size (200, 70)
478(37570, 360), pad size (200, 70)
479.....................................
480......................................
481......................................
482cathode #30 UP half
483(-1477, 3600), pad size (150, 60)
484 (875, 3600), pad size (150, 60)
485(-36570, 3600), pad size (200, 70)
486(-37570, 3600), pad size (200, 70)
487(36570, 3600), pad size (200, 70)
488(37570, 3600), pad size (200, 70)
489......................................
490cathode #60 UP half
491(-1477, 7200), pad size (150, 60)
492 (875, 7200), pad size (150, 60)
493(-36570, 7200), pad size (200, 70)
494(-37570, 7200), pad size (200, 70)
495(36570, 7200), pad size (200, 70)
496(37570, 7200), pad size (200, 70)
497......................................
498cathode #90 UP half
499(-1477, 10800), pad size (150, 60)
500 (875, 10800), pad size (150, 60)
501(-36570, 10800), pad size (200, 70)
502(-37570, 10800), pad size (200, 70)
503(36570, 10800), pad size (200, 70)
504(37570, 10800), pad size (200, 70)
505......................................
506cathode #120 UP half
507(-1477, 14400), pad size (150, 60)
508 (875, 14400), pad size (150, 60)
509(-36570, 14400), pad size (200, 70)
510(-37570, 14400), pad size (200, 70)
511(36570, 14400), pad size (200, 70)
512(37570, 14400), pad size (200, 70)
513......................................
514cathode #150 UP half
515(-1477, 18000), pad size (150, 60)
516 (875, 18000), pad size (150, 60)
517(-36570, 18000), pad size (200, 70)
518(-37570, 18000), pad size (200, 70)
519(36570, 18000), pad size (200, 70)
520(37570, 18000), pad size (200, 70)
521......................................
522cathode #180 UP half
523(-1477, 21600), pad size (150, 60)
524 (875, 21600), pad size (150, 60)
525(-36570, 21600), pad size (200, 70)
526(-37570, 21600), pad size (200, 70)
527(36570, 21600), pad size (200, 70)
528(37570, 21600), pad size (200, 70)
529......................................
530cathode #210 UP half
531(-1477, 25200), pad size (150, 60)
532 (875, 25200), pad size (150, 60)
533(-36570, 25200), pad size (200, 70)
534(-37570, 25200), pad size (200, 70)
535(36570, 25200), pad size (200, 70)
536(37570, 25200), pad size (200, 70)
537......................................
538cathode #240 UP half
539(-1477, 28800), pad size (150, 60)
540 (875, 28800), pad size (150, 60)
541(-36570, 28800), pad size (200, 70)
542(-37570, 28800), pad size (200, 70)
543(36570, 28800), pad size (200, 70)
544(37570, 28800), pad size (200, 70)
545......................................
546cathode #270 UP half
547(-1477, 32400), pad size (150, 60)
548 (875, 32400), pad size (150, 60)
549(-36570, 32400), pad size (200, 70)
550(-37570, 32400), pad size (200, 70)
551(36570, 32400), pad size (200, 70)
552(37570, 32400), pad size (200, 70)
553......................................
554cathode #290 UP half
555(-1477, 34800), pad size (150, 60)
556 (875, 34800), pad size (150, 60)
557(-36570, 34800), pad size (200, 70)
558(-37570, 34800), pad size (200, 70)
559(36570, 34800), pad size (200, 70)
560(37570, 34800), pad size (200, 70)
561 Injectors (n-side)
562
563Central line injectors (DOWN half)
564(-1237, -660), pad size (150, 65)
565(1115, -660), pad size (150, 65)
566(37890, -660), pad size (100, 74)
567
568Middle line injectors (DOWN half)
569(-1237, -17460), pad size (150, 80)
570(1115, -17460), pad size (150, 80)
571(37890, -17460), pad size (100, 74)
572
573Bottom line injectors (DOWN half)
574(-1237, -34020), pad size (150, 80)
575(1115, -34020), pad size (150, 80)
576(37890, -34020), pad size (100, 74)
577___________________________________________
578Central line injectors (UP half)
579(-1237, 660), pad size (150, 65)
580(1115, 660), pad size (150, 65)
581(37890, 660), pad size (100, 74)
582
583Middle line injectors (UP half)
584(-1237, 17460), pad size (150, 80)
585(1115, 17460), pad size (150, 80)
586(37890, 17460), pad size (100, 74)
587
588Bottom line injectors (UP half)
589(-1237, 34020), pad size (150, 80)
590(1115, 34020), pad size (150, 80)
591(37890, 34020), pad size (100, 74)
592
593Drift cathodes and injectors of p-side have the bonding pads with the same
594coordinates as for the n-side (when looking through the masks)
595
596 Cathodes of the collection zone (n-side)
597
598cathode #291 (-40 V) DOWN half
599(-38220, -35055), pad size (120, 160)
600(38190, -34992), pad size (120, 145)
601
602GRID cathode (-15 V) DOWN half
603(-37988, -35085), pad size (144, 210)
604 (37988, -35085), pad size (144, 210)
605
606cathode #292 (-30 V) DOWN half
607(-38245, -35290), pad size (100, 170)
608(38210, -35242), pad size (150, 215)
609
610cathode #293 (-15 V) DOWN half
611(-38055, -35460), pad size (690, 70)
612(36488, -35460), pad size (3805, 70)
613
614n+ bulk contact (GND) DOWN half
615(-38300, -36050), pad size (1000, 395)
616(38300, -36050), pad size (1000, 395)
617
618bonding pad of the last integrated resistor DOWN half
619/it has to be connected to the GND/
620(-38190, -35620) pad size (160, 110)
621________________________________________________
622cathode #291 (-40 V) UP half
623(-38220, 35055), pad size (120, 160)
624(38190, 34992), pad size (120, 145)
625
626GRID cathode (-15 V) UP half
627(-37988, 35085), pad size (144, 210)
628 (37988, 35085), pad size (144, 210)
629
630cathode #292 (-30 V) UP half
631(-38245, 35290), pad size (100, 170)
632(38210, 35242), pad size (150, 215)
633
634cathode #293 (-15 V) UP half
635(-38055, 35460), pad size (690, 70)
636(36488, 35460), pad size (3805, 70)
637
638n+ bulk contact (GND) UP half
639(-38300, 36050), pad size (1000, 395)
640(38300, 36050), pad size (1000, 395)
641
642bonding pad of the last integrated resistor UP half
643/it has to be connected to the GND/
644(-38190, 35620) pad size (160, 110)
645
646Cathodes of the collection zone (p-side)
647
648cathode #291 (-40 V) DOWN half
649(-38215, -35055), pad size (120, 160)
650(38190, -34992), pad size (120, 145)
651
652cathode W1 (-60 V) DOWN half
653(-38000, -35110), pad size (140, 240)
654 (38000, -35110), pad size (140, 240)
655
656cathode W2 (-80 V) DOWN half
657( 0, -35090), pad size (75600, 110)
658
659cathode #292 (-40 V) DOWN half
660(-38220, -35290), pad size (150, 170)
661(38210, -35242), pad size (150, 215)
662
663p+ bulk contact (GND) DOWN half
664(-38300, -36050), pad size (1000, 395)
665(38300, -36050), pad size (1000, 395)
666
667It is necessary to connect cathode #291 to cathode #292 in order to
668close the integrated divider to p+ bulk contact (GND).
669
670_______________________________________________
671cathode #291 (-40 V) UP half
672(-38215, 35055), pad size (120, 160)
673(38190, 34992), pad size (120, 145)
674
675cathode W1 (-60 V) UP half
676(-38000, 35110), pad size (140, 240)
677 (38000, 35110), pad size (140, 240)
678
679cathode W2 (-80 V) UP half
680( 0, 35090), pad size (75600, 110)
681
682cathode #292 (-40 V) UP half
683(-38220, 35290), pad size (150, 170)
684(38210, 35242), pad size (150, 215)
685
686p+ bulk contact (GND) UP half
687(-38300, 36050), pad size (1000, 395)
688(38300, 36050), pad size (1000, 395)
689
690It is necessary to connect cathode #291 to cathode #292 in order to
691close the integrated divider to p+ bulk contact (GND).
692
693 Anodes (n-side)
694There are 256 anodes to be bonded to the inputs of front-end electronics. In
695addition there are 2 anodes (one at the left edge and one at the right edge
696of the anode array) that have to be bonded to the ground. I call these 2
697anodes #L and #R. The pitch of all anodes is 294 micrometers.
698
699 DOWN half anodes
700#L (-37779, -35085), pad size (184, 140)
701#1 (-37485, -35085), pad size (184, 140)
702.........................................
703.........................................
704#256.............(37485, -35085), pad size (184, 140)
705#R (37779, -35085), pad size (184, 140)
706_____________________________________________
707 UP half anodes
708#L (-37779, 35085), pad size (184, 140)
709#1 (-37485, 35085), pad size (184, 140)
710.........................................
711.........................................
712#256.............(37485, 35085), pad size (184, 140)
713#R (37779, 35085), pad size (184, 140)
714*/
715////////////////////////////////////////////////////////////////////////
85f1e34a 716// const Float_t kDxyz[] = {3.6250,0.01499,4.3794};//cm. (Geant 3.12 units)
8253cd9a 717 // Size of sensitive region of detector
718 const Float_t kPeriod = 25.0E-09; // 40 MHz sampling frequence
719 const Float_t kVelocity = 5.46875E+03; // cm/s drift velocity
720 const Float_t kAnodeXL = -3.5085; // cm location in x of anodes left side
721 const Float_t kAnodeXR = 3.5085; // cm location in x of anodes right side
722 const Int_t kNAnodes = 256; // nuber of anodes connected
723 const Float_t kAnodePitch = 0.0294; // cm
724 const Float_t kAnodesZ = -3.7485; // cm Starting location of anodes in z
85f1e34a 725 Float_t anodeLowEdges[kNAnodes+1];
8253cd9a 726 Int_t i;
727
ac74f489 728 if(npar<3){
729 Error("AliITSgeomSDD256","npar=%d<3. array par must be [3] or greater",
730 npar);
731 return;
732 } // end if
85f1e34a 733 anodeLowEdges[0] = kAnodesZ;
734 for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kAnodePitch+anodeLowEdges[i];
e99dbc71 735 AliITSgeomSDD::ResetSDD(par,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
85f1e34a 736 kNAnodes+1,anodeLowEdges,
737 kNAnodes+1,anodeLowEdges);
8253cd9a 738}
739//________________________________________________________________________
740ostream &operator<<(ostream &os,AliITSgeomSDD256 &p){
741////////////////////////////////////////////////////////////////////////
742// Standard output streaming function.
743////////////////////////////////////////////////////////////////////////
744
745 p.Print(&os);
746 return os;
747}
748//----------------------------------------------------------------------
749istream &operator>>(istream &is,AliITSgeomSDD256 &r){
750////////////////////////////////////////////////////////////////////////
751// Standard input streaming function.
752////////////////////////////////////////////////////////////////////////
753
754 r.Read(&is);
755 return is;
756}
4ae5bbc4 757
88cb7938 758//======================================================================
8253cd9a 759
760ClassImp(AliITSgeomSDD300)
761
762AliITSgeomSDD300::AliITSgeomSDD300() : AliITSgeomSDD(){
763////////////////////////////////////////////////////////////////////////
764// default constructor
765////////////////////////////////////////////////////////////////////////
766 const Float_t kDxyz[] = {3.500,0.014,3.763};//cm.
767 const Float_t kPeriod = 25.0E-09; // 40 MHz
768 const Float_t kVelocity = 5.46875E+3; // cm/s
769 const Int_t kNAnodes = 300; // number of anodes
770 const Float_t kAnodeXL = -3.500; // cm
771 const Float_t kAnodeXR = +3.500; // cm
772 const Float_t kAnodesZ = -3.75; // cm
85f1e34a 773 Float_t anodeLowEdges[kNAnodes+1];
8253cd9a 774 const Float_t kanode = 0.0250;// cm anode separation.
775 Int_t i;
776
023ae34b 777 anodeLowEdges[0] = kAnodesZ;
85f1e34a 778 for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kanode+anodeLowEdges[i];
31b8cd63 779 AliITSgeomSDD::ResetSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
85f1e34a 780 kNAnodes+1,anodeLowEdges,
781 kNAnodes+1,anodeLowEdges);
8253cd9a 782}
783//________________________________________________________________________
784ostream &operator<<(ostream &os,AliITSgeomSDD300 &p){
785////////////////////////////////////////////////////////////////////////
786// Standard output streaming function.
787////////////////////////////////////////////////////////////////////////
788
789 p.Print(&os);
790 return os;
791}
792//----------------------------------------------------------------------
793istream &operator>>(istream &is,AliITSgeomSDD300 &r){
794////////////////////////////////////////////////////////////////////////
795// Standard input streaming function.
796////////////////////////////////////////////////////////////////////////
797
798 r.Read(&is);
799 return is;
58005f18 800}
8253cd9a 801//----------------------------------------------------------------------