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.10 2001/02/09 00:00:57 nilsen
19 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
20 bugs in iostream based streamers used to read and write .det files. Fixed
21 some detector sizes. Fixed bugs in some default-special constructors.
23 Revision 1.9 2001/02/03 00:00:30 nilsen
24 New version of AliITSgeom and related files. Now uses automatic streamers,
25 set up for new formatted .det file which includes detector information.
26 Additional smaller modifications are still to come.
28 Revision 1.8 2000/10/02 16:32:35 barbera
29 Forward declaration added
31 Revision 1.2.4.8 2000/10/02 15:52:05 barbera
32 Forward declaration added
34 Revision 1.7 2000/07/10 16:07:18 fca
35 Release version of ITS code
37 Revision 1.2.4.2 2000/03/04 23:55:35 nilsen
38 Fixed up comments/documentation.
40 Revision 1.2.4.1 2000/01/12 19:03:32 nilsen
41 This is the version of the files after the merging done in December 1999.
42 See the ReadMe110100.txt file for details
44 Revision 1.2 1999/09/29 09:24:20 fca
45 Introduction of the Copyright and cvs Log
54 #include "AliITSgeomSDD.h"
56 ClassImp(AliITSgeomSDD)
57 AliITSgeomSDD::AliITSgeomSDD(){
58 ////////////////////////////////////////////////////////////////////////
59 // default constructor
60 ////////////////////////////////////////////////////////////////////////
61 // const Float_t kDx = 3.500;//cm. (Geant 3.12 units) Orthonormal to y and z
62 // const Float_t kDy = 0.014;//cm. (Geant 3.12 units) Radialy from the Beam
63 // const Float_t kDz = 3.763;//cm. (Geant 3.12 units) Allong the Beam Pipe
65 // cout << "AliITSgeomSDD default creator called: start" << endl;
75 // cout << "AliITSgeomSDD default creator called: end" << endl;
77 //________________________________________________________________________
78 AliITSgeomSDD::AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel,
79 Float_t axL,Float_t axR,
80 Int_t nAL,Float_t *leL,
81 Int_t nAR,Float_t *leR){
82 ////////////////////////////////////////////////////////////////////////
83 // Standard constructor
84 ////////////////////////////////////////////////////////////////////////
94 ResetSDD(box,per,vel,axL,axR,nAL,leL,nAR,leR);
96 //________________________________________________________________________
97 void AliITSgeomSDD::ResetSDD(const Float_t *box,Float_t per,Float_t vel,
98 Float_t axL,Float_t axR,
99 Int_t nAL,Float_t *leL,
100 Int_t nAR,Float_t *leR){
101 ////////////////////////////////////////////////////////////////////////
103 ////////////////////////////////////////////////////////////////////////
112 // if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
113 fAnodeLowEdgeL = new Float_t[fNAnodesL];
114 // if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
115 fAnodeLowEdgeR = new Float_t[fNAnodesR];
116 for(i=0;i<fNAnodesL;i++) fAnodeLowEdgeL[i] = leL[i];
117 for(i=0;i<fNAnodesR;i++) fAnodeLowEdgeR[i] = leR[i];
118 fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET",
119 box[0],box[1],box[2]);
121 //________________________________________________________________________
122 AliITSgeomSDD::~AliITSgeomSDD(){
125 if(fShapeSDD!=0) delete fShapeSDD;
126 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
127 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
138 //________________________________________________________________________
139 AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source){
143 if(this==&source) return;
144 this->fShapeSDD = new TBRIK(*(source.fShapeSDD));
145 this->fPeriod = source.fPeriod;
146 this->fDvelocity = source.fDvelocity;
147 this->fNAnodesL = source.fNAnodesL;
148 this->fNAnodesR = source.fNAnodesR;
149 this->fAnodeXL = source.fAnodeXL;
150 this->fAnodeXR = source.fAnodeXR;
151 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
152 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
153 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
154 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
155 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
156 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
159 //________________________________________________________________________
160 AliITSgeomSDD& AliITSgeomSDD::operator=(AliITSgeomSDD &source){
164 if(this==&source) return *this;
165 this->fShapeSDD = new TBRIK(*(source.fShapeSDD));
166 this->fPeriod = source.fPeriod;
167 this->fDvelocity = source.fDvelocity;
168 this->fNAnodesL = source.fNAnodesL;
169 this->fNAnodesR = source.fNAnodesR;
170 this->fNAnodesR = source.fNAnodesR;
171 this->fAnodeXL = source.fAnodeXL;
172 this->fAnodeXR = source.fAnodeXR;
173 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
174 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
175 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
176 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
177 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
178 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
181 //______________________________________________________________________
182 void AliITSgeomSDD::Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s){
183 // Give the local detector coordinate it returns the anode number, time
184 // bucket, and detector side.
188 if(zl<fAnodeLowEdgeR[0]) i=-1;
189 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
193 if(zl<fAnodeLowEdgeL[0]) i=-1;
194 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
198 if(zl<fAnodeLowEdgeR[0]) i=-1;
199 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
201 if(zl<fAnodeLowEdgeL[0]) i=-1;
202 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
205 t = (Int_t)TMath::Abs((GetAnodeX(a,s)-xl)/fDvelocity/fPeriod);
208 //______________________________________________________________________
209 void AliITSgeomSDD::Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl){
210 // Give the anode number, time bucket, and detector side, it returns the
211 // local detector coordinate.
213 zl = 0.5*GetAnodeZ(a,s);
215 xl = GetAnodeX(a,s)+(t+0.5)*fPeriod*fDvelocity;
217 xl = GetAnodeX(a,s)-(t+0.5)*fPeriod*fDvelocity;
221 //______________________________________________________________________
222 void AliITSgeomSDD::Print(ostream *os) const {
223 ////////////////////////////////////////////////////////////////////////
224 // Standard output format for this class.
225 ////////////////////////////////////////////////////////////////////////
229 fmt = os->setf(ios::scientific); // set scientific floating point output
230 *os << "TBRIK" << " ";
231 *os << setprecision(16) << GetDx() << " ";
232 *os << setprecision(16) << GetDy() << " ";
233 *os << setprecision(16) << GetDz() << " ";
234 *os << setprecision(16) << fPeriod << " ";
235 *os << setprecision(16) << fDvelocity << " ";
236 *os << fNAnodesL << " ";
237 *os << fNAnodesR << " ";
238 *os << fAnodeXL << " ";
239 *os << fAnodeXR << " ";
240 for(i=0;i<fNAnodesL;i++) *os <<setprecision(16)<<fAnodeLowEdgeL[i]<< " ";
241 for(i=0;i<fNAnodesR;i++) *os <<setprecision(16)<<fAnodeLowEdgeR[i]<< " ";
243 os->flags(fmt); // reset back to old formating.
246 //______________________________________________________________________
247 void AliITSgeomSDD::Read(istream *is){
248 ////////////////////////////////////////////////////////////////////////
249 // Standard input format for this class.
250 ////////////////////////////////////////////////////////////////////////
256 *is >> dx >> dy >> dz;
257 if(fShapeSDD!=0) delete fShapeSDD;
258 fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET",
260 *is >> fPeriod >> fDvelocity >> fNAnodesL >> fNAnodesR;
261 *is >> fAnodeXL >> fAnodeXR;
262 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
263 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
264 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
265 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
266 for(i=0;i<fNAnodesL;i++) *is >> fAnodeLowEdgeL[i];
267 for(i=0;i<fNAnodesR;i++) *is >> fAnodeLowEdgeR[i];
270 //----------------------------------------------------------------------
271 ostream &operator<<(ostream &os,AliITSgeomSDD &p){
272 ////////////////////////////////////////////////////////////////////////
273 // Standard output streaming function.
274 ////////////////////////////////////////////////////////////////////////
279 //----------------------------------------------------------------------
280 istream &operator>>(istream &is,AliITSgeomSDD &r){
281 ////////////////////////////////////////////////////////////////////////
282 // Standard input streaming function.
283 ////////////////////////////////////////////////////////////////////////
288 //======================================================================
291 Revision 1.10 2001/02/09 00:00:57 nilsen
292 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
293 bugs in iostream based streamers used to read and write .det files. Fixed
294 some detector sizes. Fixed bugs in some default-special constructors.
296 Revision 1.9 2001/02/03 00:00:30 nilsen
297 New version of AliITSgeom and related files. Now uses automatic streamers,
298 set up for new formatted .det file which includes detector information.
299 Additional smaller modifications are still to come.
302 //#include <iostream.h>
305 //#include "AliITSgeomSDD256.h"
307 ClassImp(AliITSgeomSDD256)
309 AliITSgeomSDD256::AliITSgeomSDD256() : AliITSgeomSDD(){
310 // Default Constructor
312 //----------------------------------------------------------------------
313 AliITSgeomSDD256::AliITSgeomSDD256(Int_t npar,Float_t *par) : AliITSgeomSDD(){
314 ////////////////////////////////////////////////////////////////////////
317 Pads for probe cards in ALICE-D2 /05.03.2000/
318 (X,Y) coordinates are quoted in microns and referred to the centers of
319 bonding pads. (0, 0) corrispond to the center of the detector.
321 left is for negative X, right is for positive X;
322 DOWN half is for negative Y, UP half is for positive Y.
324 Detector size: X= 87588 micrometers; Y= 72500 micrometers.
326 LEFT UP: (-43794, 36250)
327 RIGHT UP: (43794, 36250)
328 LEFT DOWN: (-43794, -36250)
329 RIGHT DOWN: (43794, -36250)
331 Drift cathodes (n-side)
334 (-1477, 0), pad size (150, 60)
335 (875, 0), pad size (150, 60)
336 (-36570, 0), pad size (200, 70)
337 (-37570, 0), pad size (200, 70)
338 (36570, 0), pad size (200, 70)
339 (37570, 0), pad size (200, 70)
342 (-1477, -120), pad size (150, 60)
343 (875, -120), pad size (150, 60)
344 (-36570, -120), pad size (200, 70)
345 (-37570, -120), pad size (200, 70)
346 (36570, -120), pad size (200, 70)
347 (37570, -120), pad size (200, 70)
350 (-1477, -240), pad size (150, 60)
351 (875, -240), pad size (150, 60)
352 (-36570, -240), pad size (200, 70)
353 (-37570, -240), pad size (200, 70)
354 (36570, -240), pad size (200, 70)
355 (37570, -240), pad size (200, 70)
358 (-1477, -360), pad size (150, 60)
359 (875, -360), pad size (150, 60)
360 (-36570, -360), pad size (200, 70)
361 (-37570, -360), pad size (200, 70)
362 (36570, -360), pad size (200, 70)
363 (37570, -360), pad size (200, 70)
364 .....................................
365 ......................................
366 ......................................
367 cathode #30 DOWN half
368 (-1477, -3600), pad size (150, 60)
369 (875, -3600), pad size (150, 60)
370 (-36570, -3600), pad size (200, 70)
371 (-37570, -3600), pad size (200, 70)
372 (36570, -3600), pad size (200, 70)
373 (37570, -3600), pad size (200, 70)
374 ...................................
375 cathode #60 DOWN half
376 (-1477, -7200), pad size (150, 60)
377 (875, -7200), pad size (150, 60)
378 (-36570, -7200), pad size (200, 70)
379 (-37570, -7200), pad size (200, 70)
380 (36570, -7200), pad size (200, 70)
381 (37570, -7200), pad size (200, 70)
382 ....................................
383 cathode #90 DOWN half
384 (-1477, -10800), pad size (150, 60)
385 (875, -10800), pad size (150, 60)
386 (-36570, -10800), pad size (200, 70)
387 (-37570, -10800), pad size (200, 70)
388 (36570, -10800), pad size (200, 70)
389 (37570, -10800), pad size (200, 70)
390 ....................................
391 cathode #120 DOWN half
392 (-1477, -14400), pad size (150, 60)
393 (875, -14400), pad size (150, 60)
394 (-36570, -14400), pad size (200, 70)
395 (-37570, -14400), pad size (200, 70)
396 (36570, -14400), pad size (200, 70)
397 (37570, -14400), pad size (200, 70)
398 ....................................
399 cathode #150 DOWN half
400 (-1477, -18000), pad size (150, 60)
401 (875, -18000), pad size (150, 60)
402 (-36570, -18000), pad size (200, 70)
403 (-37570, -18000), pad size (200, 70)
404 (36570, -18000), pad size (200, 70)
405 (37570, -18000), pad size (200, 70)
406 ....................................
407 cathode #180 DOWN half
408 (-1477, -21600), pad size (150, 60)
409 (875, -21600), pad size (150, 60)
410 (-36570, -21600), pad size (200, 70)
411 (-37570, -21600), pad size (200, 70)
412 (36570, -21600), pad size (200, 70)
413 (37570, -21600), pad size (200, 70)
414 ....................................
415 cathode #210 DOWN half
416 (-1477, -25200), pad size (150, 60)
417 (875, -25200), pad size (150, 60)
418 (-36570, -25200), pad size (200, 70)
419 (-37570, -25200), pad size (200, 70)
420 (36570, -25200), pad size (200, 70)
421 (37570, -25200), pad size (200, 70)
422 ....................................
423 cathode #240 DOWN half
424 (-1477, -28800), pad size (150, 60)
425 (875, -28800), pad size (150, 60)
426 (-36570, -28800), pad size (200, 70)
427 (-37570, -28800), pad size (200, 70)
428 (36570, -28800), pad size (200, 70)
429 (37570, -28800), pad size (200, 70)
430 ....................................
431 cathode #270 DOWN half
432 (-1477, -32400), pad size (150, 60)
433 (875, -32400), pad size (150, 60)
434 (-36570, -32400), pad size (200, 70)
435 (-37570, -32400), pad size (200, 70)
436 (36570, -32400), pad size (200, 70)
437 (37570, -32400), pad size (200, 70)
438 ....................................
439 cathode #290 DOWN half
440 (-1477, -34800), pad size (150, 60)
441 (875, -34800), pad size (150, 60)
442 (-36570, -34800), pad size (200, 70)
443 (-37570, -34800), pad size (200, 70)
444 (36570, -34800), pad size (200, 70)
445 (37570, -34800), pad size (200, 70)
446 ___________________________________________________
448 (-1477, 120), pad size (150, 60)
449 (875, 120), pad size (150, 60)
450 (-36570, 120), pad size (200, 70)
451 (-37570, 120), pad size (200, 70)
452 (36570, 120), pad size (200, 70)
453 (37570, 120), pad size (200, 70)
456 (-1477, 240), pad size (150, 60)
457 (875, 240), pad size (150, 60)
458 (-36570, 240), pad size (200, 70)
459 (-37570, 240), pad size (200, 70)
460 (36570, 240), pad size (200, 70)
461 (37570, 240), pad size (200, 70)
464 (-1477, 360), pad size (150, 60)
465 (875, 360), pad size (150, 60)
466 (-36570, 360), pad size (200, 70)
467 (-37570, 360), pad size (200, 70)
468 (36570, 360), pad size (200, 70)
469 (37570, 360), pad size (200, 70)
470 .....................................
471 ......................................
472 ......................................
474 (-1477, 3600), pad size (150, 60)
475 (875, 3600), pad size (150, 60)
476 (-36570, 3600), pad size (200, 70)
477 (-37570, 3600), pad size (200, 70)
478 (36570, 3600), pad size (200, 70)
479 (37570, 3600), pad size (200, 70)
480 ......................................
482 (-1477, 7200), pad size (150, 60)
483 (875, 7200), pad size (150, 60)
484 (-36570, 7200), pad size (200, 70)
485 (-37570, 7200), pad size (200, 70)
486 (36570, 7200), pad size (200, 70)
487 (37570, 7200), pad size (200, 70)
488 ......................................
490 (-1477, 10800), pad size (150, 60)
491 (875, 10800), pad size (150, 60)
492 (-36570, 10800), pad size (200, 70)
493 (-37570, 10800), pad size (200, 70)
494 (36570, 10800), pad size (200, 70)
495 (37570, 10800), pad size (200, 70)
496 ......................................
498 (-1477, 14400), pad size (150, 60)
499 (875, 14400), pad size (150, 60)
500 (-36570, 14400), pad size (200, 70)
501 (-37570, 14400), pad size (200, 70)
502 (36570, 14400), pad size (200, 70)
503 (37570, 14400), pad size (200, 70)
504 ......................................
506 (-1477, 18000), pad size (150, 60)
507 (875, 18000), pad size (150, 60)
508 (-36570, 18000), pad size (200, 70)
509 (-37570, 18000), pad size (200, 70)
510 (36570, 18000), pad size (200, 70)
511 (37570, 18000), pad size (200, 70)
512 ......................................
514 (-1477, 21600), pad size (150, 60)
515 (875, 21600), pad size (150, 60)
516 (-36570, 21600), pad size (200, 70)
517 (-37570, 21600), pad size (200, 70)
518 (36570, 21600), pad size (200, 70)
519 (37570, 21600), pad size (200, 70)
520 ......................................
522 (-1477, 25200), pad size (150, 60)
523 (875, 25200), pad size (150, 60)
524 (-36570, 25200), pad size (200, 70)
525 (-37570, 25200), pad size (200, 70)
526 (36570, 25200), pad size (200, 70)
527 (37570, 25200), pad size (200, 70)
528 ......................................
530 (-1477, 28800), pad size (150, 60)
531 (875, 28800), pad size (150, 60)
532 (-36570, 28800), pad size (200, 70)
533 (-37570, 28800), pad size (200, 70)
534 (36570, 28800), pad size (200, 70)
535 (37570, 28800), pad size (200, 70)
536 ......................................
538 (-1477, 32400), pad size (150, 60)
539 (875, 32400), pad size (150, 60)
540 (-36570, 32400), pad size (200, 70)
541 (-37570, 32400), pad size (200, 70)
542 (36570, 32400), pad size (200, 70)
543 (37570, 32400), pad size (200, 70)
544 ......................................
546 (-1477, 34800), pad size (150, 60)
547 (875, 34800), pad size (150, 60)
548 (-36570, 34800), pad size (200, 70)
549 (-37570, 34800), pad size (200, 70)
550 (36570, 34800), pad size (200, 70)
551 (37570, 34800), pad size (200, 70)
554 Central line injectors (DOWN half)
555 (-1237, -660), pad size (150, 65)
556 (1115, -660), pad size (150, 65)
557 (37890, -660), pad size (100, 74)
559 Middle line injectors (DOWN half)
560 (-1237, -17460), pad size (150, 80)
561 (1115, -17460), pad size (150, 80)
562 (37890, -17460), pad size (100, 74)
564 Bottom line injectors (DOWN half)
565 (-1237, -34020), pad size (150, 80)
566 (1115, -34020), pad size (150, 80)
567 (37890, -34020), pad size (100, 74)
568 ___________________________________________
569 Central line injectors (UP half)
570 (-1237, 660), pad size (150, 65)
571 (1115, 660), pad size (150, 65)
572 (37890, 660), pad size (100, 74)
574 Middle line injectors (UP half)
575 (-1237, 17460), pad size (150, 80)
576 (1115, 17460), pad size (150, 80)
577 (37890, 17460), pad size (100, 74)
579 Bottom line injectors (UP half)
580 (-1237, 34020), pad size (150, 80)
581 (1115, 34020), pad size (150, 80)
582 (37890, 34020), pad size (100, 74)
584 Drift cathodes and injectors of p-side have the bonding pads with the same
585 coordinates as for the n-side (when looking through the masks)
587 Cathodes of the collection zone (n-side)
589 cathode #291 (-40 V) DOWN half
590 (-38220, -35055), pad size (120, 160)
591 (38190, -34992), pad size (120, 145)
593 GRID cathode (-15 V) DOWN half
594 (-37988, -35085), pad size (144, 210)
595 (37988, -35085), pad size (144, 210)
597 cathode #292 (-30 V) DOWN half
598 (-38245, -35290), pad size (100, 170)
599 (38210, -35242), pad size (150, 215)
601 cathode #293 (-15 V) DOWN half
602 (-38055, -35460), pad size (690, 70)
603 (36488, -35460), pad size (3805, 70)
605 n+ bulk contact (GND) DOWN half
606 (-38300, -36050), pad size (1000, 395)
607 (38300, -36050), pad size (1000, 395)
609 bonding pad of the last integrated resistor DOWN half
610 /it has to be connected to the GND/
611 (-38190, -35620) pad size (160, 110)
612 ________________________________________________
613 cathode #291 (-40 V) UP half
614 (-38220, 35055), pad size (120, 160)
615 (38190, 34992), pad size (120, 145)
617 GRID cathode (-15 V) UP half
618 (-37988, 35085), pad size (144, 210)
619 (37988, 35085), pad size (144, 210)
621 cathode #292 (-30 V) UP half
622 (-38245, 35290), pad size (100, 170)
623 (38210, 35242), pad size (150, 215)
625 cathode #293 (-15 V) UP half
626 (-38055, 35460), pad size (690, 70)
627 (36488, 35460), pad size (3805, 70)
629 n+ bulk contact (GND) UP half
630 (-38300, 36050), pad size (1000, 395)
631 (38300, 36050), pad size (1000, 395)
633 bonding pad of the last integrated resistor UP half
634 /it has to be connected to the GND/
635 (-38190, 35620) pad size (160, 110)
637 Cathodes of the collection zone (p-side)
639 cathode #291 (-40 V) DOWN half
640 (-38215, -35055), pad size (120, 160)
641 (38190, -34992), pad size (120, 145)
643 cathode W1 (-60 V) DOWN half
644 (-38000, -35110), pad size (140, 240)
645 (38000, -35110), pad size (140, 240)
647 cathode W2 (-80 V) DOWN half
648 ( 0, -35090), pad size (75600, 110)
650 cathode #292 (-40 V) DOWN half
651 (-38220, -35290), pad size (150, 170)
652 (38210, -35242), pad size (150, 215)
654 p+ bulk contact (GND) DOWN half
655 (-38300, -36050), pad size (1000, 395)
656 (38300, -36050), pad size (1000, 395)
658 It is necessary to connect cathode #291 to cathode #292 in order to
659 close the integrated divider to p+ bulk contact (GND).
661 _______________________________________________
662 cathode #291 (-40 V) UP half
663 (-38215, 35055), pad size (120, 160)
664 (38190, 34992), pad size (120, 145)
666 cathode W1 (-60 V) UP half
667 (-38000, 35110), pad size (140, 240)
668 (38000, 35110), pad size (140, 240)
670 cathode W2 (-80 V) UP half
671 ( 0, 35090), pad size (75600, 110)
673 cathode #292 (-40 V) UP half
674 (-38220, 35290), pad size (150, 170)
675 (38210, 35242), pad size (150, 215)
677 p+ bulk contact (GND) UP half
678 (-38300, 36050), pad size (1000, 395)
679 (38300, 36050), pad size (1000, 395)
681 It is necessary to connect cathode #291 to cathode #292 in order to
682 close the integrated divider to p+ bulk contact (GND).
685 There are 256 anodes to be bonded to the inputs of front-end electronics. In
686 addition there are 2 anodes (one at the left edge and one at the right edge
687 of the anode array) that have to be bonded to the ground. I call these 2
688 anodes #L and #R. The pitch of all anodes is 294 micrometers.
691 #L (-37779, -35085), pad size (184, 140)
692 #1 (-37485, -35085), pad size (184, 140)
693 .........................................
694 .........................................
695 #256.............(37485, -35085), pad size (184, 140)
696 #R (37779, -35085), pad size (184, 140)
697 _____________________________________________
699 #L (-37779, 35085), pad size (184, 140)
700 #1 (-37485, 35085), pad size (184, 140)
701 .........................................
702 .........................................
703 #256.............(37485, 35085), pad size (184, 140)
704 #R (37779, 35085), pad size (184, 140)
706 ////////////////////////////////////////////////////////////////////////
707 const Float_t kDxyz[] = {3.6250,0.01499,4.3794};//cm. (Geant 3.12 units)
708 // Size of sensitive region of detector
709 const Float_t kPeriod = 25.0E-09; // 40 MHz sampling frequence
710 const Float_t kVelocity = 5.46875E+03; // cm/s drift velocity
711 const Float_t kAnodeXL = -3.5085; // cm location in x of anodes left side
712 const Float_t kAnodeXR = 3.5085; // cm location in x of anodes right side
713 const Int_t kNAnodes = 256; // nuber of anodes connected
714 const Float_t kAnodePitch = 0.0294; // cm
715 const Float_t kAnodesZ = -3.7485; // cm Starting location of anodes in z
716 Float_t AnodeLowEdges[kNAnodes+1];
719 // cout << "AliITSgeomSDD256 default creator called: start" << end;
720 AnodeLowEdges[0] = kAnodesZ;
721 for(i=0;i<kNAnodes;i++) AnodeLowEdges[i+1] = kAnodePitch+AnodeLowEdges[i];
722 AliITSgeomSDD::ResetSDD(par,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
723 kNAnodes+1,AnodeLowEdges,
724 kNAnodes+1,AnodeLowEdges);
725 // cout << "AliITSgeomSDD256 default creator called: end" << endl;
727 //________________________________________________________________________
728 ostream &operator<<(ostream &os,AliITSgeomSDD256 &p){
729 ////////////////////////////////////////////////////////////////////////
730 // Standard output streaming function.
731 ////////////////////////////////////////////////////////////////////////
736 //----------------------------------------------------------------------
737 istream &operator>>(istream &is,AliITSgeomSDD256 &r){
738 ////////////////////////////////////////////////////////////////////////
739 // Standard input streaming function.
740 ////////////////////////////////////////////////////////////////////////
745 //======================================================================
748 Revision 1.10 2001/02/09 00:00:57 nilsen
749 Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
750 bugs in iostream based streamers used to read and write .det files. Fixed
751 some detector sizes. Fixed bugs in some default-special constructors.
753 Revision 1.9 2001/02/03 00:00:30 nilsen
754 New version of AliITSgeom and related files. Now uses automatic streamers,
755 set up for new formatted .det file which includes detector information.
756 Additional smaller modifications are still to come.
759 //#include <iostream.h>
762 //#include "AliITSgeomSDD300.h"
764 ClassImp(AliITSgeomSDD300)
766 AliITSgeomSDD300::AliITSgeomSDD300() : AliITSgeomSDD(){
767 ////////////////////////////////////////////////////////////////////////
768 // default constructor
769 ////////////////////////////////////////////////////////////////////////
770 const Float_t kDxyz[] = {3.500,0.014,3.763};//cm.
771 const Float_t kPeriod = 25.0E-09; // 40 MHz
772 const Float_t kVelocity = 5.46875E+3; // cm/s
773 const Int_t kNAnodes = 300; // number of anodes
774 const Float_t kAnodeXL = -3.500; // cm
775 const Float_t kAnodeXR = +3.500; // cm
776 const Float_t kAnodesZ = -3.75; // cm
777 Float_t AnodeLowEdges[kNAnodes+1];
778 const Float_t kanode = 0.0250;// cm anode separation.
781 // cout << "AliITSgeomSDD300 default creator called: start" << endl;
782 AnodeLowEdges[0] = kAnodesZ;
783 for(i=0;i<kNAnodes;i++) AnodeLowEdges[i+1] = kanode+AnodeLowEdges[i];
784 AliITSgeomSDD::ResetSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
785 kNAnodes+1,AnodeLowEdges,
786 kNAnodes+1,AnodeLowEdges);
787 // cout << "AliITSgeomSDD300 default creator called: end" << endl;
789 //________________________________________________________________________
790 ostream &operator<<(ostream &os,AliITSgeomSDD300 &p){
791 ////////////////////////////////////////////////////////////////////////
792 // Standard output streaming function.
793 ////////////////////////////////////////////////////////////////////////
798 //----------------------------------------------------------------------
799 istream &operator>>(istream &is,AliITSgeomSDD300 &r){
800 ////////////////////////////////////////////////////////////////////////
801 // Standard input streaming function.
802 ////////////////////////////////////////////////////////////////////////
807 //----------------------------------------------------------------------