Changing once more (hopefully we get it correct this time...) the logic to trig the...
[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
86////////////////////////////////////////////////////////////////////////
31b8cd63 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
104////////////////////////////////////////////////////////////////////////
8253cd9a 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//________________________________________________________________________
e56160b8 142AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source) : TObject(source),
143fPeriod(source.fPeriod),
144fDvelocity(source.fDvelocity),
145fNAnodesL(source.fNAnodesL),
146fNAnodesR(source.fNAnodesR),
147fAnodeXL(source.fAnodeXL),
148fAnodeXR(source.fAnodeXR),
149fAnodeLowEdgeL(0),
150fAnodeLowEdgeR(0),
151fName(source.fName),
152fTitle(source.fTitle),
153fMat(source.fMat),
154fDx(source.fDx),
155fDy(source.fDy),
156fDz(source.fDz){
157 // Copy constructor
158 fAnodeLowEdgeL = new Float_t[fNAnodesL];
159 fAnodeLowEdgeR = new Float_t[fNAnodesR];
160 for(Int_t i=0;i<fNAnodesL;i++) fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
161 for(Int_t i=0;i<fNAnodesR;i++) fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
162
5323dece 163}
164//________________________________________________________________________
165AliITSgeomSDD& AliITSgeomSDD::operator=(AliITSgeomSDD &source){
8253cd9a 166 // = operator
8253cd9a 167
e56160b8 168 this->~AliITSgeomSDD();
169 new(this) AliITSgeomSDD(source);
170 return *this;
171
8253cd9a 172}
173//______________________________________________________________________
174void AliITSgeomSDD::Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s){
175// Give the local detector coordinate it returns the anode number, time
176// bucket, and detector side.
177 Int_t i;
178
179 if(xl>0) {
180 if(zl<fAnodeLowEdgeR[0]) i=-1;
181 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
182 a = i;
183 s = 1;
184 } else if(xl<0){
185 if(zl<fAnodeLowEdgeL[0]) i=-1;
186 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
187 a = i;
188 s = 0;
189 } else { // x==0.
190 if(zl<fAnodeLowEdgeR[0]) i=-1;
191 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
192 a = i;
193 if(zl<fAnodeLowEdgeL[0]) i=-1;
194 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
195 s = -i;
196 } // end if
197 t = (Int_t)TMath::Abs((GetAnodeX(a,s)-xl)/fDvelocity/fPeriod);
198 return;
199}
200//______________________________________________________________________
201void AliITSgeomSDD::Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl){
202// Give the anode number, time bucket, and detector side, it returns the
203// local detector coordinate.
204
205 zl = 0.5*GetAnodeZ(a,s);
206 if(s==0){
207 xl = GetAnodeX(a,s)+(t+0.5)*fPeriod*fDvelocity;
208 } else { // s==1
209 xl = GetAnodeX(a,s)-(t+0.5)*fPeriod*fDvelocity;
210 } // end if s==0;
211 return;
212}
213//______________________________________________________________________
31b8cd63 214void AliITSgeomSDD::Print(ostream *os) const {
8253cd9a 215////////////////////////////////////////////////////////////////////////
216// Standard output format for this class.
217////////////////////////////////////////////////////////////////////////
218 Int_t i;
31673006 219#if defined __GNUC__
431a7819 220#if __GNUC__ > 2
221 ios::fmtflags fmt;
222#else
223 Int_t fmt;
224#endif
225#else
9f69211c 226#if defined __ICC || defined __ECC || defined __xlC__
94831058 227 ios::fmtflags fmt;
228#else
31b8cd63 229 Int_t fmt;
b48af428 230#endif
94831058 231#endif
8253cd9a 232
233 fmt = os->setf(ios::scientific); // set scientific floating point output
234 *os << "TBRIK" << " ";
235 *os << setprecision(16) << GetDx() << " ";
236 *os << setprecision(16) << GetDy() << " ";
237 *os << setprecision(16) << GetDz() << " ";
238 *os << setprecision(16) << fPeriod << " ";
239 *os << setprecision(16) << fDvelocity << " ";
240 *os << fNAnodesL << " ";
241 *os << fNAnodesR << " ";
242 *os << fAnodeXL << " ";
243 *os << fAnodeXR << " ";
244 for(i=0;i<fNAnodesL;i++) *os <<setprecision(16)<<fAnodeLowEdgeL[i]<< " ";
245 for(i=0;i<fNAnodesR;i++) *os <<setprecision(16)<<fAnodeLowEdgeR[i]<< " ";
246 *os << endl;
247 os->flags(fmt); // reset back to old formating.
248 return;
249}
250//______________________________________________________________________
251void AliITSgeomSDD::Read(istream *is){
252////////////////////////////////////////////////////////////////////////
253// Standard input format for this class.
254////////////////////////////////////////////////////////////////////////
255 Int_t i;
8253cd9a 256 char shp[20];
257
258 *is >> shp;
023ae34b 259 *is >> fDx >> fDy >> fDz;
260 fName="AcrtiveSDD";
261 fTitle="Active volulme of SDD";
262 fMat="SDD Si Det";
8253cd9a 263 *is >> fPeriod >> fDvelocity >> fNAnodesL >> fNAnodesR;
264 *is >> fAnodeXL >> fAnodeXR;
265 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
266 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
267 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
268 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
269 for(i=0;i<fNAnodesL;i++) *is >> fAnodeLowEdgeL[i];
270 for(i=0;i<fNAnodesR;i++) *is >> fAnodeLowEdgeR[i];
271 return;
272}
273//----------------------------------------------------------------------
274ostream &operator<<(ostream &os,AliITSgeomSDD &p){
275////////////////////////////////////////////////////////////////////////
276// Standard output streaming function.
277////////////////////////////////////////////////////////////////////////
278
279 p.Print(&os);
280 return os;
281}
282//----------------------------------------------------------------------
283istream &operator>>(istream &is,AliITSgeomSDD &r){
284////////////////////////////////////////////////////////////////////////
285// Standard input streaming function.
286////////////////////////////////////////////////////////////////////////
287
288 r.Read(&is);
289 return is;
290}
94831058 291
88cb7938 292//======================================================================
8253cd9a 293
294ClassImp(AliITSgeomSDD256)
295
31b8cd63 296AliITSgeomSDD256::AliITSgeomSDD256() : AliITSgeomSDD(){
e99dbc71 297 // Default Constructor
298}
299//----------------------------------------------------------------------
85f1e34a 300AliITSgeomSDD256::AliITSgeomSDD256(Int_t npar,const Float_t *par) :
301 AliITSgeomSDD(){
8253cd9a 302////////////////////////////////////////////////////////////////////////
e99dbc71 303// constructor
8253cd9a 304/*
305Pads for probe cards in ALICE-D2 /05.03.2000/
306(X,Y) coordinates are quoted in microns and referred to the centers of
307bonding pads. (0, 0) corrispond to the center of the detector.
308Convention:
309left is for negative X, right is for positive X;
310DOWN half is for negative Y, UP half is for positive Y.
311
312Detector size: X= 87588 micrometers; Y= 72500 micrometers.
313Detector corners:
314 LEFT UP: (-43794, 36250)
315RIGHT UP: (43794, 36250)
316 LEFT DOWN: (-43794, -36250)
317RIGHT DOWN: (43794, -36250)
318
319 Drift cathodes (n-side)
320
321cathode #0 (Ubias)
322(-1477, 0), pad size (150, 60)
323 (875, 0), pad size (150, 60)
324(-36570, 0), pad size (200, 70)
325(-37570, 0), pad size (200, 70)
326(36570, 0), pad size (200, 70)
327(37570, 0), pad size (200, 70)
328
329cathode #1 DOWN half
330(-1477, -120), pad size (150, 60)
331 (875, -120), pad size (150, 60)
332(-36570, -120), pad size (200, 70)
333(-37570, -120), pad size (200, 70)
334(36570, -120), pad size (200, 70)
335(37570, -120), pad size (200, 70)
336
337cathode #2 DOWN half
338(-1477, -240), pad size (150, 60)
339 (875, -240), pad size (150, 60)
340(-36570, -240), pad size (200, 70)
341(-37570, -240), pad size (200, 70)
342(36570, -240), pad size (200, 70)
343(37570, -240), pad size (200, 70)
344
345cathode #3 DOWN half
346(-1477, -360), pad size (150, 60)
347 (875, -360), pad size (150, 60)
348(-36570, -360), pad size (200, 70)
349(-37570, -360), pad size (200, 70)
350(36570, -360), pad size (200, 70)
351(37570, -360), pad size (200, 70)
352.....................................
353......................................
354......................................
355cathode #30 DOWN half
356(-1477, -3600), pad size (150, 60)
357 (875, -3600), pad size (150, 60)
358(-36570, -3600), pad size (200, 70)
359(-37570, -3600), pad size (200, 70)
360(36570, -3600), pad size (200, 70)
361(37570, -3600), pad size (200, 70)
362...................................
363cathode #60 DOWN half
364(-1477, -7200), pad size (150, 60)
365 (875, -7200), pad size (150, 60)
366(-36570, -7200), pad size (200, 70)
367(-37570, -7200), pad size (200, 70)
368(36570, -7200), pad size (200, 70)
369(37570, -7200), pad size (200, 70)
370....................................
371cathode #90 DOWN half
372(-1477, -10800), pad size (150, 60)
373 (875, -10800), pad size (150, 60)
374(-36570, -10800), pad size (200, 70)
375(-37570, -10800), pad size (200, 70)
376(36570, -10800), pad size (200, 70)
377(37570, -10800), pad size (200, 70)
378....................................
379cathode #120 DOWN half
380(-1477, -14400), pad size (150, 60)
381 (875, -14400), pad size (150, 60)
382(-36570, -14400), pad size (200, 70)
383(-37570, -14400), pad size (200, 70)
384(36570, -14400), pad size (200, 70)
385(37570, -14400), pad size (200, 70)
386....................................
387cathode #150 DOWN half
388(-1477, -18000), pad size (150, 60)
389 (875, -18000), pad size (150, 60)
390(-36570, -18000), pad size (200, 70)
391(-37570, -18000), pad size (200, 70)
392(36570, -18000), pad size (200, 70)
393(37570, -18000), pad size (200, 70)
394....................................
395cathode #180 DOWN half
396(-1477, -21600), pad size (150, 60)
397 (875, -21600), pad size (150, 60)
398(-36570, -21600), pad size (200, 70)
399(-37570, -21600), pad size (200, 70)
400(36570, -21600), pad size (200, 70)
401(37570, -21600), pad size (200, 70)
402....................................
403cathode #210 DOWN half
404(-1477, -25200), pad size (150, 60)
405 (875, -25200), pad size (150, 60)
406(-36570, -25200), pad size (200, 70)
407(-37570, -25200), pad size (200, 70)
408(36570, -25200), pad size (200, 70)
409(37570, -25200), pad size (200, 70)
410....................................
411cathode #240 DOWN half
412(-1477, -28800), pad size (150, 60)
413 (875, -28800), pad size (150, 60)
414(-36570, -28800), pad size (200, 70)
415(-37570, -28800), pad size (200, 70)
416(36570, -28800), pad size (200, 70)
417(37570, -28800), pad size (200, 70)
418....................................
419cathode #270 DOWN half
420(-1477, -32400), pad size (150, 60)
421 (875, -32400), pad size (150, 60)
422(-36570, -32400), pad size (200, 70)
423(-37570, -32400), pad size (200, 70)
424(36570, -32400), pad size (200, 70)
425(37570, -32400), pad size (200, 70)
426....................................
427cathode #290 DOWN half
428(-1477, -34800), pad size (150, 60)
429 (875, -34800), pad size (150, 60)
430(-36570, -34800), pad size (200, 70)
431(-37570, -34800), pad size (200, 70)
432(36570, -34800), pad size (200, 70)
433(37570, -34800), pad size (200, 70)
434___________________________________________________
435cathode #1 UP half
436(-1477, 120), pad size (150, 60)
437 (875, 120), pad size (150, 60)
438(-36570, 120), pad size (200, 70)
439(-37570, 120), pad size (200, 70)
440(36570, 120), pad size (200, 70)
441(37570, 120), pad size (200, 70)
442
443cathode #2 UP half
444(-1477, 240), pad size (150, 60)
445 (875, 240), pad size (150, 60)
446(-36570, 240), pad size (200, 70)
447(-37570, 240), pad size (200, 70)
448(36570, 240), pad size (200, 70)
449(37570, 240), pad size (200, 70)
450
451cathode #3 UP half
452(-1477, 360), pad size (150, 60)
453 (875, 360), pad size (150, 60)
454(-36570, 360), pad size (200, 70)
455(-37570, 360), pad size (200, 70)
456(36570, 360), pad size (200, 70)
457(37570, 360), pad size (200, 70)
458.....................................
459......................................
460......................................
461cathode #30 UP half
462(-1477, 3600), pad size (150, 60)
463 (875, 3600), pad size (150, 60)
464(-36570, 3600), pad size (200, 70)
465(-37570, 3600), pad size (200, 70)
466(36570, 3600), pad size (200, 70)
467(37570, 3600), pad size (200, 70)
468......................................
469cathode #60 UP half
470(-1477, 7200), pad size (150, 60)
471 (875, 7200), pad size (150, 60)
472(-36570, 7200), pad size (200, 70)
473(-37570, 7200), pad size (200, 70)
474(36570, 7200), pad size (200, 70)
475(37570, 7200), pad size (200, 70)
476......................................
477cathode #90 UP half
478(-1477, 10800), pad size (150, 60)
479 (875, 10800), pad size (150, 60)
480(-36570, 10800), pad size (200, 70)
481(-37570, 10800), pad size (200, 70)
482(36570, 10800), pad size (200, 70)
483(37570, 10800), pad size (200, 70)
484......................................
485cathode #120 UP half
486(-1477, 14400), pad size (150, 60)
487 (875, 14400), pad size (150, 60)
488(-36570, 14400), pad size (200, 70)
489(-37570, 14400), pad size (200, 70)
490(36570, 14400), pad size (200, 70)
491(37570, 14400), pad size (200, 70)
492......................................
493cathode #150 UP half
494(-1477, 18000), pad size (150, 60)
495 (875, 18000), pad size (150, 60)
496(-36570, 18000), pad size (200, 70)
497(-37570, 18000), pad size (200, 70)
498(36570, 18000), pad size (200, 70)
499(37570, 18000), pad size (200, 70)
500......................................
501cathode #180 UP half
502(-1477, 21600), pad size (150, 60)
503 (875, 21600), pad size (150, 60)
504(-36570, 21600), pad size (200, 70)
505(-37570, 21600), pad size (200, 70)
506(36570, 21600), pad size (200, 70)
507(37570, 21600), pad size (200, 70)
508......................................
509cathode #210 UP half
510(-1477, 25200), pad size (150, 60)
511 (875, 25200), pad size (150, 60)
512(-36570, 25200), pad size (200, 70)
513(-37570, 25200), pad size (200, 70)
514(36570, 25200), pad size (200, 70)
515(37570, 25200), pad size (200, 70)
516......................................
517cathode #240 UP half
518(-1477, 28800), pad size (150, 60)
519 (875, 28800), pad size (150, 60)
520(-36570, 28800), pad size (200, 70)
521(-37570, 28800), pad size (200, 70)
522(36570, 28800), pad size (200, 70)
523(37570, 28800), pad size (200, 70)
524......................................
525cathode #270 UP half
526(-1477, 32400), pad size (150, 60)
527 (875, 32400), pad size (150, 60)
528(-36570, 32400), pad size (200, 70)
529(-37570, 32400), pad size (200, 70)
530(36570, 32400), pad size (200, 70)
531(37570, 32400), pad size (200, 70)
532......................................
533cathode #290 UP half
534(-1477, 34800), pad size (150, 60)
535 (875, 34800), pad size (150, 60)
536(-36570, 34800), pad size (200, 70)
537(-37570, 34800), pad size (200, 70)
538(36570, 34800), pad size (200, 70)
539(37570, 34800), pad size (200, 70)
540 Injectors (n-side)
541
542Central line injectors (DOWN half)
543(-1237, -660), pad size (150, 65)
544(1115, -660), pad size (150, 65)
545(37890, -660), pad size (100, 74)
546
547Middle line injectors (DOWN half)
548(-1237, -17460), pad size (150, 80)
549(1115, -17460), pad size (150, 80)
550(37890, -17460), pad size (100, 74)
551
552Bottom line injectors (DOWN half)
553(-1237, -34020), pad size (150, 80)
554(1115, -34020), pad size (150, 80)
555(37890, -34020), pad size (100, 74)
556___________________________________________
557Central line injectors (UP half)
558(-1237, 660), pad size (150, 65)
559(1115, 660), pad size (150, 65)
560(37890, 660), pad size (100, 74)
561
562Middle line injectors (UP half)
563(-1237, 17460), pad size (150, 80)
564(1115, 17460), pad size (150, 80)
565(37890, 17460), pad size (100, 74)
566
567Bottom line injectors (UP half)
568(-1237, 34020), pad size (150, 80)
569(1115, 34020), pad size (150, 80)
570(37890, 34020), pad size (100, 74)
571
572Drift cathodes and injectors of p-side have the bonding pads with the same
573coordinates as for the n-side (when looking through the masks)
574
575 Cathodes of the collection zone (n-side)
576
577cathode #291 (-40 V) DOWN half
578(-38220, -35055), pad size (120, 160)
579(38190, -34992), pad size (120, 145)
580
581GRID cathode (-15 V) DOWN half
582(-37988, -35085), pad size (144, 210)
583 (37988, -35085), pad size (144, 210)
584
585cathode #292 (-30 V) DOWN half
586(-38245, -35290), pad size (100, 170)
587(38210, -35242), pad size (150, 215)
588
589cathode #293 (-15 V) DOWN half
590(-38055, -35460), pad size (690, 70)
591(36488, -35460), pad size (3805, 70)
592
593n+ bulk contact (GND) DOWN half
594(-38300, -36050), pad size (1000, 395)
595(38300, -36050), pad size (1000, 395)
596
597bonding pad of the last integrated resistor DOWN half
598/it has to be connected to the GND/
599(-38190, -35620) pad size (160, 110)
600________________________________________________
601cathode #291 (-40 V) UP half
602(-38220, 35055), pad size (120, 160)
603(38190, 34992), pad size (120, 145)
604
605GRID cathode (-15 V) UP half
606(-37988, 35085), pad size (144, 210)
607 (37988, 35085), pad size (144, 210)
608
609cathode #292 (-30 V) UP half
610(-38245, 35290), pad size (100, 170)
611(38210, 35242), pad size (150, 215)
612
613cathode #293 (-15 V) UP half
614(-38055, 35460), pad size (690, 70)
615(36488, 35460), pad size (3805, 70)
616
617n+ bulk contact (GND) UP half
618(-38300, 36050), pad size (1000, 395)
619(38300, 36050), pad size (1000, 395)
620
621bonding pad of the last integrated resistor UP half
622/it has to be connected to the GND/
623(-38190, 35620) pad size (160, 110)
624
625Cathodes of the collection zone (p-side)
626
627cathode #291 (-40 V) DOWN half
628(-38215, -35055), pad size (120, 160)
629(38190, -34992), pad size (120, 145)
630
631cathode W1 (-60 V) DOWN half
632(-38000, -35110), pad size (140, 240)
633 (38000, -35110), pad size (140, 240)
634
635cathode W2 (-80 V) DOWN half
636( 0, -35090), pad size (75600, 110)
637
638cathode #292 (-40 V) DOWN half
639(-38220, -35290), pad size (150, 170)
640(38210, -35242), pad size (150, 215)
641
642p+ bulk contact (GND) DOWN half
643(-38300, -36050), pad size (1000, 395)
644(38300, -36050), pad size (1000, 395)
645
646It is necessary to connect cathode #291 to cathode #292 in order to
647close the integrated divider to p+ bulk contact (GND).
648
649_______________________________________________
650cathode #291 (-40 V) UP half
651(-38215, 35055), pad size (120, 160)
652(38190, 34992), pad size (120, 145)
653
654cathode W1 (-60 V) UP half
655(-38000, 35110), pad size (140, 240)
656 (38000, 35110), pad size (140, 240)
657
658cathode W2 (-80 V) UP half
659( 0, 35090), pad size (75600, 110)
660
661cathode #292 (-40 V) UP half
662(-38220, 35290), pad size (150, 170)
663(38210, 35242), pad size (150, 215)
664
665p+ bulk contact (GND) UP half
666(-38300, 36050), pad size (1000, 395)
667(38300, 36050), pad size (1000, 395)
668
669It is necessary to connect cathode #291 to cathode #292 in order to
670close the integrated divider to p+ bulk contact (GND).
671
672 Anodes (n-side)
673There are 256 anodes to be bonded to the inputs of front-end electronics. In
674addition there are 2 anodes (one at the left edge and one at the right edge
675of the anode array) that have to be bonded to the ground. I call these 2
676anodes #L and #R. The pitch of all anodes is 294 micrometers.
677
678 DOWN half anodes
679#L (-37779, -35085), pad size (184, 140)
680#1 (-37485, -35085), pad size (184, 140)
681.........................................
682.........................................
683#256.............(37485, -35085), pad size (184, 140)
684#R (37779, -35085), pad size (184, 140)
685_____________________________________________
686 UP half anodes
687#L (-37779, 35085), pad size (184, 140)
688#1 (-37485, 35085), pad size (184, 140)
689.........................................
690.........................................
691#256.............(37485, 35085), pad size (184, 140)
692#R (37779, 35085), pad size (184, 140)
693*/
694////////////////////////////////////////////////////////////////////////
85f1e34a 695// const Float_t kDxyz[] = {3.6250,0.01499,4.3794};//cm. (Geant 3.12 units)
8253cd9a 696 // Size of sensitive region of detector
697 const Float_t kPeriod = 25.0E-09; // 40 MHz sampling frequence
698 const Float_t kVelocity = 5.46875E+03; // cm/s drift velocity
699 const Float_t kAnodeXL = -3.5085; // cm location in x of anodes left side
700 const Float_t kAnodeXR = 3.5085; // cm location in x of anodes right side
701 const Int_t kNAnodes = 256; // nuber of anodes connected
702 const Float_t kAnodePitch = 0.0294; // cm
703 const Float_t kAnodesZ = -3.7485; // cm Starting location of anodes in z
85f1e34a 704 Float_t anodeLowEdges[kNAnodes+1];
8253cd9a 705 Int_t i;
706
ac74f489 707 if(npar<3){
708 Error("AliITSgeomSDD256","npar=%d<3. array par must be [3] or greater",
709 npar);
710 return;
711 } // end if
85f1e34a 712 anodeLowEdges[0] = kAnodesZ;
713 for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kAnodePitch+anodeLowEdges[i];
e99dbc71 714 AliITSgeomSDD::ResetSDD(par,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
85f1e34a 715 kNAnodes+1,anodeLowEdges,
716 kNAnodes+1,anodeLowEdges);
8253cd9a 717}
718//________________________________________________________________________
719ostream &operator<<(ostream &os,AliITSgeomSDD256 &p){
720////////////////////////////////////////////////////////////////////////
721// Standard output streaming function.
722////////////////////////////////////////////////////////////////////////
723
724 p.Print(&os);
725 return os;
726}
727//----------------------------------------------------------------------
728istream &operator>>(istream &is,AliITSgeomSDD256 &r){
729////////////////////////////////////////////////////////////////////////
730// Standard input streaming function.
731////////////////////////////////////////////////////////////////////////
732
733 r.Read(&is);
734 return is;
735}
4ae5bbc4 736
88cb7938 737//======================================================================
8253cd9a 738
739ClassImp(AliITSgeomSDD300)
740
741AliITSgeomSDD300::AliITSgeomSDD300() : AliITSgeomSDD(){
742////////////////////////////////////////////////////////////////////////
743// default constructor
744////////////////////////////////////////////////////////////////////////
745 const Float_t kDxyz[] = {3.500,0.014,3.763};//cm.
746 const Float_t kPeriod = 25.0E-09; // 40 MHz
747 const Float_t kVelocity = 5.46875E+3; // cm/s
748 const Int_t kNAnodes = 300; // number of anodes
749 const Float_t kAnodeXL = -3.500; // cm
750 const Float_t kAnodeXR = +3.500; // cm
751 const Float_t kAnodesZ = -3.75; // cm
85f1e34a 752 Float_t anodeLowEdges[kNAnodes+1];
8253cd9a 753 const Float_t kanode = 0.0250;// cm anode separation.
754 Int_t i;
755
023ae34b 756 anodeLowEdges[0] = kAnodesZ;
85f1e34a 757 for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kanode+anodeLowEdges[i];
31b8cd63 758 AliITSgeomSDD::ResetSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
85f1e34a 759 kNAnodes+1,anodeLowEdges,
760 kNAnodes+1,anodeLowEdges);
8253cd9a 761}
762//________________________________________________________________________
763ostream &operator<<(ostream &os,AliITSgeomSDD300 &p){
764////////////////////////////////////////////////////////////////////////
765// Standard output streaming function.
766////////////////////////////////////////////////////////////////////////
767
768 p.Print(&os);
769 return os;
770}
771//----------------------------------------------------------------------
772istream &operator>>(istream &is,AliITSgeomSDD300 &r){
773////////////////////////////////////////////////////////////////////////
774// Standard input streaming function.
775////////////////////////////////////////////////////////////////////////
776
777 r.Read(&is);
778 return is;
58005f18 779}
8253cd9a 780//----------------------------------------------------------------------