1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 Revision 1.11 2001/05/16 08:17:49 hristov
19 Bug fixed in the StepManager to account for the difference in the geometry
20 tree for the ITS pixels. This fixes both the funny distribution of pixel
21 coordinates and the missing hits/digits/points in many sectors of the ITS
22 pixel barrel. Also included is a patch to properly get and use the detector
23 dimensions through out the ITS code. (B.Nilsen)
25 Revision 1.10 2001/02/09 00:00:57 nilsen
26 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
27 bugs in iostream based streamers used to read and write .det files. Fixed
28 some detector sizes. Fixed bugs in some default-special constructors.
30 Revision 1.9 2001/02/03 00:00:30 nilsen
31 New version of AliITSgeom and related files. Now uses automatic streamers,
32 set up for new formatted .det file which includes detector information.
33 Additional smaller modifications are still to come.
35 Revision 1.8 2000/10/02 16:32:35 barbera
36 Forward declaration added
38 Revision 1.2.4.8 2000/10/02 15:52:05 barbera
39 Forward declaration added
41 Revision 1.7 2000/07/10 16:07:18 fca
42 Release version of ITS code
44 Revision 1.2.4.2 2000/03/04 23:55:35 nilsen
45 Fixed up comments/documentation.
47 Revision 1.2.4.1 2000/01/12 19:03:32 nilsen
48 This is the version of the files after the merging done in December 1999.
49 See the ReadMe110100.txt file for details
51 Revision 1.2 1999/09/29 09:24:20 fca
52 Introduction of the Copyright and cvs Log
56 ////////////////////////////////////////////////////////////////////////
57 // This class is for the Silicon Drift Detector, SDD, specific geometry.
58 // It is being replaced by AliITSsegmentationSDD class. This file also
59 // constains classes derived from AliITSgeomSDD which do nothing but
60 // initilize this one with predefined values.
61 ////////////////////////////////////////////////////////////////////////
68 #include "AliITSgeomSDD.h"
70 ClassImp(AliITSgeomSDD)
71 AliITSgeomSDD::AliITSgeomSDD(){
72 ////////////////////////////////////////////////////////////////////////
73 // default constructor
74 ////////////////////////////////////////////////////////////////////////
75 // const Float_t kDx = 3.500;//cm. (Geant 3.12 units) Orthonormal to y and z
76 // const Float_t kDy = 0.014;//cm. (Geant 3.12 units) Radialy from the Beam
77 // const Float_t kDz = 3.763;//cm. (Geant 3.12 units) Allong the Beam Pipe
79 // cout << "AliITSgeomSDD default creator called: start" << endl;
89 // cout << "AliITSgeomSDD default creator called: end" << endl;
91 //________________________________________________________________________
92 AliITSgeomSDD::AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel,
93 Float_t axL,Float_t axR,
94 Int_t nAL,Float_t *leL,
95 Int_t nAR,Float_t *leR){
96 ////////////////////////////////////////////////////////////////////////
97 // Standard constructor
98 ////////////////////////////////////////////////////////////////////////
108 ResetSDD(box,per,vel,axL,axR,nAL,leL,nAR,leR);
110 //________________________________________________________________________
111 void AliITSgeomSDD::ResetSDD(const Float_t *box,Float_t per,Float_t vel,
112 Float_t axL,Float_t axR,
113 Int_t nAL,Float_t *leL,
114 Int_t nAR,Float_t *leR){
115 ////////////////////////////////////////////////////////////////////////
117 ////////////////////////////////////////////////////////////////////////
126 // if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
127 fAnodeLowEdgeL = new Float_t[fNAnodesL];
128 // if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
129 fAnodeLowEdgeR = new Float_t[fNAnodesR];
130 for(i=0;i<fNAnodesL;i++) fAnodeLowEdgeL[i] = leL[i];
131 for(i=0;i<fNAnodesR;i++) fAnodeLowEdgeR[i] = leR[i];
132 fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET",
133 box[0],box[1],box[2]);
135 //________________________________________________________________________
136 AliITSgeomSDD::~AliITSgeomSDD(){
139 if(fShapeSDD!=0) delete fShapeSDD;
140 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
141 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
152 //________________________________________________________________________
153 AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source){
157 if(this==&source) return;
158 this->fShapeSDD = new TBRIK(*(source.fShapeSDD));
159 this->fPeriod = source.fPeriod;
160 this->fDvelocity = source.fDvelocity;
161 this->fNAnodesL = source.fNAnodesL;
162 this->fNAnodesR = source.fNAnodesR;
163 this->fAnodeXL = source.fAnodeXL;
164 this->fAnodeXR = source.fAnodeXR;
165 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
166 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
167 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
168 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
169 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
170 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
173 //________________________________________________________________________
174 AliITSgeomSDD& AliITSgeomSDD::operator=(AliITSgeomSDD &source){
178 if(this==&source) return *this;
179 this->fShapeSDD = new TBRIK(*(source.fShapeSDD));
180 this->fPeriod = source.fPeriod;
181 this->fDvelocity = source.fDvelocity;
182 this->fNAnodesL = source.fNAnodesL;
183 this->fNAnodesR = source.fNAnodesR;
184 this->fNAnodesR = source.fNAnodesR;
185 this->fAnodeXL = source.fAnodeXL;
186 this->fAnodeXR = source.fAnodeXR;
187 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
188 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
189 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
190 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
191 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
192 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
195 //______________________________________________________________________
196 void AliITSgeomSDD::Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s){
197 // Give the local detector coordinate it returns the anode number, time
198 // bucket, and detector side.
202 if(zl<fAnodeLowEdgeR[0]) i=-1;
203 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
207 if(zl<fAnodeLowEdgeL[0]) i=-1;
208 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
212 if(zl<fAnodeLowEdgeR[0]) i=-1;
213 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
215 if(zl<fAnodeLowEdgeL[0]) i=-1;
216 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
219 t = (Int_t)TMath::Abs((GetAnodeX(a,s)-xl)/fDvelocity/fPeriod);
222 //______________________________________________________________________
223 void AliITSgeomSDD::Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl){
224 // Give the anode number, time bucket, and detector side, it returns the
225 // local detector coordinate.
227 zl = 0.5*GetAnodeZ(a,s);
229 xl = GetAnodeX(a,s)+(t+0.5)*fPeriod*fDvelocity;
231 xl = GetAnodeX(a,s)-(t+0.5)*fPeriod*fDvelocity;
235 //______________________________________________________________________
236 void AliITSgeomSDD::Print(ostream *os) const {
237 ////////////////////////////////////////////////////////////////////////
238 // Standard output format for this class.
239 ////////////////////////////////////////////////////////////////////////
243 fmt = os->setf(ios::scientific); // set scientific floating point output
244 *os << "TBRIK" << " ";
245 *os << setprecision(16) << GetDx() << " ";
246 *os << setprecision(16) << GetDy() << " ";
247 *os << setprecision(16) << GetDz() << " ";
248 *os << setprecision(16) << fPeriod << " ";
249 *os << setprecision(16) << fDvelocity << " ";
250 *os << fNAnodesL << " ";
251 *os << fNAnodesR << " ";
252 *os << fAnodeXL << " ";
253 *os << fAnodeXR << " ";
254 for(i=0;i<fNAnodesL;i++) *os <<setprecision(16)<<fAnodeLowEdgeL[i]<< " ";
255 for(i=0;i<fNAnodesR;i++) *os <<setprecision(16)<<fAnodeLowEdgeR[i]<< " ";
257 os->flags(fmt); // reset back to old formating.
260 //______________________________________________________________________
261 void AliITSgeomSDD::Read(istream *is){
262 ////////////////////////////////////////////////////////////////////////
263 // Standard input format for this class.
264 ////////////////////////////////////////////////////////////////////////
270 *is >> dx >> dy >> dz;
271 if(fShapeSDD!=0) delete fShapeSDD;
272 fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET",
274 *is >> fPeriod >> fDvelocity >> fNAnodesL >> fNAnodesR;
275 *is >> fAnodeXL >> fAnodeXR;
276 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
277 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
278 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
279 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
280 for(i=0;i<fNAnodesL;i++) *is >> fAnodeLowEdgeL[i];
281 for(i=0;i<fNAnodesR;i++) *is >> fAnodeLowEdgeR[i];
284 //----------------------------------------------------------------------
285 ostream &operator<<(ostream &os,AliITSgeomSDD &p){
286 ////////////////////////////////////////////////////////////////////////
287 // Standard output streaming function.
288 ////////////////////////////////////////////////////////////////////////
293 //----------------------------------------------------------------------
294 istream &operator>>(istream &is,AliITSgeomSDD &r){
295 ////////////////////////////////////////////////////////////////////////
296 // Standard input streaming function.
297 ////////////////////////////////////////////////////////////////////////
302 //======================================================================
305 Revision 1.11 2001/05/16 08:17:49 hristov
306 Bug fixed in the StepManager to account for the difference in the geometry tree for the ITS pixels. This fixes both the funny distribution of pixel coordinates and the missing hits/digits/points in many sectors of the ITS pixel barrel. Also included is a patch to properly get and use the detector dimensions through out the ITS code. (B.Nilsen)
308 Revision 1.10 2001/02/09 00:00:57 nilsen
309 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
310 bugs in iostream based streamers used to read and write .det files. Fixed
311 some detector sizes. Fixed bugs in some default-special constructors.
313 Revision 1.9 2001/02/03 00:00:30 nilsen
314 New version of AliITSgeom and related files. Now uses automatic streamers,
315 set up for new formatted .det file which includes detector information.
316 Additional smaller modifications are still to come.
319 //#include <iostream.h>
322 //#include "AliITSgeomSDD256.h"
324 ClassImp(AliITSgeomSDD256)
326 AliITSgeomSDD256::AliITSgeomSDD256() : AliITSgeomSDD(){
327 // Default Constructor
329 //----------------------------------------------------------------------
330 AliITSgeomSDD256::AliITSgeomSDD256(Int_t npar,const Float_t *par) :
332 ////////////////////////////////////////////////////////////////////////
335 Pads for probe cards in ALICE-D2 /05.03.2000/
336 (X,Y) coordinates are quoted in microns and referred to the centers of
337 bonding pads. (0, 0) corrispond to the center of the detector.
339 left is for negative X, right is for positive X;
340 DOWN half is for negative Y, UP half is for positive Y.
342 Detector size: X= 87588 micrometers; Y= 72500 micrometers.
344 LEFT UP: (-43794, 36250)
345 RIGHT UP: (43794, 36250)
346 LEFT DOWN: (-43794, -36250)
347 RIGHT DOWN: (43794, -36250)
349 Drift cathodes (n-side)
352 (-1477, 0), pad size (150, 60)
353 (875, 0), pad size (150, 60)
354 (-36570, 0), pad size (200, 70)
355 (-37570, 0), pad size (200, 70)
356 (36570, 0), pad size (200, 70)
357 (37570, 0), pad size (200, 70)
360 (-1477, -120), pad size (150, 60)
361 (875, -120), pad size (150, 60)
362 (-36570, -120), pad size (200, 70)
363 (-37570, -120), pad size (200, 70)
364 (36570, -120), pad size (200, 70)
365 (37570, -120), pad size (200, 70)
368 (-1477, -240), pad size (150, 60)
369 (875, -240), pad size (150, 60)
370 (-36570, -240), pad size (200, 70)
371 (-37570, -240), pad size (200, 70)
372 (36570, -240), pad size (200, 70)
373 (37570, -240), pad size (200, 70)
376 (-1477, -360), pad size (150, 60)
377 (875, -360), pad size (150, 60)
378 (-36570, -360), pad size (200, 70)
379 (-37570, -360), pad size (200, 70)
380 (36570, -360), pad size (200, 70)
381 (37570, -360), pad size (200, 70)
382 .....................................
383 ......................................
384 ......................................
385 cathode #30 DOWN half
386 (-1477, -3600), pad size (150, 60)
387 (875, -3600), pad size (150, 60)
388 (-36570, -3600), pad size (200, 70)
389 (-37570, -3600), pad size (200, 70)
390 (36570, -3600), pad size (200, 70)
391 (37570, -3600), pad size (200, 70)
392 ...................................
393 cathode #60 DOWN half
394 (-1477, -7200), pad size (150, 60)
395 (875, -7200), pad size (150, 60)
396 (-36570, -7200), pad size (200, 70)
397 (-37570, -7200), pad size (200, 70)
398 (36570, -7200), pad size (200, 70)
399 (37570, -7200), pad size (200, 70)
400 ....................................
401 cathode #90 DOWN half
402 (-1477, -10800), pad size (150, 60)
403 (875, -10800), pad size (150, 60)
404 (-36570, -10800), pad size (200, 70)
405 (-37570, -10800), pad size (200, 70)
406 (36570, -10800), pad size (200, 70)
407 (37570, -10800), pad size (200, 70)
408 ....................................
409 cathode #120 DOWN half
410 (-1477, -14400), pad size (150, 60)
411 (875, -14400), pad size (150, 60)
412 (-36570, -14400), pad size (200, 70)
413 (-37570, -14400), pad size (200, 70)
414 (36570, -14400), pad size (200, 70)
415 (37570, -14400), pad size (200, 70)
416 ....................................
417 cathode #150 DOWN half
418 (-1477, -18000), pad size (150, 60)
419 (875, -18000), pad size (150, 60)
420 (-36570, -18000), pad size (200, 70)
421 (-37570, -18000), pad size (200, 70)
422 (36570, -18000), pad size (200, 70)
423 (37570, -18000), pad size (200, 70)
424 ....................................
425 cathode #180 DOWN half
426 (-1477, -21600), pad size (150, 60)
427 (875, -21600), pad size (150, 60)
428 (-36570, -21600), pad size (200, 70)
429 (-37570, -21600), pad size (200, 70)
430 (36570, -21600), pad size (200, 70)
431 (37570, -21600), pad size (200, 70)
432 ....................................
433 cathode #210 DOWN half
434 (-1477, -25200), pad size (150, 60)
435 (875, -25200), pad size (150, 60)
436 (-36570, -25200), pad size (200, 70)
437 (-37570, -25200), pad size (200, 70)
438 (36570, -25200), pad size (200, 70)
439 (37570, -25200), pad size (200, 70)
440 ....................................
441 cathode #240 DOWN half
442 (-1477, -28800), pad size (150, 60)
443 (875, -28800), pad size (150, 60)
444 (-36570, -28800), pad size (200, 70)
445 (-37570, -28800), pad size (200, 70)
446 (36570, -28800), pad size (200, 70)
447 (37570, -28800), pad size (200, 70)
448 ....................................
449 cathode #270 DOWN half
450 (-1477, -32400), pad size (150, 60)
451 (875, -32400), pad size (150, 60)
452 (-36570, -32400), pad size (200, 70)
453 (-37570, -32400), pad size (200, 70)
454 (36570, -32400), pad size (200, 70)
455 (37570, -32400), pad size (200, 70)
456 ....................................
457 cathode #290 DOWN half
458 (-1477, -34800), pad size (150, 60)
459 (875, -34800), pad size (150, 60)
460 (-36570, -34800), pad size (200, 70)
461 (-37570, -34800), pad size (200, 70)
462 (36570, -34800), pad size (200, 70)
463 (37570, -34800), pad size (200, 70)
464 ___________________________________________________
466 (-1477, 120), pad size (150, 60)
467 (875, 120), pad size (150, 60)
468 (-36570, 120), pad size (200, 70)
469 (-37570, 120), pad size (200, 70)
470 (36570, 120), pad size (200, 70)
471 (37570, 120), pad size (200, 70)
474 (-1477, 240), pad size (150, 60)
475 (875, 240), pad size (150, 60)
476 (-36570, 240), pad size (200, 70)
477 (-37570, 240), pad size (200, 70)
478 (36570, 240), pad size (200, 70)
479 (37570, 240), pad size (200, 70)
482 (-1477, 360), pad size (150, 60)
483 (875, 360), pad size (150, 60)
484 (-36570, 360), pad size (200, 70)
485 (-37570, 360), pad size (200, 70)
486 (36570, 360), pad size (200, 70)
487 (37570, 360), pad size (200, 70)
488 .....................................
489 ......................................
490 ......................................
492 (-1477, 3600), pad size (150, 60)
493 (875, 3600), pad size (150, 60)
494 (-36570, 3600), pad size (200, 70)
495 (-37570, 3600), pad size (200, 70)
496 (36570, 3600), pad size (200, 70)
497 (37570, 3600), pad size (200, 70)
498 ......................................
500 (-1477, 7200), pad size (150, 60)
501 (875, 7200), pad size (150, 60)
502 (-36570, 7200), pad size (200, 70)
503 (-37570, 7200), pad size (200, 70)
504 (36570, 7200), pad size (200, 70)
505 (37570, 7200), pad size (200, 70)
506 ......................................
508 (-1477, 10800), pad size (150, 60)
509 (875, 10800), pad size (150, 60)
510 (-36570, 10800), pad size (200, 70)
511 (-37570, 10800), pad size (200, 70)
512 (36570, 10800), pad size (200, 70)
513 (37570, 10800), pad size (200, 70)
514 ......................................
516 (-1477, 14400), pad size (150, 60)
517 (875, 14400), pad size (150, 60)
518 (-36570, 14400), pad size (200, 70)
519 (-37570, 14400), pad size (200, 70)
520 (36570, 14400), pad size (200, 70)
521 (37570, 14400), pad size (200, 70)
522 ......................................
524 (-1477, 18000), pad size (150, 60)
525 (875, 18000), pad size (150, 60)
526 (-36570, 18000), pad size (200, 70)
527 (-37570, 18000), pad size (200, 70)
528 (36570, 18000), pad size (200, 70)
529 (37570, 18000), pad size (200, 70)
530 ......................................
532 (-1477, 21600), pad size (150, 60)
533 (875, 21600), pad size (150, 60)
534 (-36570, 21600), pad size (200, 70)
535 (-37570, 21600), pad size (200, 70)
536 (36570, 21600), pad size (200, 70)
537 (37570, 21600), pad size (200, 70)
538 ......................................
540 (-1477, 25200), pad size (150, 60)
541 (875, 25200), pad size (150, 60)
542 (-36570, 25200), pad size (200, 70)
543 (-37570, 25200), pad size (200, 70)
544 (36570, 25200), pad size (200, 70)
545 (37570, 25200), pad size (200, 70)
546 ......................................
548 (-1477, 28800), pad size (150, 60)
549 (875, 28800), pad size (150, 60)
550 (-36570, 28800), pad size (200, 70)
551 (-37570, 28800), pad size (200, 70)
552 (36570, 28800), pad size (200, 70)
553 (37570, 28800), pad size (200, 70)
554 ......................................
556 (-1477, 32400), pad size (150, 60)
557 (875, 32400), pad size (150, 60)
558 (-36570, 32400), pad size (200, 70)
559 (-37570, 32400), pad size (200, 70)
560 (36570, 32400), pad size (200, 70)
561 (37570, 32400), pad size (200, 70)
562 ......................................
564 (-1477, 34800), pad size (150, 60)
565 (875, 34800), pad size (150, 60)
566 (-36570, 34800), pad size (200, 70)
567 (-37570, 34800), pad size (200, 70)
568 (36570, 34800), pad size (200, 70)
569 (37570, 34800), pad size (200, 70)
572 Central line injectors (DOWN half)
573 (-1237, -660), pad size (150, 65)
574 (1115, -660), pad size (150, 65)
575 (37890, -660), pad size (100, 74)
577 Middle line injectors (DOWN half)
578 (-1237, -17460), pad size (150, 80)
579 (1115, -17460), pad size (150, 80)
580 (37890, -17460), pad size (100, 74)
582 Bottom line injectors (DOWN half)
583 (-1237, -34020), pad size (150, 80)
584 (1115, -34020), pad size (150, 80)
585 (37890, -34020), pad size (100, 74)
586 ___________________________________________
587 Central line injectors (UP half)
588 (-1237, 660), pad size (150, 65)
589 (1115, 660), pad size (150, 65)
590 (37890, 660), pad size (100, 74)
592 Middle line injectors (UP half)
593 (-1237, 17460), pad size (150, 80)
594 (1115, 17460), pad size (150, 80)
595 (37890, 17460), pad size (100, 74)
597 Bottom line injectors (UP half)
598 (-1237, 34020), pad size (150, 80)
599 (1115, 34020), pad size (150, 80)
600 (37890, 34020), pad size (100, 74)
602 Drift cathodes and injectors of p-side have the bonding pads with the same
603 coordinates as for the n-side (when looking through the masks)
605 Cathodes of the collection zone (n-side)
607 cathode #291 (-40 V) DOWN half
608 (-38220, -35055), pad size (120, 160)
609 (38190, -34992), pad size (120, 145)
611 GRID cathode (-15 V) DOWN half
612 (-37988, -35085), pad size (144, 210)
613 (37988, -35085), pad size (144, 210)
615 cathode #292 (-30 V) DOWN half
616 (-38245, -35290), pad size (100, 170)
617 (38210, -35242), pad size (150, 215)
619 cathode #293 (-15 V) DOWN half
620 (-38055, -35460), pad size (690, 70)
621 (36488, -35460), pad size (3805, 70)
623 n+ bulk contact (GND) DOWN half
624 (-38300, -36050), pad size (1000, 395)
625 (38300, -36050), pad size (1000, 395)
627 bonding pad of the last integrated resistor DOWN half
628 /it has to be connected to the GND/
629 (-38190, -35620) pad size (160, 110)
630 ________________________________________________
631 cathode #291 (-40 V) UP half
632 (-38220, 35055), pad size (120, 160)
633 (38190, 34992), pad size (120, 145)
635 GRID cathode (-15 V) UP half
636 (-37988, 35085), pad size (144, 210)
637 (37988, 35085), pad size (144, 210)
639 cathode #292 (-30 V) UP half
640 (-38245, 35290), pad size (100, 170)
641 (38210, 35242), pad size (150, 215)
643 cathode #293 (-15 V) UP half
644 (-38055, 35460), pad size (690, 70)
645 (36488, 35460), pad size (3805, 70)
647 n+ bulk contact (GND) UP half
648 (-38300, 36050), pad size (1000, 395)
649 (38300, 36050), pad size (1000, 395)
651 bonding pad of the last integrated resistor UP half
652 /it has to be connected to the GND/
653 (-38190, 35620) pad size (160, 110)
655 Cathodes of the collection zone (p-side)
657 cathode #291 (-40 V) DOWN half
658 (-38215, -35055), pad size (120, 160)
659 (38190, -34992), pad size (120, 145)
661 cathode W1 (-60 V) DOWN half
662 (-38000, -35110), pad size (140, 240)
663 (38000, -35110), pad size (140, 240)
665 cathode W2 (-80 V) DOWN half
666 ( 0, -35090), pad size (75600, 110)
668 cathode #292 (-40 V) DOWN half
669 (-38220, -35290), pad size (150, 170)
670 (38210, -35242), pad size (150, 215)
672 p+ bulk contact (GND) DOWN half
673 (-38300, -36050), pad size (1000, 395)
674 (38300, -36050), pad size (1000, 395)
676 It is necessary to connect cathode #291 to cathode #292 in order to
677 close the integrated divider to p+ bulk contact (GND).
679 _______________________________________________
680 cathode #291 (-40 V) UP half
681 (-38215, 35055), pad size (120, 160)
682 (38190, 34992), pad size (120, 145)
684 cathode W1 (-60 V) UP half
685 (-38000, 35110), pad size (140, 240)
686 (38000, 35110), pad size (140, 240)
688 cathode W2 (-80 V) UP half
689 ( 0, 35090), pad size (75600, 110)
691 cathode #292 (-40 V) UP half
692 (-38220, 35290), pad size (150, 170)
693 (38210, 35242), pad size (150, 215)
695 p+ bulk contact (GND) UP half
696 (-38300, 36050), pad size (1000, 395)
697 (38300, 36050), pad size (1000, 395)
699 It is necessary to connect cathode #291 to cathode #292 in order to
700 close the integrated divider to p+ bulk contact (GND).
703 There are 256 anodes to be bonded to the inputs of front-end electronics. In
704 addition there are 2 anodes (one at the left edge and one at the right edge
705 of the anode array) that have to be bonded to the ground. I call these 2
706 anodes #L and #R. The pitch of all anodes is 294 micrometers.
709 #L (-37779, -35085), pad size (184, 140)
710 #1 (-37485, -35085), pad size (184, 140)
711 .........................................
712 .........................................
713 #256.............(37485, -35085), pad size (184, 140)
714 #R (37779, -35085), pad size (184, 140)
715 _____________________________________________
717 #L (-37779, 35085), pad size (184, 140)
718 #1 (-37485, 35085), pad size (184, 140)
719 .........................................
720 .........................................
721 #256.............(37485, 35085), pad size (184, 140)
722 #R (37779, 35085), pad size (184, 140)
724 ////////////////////////////////////////////////////////////////////////
725 // const Float_t kDxyz[] = {3.6250,0.01499,4.3794};//cm. (Geant 3.12 units)
726 // Size of sensitive region of detector
727 const Float_t kPeriod = 25.0E-09; // 40 MHz sampling frequence
728 const Float_t kVelocity = 5.46875E+03; // cm/s drift velocity
729 const Float_t kAnodeXL = -3.5085; // cm location in x of anodes left side
730 const Float_t kAnodeXR = 3.5085; // cm location in x of anodes right side
731 const Int_t kNAnodes = 256; // nuber of anodes connected
732 const Float_t kAnodePitch = 0.0294; // cm
733 const Float_t kAnodesZ = -3.7485; // cm Starting location of anodes in z
734 Float_t anodeLowEdges[kNAnodes+1];
737 // cout << "AliITSgeomSDD256 default creator called: start" << end;
738 anodeLowEdges[0] = kAnodesZ;
739 for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kAnodePitch+anodeLowEdges[i];
740 AliITSgeomSDD::ResetSDD(par,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
741 kNAnodes+1,anodeLowEdges,
742 kNAnodes+1,anodeLowEdges);
743 // cout << "AliITSgeomSDD256 default creator called: end" << endl;
745 //________________________________________________________________________
746 ostream &operator<<(ostream &os,AliITSgeomSDD256 &p){
747 ////////////////////////////////////////////////////////////////////////
748 // Standard output streaming function.
749 ////////////////////////////////////////////////////////////////////////
754 //----------------------------------------------------------------------
755 istream &operator>>(istream &is,AliITSgeomSDD256 &r){
756 ////////////////////////////////////////////////////////////////////////
757 // Standard input streaming function.
758 ////////////////////////////////////////////////////////////////////////
763 //======================================================================
766 Revision 1.11 2001/05/16 08:17:49 hristov
767 Bug fixed in the StepManager to account for the difference in the geometry tree for the ITS pixels. This fixes both the funny distribution of pixel coordinates and the missing hits/digits/points in many sectors of the ITS pixel barrel. Also included is a patch to properly get and use the detector dimensions through out the ITS code. (B.Nilsen)
769 Revision 1.10 2001/02/09 00:00:57 nilsen
770 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
771 bugs in iostream based streamers used to read and write .det files. Fixed
772 some detector sizes. Fixed bugs in some default-special constructors.
774 Revision 1.9 2001/02/03 00:00:30 nilsen
775 New version of AliITSgeom and related files. Now uses automatic streamers,
776 set up for new formatted .det file which includes detector information.
777 Additional smaller modifications are still to come.
780 //#include <iostream.h>
783 //#include "AliITSgeomSDD300.h"
785 ClassImp(AliITSgeomSDD300)
787 AliITSgeomSDD300::AliITSgeomSDD300() : AliITSgeomSDD(){
788 ////////////////////////////////////////////////////////////////////////
789 // default constructor
790 ////////////////////////////////////////////////////////////////////////
791 const Float_t kDxyz[] = {3.500,0.014,3.763};//cm.
792 const Float_t kPeriod = 25.0E-09; // 40 MHz
793 const Float_t kVelocity = 5.46875E+3; // cm/s
794 const Int_t kNAnodes = 300; // number of anodes
795 const Float_t kAnodeXL = -3.500; // cm
796 const Float_t kAnodeXR = +3.500; // cm
797 const Float_t kAnodesZ = -3.75; // cm
798 Float_t anodeLowEdges[kNAnodes+1];
799 const Float_t kanode = 0.0250;// cm anode separation.
802 // cout << "AliITSgeomSDD300 default creator called: start" << endl;
803 anodeLowEdges[0] = kAnodesZ;
804 for(i=0;i<kNAnodes;i++)anodeLowEdges[i+1] = kanode+anodeLowEdges[i];
805 AliITSgeomSDD::ResetSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
806 kNAnodes+1,anodeLowEdges,
807 kNAnodes+1,anodeLowEdges);
808 // cout << "AliITSgeomSDD300 default creator called: end" << endl;
810 //________________________________________________________________________
811 ostream &operator<<(ostream &os,AliITSgeomSDD300 &p){
812 ////////////////////////////////////////////////////////////////////////
813 // Standard output streaming function.
814 ////////////////////////////////////////////////////////////////////////
819 //----------------------------------------------------------------------
820 istream &operator>>(istream &is,AliITSgeomSDD300 &r){
821 ////////////////////////////////////////////////////////////////////////
822 // Standard input streaming function.
823 ////////////////////////////////////////////////////////////////////////
828 //----------------------------------------------------------------------