C C setup y0 parameters and their errors (dy0/correlation) C C using old MATHKINE paramterisation code C C remember to get all the necessary include files (ask Oliver) C SUBROUTINE AIBI_EVOL_USER(PARID,ITEVOLKMN,NJET,NUP,P_COR $ ,Y0,DY0,V,IERR) ***************************************************** * USER Routine to return covariance matrix and starting values * of the fit parameters depending on choice of parameterisation ***************************************************** IMPLICIT NONE INTEGER PARID(7),ITEVOLKMN(3),NJET,NUP,IERR REAL P_COR(4,7) DOUBLE PRECISION Y0(25),DY0(25),V(25,25) C C INTERNAL VARIABLES C INTEGER I,J,ITYPPN,ITEVOL,ITETRUE DOUBLE PRECISION WORK(25,2) C C PRESENTLY THIS IS AN INTERFACE TO C C OLD MATHKINE NEW PARAMETERISATION C ITYPPN=MOD(PARID(1),10) ITEVOL=ITEVOLKMN(1) ITETRUE=ITEVOLKMN(3)*ITEVOL IF (ITETRUE.GT.0) ITEVOL=-1 CALL AIBI_EVOL_MATHKINE (ITYPPN,ITEVOL,ITETRUE,NJET,P_COR,Y0 & ,DY0,V) C C REMAP A A A A B B B B C C C C TO A B C A B C A B C A B C C DO I=1,3*NJET WORK(I,1)=Y0(I) WORK(I,2)=DY0(I) ENDDO DO I=1,NJET Y0(3*(I-1)+1)=WORK(I,1) Y0(3*(I-1)+2)=WORK(I+NJET,1) Y0(3*(I-1)+3)=WORK(I+2*NJET,1) DY0(3*(I-1)+1)=WORK(I,2) DY0(3*(I-1)+2)=WORK(I+NJET,2) DY0(3*(I-1)+3)=WORK(I+2*NJET,2) ENDDO CALL VZERO(V,625*2) C C DEFAULT PRINTOUT (UNCOMMENT IF NOTHING ELSE IS DONE) C C WRITE(6,*) 'AIBI_EVOL_USER ERROR: Dummy version of AIBI_EVOL_USER' C & //' called' C V(1,1)=-1.0D0 C IERR=2 C 999 RETURN END C------------------------------------------------------------------- SUBROUTINE AIBI_EVOL_MATHKINE (ITYPP,ITEVOL,ITETRUE,NJET,P_COR,Y0 & ,DY0,V) C------------------------------------------------------------------- INTEGER NJET,ITYPP,ITEVOL,ITETRUE,I,J DOUBLE PRECISION V(25,25),Y0(25),DY0(25) REAL P_COR(4,7) IF ( itevol.EQ.1 ) THEN c electrons - reco binning IF (ITYPP.EQ.1) CALL AIBI_EVOL_JJ_E(NJET,P_COR,Y0,DY0,V) IF (ITYPP.EQ.0) CALL AIBI_EVOL_JJ_E_DELPHI(NJET,P_COR,Y0,DY0,V) ELSEIF ( itevol.EQ.2 ) THEN c mouns - reco binning IF (ITYPP.EQ.1) CALL AIBI_EVOL_JJ_M(NJET,P_COR,Y0,DY0,V) IF (ITYPP.EQ.0) CALL AIBI_EVOL_JJ_M_DELPHI(NJET,P_COR,Y0,DY0,V) ELSEIF ( itevol.EQ.3 ) THEN c taus - reco binning PRINT*,'RECO BINNING NOT AVAILABLE FOR TAUS' stop ELSEIF ( itevol.EQ.4 ) THEN c hadronics - reco binning IF (ITYPP.EQ.1) CALL AIBI_EVOL_4JW_DURHPE_NEW(NJET,P_COR,Y0,DY0) IF (ITYPP.EQ.0) THEN PRINT*,'RECO BINNING USING DELPHI NOT AVAILABLE' PRINT*,'FOR HADROINIC EVENTS' STOP ENDIF ELSEIF ( itetrue.EQ.1) THEN c electrons - true binning IF (ITYPP.EQ.0) CALL AIBI_EVOL_JJ_E_DELPHI_TRUE(NJET ,P_COR,Y0 & ,DY0,V) IF (ITYPP.EQ.1) CALL AIBI_EVOL_JJ_E_TRUE(NJET ,P_COR,Y0,DY0,V) ELSEIF ( itetrue.EQ.2) THEN c mouns - true binning IF (ITYPP.EQ.1) CALL AIBI_EVOL_JJ_M_TRUE(NJET ,P_COR,Y0,DY0,V) IF (ITYPP.EQ.0) CALL AIBI_EVOL_JJ_M_DELPHI_TRUE(NJET ,P_COR,Y0 & ,DY0,V) ELSEIF ( itetrue.EQ.3 ) THEN c taus - true binning PRINT*,'TRUE BINNING NOT AVAILABLE FOR TAUS' stop ELSEIF ( itetrue.EQ.4 ) THEN c hadronics - true binning IF (ITYPP.EQ.1) CALL AIBI_EVOL_4JW_DURHPE_NEW_TRUE(NJET,P_COR,Y0 & ,DY0) IF (ITYPP.EQ.0) THEN PRINT*,'TRUE BINNING USING DELPHI NOT AVAILABLE' PRINT*,'FOR HADROINIC EVENTS' STOP ENDIF ENDIF * RETURN END