41 INTEGER(mpi),
PARAMETER ::
nplan=100
59 INTEGER(mpi),
DIMENSION(nplan) ::
ihits
94 INTEGER(mpi) :: icount
98 INTEGER(mpi) :: labelt
101 INTEGER(mpi) :: ncount
102 INTEGER(mpi) :: nrecds
103 INTEGER(mpi) :: nthits
111 REAL(mps) :: derlc(2)
112 REAL(mps) :: dergl(2)
113 INTEGER(mpi) :: label(2)
119 INQUIRE(file=
'mp2str.txt',iostat=ios,exist=ex1)
120 INQUIRE(file=
'mp2con.txt',iostat=ios,exist=ex2)
122 INQUIRE(file=
'mp2tst.bin',iostat=ios,exist=ex3)
125 WRITE(*,*)
'Generating test data for mp II...'
128 IF(ex3)
CALL system(
'rm mp2tst.bin')
130 IF(.NOT.ex1)
OPEN(unit=7,access=
'SEQUENTIAL',form=
'FORMATTED', &
132 IF(.NOT.ex2)
OPEN(unit=9,access=
'SEQUENTIAL',form=
'FORMATTED', &
134 OPEN(unit=51,access=
'SEQUENTIAL',form=
'UNFORMATTED', file=
'mp2tst.bin')
161 WRITE(luns,101)
'* Default test steering file'
162 WRITE(luns,101)
'fortranfiles ! following bin files are fortran'
163 WRITE(luns,101)
'mp2con.txt ! constraints text file '
164 WRITE(luns,101)
'mp2tst.bin ! binary data file'
165 WRITE(luns,101)
'Cfiles ! following bin files are Cfiles'
169 WRITE(luns,101)
'*hugecut 50.0 !cut factor in iteration 0'
170 WRITE(luns,101)
'*chisqcut 1.0 1.0 ! cut factor in iterations 1 and 2'
171 WRITE(luns,101)
'*entries 10 ! lower limit on number of entries/parameter'
173 '*pairentries 10 ! lower limit on number of parameter pairs', &
175 WRITE(luns,101)
'*printrecord 1 2 ! debug printout for records'
177 '*printrecord -1 -1 ! debug printout for bad data records'
179 '*outlierdownweighting 2 ! number of internal iterations (> 1)'
180 WRITE(luns,101)
'*dwfractioncut 0.2 ! 0 < value < 0.5'
181 WRITE(luns,101)
'*presigma 0.01 ! default value for presigma'
182 WRITE(luns,101)
'*regularisation 1.0 ! regularisation factor'
183 WRITE(luns,101)
'*regularisation 1.0 0.01 ! regularisation factor, pre-sigma'
186 WRITE(luns,101)
'*bandwidth 0 ! width of precond. band matrix'
187 WRITE(luns,101)
'method diagonalization 3 0.001 ! diagonalization '
188 WRITE(luns,101)
'method fullMINRES 3 0.01 ! minimal residual '
189 WRITE(luns,101)
'method sparseMINRES 3 0.01 ! minimal residual '
190 WRITE(luns,101)
'*mrestol 1.0D-8 ! epsilon for MINRES'
191 WRITE(luns,101)
'method inversion 3 0.001 ! Gauss matrix inversion'
192 WRITE(luns,101)
'* last method is applied'
193 WRITE(luns,101)
'*matiter 3 ! recalculate matrix in iterations'
195 WRITE(luns,101)
'end ! optional for end-of-data'
200 IF(.NOT.ex2)
WRITE(lunt,*)
'Constraint 0.0'
204 IF(.NOT.ex2)
WRITE(lunt,103) labelt,one
211 IF(.NOT.ex2)
WRITE(lunt,*)
'Constraint 0.0'
218 IF(.NOT.ex2)
WRITE(lunt,103) labelt,ww
226 det=real(real(
nplan,mpd)*sv-sw*sw,mps)
227 eps=real(sv*s1-sw*s2,mps)/det
228 eta=real(real(
nplan,mpd)*s2-sw*s1,mps)/det
253 IF(icount == 8759) ip=1
263 label(1)=10+
ihits(i)*2
264 label(2)=500 +
ihits(i)
293 WRITE(*,*) ncount,
' tracks generated with ',nthits,
' hits.'
294 WRITE(*,*) nrecds,
' records written.'
319 INTEGER(mpi) :: nwire
321 INTEGER(mpi),
INTENT(IN) :: ip
333 IF(uran() <
eff(i))
THEN
336 nwire=int(1.0+ybias/4.0,mpi)
337 IF(nwire <= 0.OR.nwire > 25)
EXIT
345 ywire=real(nwire,mps)*4.0-2.0
subroutine mille(nlc, derlc, ngl, dergl, label, rmeas, sigma)
Add data block to record.
subroutine endle
End-of-record.
subroutine genlin(ip)
Generate line and measurements.
subroutine mptest
Generate test files.
integer, parameter mps
single precision
real(mps), dimension(nplan) ydrft
signed drift length
real(mps) ynull
track position at vertex
real(mps), dimension(nplan) sgm
measurement sigma (plane)
real(mps), parameter thck
thickness of plane
real(mps), parameter detx
x-value of first plane
real(mps) slope
track slope
real(mps), dimension(nplan) sigma
measurement sigma (hit)
integer(mpi) nhits
number of hits
real(mps), parameter heit
height of detector plane
real(mps), dimension(nplan) dvd
rel.
integer(mpi), dimension(nplan) ihits
plane numbers (planes with hits)
real(mps), dimension(nplan) yhits
measured position in plane (hit)
real(mps), dimension(nplan) xhits
position perp.
real(mps), dimension(nplan) eff
plane efficiency
real(mps), dimension(nplan) del
shift (position deviation) (alignment parameter)
real(mps), parameter effp
plane efficiency
real(mps), parameter sgmp
measurement sigma
real(mps), parameter disx
distance between planes
integer(mpi), parameter nplan