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