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.8 2000/10/02 16:32:35 barbera
19 Forward declaration added
21 Revision 1.2.4.8 2000/10/02 15:52:05 barbera
22 Forward declaration added
24 Revision 1.7 2000/07/10 16:07:18 fca
25 Release version of ITS code
27 Revision 1.2.4.2 2000/03/04 23:55:35 nilsen
28 Fixed up comments/documentation.
30 Revision 1.2.4.1 2000/01/12 19:03:32 nilsen
31 This is the version of the files after the merging done in December 1999.
32 See the ReadMe110100.txt file for details
34 Revision 1.2 1999/09/29 09:24:20 fca
35 Introduction of the Copyright and cvs Log
44 #include "AliITSgeomSDD.h"
46 ClassImp(AliITSgeomSDD)
47 AliITSgeomSDD::AliITSgeomSDD(){
48 ////////////////////////////////////////////////////////////////////////
49 // default constructor
50 ////////////////////////////////////////////////////////////////////////
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
55 // cout << "AliITSgeomSDD default creator called: start" << endl;
65 // cout << "AliITSgeomSDD default creator called: end" << endl;
67 //________________________________________________________________________
68 AliITSgeomSDD::AliITSgeomSDD(const Float_t *box,Float_t per,Float_t vel,
69 Float_t axL,Float_t axR,
70 Int_t nAL,Float_t *leL,
71 Int_t nAR,Float_t *leR){
72 ////////////////////////////////////////////////////////////////////////
73 // Standard constructor
74 ////////////////////////////////////////////////////////////////////////
83 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
84 fAnodeLowEdgeL = new Float_t[fNAnodesL];
85 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
86 fAnodeLowEdgeR = new Float_t[fNAnodesR];
87 for(i=0;i<fNAnodesL;i++) fAnodeLowEdgeL[i] = leL[i];
88 for(i=0;i<fNAnodesR;i++) fAnodeLowEdgeR[i] = leR[i];
89 fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET",
90 box[0],box[1],box[2]);
92 //________________________________________________________________________
93 AliITSgeomSDD::~AliITSgeomSDD(){
96 if(fShapeSDD!=0) delete fShapeSDD;
97 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
98 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
109 //________________________________________________________________________
110 AliITSgeomSDD::AliITSgeomSDD(AliITSgeomSDD &source){
114 if(this==&source) return;
115 this->fShapeSDD = new TBRIK(*(source.fShapeSDD));
116 this->fPeriod = source.fPeriod;
117 this->fDvelocity = source.fDvelocity;
118 this->fNAnodesL = source.fNAnodesL;
119 this->fNAnodesR = source.fNAnodesR;
120 this->fAnodeXL = source.fAnodeXL;
121 this->fAnodeXR = source.fAnodeXR;
122 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
123 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
124 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
125 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
126 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
127 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
130 //________________________________________________________________________
131 AliITSgeomSDD& AliITSgeomSDD::operator=(AliITSgeomSDD &source){
135 if(this==&source) return *this;
136 this->fShapeSDD = new TBRIK(*(source.fShapeSDD));
137 this->fPeriod = source.fPeriod;
138 this->fDvelocity = source.fDvelocity;
139 this->fNAnodesL = source.fNAnodesL;
140 this->fNAnodesR = source.fNAnodesR;
141 this->fNAnodesR = source.fNAnodesR;
142 this->fAnodeXL = source.fAnodeXL;
143 this->fAnodeXR = source.fAnodeXR;
144 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
145 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
146 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
147 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
148 for(i=0;i<fNAnodesL;i++)this->fAnodeLowEdgeL[i] = source.fAnodeLowEdgeL[i];
149 for(i=0;i<fNAnodesR;i++)this->fAnodeLowEdgeR[i] = source.fAnodeLowEdgeR[i];
152 //______________________________________________________________________
153 void AliITSgeomSDD::Local2Det(Float_t xl,Float_t zl,Int_t &a,Int_t &t,Int_t &s){
154 // Give the local detector coordinate it returns the anode number, time
155 // bucket, and detector side.
159 if(zl<fAnodeLowEdgeR[0]) i=-1;
160 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
164 if(zl<fAnodeLowEdgeL[0]) i=-1;
165 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
169 if(zl<fAnodeLowEdgeR[0]) i=-1;
170 else for(i=0;i<fNAnodesR;i++) if(zl<fAnodeLowEdgeR[i]) break;
172 if(zl<fAnodeLowEdgeL[0]) i=-1;
173 else for(i=0;i<fNAnodesL;i++) if(zl<fAnodeLowEdgeL[i]) break;
176 t = (Int_t)TMath::Abs((GetAnodeX(a,s)-xl)/fDvelocity/fPeriod);
179 //______________________________________________________________________
180 void AliITSgeomSDD::Det2Local(Int_t a,Int_t t,Int_t s,Float_t &xl,Float_t &zl){
181 // Give the anode number, time bucket, and detector side, it returns the
182 // local detector coordinate.
184 zl = 0.5*GetAnodeZ(a,s);
186 xl = GetAnodeX(a,s)+(t+0.5)*fPeriod*fDvelocity;
188 xl = GetAnodeX(a,s)-(t+0.5)*fPeriod*fDvelocity;
192 //______________________________________________________________________
193 void AliITSgeomSDD::Print(ostream *os){
194 ////////////////////////////////////////////////////////////////////////
195 // Standard output format for this class.
196 ////////////////////////////////////////////////////////////////////////
200 fmt = os->setf(ios::scientific); // set scientific floating point output
201 *os << "TBRIK" << " ";
202 *os << setprecision(16) << GetDx() << " ";
203 *os << setprecision(16) << GetDy() << " ";
204 *os << setprecision(16) << GetDz() << " ";
205 *os << setprecision(16) << fPeriod << " ";
206 *os << setprecision(16) << fDvelocity << " ";
207 *os << fNAnodesL << " ";
208 *os << fNAnodesR << " ";
209 *os << fAnodeXL << " ";
210 *os << fAnodeXR << " ";
211 for(i=0;i<fNAnodesL;i++) *os <<setprecision(16)<<fAnodeLowEdgeL[i]<< " ";
212 for(i=0;i<fNAnodesR;i++) *os <<setprecision(16)<<fAnodeLowEdgeR[i]<< " ";
214 os->flags(fmt); // reset back to old formating.
217 //______________________________________________________________________
218 void AliITSgeomSDD::Read(istream *is){
219 ////////////////////////////////////////////////////////////////////////
220 // Standard input format for this class.
221 ////////////////////////////////////////////////////////////////////////
227 *is >> dx >> dy >> dz;
228 if(fShapeSDD!=0) delete fShapeSDD;
229 fShapeSDD = new TBRIK("ActiveSDD","Active volume of SDD","SDD SI DET",
231 *is >> fPeriod >> fDvelocity >> fNAnodesL >> fNAnodesR;
232 *is >> fAnodeXL >> fAnodeXR;
233 if(fAnodeLowEdgeL!=0) delete fAnodeLowEdgeL;
234 this->fAnodeLowEdgeL = new Float_t[fNAnodesL];
235 if(fAnodeLowEdgeR!=0) delete fAnodeLowEdgeR;
236 this->fAnodeLowEdgeR = new Float_t[fNAnodesR];
237 for(i=0;i<fNAnodesL;i++) *is >> fAnodeLowEdgeL[i];
238 for(i=0;i<fNAnodesR;i++) *is >> fAnodeLowEdgeR[i];
241 //----------------------------------------------------------------------
242 ostream &operator<<(ostream &os,AliITSgeomSDD &p){
243 ////////////////////////////////////////////////////////////////////////
244 // Standard output streaming function.
245 ////////////////////////////////////////////////////////////////////////
250 //----------------------------------------------------------------------
251 istream &operator>>(istream &is,AliITSgeomSDD &r){
252 ////////////////////////////////////////////////////////////////////////
253 // Standard input streaming function.
254 ////////////////////////////////////////////////////////////////////////
259 //======================================================================
263 //#include <iostream.h>
266 //#include "AliITSgeomSDD256.h"
268 ClassImp(AliITSgeomSDD256)
270 AliITSgeomSDD256::AliITSgeomSDD256(){
271 ////////////////////////////////////////////////////////////////////////
272 // default constructor
274 Pads for probe cards in ALICE-D2 /05.03.2000/
275 (X,Y) coordinates are quoted in microns and referred to the centers of
276 bonding pads. (0, 0) corrispond to the center of the detector.
278 left is for negative X, right is for positive X;
279 DOWN half is for negative Y, UP half is for positive Y.
281 Detector size: X= 87588 micrometers; Y= 72500 micrometers.
283 LEFT UP: (-43794, 36250)
284 RIGHT UP: (43794, 36250)
285 LEFT DOWN: (-43794, -36250)
286 RIGHT DOWN: (43794, -36250)
288 Drift cathodes (n-side)
291 (-1477, 0), pad size (150, 60)
292 (875, 0), pad size (150, 60)
293 (-36570, 0), pad size (200, 70)
294 (-37570, 0), pad size (200, 70)
295 (36570, 0), pad size (200, 70)
296 (37570, 0), pad size (200, 70)
299 (-1477, -120), pad size (150, 60)
300 (875, -120), pad size (150, 60)
301 (-36570, -120), pad size (200, 70)
302 (-37570, -120), pad size (200, 70)
303 (36570, -120), pad size (200, 70)
304 (37570, -120), pad size (200, 70)
307 (-1477, -240), pad size (150, 60)
308 (875, -240), pad size (150, 60)
309 (-36570, -240), pad size (200, 70)
310 (-37570, -240), pad size (200, 70)
311 (36570, -240), pad size (200, 70)
312 (37570, -240), pad size (200, 70)
315 (-1477, -360), pad size (150, 60)
316 (875, -360), pad size (150, 60)
317 (-36570, -360), pad size (200, 70)
318 (-37570, -360), pad size (200, 70)
319 (36570, -360), pad size (200, 70)
320 (37570, -360), pad size (200, 70)
321 .....................................
322 ......................................
323 ......................................
324 cathode #30 DOWN half
325 (-1477, -3600), pad size (150, 60)
326 (875, -3600), pad size (150, 60)
327 (-36570, -3600), pad size (200, 70)
328 (-37570, -3600), pad size (200, 70)
329 (36570, -3600), pad size (200, 70)
330 (37570, -3600), pad size (200, 70)
331 ...................................
332 cathode #60 DOWN half
333 (-1477, -7200), pad size (150, 60)
334 (875, -7200), pad size (150, 60)
335 (-36570, -7200), pad size (200, 70)
336 (-37570, -7200), pad size (200, 70)
337 (36570, -7200), pad size (200, 70)
338 (37570, -7200), pad size (200, 70)
339 ....................................
340 cathode #90 DOWN half
341 (-1477, -10800), pad size (150, 60)
342 (875, -10800), pad size (150, 60)
343 (-36570, -10800), pad size (200, 70)
344 (-37570, -10800), pad size (200, 70)
345 (36570, -10800), pad size (200, 70)
346 (37570, -10800), pad size (200, 70)
347 ....................................
348 cathode #120 DOWN half
349 (-1477, -14400), pad size (150, 60)
350 (875, -14400), pad size (150, 60)
351 (-36570, -14400), pad size (200, 70)
352 (-37570, -14400), pad size (200, 70)
353 (36570, -14400), pad size (200, 70)
354 (37570, -14400), pad size (200, 70)
355 ....................................
356 cathode #150 DOWN half
357 (-1477, -18000), pad size (150, 60)
358 (875, -18000), pad size (150, 60)
359 (-36570, -18000), pad size (200, 70)
360 (-37570, -18000), pad size (200, 70)
361 (36570, -18000), pad size (200, 70)
362 (37570, -18000), pad size (200, 70)
363 ....................................
364 cathode #180 DOWN half
365 (-1477, -21600), pad size (150, 60)
366 (875, -21600), pad size (150, 60)
367 (-36570, -21600), pad size (200, 70)
368 (-37570, -21600), pad size (200, 70)
369 (36570, -21600), pad size (200, 70)
370 (37570, -21600), pad size (200, 70)
371 ....................................
372 cathode #210 DOWN half
373 (-1477, -25200), pad size (150, 60)
374 (875, -25200), pad size (150, 60)
375 (-36570, -25200), pad size (200, 70)
376 (-37570, -25200), pad size (200, 70)
377 (36570, -25200), pad size (200, 70)
378 (37570, -25200), pad size (200, 70)
379 ....................................
380 cathode #240 DOWN half
381 (-1477, -28800), pad size (150, 60)
382 (875, -28800), pad size (150, 60)
383 (-36570, -28800), pad size (200, 70)
384 (-37570, -28800), pad size (200, 70)
385 (36570, -28800), pad size (200, 70)
386 (37570, -28800), pad size (200, 70)
387 ....................................
388 cathode #270 DOWN half
389 (-1477, -32400), pad size (150, 60)
390 (875, -32400), pad size (150, 60)
391 (-36570, -32400), pad size (200, 70)
392 (-37570, -32400), pad size (200, 70)
393 (36570, -32400), pad size (200, 70)
394 (37570, -32400), pad size (200, 70)
395 ....................................
396 cathode #290 DOWN half
397 (-1477, -34800), pad size (150, 60)
398 (875, -34800), pad size (150, 60)
399 (-36570, -34800), pad size (200, 70)
400 (-37570, -34800), pad size (200, 70)
401 (36570, -34800), pad size (200, 70)
402 (37570, -34800), pad size (200, 70)
403 ___________________________________________________
405 (-1477, 120), pad size (150, 60)
406 (875, 120), pad size (150, 60)
407 (-36570, 120), pad size (200, 70)
408 (-37570, 120), pad size (200, 70)
409 (36570, 120), pad size (200, 70)
410 (37570, 120), pad size (200, 70)
413 (-1477, 240), pad size (150, 60)
414 (875, 240), pad size (150, 60)
415 (-36570, 240), pad size (200, 70)
416 (-37570, 240), pad size (200, 70)
417 (36570, 240), pad size (200, 70)
418 (37570, 240), pad size (200, 70)
421 (-1477, 360), pad size (150, 60)
422 (875, 360), pad size (150, 60)
423 (-36570, 360), pad size (200, 70)
424 (-37570, 360), pad size (200, 70)
425 (36570, 360), pad size (200, 70)
426 (37570, 360), pad size (200, 70)
427 .....................................
428 ......................................
429 ......................................
431 (-1477, 3600), pad size (150, 60)
432 (875, 3600), pad size (150, 60)
433 (-36570, 3600), pad size (200, 70)
434 (-37570, 3600), pad size (200, 70)
435 (36570, 3600), pad size (200, 70)
436 (37570, 3600), pad size (200, 70)
437 ......................................
439 (-1477, 7200), pad size (150, 60)
440 (875, 7200), pad size (150, 60)
441 (-36570, 7200), pad size (200, 70)
442 (-37570, 7200), pad size (200, 70)
443 (36570, 7200), pad size (200, 70)
444 (37570, 7200), pad size (200, 70)
445 ......................................
447 (-1477, 10800), pad size (150, 60)
448 (875, 10800), pad size (150, 60)
449 (-36570, 10800), pad size (200, 70)
450 (-37570, 10800), pad size (200, 70)
451 (36570, 10800), pad size (200, 70)
452 (37570, 10800), pad size (200, 70)
453 ......................................
455 (-1477, 14400), pad size (150, 60)
456 (875, 14400), pad size (150, 60)
457 (-36570, 14400), pad size (200, 70)
458 (-37570, 14400), pad size (200, 70)
459 (36570, 14400), pad size (200, 70)
460 (37570, 14400), pad size (200, 70)
461 ......................................
463 (-1477, 18000), pad size (150, 60)
464 (875, 18000), pad size (150, 60)
465 (-36570, 18000), pad size (200, 70)
466 (-37570, 18000), pad size (200, 70)
467 (36570, 18000), pad size (200, 70)
468 (37570, 18000), pad size (200, 70)
469 ......................................
471 (-1477, 21600), pad size (150, 60)
472 (875, 21600), pad size (150, 60)
473 (-36570, 21600), pad size (200, 70)
474 (-37570, 21600), pad size (200, 70)
475 (36570, 21600), pad size (200, 70)
476 (37570, 21600), pad size (200, 70)
477 ......................................
479 (-1477, 25200), pad size (150, 60)
480 (875, 25200), pad size (150, 60)
481 (-36570, 25200), pad size (200, 70)
482 (-37570, 25200), pad size (200, 70)
483 (36570, 25200), pad size (200, 70)
484 (37570, 25200), pad size (200, 70)
485 ......................................
487 (-1477, 28800), pad size (150, 60)
488 (875, 28800), pad size (150, 60)
489 (-36570, 28800), pad size (200, 70)
490 (-37570, 28800), pad size (200, 70)
491 (36570, 28800), pad size (200, 70)
492 (37570, 28800), pad size (200, 70)
493 ......................................
495 (-1477, 32400), pad size (150, 60)
496 (875, 32400), pad size (150, 60)
497 (-36570, 32400), pad size (200, 70)
498 (-37570, 32400), pad size (200, 70)
499 (36570, 32400), pad size (200, 70)
500 (37570, 32400), pad size (200, 70)
501 ......................................
503 (-1477, 34800), pad size (150, 60)
504 (875, 34800), pad size (150, 60)
505 (-36570, 34800), pad size (200, 70)
506 (-37570, 34800), pad size (200, 70)
507 (36570, 34800), pad size (200, 70)
508 (37570, 34800), pad size (200, 70)
511 Central line injectors (DOWN half)
512 (-1237, -660), pad size (150, 65)
513 (1115, -660), pad size (150, 65)
514 (37890, -660), pad size (100, 74)
516 Middle line injectors (DOWN half)
517 (-1237, -17460), pad size (150, 80)
518 (1115, -17460), pad size (150, 80)
519 (37890, -17460), pad size (100, 74)
521 Bottom line injectors (DOWN half)
522 (-1237, -34020), pad size (150, 80)
523 (1115, -34020), pad size (150, 80)
524 (37890, -34020), pad size (100, 74)
525 ___________________________________________
526 Central line injectors (UP half)
527 (-1237, 660), pad size (150, 65)
528 (1115, 660), pad size (150, 65)
529 (37890, 660), pad size (100, 74)
531 Middle line injectors (UP half)
532 (-1237, 17460), pad size (150, 80)
533 (1115, 17460), pad size (150, 80)
534 (37890, 17460), pad size (100, 74)
536 Bottom line injectors (UP half)
537 (-1237, 34020), pad size (150, 80)
538 (1115, 34020), pad size (150, 80)
539 (37890, 34020), pad size (100, 74)
541 Drift cathodes and injectors of p-side have the bonding pads with the same
542 coordinates as for the n-side (when looking through the masks)
544 Cathodes of the collection zone (n-side)
546 cathode #291 (-40 V) DOWN half
547 (-38220, -35055), pad size (120, 160)
548 (38190, -34992), pad size (120, 145)
550 GRID cathode (-15 V) DOWN half
551 (-37988, -35085), pad size (144, 210)
552 (37988, -35085), pad size (144, 210)
554 cathode #292 (-30 V) DOWN half
555 (-38245, -35290), pad size (100, 170)
556 (38210, -35242), pad size (150, 215)
558 cathode #293 (-15 V) DOWN half
559 (-38055, -35460), pad size (690, 70)
560 (36488, -35460), pad size (3805, 70)
562 n+ bulk contact (GND) DOWN half
563 (-38300, -36050), pad size (1000, 395)
564 (38300, -36050), pad size (1000, 395)
566 bonding pad of the last integrated resistor DOWN half
567 /it has to be connected to the GND/
568 (-38190, -35620) pad size (160, 110)
569 ________________________________________________
570 cathode #291 (-40 V) UP half
571 (-38220, 35055), pad size (120, 160)
572 (38190, 34992), pad size (120, 145)
574 GRID cathode (-15 V) UP half
575 (-37988, 35085), pad size (144, 210)
576 (37988, 35085), pad size (144, 210)
578 cathode #292 (-30 V) UP half
579 (-38245, 35290), pad size (100, 170)
580 (38210, 35242), pad size (150, 215)
582 cathode #293 (-15 V) UP half
583 (-38055, 35460), pad size (690, 70)
584 (36488, 35460), pad size (3805, 70)
586 n+ bulk contact (GND) UP half
587 (-38300, 36050), pad size (1000, 395)
588 (38300, 36050), pad size (1000, 395)
590 bonding pad of the last integrated resistor UP half
591 /it has to be connected to the GND/
592 (-38190, 35620) pad size (160, 110)
594 Cathodes of the collection zone (p-side)
596 cathode #291 (-40 V) DOWN half
597 (-38215, -35055), pad size (120, 160)
598 (38190, -34992), pad size (120, 145)
600 cathode W1 (-60 V) DOWN half
601 (-38000, -35110), pad size (140, 240)
602 (38000, -35110), pad size (140, 240)
604 cathode W2 (-80 V) DOWN half
605 ( 0, -35090), pad size (75600, 110)
607 cathode #292 (-40 V) DOWN half
608 (-38220, -35290), pad size (150, 170)
609 (38210, -35242), pad size (150, 215)
611 p+ bulk contact (GND) DOWN half
612 (-38300, -36050), pad size (1000, 395)
613 (38300, -36050), pad size (1000, 395)
615 It is necessary to connect cathode #291 to cathode #292 in order to
616 close the integrated divider to p+ bulk contact (GND).
618 _______________________________________________
619 cathode #291 (-40 V) UP half
620 (-38215, 35055), pad size (120, 160)
621 (38190, 34992), pad size (120, 145)
623 cathode W1 (-60 V) UP half
624 (-38000, 35110), pad size (140, 240)
625 (38000, 35110), pad size (140, 240)
627 cathode W2 (-80 V) UP half
628 ( 0, 35090), pad size (75600, 110)
630 cathode #292 (-40 V) UP half
631 (-38220, 35290), pad size (150, 170)
632 (38210, 35242), pad size (150, 215)
634 p+ bulk contact (GND) UP half
635 (-38300, 36050), pad size (1000, 395)
636 (38300, 36050), pad size (1000, 395)
638 It is necessary to connect cathode #291 to cathode #292 in order to
639 close the integrated divider to p+ bulk contact (GND).
642 There are 256 anodes to be bonded to the inputs of front-end electronics. In
643 addition there are 2 anodes (one at the left edge and one at the right edge
644 of the anode array) that have to be bonded to the ground. I call these 2
645 anodes #L and #R. The pitch of all anodes is 294 micrometers.
648 #L (-37779, -35085), pad size (184, 140)
649 #1 (-37485, -35085), pad size (184, 140)
650 .........................................
651 .........................................
652 #256.............(37485, -35085), pad size (184, 140)
653 #R (37779, -35085), pad size (184, 140)
654 _____________________________________________
656 #L (-37779, 35085), pad size (184, 140)
657 #1 (-37485, 35085), pad size (184, 140)
658 .........................................
659 .........................................
660 #256.............(37485, 35085), pad size (184, 140)
661 #R (37779, 35085), pad size (184, 140)
663 ////////////////////////////////////////////////////////////////////////
664 const Float_t kDxyz[] = {3.6250,0.0150,4.3794};//cm. (Geant 3.12 units)
665 // Size of sensitive region of detector
666 const Float_t kPeriod = 25.0E-09; // 40 MHz sampling frequence
667 const Float_t kVelocity = 5.46875E+03; // cm/s drift velocity
668 const Float_t kAnodeXL = -3.5085; // cm location in x of anodes left side
669 const Float_t kAnodeXR = 3.5085; // cm location in x of anodes right side
670 const Int_t kNAnodes = 256; // nuber of anodes connected
671 const Float_t kAnodePitch = 0.0294; // cm
672 const Float_t kAnodesZ = -3.7485; // cm Starting location of anodes in z
673 Float_t AnodeLowEdges[kNAnodes+1];
676 // cout << "AliITSgeomSDD256 default creator called: start" << end;
677 AnodeLowEdges[0] = kAnodesZ;
678 for(i=0;i<kNAnodes;i++) AnodeLowEdges[i+1] = kAnodePitch+AnodeLowEdges[i];
679 AliITSgeomSDD::AliITSgeomSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
680 kNAnodes+1,AnodeLowEdges,
681 kNAnodes+1,AnodeLowEdges);
682 // cout << "AliITSgeomSDD256 default creator called: end" << endl;
684 //________________________________________________________________________
685 ostream &operator<<(ostream &os,AliITSgeomSDD256 &p){
686 ////////////////////////////////////////////////////////////////////////
687 // Standard output streaming function.
688 ////////////////////////////////////////////////////////////////////////
693 //----------------------------------------------------------------------
694 istream &operator>>(istream &is,AliITSgeomSDD256 &r){
695 ////////////////////////////////////////////////////////////////////////
696 // Standard input streaming function.
697 ////////////////////////////////////////////////////////////////////////
702 //======================================================================
706 //#include <iostream.h>
709 //#include "AliITSgeomSDD300.h"
711 ClassImp(AliITSgeomSDD300)
713 AliITSgeomSDD300::AliITSgeomSDD300() : AliITSgeomSDD(){
714 ////////////////////////////////////////////////////////////////////////
715 // default constructor
716 ////////////////////////////////////////////////////////////////////////
717 const Float_t kDxyz[] = {3.500,0.014,3.763};//cm.
718 const Float_t kPeriod = 25.0E-09; // 40 MHz
719 const Float_t kVelocity = 5.46875E+3; // cm/s
720 const Int_t kNAnodes = 300; // number of anodes
721 const Float_t kAnodeXL = -3.500; // cm
722 const Float_t kAnodeXR = +3.500; // cm
723 const Float_t kAnodesZ = -3.75; // cm
724 Float_t AnodeLowEdges[kNAnodes+1];
725 const Float_t kanode = 0.0250;// cm anode separation.
728 // cout << "AliITSgeomSDD300 default creator called: start" << endl;
729 AnodeLowEdges[0] = kAnodesZ;
730 for(i=0;i<kNAnodes;i++) AnodeLowEdges[i+1] = kanode+AnodeLowEdges[i];
731 AliITSgeomSDD::AliITSgeomSDD(kDxyz,kPeriod,kVelocity,kAnodeXL,kAnodeXR,
732 kNAnodes+1,AnodeLowEdges,
733 kNAnodes+1,AnodeLowEdges);
734 // cout << "AliITSgeomSDD300 default creator called: end" << endl;
736 //________________________________________________________________________
737 ostream &operator<<(ostream &os,AliITSgeomSDD300 &p){
738 ////////////////////////////////////////////////////////////////////////
739 // Standard output streaming function.
740 ////////////////////////////////////////////////////////////////////////
745 //----------------------------------------------------------------------
746 istream &operator>>(istream &is,AliITSgeomSDD300 &r){
747 ////////////////////////////////////////////////////////////////////////
748 // Standard input streaming function.
749 ////////////////////////////////////////////////////////////////////////
754 //----------------------------------------------------------------------