ESD outputs are now separate.

This commit is contained in:
Yggdrasil 2026-04-07 17:53:26 +02:00
parent 82f7abd4ec
commit 28475c31b6
4 changed files with 76 additions and 29 deletions

4
.gitignore vendored
View File

@ -1,3 +1,5 @@
bin/ bin/
gtopdraw.top .vscode/
gtopdraw*

View File

@ -1,6 +1,15 @@
# Compiler and flags # Compiler
FC = gfortran FC = gfortran
FFLAGS = -O2
# Build type (default: Release)
BUILD ?= release
# Flags depending on build type
ifeq ($(BUILD),debug)
FFLAGS = -g -O0
else
FFLAGS = -O2
endif
# Output folder # Output folder
OUT = bin OUT = bin
@ -11,13 +20,24 @@ TARGET = event2
# Source files # Source files
SRCS = event2_03.f gbook.f SRCS = event2_03.f gbook.f
# Executable path
EXE = $(OUT)/$(TARGET)
# Default rule # Default rule
all: $(TARGET) all: $(EXE)
# Build rule # Build rule
$(TARGET): $(SRCS) $(EXE): $(SRCS)
$(FC) $(FFLAGS) -o $(OUT)/$(TARGET) $(SRCS) mkdir -p $(OUT)
$(FC) $(FFLAGS) -o $(EXE) $(SRCS)
# Convenience targets
debug:
$(MAKE) BUILD=debug
release:
$(MAKE) BUILD=release
# Clean rule # Clean rule
clean: clean:
rm -f $(TARGET) *.o rm -rf $(OUT)

View File

@ -4,7 +4,9 @@
EXTERNAL DEMO EXTERNAL DEMO
NF=5 NF=5
EM=91.1876 EM=91.1876
NEV=5 000 000 C NEV=1 000 000 000
C NEV=5 000 000
NEV= 500 000
CALL DEMOIN CALL DEMOIN
CALL EVENT2(NEV,EM,NF,DEMO) CALL EVENT2(NEV,EM,NF,DEMO)
CALL DEMOUT(NEV) CALL DEMOUT(NEV)
@ -217,12 +219,12 @@ C-----------------------------------------------------------------------
CALL GBOOK1( 12,'D-PARAMETER',50,0D0,1D0) CALL GBOOK1( 12,'D-PARAMETER',50,0D0,1D0)
CALL GBOOK1(112,'D-PARAMETER',50,0D0,1D0) CALL GBOOK1(112,'D-PARAMETER',50,0D0,1D0)
CALL GBOOK1(212,'D-PARAMETER',50,0D0,1D0) CALL GBOOK1(212,'D-PARAMETER',50,0D0,1D0)
CALL GBOOK1( 3,'THRUST',50,0.5D0,1D0) CALL GBOOK1( 3,'THRUST',50,0D0,0.5D0)
CALL GBOOK1(103,'THRUST',50,0.5D0,1D0) CALL GBOOK1(103,'THRUST',50,0D0,0.5D0)
CALL GBOOK1(203,'THRUST',50,0.5D0,1D0) CALL GBOOK1(203,'THRUST',50,0D0,0.5D0)
CALL GBOOK1( 13,'THRUST',50,0.5D0,1D0) CALL GBOOK1( 13,'THRUST',50,0D0,0.5D0)
CALL GBOOK1(113,'THRUST',50,0.5D0,1D0) CALL GBOOK1(113,'THRUST',50,0D0,0.5D0)
CALL GBOOK1(213,'THRUST',50,0.5D0,1D0) CALL GBOOK1(213,'THRUST',50,0D0,0.5D0)
CALL GBOOK1( 4,'y3(JADE,P)',40,0D0,0.4D0) CALL GBOOK1( 4,'y3(JADE,P)',40,0D0,0.4D0)
CALL GBOOK1(104,'y3(JADE,P)',40,0D0,0.4D0) CALL GBOOK1(104,'y3(JADE,P)',40,0D0,0.4D0)
CALL GBOOK1(204,'y3(JADE,P)',40,0D0,0.4D0) CALL GBOOK1(204,'y3(JADE,P)',40,0D0,0.4D0)
@ -292,7 +294,7 @@ C-----------------------------------------------------------------------
IMPLICIT NONE IMPLICIT NONE
INTEGER N,NA,ITYPE,I,J,K,L,ORD INTEGER N,NA,ITYPE,I,J,K,L,ORD
DOUBLE PRECISION P(4,7),WEIGHT,DOT,C,D,OS,ORS,E(7),OE(7),COSANG, DOUBLE PRECISION P(4,7),WEIGHT,DOT,C,D,OS,ORS,E(7),OE(7),COSANG,
$ COSLIM,BEEC,T,TL,TA(3),PT(3),PC(3,4),Y3,Y,Q(4,7), $ COSLIM,BEEC,T,TAU,TL,TA(3),PT(3),PC(3,4),Y3,Y,Q(4,7),
$ CSUM(8),CSQR(8),CS(8),BSUM(2,6),BSQR(2,6),BS(2,6) $ CSUM(8),CSQR(8),CS(8),BSUM(2,6),BSQR(2,6),BS(2,6)
DOUBLE PRECISION CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB DOUBLE PRECISION CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB
COMMON /SUBCOM/ CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB COMMON /SUBCOM/ CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB
@ -406,8 +408,9 @@ C---CALCULATE THE THRUST
ELSE ELSE
T=MAX(E(1),E(2),E(3))*ORS*2 T=MAX(E(1),E(2),E(3))*ORS*2
ENDIF ENDIF
CALL GFILL1(203+ORD,T,(1-T)*WEIGHT*100) TAU = 1 - T
IF (ORD.EQ.0) CS(5)=CS(5)+(1-T)*WEIGHT CALL GFILL1(203+ORD,TAU,TAU*WEIGHT*100)
IF (ORD.EQ.0) CS(5)=CS(5)+TAU*WEIGHT
C---CALCULATE THE Y3 VALUE (USES P SCHEME FOR NO PARTICULAR REASON) C---CALCULATE THE Y3 VALUE (USES P SCHEME FOR NO PARTICULAR REASON)
IF (N.EQ.4) THEN IF (N.EQ.4) THEN
Y3=1D6 Y3=1D6

