Changes needed by ICC/IFC compiler (Intel)
[u/mrichter/AliRoot.git] / ITS / AliITSgeomSSD.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$
94831058 18Revision 1.14 2001/11/19 16:17:03 nilsen
19Applyed fixes to bugs found by Rene Brun. With many thanks. Some additonal
20bugs found by Rene require more work to fix. Will be fixed soon.
21
cd77595e 22Revision 1.13 2001/10/12 22:07:20 nilsen
23A patch for C++ io manipulation functions so that they will work both
24with GNU gcc 2.96 and GNU gcc 3.01 compilers. Needs to be tested with
25other platforms.
26
431a7819 27Revision 1.12 2001/08/24 21:06:37 nilsen
28Added more documentation, fixed up some coding violations, and some
29forward declorations.
30
85f1e34a 31Revision 1.11 2001/05/16 08:17:49 hristov
32Bug 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)
33
e99dbc71 34Revision 1.10 2001/02/09 00:00:57 nilsen
35Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
36bugs in iostream based streamers used to read and write .det files. Fixed
37some detector sizes. Fixed bugs in some default-special constructors.
38
31b8cd63 39Revision 1.9 2001/02/03 00:00:30 nilsen
40New version of AliITSgeom and related files. Now uses automatic streamers,
41set up for new formatted .det file which includes detector information.
42Additional smaller modifications are still to come.
43
8253cd9a 44Revision 1.8 2000/10/02 16:32:43 barbera
45Forward declaration added
46
92c19c36 47Revision 1.2.4.8 2000/10/02 15:53:49 barbera
48Forward declaration added
49
50Revision 1.7 2000/07/10 16:07:18 fca
51Release version of ITS code
52
a3d834a0 53Revision 1.2.4.2 2000/03/04 23:55:59 nilsen
54Fixed up the comments/documentation
55
56Revision 1.2.4.1 2000/01/12 19:03:32 nilsen
57This is the version of the files after the merging done in December 1999.
58See the ReadMe110100.txt file for details
59
60Revision 1.2 1999/09/29 09:24:20 fca
61Introduction of the Copyright and cvs Log
62
4c039060 63*/
85f1e34a 64
65////////////////////////////////////////////////////////////////////////
66// This class is for the Silicon Strip Detector, SSD, specific geometry.
67// It is being replaced by AliITSsegmentationSSD class. This file also
68// constains classes derived from AliITSgeomSSD which do nothing but
69// initilize this one with predefined values.
70////////////////////////////////////////////////////////////////////////
71
8253cd9a 72#include <iostream.h>
73#include <iomanip.h>
74#include <stdlib.h>
75#include <TShape.h>
76#include <TBRIK.h>
77
58005f18 78#include "AliITSgeomSSD.h"
79
80ClassImp(AliITSgeomSSD)
31b8cd63 81
82
83AliITSgeomSSD::AliITSgeomSSD(){
84// Default constructor
85 fShapeSSD = 0;
86 fNp = 0;
87 fNn = 0;
88 fLowEdgeP = 0;
89 fLowEdgeN = 0;
90 fAngleP = 0.0;
91 fAngleN = 0.0;
92}
93//----------------------------------------------------------------------
8253cd9a 94AliITSgeomSSD::AliITSgeomSSD(const Float_t *box,Float_t ap,Float_t an,
95 Int_t np,Float_t *p,Int_t nn,Float_t *n){
a3d834a0 96////////////////////////////////////////////////////////////////////////
8253cd9a 97// Standard Constructor. *box={dx,dy,dz}, ap=anode angle, an=cathode angle,
98// nn= number of cathodes+1,*n= array of cathode low edges+highest edge,
99// np= number of anodes+1, *p= array of anode low edges+lighest edge.
100///////////////////////////////////////////////////////////////////////
31b8cd63 101 fShapeSSD = 0;
102 fNp = 0;
103 fNn = 0;
104 fLowEdgeP = 0;
105 fLowEdgeN = 0;
106 fAngleP = 0.0;
107 fAngleN = 0.0;
108 ResetSSD(box,ap,an,np,p,nn,n);
109}
110//----------------------------------------------------------------------
111void AliITSgeomSSD::ResetSSD(const Float_t *box,Float_t ap,Float_t an,
112 Int_t np,Float_t *p,Int_t nn,Float_t *n){
113////////////////////////////////////////////////////////////////////////
114// Standard Filler. *box={dx,dy,dz}, ap=anode angle, an=cathode angle,
115// nn= number of cathodes+1,*n= array of cathode low edges+highest edge,
116// np= number of anodes+1, *p= array of anode low edges+lighest edge.
117///////////////////////////////////////////////////////////////////////
8253cd9a 118 Int_t i;
a3d834a0 119
120 fShapeSSD = new TBRIK("ActiveSSD","Active volume of SSD","SSD SI DET",
8253cd9a 121 box[0],box[1],box[2]);
31b8cd63 122// if(fLowEdgeP!=0) delete fLowEdgeP;
123// if(fLowEdgeN!=0) delete fLowEdgeN;
8253cd9a 124 fNp = np;
125 fNn = nn;
126 fAngleP = ap;
127 fAngleN = an;
128 fLowEdgeP = new Float_t[fNp];
129 fLowEdgeN = new Float_t[fNn];
130 for(i=0;i<fNp;i++) fLowEdgeP[i] = p[i];
131 for(i=0;i<fNn;i++) fLowEdgeN[i] = n[i];
132}
133//______________________________________________________________________
134AliITSgeomSSD::~AliITSgeomSSD(){
135 // Destructor.
136
cd77595e 137 if(fLowEdgeP) delete [] fLowEdgeP; fLowEdgeP = 0;
138 if(fLowEdgeN) delete [] fLowEdgeN; fLowEdgeN = 0;
139 if(fShapeSSD) delete fShapeSSD; fShapeSSD = 0;
8253cd9a 140 fNp = 0;
141 fNn = 0;
142 fAngleP = 0.0;
143 fAngleN = 0.0;
58005f18 144}
4024ebf6 145AliITSgeomSSD::AliITSgeomSSD(const AliITSgeomSSD &source){
146////////////////////////////////////////////////////////////////////////
147// copy constructor
148////////////////////////////////////////////////////////////////////////
8253cd9a 149 Int_t i;
4024ebf6 150
8253cd9a 151 if(this == &source) return;
93a31784 152 this->fShapeSSD = new TBRIK(*(source.fShapeSSD));
8253cd9a 153 this->fNp = source.fNp;
154 this->fNn = source.fNn;
155 delete fLowEdgeP;
156 delete fLowEdgeN;
157 this->fAngleP = source.fAngleP;
158 this->fAngleN = source.fAngleN;
159 fLowEdgeP = new Float_t[fNp];
160 fLowEdgeN = new Float_t[fNn];
161 for(i=0;i<fNp;i++) this->fLowEdgeP[i] = source.fLowEdgeP[i];
162 for(i=0;i<fNn;i++) this->fLowEdgeN[i] = source.fLowEdgeN[i];
4024ebf6 163 return;
164}
165
166AliITSgeomSSD& AliITSgeomSSD::operator=(const AliITSgeomSSD &source) {
167////////////////////////////////////////////////////////////////////////
168// assignment operator
169////////////////////////////////////////////////////////////////////////
8253cd9a 170 Int_t i;
4024ebf6 171
8253cd9a 172 if(this == &source) return *this;
93a31784 173 this->fShapeSSD = new TBRIK(*(source.fShapeSSD));
8253cd9a 174 this->fNp = source.fNp;
175 this->fNn = source.fNn;
176 delete fLowEdgeP;
177 delete fLowEdgeN;
178 this->fAngleP = source.fAngleP;
179 this->fAngleN = source.fAngleN;
180 fLowEdgeP = new Float_t[fNp];
181 fLowEdgeN = new Float_t[fNn];
182 for(i=0;i<fNp;i++) this->fLowEdgeP[i] = source.fLowEdgeP[i];
183 for(i=0;i<fNn;i++) this->fLowEdgeN[i] = source.fLowEdgeN[i];
4024ebf6 184 return *this;
185}
8253cd9a 186//______________________________________________________________________
187void AliITSgeomSSD::Local2Det(Float_t x,Float_t z,Int_t &a,Int_t &c){
85f1e34a 188 // Given a GEANT detector local coordinate, cm, this function returns
189 // the detector specific P and N side strip numbers.
190 // Inputs are:
191 // Float_t x Geant detector local x coordinate in cm
192 // Float_t z Geant detector local z coordinate in cm
193 // outputs are:
194 // Int_t &a Detector anode strip number (P side)
195 // Int_t &c Detector cathode strip number (N side)
8253cd9a 196 Float_t d,b;
197 Int_t i;
198
199 // project on to bonding edges.
200 d = x*TMath::Cos(fAngleP)+z*TMath::Sin(fAngleP);
201 b = x*TMath::Cos(fAngleN)+z*TMath::Sin(fAngleN);
202 if(d<fLowEdgeP[0]) i=-1;
203 else for(i=0;i<fNp;i++){
204 if(fLowEdgeP[i]<d) break;
205 } // end for i
206 a = i;
207 if(b<fLowEdgeN[0]) i=-1;
208 else for(i=0;i<fNn;i++){
209 if(fLowEdgeN[i]<b) break;
210 } // end for i
211 c = i;
212 return;
213}
214//______________________________________________________________________
215void AliITSgeomSSD::Det2Local(Int_t a,Int_t c,Float_t &x,Float_t &z){
216// Float_t d,b;
217// Int_t i;
4024ebf6 218
8253cd9a 219 return;
220}
221//______________________________________________________________________
31b8cd63 222void AliITSgeomSSD::Print(ostream *os) const {
8253cd9a 223////////////////////////////////////////////////////////////////////////
224// Standard output format for this class.
225////////////////////////////////////////////////////////////////////////
8253cd9a 226 Int_t i;
431a7819 227#if defined __GNUC__
228#if __GNUC__ > 2
229 ios::fmtflags fmt;
230#else
231 Int_t fmt;
232#endif
233#else
94831058 234#if defined __ICC
235 ios::fmtflags fmt;
236#else
431a7819 237 Int_t fmt;
238#endif
94831058 239#endif
8253cd9a 240
241 fmt = os->setf(ios::scientific); // set scientific floating point output
242 *os << "TBRIK" << " ";
243 *os << setprecision(16) << GetDx() << " ";
244 *os << setprecision(16) << GetDy() << " ";
245 *os << setprecision(16) << GetDz() << " ";
246 *os << fNp << " " << fNn << " ";
247 *os << setprecision(16) << fAngleP << " ";
248 *os << setprecision(16) << fAngleN << " ";
249 for(i=0;i<fNp;i++) *os << setprecision(16) << fLowEdgeP[i] << " ";
250 for(i=0;i<fNn;i++) *os << setprecision(16) << fLowEdgeN[i] << " ";
251 *os << endl;
252 os->flags(fmt); // reset back to old formating.
253 return;
254}
255//______________________________________________________________________
256void AliITSgeomSSD::Read(istream *is){
257////////////////////////////////////////////////////////////////////////
258// Standard input format for this class.
259////////////////////////////////////////////////////////////////////////
260 Float_t dx,dy,dz;
261 Int_t i;
262 char shp[20];
4024ebf6 263
8253cd9a 264 *is >> shp;
265 *is >> dx >> dy >> dz;
266 if(fShapeSSD!=0) delete fShapeSSD;
267 fShapeSSD = new TBRIK("ActiveSSD","Active volume of SSD","SSD SI DET",
268 dx,dy,dz);
269 *is >> fNp >> fNn;
270 *is >> fAngleP >> fAngleN;
271 if(fLowEdgeP !=0) delete fLowEdgeP;
272 if(fLowEdgeN !=0) delete fLowEdgeN;
273 fLowEdgeP = new Float_t[fNp];
274 fLowEdgeN = new Float_t[fNn];
31b8cd63 275 for(i=0;i<fNp;i++) *is >> fLowEdgeP[i];
8253cd9a 276 for(i=0;i<fNn;i++) *is >> fLowEdgeN[i];
277 return;
278}
279//----------------------------------------------------------------------
280ostream &operator<<(ostream &os,AliITSgeomSSD &p){
281////////////////////////////////////////////////////////////////////////
282// Standard output streaming function.
283////////////////////////////////////////////////////////////////////////
4024ebf6 284
8253cd9a 285 p.Print(&os);
286 return os;
287}
288//----------------------------------------------------------------------
289istream &operator>>(istream &is,AliITSgeomSSD &r){
290////////////////////////////////////////////////////////////////////////
291// Standard input streaming function.
292////////////////////////////////////////////////////////////////////////
4024ebf6 293
8253cd9a 294 r.Read(&is);
295 return is;
296}
297//======================================================================
298/*
299$Log$
94831058 300Revision 1.14 2001/11/19 16:17:03 nilsen
301Applyed fixes to bugs found by Rene Brun. With many thanks. Some additonal
302bugs found by Rene require more work to fix. Will be fixed soon.
303
cd77595e 304Revision 1.13 2001/10/12 22:07:20 nilsen
305A patch for C++ io manipulation functions so that they will work both
306with GNU gcc 2.96 and GNU gcc 3.01 compilers. Needs to be tested with
307other platforms.
308
431a7819 309Revision 1.12 2001/08/24 21:06:37 nilsen
310Added more documentation, fixed up some coding violations, and some
311forward declorations.
312
85f1e34a 313Revision 1.11 2001/05/16 08:17:49 hristov
314Bug 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)
315
e99dbc71 316Revision 1.10 2001/02/09 00:00:57 nilsen
317Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
318bugs in iostream based streamers used to read and write .det files. Fixed
319some detector sizes. Fixed bugs in some default-special constructors.
320
31b8cd63 321Revision 1.9 2001/02/03 00:00:30 nilsen
322New version of AliITSgeom and related files. Now uses automatic streamers,
323set up for new formatted .det file which includes detector information.
324Additional smaller modifications are still to come.
325
8253cd9a 326*/
4024ebf6 327
8253cd9a 328//#include "AliITSgeomSSD175.h"
4024ebf6 329
8253cd9a 330ClassImp(AliITSgeomSSD175)
4024ebf6 331
8253cd9a 332AliITSgeomSSD175::AliITSgeomSSD175() : AliITSgeomSSD(){
333////////////////////////////////////////////////////////////////////////
334// default constructor
335////////////////////////////////////////////////////////////////////////
336 const Float_t kDxyz[] ={3.6500,0.0150,2.000};//cm. (Geant 3.12 units)
337 // Size of sensitive detector area x,y(thickness),z
338 const Float_t kangle = 0.0175; // angle in rad. of anode and cathodes
339 const Float_t kpitch = 0.0095;// cm anode separation.
340 const Int_t kNstrips = 768; // number of anode or cathode strips.
341 Float_t *leA,*leC; // array of low edges anode and cathorde.
342 Int_t i;
343
344 leA = new Float_t[kNstrips+1];
345 leC = new Float_t[kNstrips+1];
346 leA[0] = -kDxyz[0];
347 leA[1] = -kpitch*(0.5*kNstrips-1);
348 leC[0] = kDxyz[0];
349 leC[1] = kpitch*(0.5*kNstrips-1);
350 for(i=1;i<kNstrips;i++){
351 leA[i+1] = leA[i] + kpitch;
352 leC[i+1] = leC[i] - kpitch;
353 } // end for i
354 leA[kNstrips] = kDxyz[0];
355 leC[kNstrips] = -kDxyz[0];
356// cout << "AliITSgeomSSD175 default creator called: start" << endl;
31b8cd63 357 AliITSgeomSSD::ResetSSD(kDxyz,kangle,-kangle,
8253cd9a 358 kNstrips+1,leA,kNstrips+1,leC);
359 delete leA;
360 delete leC;
361// cout << "AliITSgeomSSD175 default creator called: end" << endl;
362}
363//________________________________________________________________________
364ostream &operator<<(ostream &os,AliITSgeomSSD175 &p){
365////////////////////////////////////////////////////////////////////////
366// Standard output streaming function.
367////////////////////////////////////////////////////////////////////////
4024ebf6 368
8253cd9a 369 p.Print(&os);
370 return os;
371}
372//----------------------------------------------------------------------
373istream &operator>>(istream &is,AliITSgeomSSD175 &r){
374////////////////////////////////////////////////////////////////////////
375// Standard input streaming function.
376////////////////////////////////////////////////////////////////////////
4024ebf6 377
8253cd9a 378 r.Read(&is);
379 return is;
380}
381//======================================================================
382/*
383$Log$
94831058 384Revision 1.14 2001/11/19 16:17:03 nilsen
385Applyed fixes to bugs found by Rene Brun. With many thanks. Some additonal
386bugs found by Rene require more work to fix. Will be fixed soon.
387
cd77595e 388Revision 1.13 2001/10/12 22:07:20 nilsen
389A patch for C++ io manipulation functions so that they will work both
390with GNU gcc 2.96 and GNU gcc 3.01 compilers. Needs to be tested with
391other platforms.
392
431a7819 393Revision 1.12 2001/08/24 21:06:37 nilsen
394Added more documentation, fixed up some coding violations, and some
395forward declorations.
396
85f1e34a 397Revision 1.11 2001/05/16 08:17:49 hristov
398Bug 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)
399
e99dbc71 400Revision 1.10 2001/02/09 00:00:57 nilsen
401Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
402bugs in iostream based streamers used to read and write .det files. Fixed
403some detector sizes. Fixed bugs in some default-special constructors.
404
31b8cd63 405Revision 1.9 2001/02/03 00:00:30 nilsen
406New version of AliITSgeom and related files. Now uses automatic streamers,
407set up for new formatted .det file which includes detector information.
408Additional smaller modifications are still to come.
409
8253cd9a 410*/
4024ebf6 411
8253cd9a 412//#include "AliITSgeomSSD275and75.h"
4024ebf6 413
8253cd9a 414ClassImp(AliITSgeomSSD275and75)
4024ebf6 415
8253cd9a 416AliITSgeomSSD275and75::AliITSgeomSSD275and75() : AliITSgeomSSD(){
417////////////////////////////////////////////////////////////////////////
418// default constructor
419////////////////////////////////////////////////////////////////////////
e99dbc71 420}
421//----------------------------------------------------------------------
422AliITSgeomSSD275and75::AliITSgeomSSD275and75(Int_t npar,Float_t *par) :
423 AliITSgeomSSD(){
85f1e34a 424 // Default constructor for AliITSgeomSSD with strip angles of
425 // 275 miliradians and 75 miliradians. This constructor initlizes
426 // AliITSgeomSSD with the correct values. This is the miror image
427 // of the AliITSgeomSSD75and275 class.
8253cd9a 428 const Float_t kDxyz[] ={3.6500,0.0150,2.000};//cm. (Geant 3.12 units)
429 // Size of sensitive detector area x,y(thickness),z
430 const Float_t kangleA = 0.0275; // angle in rad. of anode and cathodes
431 const Float_t kangleC = 0.0075; // angle in rad. of anode and cathodes
432 const Float_t kpitch = 0.0095;// cm anode separation.
433 const Int_t kNstrips = 768; // number of anode or cathode strips.
434 Float_t *leA,*leC; // array of low edges anode and cathorde.
435 Int_t i;
436
437 leA = new Float_t[kNstrips+1];
438 leC = new Float_t[kNstrips+1];
439 leA[0] = -kDxyz[0];
440 leA[1] = -kpitch*(0.5*kNstrips-1);
441 leC[0] = kDxyz[0];
442 leC[1] = kpitch*(0.5*kNstrips-1);
443 for(i=1;i<kNstrips;i++){
444 leA[i+1] = leA[i] + kpitch;
445 leC[i+1] = leC[i] - kpitch;
446 } // end for i
447 leA[kNstrips] = kDxyz[0];
448 leC[kNstrips] = -kDxyz[0];
449// cout << "AliITSgeomSSD275and75 default creator called: start" << endl;
e99dbc71 450 AliITSgeomSSD::ResetSSD(par,kangleA,kangleC,
8253cd9a 451 kNstrips+1,leA,kNstrips+1,leC);
452 delete leA;
453 delete leC;
454// cout << "AliITSgeomSSD275and75 default creator called: end" << endl;
455}
456//________________________________________________________________________
457ostream &operator<<(ostream &os,AliITSgeomSSD275and75 &p){
458////////////////////////////////////////////////////////////////////////
459// Standard output streaming function.
460////////////////////////////////////////////////////////////////////////
4024ebf6 461
8253cd9a 462 p.Print(&os);
463 return os;
464}
465//----------------------------------------------------------------------
466istream &operator>>(istream &is,AliITSgeomSSD275and75 &r){
467////////////////////////////////////////////////////////////////////////
468// Standard input streaming function.
469////////////////////////////////////////////////////////////////////////
4024ebf6 470
8253cd9a 471 r.Read(&is);
472 return is;
473}
474//======================================================================
475/*
476$Log$
94831058 477Revision 1.14 2001/11/19 16:17:03 nilsen
478Applyed fixes to bugs found by Rene Brun. With many thanks. Some additonal
479bugs found by Rene require more work to fix. Will be fixed soon.
480
cd77595e 481Revision 1.13 2001/10/12 22:07:20 nilsen
482A patch for C++ io manipulation functions so that they will work both
483with GNU gcc 2.96 and GNU gcc 3.01 compilers. Needs to be tested with
484other platforms.
485
431a7819 486Revision 1.12 2001/08/24 21:06:37 nilsen
487Added more documentation, fixed up some coding violations, and some
488forward declorations.
489
85f1e34a 490Revision 1.11 2001/05/16 08:17:49 hristov
491Bug 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)
492
e99dbc71 493Revision 1.10 2001/02/09 00:00:57 nilsen
494Fixed compatibility problem with HP unix {ios::fmtflags -> Int_t}. Fixed
495bugs in iostream based streamers used to read and write .det files. Fixed
496some detector sizes. Fixed bugs in some default-special constructors.
497
31b8cd63 498Revision 1.9 2001/02/03 00:00:30 nilsen
499New version of AliITSgeom and related files. Now uses automatic streamers,
500set up for new formatted .det file which includes detector information.
501Additional smaller modifications are still to come.
502
8253cd9a 503*/
504//#include "AliITSgeomSSD75and275.h"
4024ebf6 505
8253cd9a 506ClassImp(AliITSgeomSSD75and275)
4024ebf6 507
8253cd9a 508AliITSgeomSSD75and275::AliITSgeomSSD75and275() : AliITSgeomSSD(){
509////////////////////////////////////////////////////////////////////////
510// default constructor
511////////////////////////////////////////////////////////////////////////
e99dbc71 512}
513AliITSgeomSSD75and275::AliITSgeomSSD75and275(Int_t npar,Float_t *par) :
514 AliITSgeomSSD(){
85f1e34a 515 // Default constructor for AliITSgeomSSD with strip angles of
516 // 75 miliradians and 275 miliradians. This constructor initlizes
517 // AliITSgeomSSD with the correct values. This is the miror image
518 // of the AliITSgeomSSD275and75 class.
8253cd9a 519 const Float_t kDxyz[] ={3.6500,0.0150,2.000};//cm. (Geant 3.12 units)
520 // Size of sensitive detector area x,y(thickness),z
521 const Float_t kangleA = 0.0075; // angle in rad. of anode and cathodes
522 const Float_t kangleC = 0.0275; // angle in rad. of anode and cathodes
523 const Float_t kpitch = 0.0095;// cm anode separation.
524 const Int_t kNstrips = 768; // number of anode or cathode strips.
525 Float_t *leA,*leC; // array of low edges anode and cathorde.
526 Int_t i;
527
528 leA = new Float_t[kNstrips+1];
529 leC = new Float_t[kNstrips+1];
530 leA[0] = -kDxyz[0];
531 leA[1] = -kpitch*(0.5*kNstrips-1);
532 leC[0] = kDxyz[0];
533 leC[1] = kpitch*(0.5*kNstrips-1);
534 for(i=1;i<kNstrips;i++){
535 leA[i+1] = leA[i] + kpitch;
536 leC[i+1] = leC[i] - kpitch;
537 } // end for i
538 leA[kNstrips] = kDxyz[0];
539 leC[kNstrips] = -kDxyz[0];
540// cout << "AliITSgeomSSD275and75 default creator called: start" << endl;
e99dbc71 541 AliITSgeomSSD::ResetSSD(par,kangleA,kangleC,
8253cd9a 542 kNstrips+1,leA,kNstrips+1,leC);
543 delete leA;
544 delete leC;
545// cout << "AliITSgeomSSD275and75 default creator called: end" << endl;
546}
547//________________________________________________________________________
548ostream &operator<<(ostream &os,AliITSgeomSSD75and275 &p){
549////////////////////////////////////////////////////////////////////////
550// Standard output streaming function.
551////////////////////////////////////////////////////////////////////////
4024ebf6 552
8253cd9a 553 p.Print(&os);
554 return os;
555}
556//----------------------------------------------------------------------
557istream &operator>>(istream &is,AliITSgeomSSD75and275 &r){
558////////////////////////////////////////////////////////////////////////
559// Standard input streaming function.
560////////////////////////////////////////////////////////////////////////
4024ebf6 561
8253cd9a 562 r.Read(&is);
563 return is;
564}
565//======================================================================