]>
Commit | Line | Data |
---|---|---|
ab2f6604 | 1 | // -*- C++ -*- |
2 | // | |
3 | // 1998/10/19 | |
4 | // --------------------------------------------------------------------------- | |
5 | // | |
6 | // AliGMaterial Class | |
7 | // | |
8 | // This file is part of the ALICE Geometry Database . | |
9 | // | |
10 | // Author: Joana E. Santo | |
11 | // | |
12 | // --------------------------------------------------------------------------- | |
13 | ||
14 | #include "AliGMaterial.h" | |
15 | ||
16 | ClassImp(AliGMaterial) | |
17 | ||
18 | ||
19 | //------------------------------------------------------------------------- | |
20 | ||
21 | AliGMaterial::AliGMaterial( Int_t imat, Text_t* name, Text_t* title, Int_t isvol, Int_t ifield, Float_t fieldm, Float_t tmaxfd, Float_t stemax, Float_t deemax, Float_t epsil, Float_t stmin, Float_t* ubuf, Int_t nbuf, Float_t a, Float_t z, Float_t dens, Float_t radl, Float_t absl, Float_t* buf, Int_t nwbuf ) : TNamed(name, title) | |
22 | { | |
23 | /* VIC: Very Important Constructor */ | |
24 | ||
25 | fImat = imat; | |
26 | fIsvol = isvol; | |
27 | fIfield = ifield; | |
28 | fFieldm = fieldm; | |
29 | fTmaxfd = tmaxfd; | |
30 | fStemax = stemax; | |
31 | fDeemax = deemax; | |
32 | fEpsil = epsil; | |
33 | fStmin = stmin; | |
34 | ||
35 | fUbuf = new Float_t[nbuf]; | |
36 | ||
37 | for( int i=0; i<nbuf; i++ ) | |
38 | fUbuf[i] = ubuf[i]; | |
39 | ||
40 | fNbuf = nbuf; | |
41 | fA = a; | |
42 | fZ = z; | |
43 | fDens = dens; | |
44 | fRadl = radl; | |
45 | fAbsl = absl; | |
46 | ||
47 | fBuf = new Float_t[nwbuf]; | |
48 | ||
49 | for( int j=0; j<nwbuf; j++ ) | |
50 | fBuf[j] = buf[j]; | |
51 | ||
52 | fNwbuf = nwbuf; | |
53 | } | |
54 | ||
55 | //------------------------------------------------------------------------- | |
56 | ||
57 | AliGMaterial::AliGMaterial(Text_t* name, Text_t* title, Float_t A, Float_t Z, Float_t rho) : TNamed(name, title) | |
58 | { | |
59 | /* Constructor */ | |
60 | fA = A; | |
61 | fRho = rho; | |
62 | fZ = Z; | |
63 | } | |
64 | ||
65 | //------------------------------------------------------------------------- | |
66 | ||
67 | AliGMaterial::AliGMaterial( AliGMaterial* Mat ) | |
68 | { | |
69 | /* Copy Constructor */ | |
70 | if( Mat ) { | |
71 | fImat = Mat->fImat; | |
72 | fIsvol = Mat->fIsvol; | |
73 | fIfield = Mat->fIfield; | |
74 | fFieldm = Mat->fFieldm; | |
75 | fTmaxfd = Mat->fTmaxfd; | |
76 | fStemax = Mat->fStemax; | |
77 | fDeemax = Mat->fDeemax; | |
78 | fEpsil = Mat->fEpsil; | |
79 | fStmin = Mat->fStmin; | |
80 | ||
81 | fUbuf = new Float_t[Mat->fNbuf]; | |
82 | ||
83 | for( int i=0; i<Mat->fNbuf; i++ ) | |
84 | fUbuf[i] = Mat->fUbuf[i]; | |
85 | ||
86 | fNbuf = Mat->fNbuf; | |
87 | fA = Mat->fA; | |
88 | fZ = Mat->fZ; | |
89 | fDens = Mat->fDens; | |
90 | fRadl = Mat->fRadl; | |
91 | fAbsl = Mat->fAbsl; | |
92 | ||
93 | fBuf = new Float_t[Mat->fNwbuf]; | |
94 | ||
95 | for( int j=0; j<Mat->fNwbuf; j++ ) | |
96 | fBuf[j] = Mat->fBuf[j]; | |
97 | ||
98 | fNwbuf = Mat->fNwbuf; | |
99 | ||
100 | fName = Mat->GetName(); | |
101 | fTitle = Mat->GetTitle(); | |
102 | } | |
103 | else { | |
104 | /* Default Constructor */ | |
105 | fImat = 0; | |
106 | fIsvol = 0; | |
107 | fIfield = 0; | |
108 | fFieldm = 0.; | |
109 | fTmaxfd = 0.; | |
110 | fStemax = 0.; | |
111 | fDeemax = 0.; | |
112 | fEpsil = 0.; | |
113 | fStmin = 0.; | |
114 | ||
115 | fUbuf = NULL; | |
116 | ||
117 | fNbuf = 0; | |
118 | fA = 0.; | |
119 | fZ = 0.; | |
120 | fDens = 0.; | |
121 | fRadl = 0.; | |
122 | fAbsl = 0.; | |
123 | ||
124 | fBuf = NULL; | |
125 | ||
126 | fNwbuf = 0; | |
127 | ||
128 | fName = ""; | |
129 | fTitle = ""; | |
130 | } | |
131 | } | |
132 | ||
133 | //------------------------------------------------------------------------- | |
134 | ||
135 | AliGMaterial::~AliGMaterial() | |
136 | { /* Destructor */ | |
137 | ||
138 | if( fUbuf ) delete [] fUbuf; | |
139 | if( fBuf ) delete [] fBuf; | |
140 | } | |
141 | ||
142 | //------------------------------------------------------------------------- | |
143 | ||
144 | AliGMaterial* AliGMaterial::operator=( const AliGMaterial* Mat ) | |
145 | { | |
146 | /* Operator = */ | |
147 | if( this == Mat ) return this; // special case. | |
148 | ||
149 | fA = Mat->fA; | |
150 | fName = Mat->GetName(); | |
151 | fRho = Mat->fRho; | |
152 | fTitle = Mat->GetTitle(); | |
153 | fZ = Mat->fZ; | |
154 | ||
155 | return this; | |
156 | } | |
157 | ||
158 | //------------------------------------------------------------------------- | |
159 | ||
160 | void AliGMaterial::Streamer(TBuffer &R__b) | |
161 | { | |
162 | // Stream an object of class AliGMaterial. | |
163 | ||
164 | if (R__b.IsReading()) { | |
165 | Version_t R__v = R__b.ReadVersion(); if (R__v) { } | |
166 | TNamed::Streamer(R__b); | |
167 | R__b >> fImat; | |
168 | R__b >> fIsvol; | |
169 | R__b >> fIfield; | |
170 | R__b >> fFieldm; | |
171 | R__b >> fTmaxfd; | |
172 | R__b >> fStemax; | |
173 | R__b >> fDeemax; | |
174 | R__b >> fEpsil; | |
175 | R__b >> fStmin; | |
176 | R__b.ReadArray(fUbuf); // | |
177 | R__b >> fNbuf; | |
178 | R__b >> fA; | |
179 | R__b >> fZ; | |
180 | R__b >> fDens; | |
181 | R__b >> fRadl; | |
182 | R__b >> fAbsl; | |
183 | R__b.ReadArray(fBuf); // | |
184 | R__b >> fNwbuf; | |
185 | R__b >> fRho; | |
186 | } else { | |
187 | R__b.WriteVersion(AliGMaterial::IsA()); | |
188 | TNamed::Streamer(R__b); | |
189 | R__b << fImat; | |
190 | R__b << fIsvol; | |
191 | R__b << fIfield; | |
192 | R__b << fFieldm; | |
193 | R__b << fTmaxfd; | |
194 | R__b << fStemax; | |
195 | R__b << fDeemax; | |
196 | R__b << fEpsil; | |
197 | R__b << fStmin; | |
198 | R__b.WriteArray(fUbuf, fNbuf); // | |
199 | R__b << fNbuf; | |
200 | R__b << fA; | |
201 | R__b << fZ; | |
202 | R__b << fDens; | |
203 | R__b << fRadl; | |
204 | R__b << fAbsl; | |
205 | R__b.WriteArray(fBuf, fNbuf); // | |
206 | R__b << fNwbuf; | |
207 | R__b << fRho; | |
208 | } | |
209 | } | |
210 | ||
211 | //------------------------------------------------------------------------- | |
212 |