Subject: New release of RAWSCAN software
Ioanni.Katsavounidis@lngs.infn.it
Date: Thu Dec 09 1999 - 13:33:52 EST
Ciao a tutti,
I've spent the last 2-3 days debugging some minor problems with RAWSCAN,
namely:
(a) The program crashed in about 2% of the runs - most cases near the
begin of run in WFD_LIST_CHAN (or WFD_SWIM_CHAN) and some others due
to LOG10(0) condition in WFDANA.
(b) The MAX_NDATA parameter was all over the code without a consistent
way of controlling it throughout.
(c) Unify Ed's original code with Lori's mods and my fixes (to fix the
timeword wraparound issue) under a common framework.
(d) Find a way to speed it up, since we very much want to run it under
the _FAST queues (meaning <8min of CPU)
You can check the result under:
AXPGS0::DISK$SCRAUSA8:[MACROUSA.RAWSCAN.SRC]
Knowing that probably nobody will bother to go through the following,
I'm including the file AAAREADME.TXT, where a summary of all this effort
is documented.
A presto,
Ioannis
=============================================================================
This directory contains all .FOR and .INC files necessary to build
RAWSCAN. It also includes 5 .COM and 1 .OPT files as follows:
DASHLINKX11_ALPHA.COM
DASH_SETUP.COM
MAKE.COM
RAWSCAN.OPT
VMSBUILD.COM
VMS_MAKE.COM
These files are needed to re-build RAWSCAN if necessary.
You just do @make and it *should* have no problem.
Once built, you need to copy it on [-] to take effect on people's
analyses.
8-DEC-1999, IoK - Created a _OPT.COM version of the above (except
DASHLINKX11_ALPHA.COM) to FORTRAN/NODEBUG/OPTIMIZE it
==================================================================
Short history:
- Dec. 1995: Ed Kearns releases first version (31 .FOR files + .INC files)
- 1997: Lory Gray introduces a number of changes, including 2 new
modules; LAMOSSKA_ANA.FOR and MONO_ANA.FOR
- 1998/1999: Ioannis Katsavounidis introduces further changes, mainly
to address timeword wraparoung problem + LAMOSSKA handling
As of today (6-DEC-1999), the following files are different between
Ed Kearns' original release and the most recent one:
( 0) RAWCOMMON.INC -> added /ISPECIAL/MAX_NDATA,MAXBYT to allow for a
single place to store max_ndata (4998/9998/12498)
added /ISPECIAL/NOFF to allow for offset from
NDATA to filter special events (=500 in WFDPLOT)
( 1) DREVEN.FOR -> Modified by Lori Gray to include LAMOSSKA trigger (#11)
for all 3 uVAXs.
(IoK, 6-DEC-1999) Modified to include *ALL* known trig.
decoding
( 2) DUMPEQP.FOR -> Modified by IoK to provide EQP37 (LAMOSSKA Latching
Scalar decoding and screen printout)
(IoK, 6-DEC-1999) Modified WRITE(*,*) statements to
WRITE(LUN,*); could this be the reason it sometimes
creates a FOR000.DAT file ???
( 3) EQPDUMP.FOR -> Modified by IoK to include the "timeword wraparound fix"
patch from WFD_DECODE.
( 4) LAMOSSKA_ANA.FOR -> Created by Lori Gray to accomodate processing
of LAMOSSKA calibration runs. Lots of overlap
with WFDANA.FOR.
(IoK, 6-DEC-1999) Modified ATRIG DATA statement
in accordance with DREVEN.FOR to include
decoding of all known triggers
Added check to avoid LOG10(0)
Compilation complained regarding an assignment
to a loop-variable within the loop; re-wrote
that part to avoid warning.
Compilation complained regarding a RETURN statement
in the middle of a SUBROUTINE; left it as is.
Modified by IoK to avoid cases where WFD data are
broken (readout is shorter than WFD header expects)
that crashes the code in ~ 2% of runs.
Ported changes made to WFD_SWIM_CHAN
Commented delcaration of MAX_NDATA to use common
block from RAWCOMMON.INC
MOdified WFDPROFI_INIT to accept run number as
argument. RUN of WFDPROFI is there initialized.
Previously, only for RUNs with WFDs RUN was non zero,
thus creating problems with the summary output files.
( 5) MONO_ANA.FOR -> Created by Lori Gray to accomodate processing
of LED/MONO calibration runs. Lots of overlap
with WFDANA.FOR; uses many routines from
LAMOSSKA_ANA, too.
Note that current RAWSCAN.FOR has commented out
the declaration of the corresponding module
(previous version has them active, although)
(IoK, 6-DEC-1999) Modified ATRIG DATA statement
in accordance with DREVEN.FOR to include
decoding of all known triggers
Added check to avoid LOG10(0)
Compilation complained regarding a RETURN statement
in the middle of a SUBROUTINE; left it as is.
Commented delcaration of MAX_NDATA to use common
block from RAWCOMMON.INC
( 6) RAWSCAN.FOR -> Modified by Lori Gray to include EXTERN declarations
and calls to DASH_DECL regarding LAMOSSKA_ANA, MONO_ANA
and WFDLED_ANA; some of them had been commented out
in intermediate version.
(IoK, 6-DEC-1999) First, tried to uncomment all such
statements for LAMOSSKA_ANA and MONO_ANA; left it for
WFDLED_ANA because linker couldn't find corresponding
modules. Then, commented again MONO_ANA because the
resulting executable was *very* big (couldn't run it !)
( 7) TRGSEL.FOR -> IoK, 8-DEC-1999 Added a line (taken from WFDSEL.FOR)
to give an initial value to IS_EVENT that was used but
was never taking a value.
( 8) WFDANA.FOR -> Modified by Erik Katsavounidis to accomodate statistics
processing of pedestal, NDATA, HIT/BIT fractions, EQUIP,
TRIG, coincidences and anti-coincidences.
Modified by LG (including MAX NDATA).
(IoK, 6-DEC-1999) Modified ATRIG DATA statement
in accordance with DREVEN.FOR to include
decoding of all known triggers
Added check to avoid LOG10(0)
Commented delcaration of MAXDAT,MAXBYT to use common
block variable MAX_NDATA,MAXBYT from RAWCOMMON.INC
Changed an IF(NDAT(I) .EQ. 4998) (fill a histogram)
to IF(NDAT(I) .EQ. MAX_NDATA) (fill a histogram)
( 9) WFDBOXN.FOR -> Modified by IoK to fix "6N01" name to "6S01" !!!
(10) WFDPLOT.FOR -> Modified by Ioannis Katsavounidis that added the
TALK WFDPLOT CHPLOT <SM> <CH> option to plot a specific
WFD channel (if present) and by LG to change plotting
in more than 1 zone and names of talk wfdplot modules.
Commented (until I understand better what it does)
and IF(NDATA(I).GT.4500) CALL DASH_PASS_EVT() statement
Changed it with IT(NDATA(I).GT.MAX_NDATA-NOFF) ... that
are controlled through COMMON block statements
(11) WFDSEL.FOR -> Modified by Lori Gray to allow for filtering a particular
event/WFD channel and also ndata limit filtering.
Commented delcaration of MAXDAT,MAXBYT to use common
block variable MAX_NDATA,MAXBYT from RAWCOMMON.INC
Changed init values for MAX_NDATA,MAXBYT to be consistent
with WFDANA.FOR (4998,20000).
Notice that in LAMOSSKA_ANA.FOR and MONO_ANA.FOR set
MAX_NDATA=12498, thus changing the MAX_NDATA throughout
all subroutines.
(12) WFD_DECODE.FOR -> Modified by Lori Gray to try to fix the wraparound
timeword issue, present when last bucket contains less
than 4 samples (showing up as a 327.68 usec offset
on the picture). This introduces other problems,
hopefully fixed by Ioannis Katsavounidis later.
(13) WFD_FIND_CHAN.FOR -> Modified by IoK to avoid cases where WFD data are
broken (readout is shorter than WFD header expects)
that crashes the code in ~ 2% of runs.
Ported changes made to WFD_SWIM_CHAN
(14) WFD_LIST_CHAN.FOR -> Modified by Ioannis Katsavounidis to change the
format of writing WFD chan info, added a one
line delimiter as "begin of buffer" and another
as "end of buffer"; added one line regarding
Lamosska trigger info decoding.
These modifications were needed by EVENT_BROWSER.
(IoK, 6-DEC-1999) Modified WRITE(*,*) statements to
WRITE(LUN,*); could this be the reason it sometimes
creates a FOR000.DAT file ??? No - there was a call
from WFDPLOT.FOR with WFD_LIST_CHAN(0,...). Changed
it to check for LUN>0 before writing.
(15) WFD_SANITY.FOR -> Modified by Lori Gray to pass as an argument the
MAX_NDATA to compare against when deciding "mangled
data"
(16) WFD_SWIM_CHAN.FOR -> Modified by IoK to avoid cases where WFD data are
broken (readout is shorter than WFD header expects)
that crashes the code in ~ 2% of runs.
This archive was generated by hypermail 2a24 : Thu Dec 09 1999 - 13:33:57 EST