1
! @(#)cuts.prg 19.1 (ES0-DMD) 02/25/03 14:08:48
2
! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4
! MIDAS procedure cuts.prg to set user defined values in descr. LHCUTS
5
! K. Banse 901023, 910903, 920522, 920925
7
! execute as CUTS frame clow,chi set both cut values
8
! or CUTS frame ,chi set hi cut value
9
! or CUTS frame clo set low cut value
10
! or CUTS frame frame1 set cut values as in frame1
11
! or CUTS frame to look at the cuts values
12
! or CUTS frame =option to set cuts according to `option'
13
! with option - sigma for cuts = mean-1/2/3*sig, mean+1/2/3*sig
14
! - high for cuts = mean-0.1*max, max
16
! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18
DEFINE/PARAM P1 ? IMA "Enter frame name:"
20
IF P2(1:1) .EQ. "?" THEN
21
READ/DESC {P1} LHCUTS !just show curent cuts
25
DEFINE/PARAM P2 ? ? "Enter cut specs: "
26
DEFINE/LOCAL NN/I/1/2 0,0
29
IF P2(1:1) .NE. "=" THEN !it's the =option mode
31
IF P2(1:1) .EQ. "," THEN !only high cut value...
32
WRITE/DESCR {P1} LHCUTS/R/2/1 {P2(2:)}
33
ELSE !reference frame...
34
COPY/DD {P2} LHCUTS/R/1/2 {P1} LHCUTS/R/1/2
37
ELSE !low[,high] cuts...
38
WRITE/DESCR {P1} LHCUTS/R/1/2 {P2}
41
! it's the =option mode
44
DEFINE/LOCAL MYCUTS/R/1/2 0.,0.
45
DEFINE/LOCAL WW/R/1/2 0.,0.
47
IF P2(2:3) .EQ. "SI" THEN
48
STATIST/IMAG {P1} P5=RN
51
WW(1) = NN * OUTPUTR(4) !1/2/3 * sigma
53
WW(2) = OUTPUTR(3) - WW(1) !mean - x*sigma
54
IF WW(2) .LT. OUTPUTR(1) THEN
55
MYCUTS(1) = OUTPUTR(1)
59
WW(2) = OUTPUTR(3) + WW(1) !mean + x*sigma
60
IF WW(2) .GT. OUTPUTR(2) THEN
61
MYCUTS(2) = OUTPUTR(2)
66
OUTPUTR({NN(2)}) = MYCUTS(1)
68
OUTPUTR({NN(2)}) = MYCUTS(2)
71
"Values computed for mean +- 1,2,3*sigma" are stored -
74
{OUTPUTR(11)},{OUTPUTR(12)}, {OUTPUTR(13)},{OUTPUTR(14)}, -
75
{OUTPUTR(15)},{OUTPUTR(16)}
76
WRITE/OUT Cut values for {P1} set to: {MYCUTS(1)}, {MYCUTS(2)}
78
ELSEIF P2(2:3) .EQ. "HI" THEN
79
STATIST/IMAG {P1} P5=RN
80
WW(1) = 0.1*OUTPUTR(2) !0.1 * max
81
WW(2) = OUTPUTR(3)-WW(1) !mean - 0.1*max
82
IF WW(2) .LT. OUTPUTR(1) THEN
83
MYCUTS(1) = OUTPUTR(1)
87
MYCUTS(2) = OUTPUTR(2)
88
WRITE/OUT Cut values for {P1} set to: {MYCUTS(1)}, {MYCUTS(2)}
91
WRITE/OUT Invalid cut option (see the HELP)
92
WRITE/OUT Cut values for {P1} not updated ...
96
WRITE/DESCR {P1} LHCUTS/R/1/2 {MYCUTS(1)},{MYCUTS(2)}