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