1
2
3 from reflectometry.model1d.profileview.staj2model import Staj2Model,Staj2MModel
4
6
7 _wavelength=4.75
8 _wavelengthDiv=0.0021
9 _angularDiv=0.007
10 _intensity=1.0
11 _background=0.0
12
13 _nFit = 0
14 _nRough = 7
15
16 _names = None
17 _depth = None
18 _rough = None
19 _rho = None
20 _mu = None
21
22 _qmin=0
23 _qmax=1.0
24 _nQ=0
25
26 _profileType = None
27 _stajdatafile = None
28 _outfile = None
29
32
35 names = property(get_name, set_name)
36
37
40 depth = property(get_depth, set_depth)
41
44 rough = property(get_rough, set_rough)
45
48 rho = property(get_rho, set_rho)
49
52 mu = property(get_mu, set_mu)
53
54
57 PT = property(get_ProfileType, set_ProfileType)
58
61 fin = property(get_Stajdatafile, set_Stajdatafile)
62
65 fout = property(get_Outfile, set_Outfile)
66
69 Qmin = property(get_Qmin, set_Qmin)
70
71
74 Qmax = property(get_Qmax, set_Qmax)
75
76
79 nQ = property(get_nQ, set_nQ)
80
81
84 nF = property(get_nFit, set_nFit)
85
86
89 nRough = property(get_nRough, set_nRough)
90
91
94 L = property(getWavelength, setWavelength)
95
96
99 LD = property(getWavelengthDiv, setWavelengthDiv)
100
101
104 AD = property(getAngularDiv, setAngularDiv)
105
106
109 I = property(getIntensity, setIntensity)
110
111
114 B = property(getBackground, setBackground)
115
116
117
118
119 -class Staj(BaseStaj):
120 """
121 Non magnetic case
122 """
123 _nTLayer = 0
124 _nMLayer = 0
125 _nBLayer = 0
126 _nRepeat = 0
127
128 _rhom = None
129 _names = None
130
131
132 - def __init__(self,
133 filename,
134 scale = False
135 ):
138
139
141
142 _name = []
143 for x in xrange( len(pLists) ):
144 if x <= nT:
145 _name.append( 'T%d'%(x) )
146 elif x >nT and x <= nT + nM:
147 _name.append( 'M%d'%(x-nT) )
148 else:
149 _name.append( 'B%d'%(x-nT-nM) )
150
151 return _name
152
153
155
156 (self.wavelength, self.wavelengthDiv, self.angularDiv, self.intensity,
157 self.background) = s2m[1]
158
159 ( self._nTLayer, self._nMLayer, self._nBLayer, self._nRepeat,
160 self._nFit, self._nRough )=s2m[2]
161
162 ( self._depth, self._rough, self._rho, self._mu, self._rhom) = s2m[0]
163
164 self._names = self.parseStajLayerName( self._depth, self._nTLayer,
165 self._nMLayer, self._nBLayer)
166
167 ( self._qmin, self._qmax, self._npnts) = s2m[3]
168 ( self._proftyp, self._stajdatafile, self._outfile) = s2m[4]
169
170
173 rhom = property(get_rhom, set_rhom)
174
175
178 nT = property(get_nTLayer, set_nTLayer)
179
180
183 nM = property(get_nMLayer, set_nMLayer)
184
185
188 nB = property(get_nBLayer, set_nBLayer)
189
190
193 nRepeat = property(get_nRepeat, set_nRepeat)
194
195
198
202
203
204
205
206
208 """
209 Magnetic case
210 """
211 _Aguide = -90
212 _nLayer = 0
213
214 _depthm = None
215 _roughm = None
216 _phi = None
217 _theta = None
218
219 - def __init__(self,
220 filename,
221 scale = False
222 ):
225
226
228
229 (self._wavelength, self._wavelengthDiv, self._angularDiv,
230 self._intensity, self._background, self._Aguide ) = s2m[0]
231
232 ( self._rho, self._phi, self._depth, self._depthm, self._rough,
233 self._roughm, self._mu, self._theta )= s2m[1]
234
235
236 (self._nLayer, self._nRough , self._nFit ) = s2m[3]
237
238 (self._profileType, _suffix, self._outfile) = s2m[4]
239
240 self._stajdatafile = self._outfile+_suffix[0]
241
242 self._names = []
243 for x in xrange( len(self._depth) ):
244 if x ==0: self._names.append( 'MV' )
245 else: self._names.append( 'M%d'%(x) )
246
247
248
251 Aguide = property(get_Aguide, set_Aguide)
252
255 phi = property(get_phi, set_phi)
256
259 theta = property(get_theta, set_theta)
260
263 depthm = property(get_depthm, set_depthm)
264
267 roughm = property(get_roughm, set_roughm)
268
271 nL = property(get_nLayer, set_nLayer)
272
273
277
281
282
283
284
286 Filename = "xrayl523c6A15.staj"
287 s2m = Staj( Filename )
288 print s2m.getWavelength()
289 print s2m.I
290
291 if __name__ == '__main__':
292 demo1()
293