46
gbook.f
View File

@ -670,9 +670,15 @@ C-----------------------------------------------------------------------
COMMON /GTCOM/ TYPE,NTYPE COMMON /GTCOM/ TYPE,NTYPE
PARAMETER (NXMAX=1000) PARAMETER (NXMAX=1000)
DIMENSION X(NXMAX),Y(NXMAX),E(NXMAX) DIMENSION X(NXMAX),Y(NXMAX),E(NXMAX)
LOGICAL OPEN
CHARACTER TITLE*60 CHARACTER TITLE*60
COMMON /GFILE/ OPEN, TITLE
IF (ID.GT.NMAX) RETURN IF (ID.GT.NMAX) RETURN
CALL GOPENF IF (NEW) THEN
CALL GCLOSEF
CALL GTITLE(ID,TITLE,LENTIT)
CALL GOPENF
ENDIF
WEIGHT=0.0 WEIGHT=0.0
AVGE=0.0 AVGE=0.0
VARIAN=0.0 VARIAN=0.0
@ -718,7 +724,6 @@ C-----------------------------------------------------------------------
IF (WEIGHT.EQ.0) WEIGHT=1 IF (WEIGHT.EQ.0) WEIGHT=1
AVGE=AVGE/WEIGHT AVGE=AVGE/WEIGHT
VARIAN=VARIAN/WEIGHT-AVGE**2 VARIAN=VARIAN/WEIGHT-AVGE**2
CALL GTITLE(ID,TITLE,LENTIT)
C SET UP PAGE... C SET UP PAGE...
IF (NEW) THEN IF (NEW) THEN
WRITE (21,*) 'NEW FRAME' WRITE (21,*) 'NEW FRAME'
@ -783,11 +788,17 @@ C-----------------------------------------------------------------------
LOGICAL NEW LOGICAL NEW
PARAMETER (NZ=250) PARAMETER (NZ=250)
DIMENSION Z(NZ,NZ) DIMENSION Z(NZ,NZ)
LOGICAL OPEN
CHARACTER TITLE*60 CHARACTER TITLE*60
COMMON /GFILE/ OPEN,TITLE
REAL RAN REAL RAN
DATA ISEED/12345/ DATA ISEED/12345/
IF (ID.GT.NMAX) RETURN IF (ID.GT.NMAX) RETURN
CALL GOPENF IF (NEW) THEN
CALL GCLOSEF
CALL GTITLE(ID,TITLE,LENTIT)
CALL GOPENF
ENDIF
WEIGHT=0.0 WEIGHT=0.0
XAVGE=0.0 XAVGE=0.0
XVARIN=0.0 XVARIN=0.0
@ -828,7 +839,6 @@ C-----------------------------------------------------------------------
XVARIN=XVARIN/WEIGHT-XAVGE**2 XVARIN=XVARIN/WEIGHT-XAVGE**2
YAVGE=YAVGE/WEIGHT YAVGE=YAVGE/WEIGHT
YVARIN=YVARIN/WEIGHT-YAVGE**2 YVARIN=YVARIN/WEIGHT-YAVGE**2
CALL GTITLE(ID,TITLE,LENTIT)
C SET UP PAGE... C SET UP PAGE...
IF (NEW) THEN IF (NEW) THEN
WRITE (21,*) 'NEW FRAME' WRITE (21,*) 'NEW FRAME'
@ -918,22 +928,34 @@ C-----------------------------------------------------------------------
C----------------------------------------------------------------------- C-----------------------------------------------------------------------
SUBROUTINE GOPENF SUBROUTINE GOPENF
C---OPEN TopDrawer FILE C---OPEN TopDrawer FILE
CHARACTER*14 TITLE
LOGICAL OPEN LOGICAL OPEN
CHARACTER TITLE * 60
CHARACTER FNAME * 74
COMMON /GFILE/ OPEN, TITLE
DATA OPEN/.FALSE./ DATA OPEN/.FALSE./
IF (OPEN) RETURN IF (OPEN) RETURN
OPEN=.TRUE. OPEN=.TRUE.
N=0 N=0
TITLE='gtopdraw.top' FNAME='gtopdraw_'//TRIM(TITLE)//'.top'
OPEN (21,FILE='gtopdraw.top',STATUS='NEW',ERR=10) OPEN (21,FILE=TRIM(FNAME),STATUS='NEW',ERR=10)
WRITE (6,*) 'Using file "gtopdraw.top"' WRITE (6,*) 'Using file "'//TRIM(FNAME)//'"'
RETURN RETURN
10 N=N+1 10 N=N+1
IF (N.GE.100) STOP IF (N.GE.100) STOP
WRITE (6,*) 'Could not open file "',TITLE,'"' WRITE (6,*) 'Could not open file "',TRIM(FNAME),'"'
WRITE (TITLE,'(A8,I2.2,A4)') 'gtopdraw',N,'.top' WRITE (FNAME,'(A8,I2.2,A4)') 'gtopdraw_'//TRIM(TITLE),N,'.top'
OPEN (21,FILE=TITLE,STATUS='NEW',ERR=10) OPEN (21,FILE=TRIM(FNAME),STATUS='NEW',ERR=10)
WRITE (6,*) 'Using file "',TITLE,'" instead' WRITE (6,*) 'Using file "',TRIM(FNAME),'" instead'
END
C-----------------------------------------------------------------------
SUBROUTINE GCLOSEF
C---CLOSE TopDrawer FILE
LOGICAL OPEN
CHARACTER TITLE * 60
COMMON /GFILE/ OPEN,TITLE
IF (.NOT.OPEN) RETURN
CLOSE(21)
OPEN = .FALSE.
END END
C----------------------------------------------------------------------- C-----------------------------------------------------------------------
BLOCK DATA GTDAT BLOCK DATA GTDAT