]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEODB/AliGMaterial.cxx
This commit was generated by cvs2svn to compensate for changes in r209,
[u/mrichter/AliRoot.git] / GEODB / AliGMaterial.cxx
CommitLineData
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
16ClassImp(AliGMaterial)
17
18
19//-------------------------------------------------------------------------
20
21AliGMaterial::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
57AliGMaterial::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
67AliGMaterial::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
135AliGMaterial::~AliGMaterial()
136{ /* Destructor */
137
138 if( fUbuf ) delete [] fUbuf;
139 if( fBuf ) delete [] fBuf;
140}
141
142//-------------------------------------------------------------------------
143
144AliGMaterial* 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
160void 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