4 *CMZ :- -26/04/91 11.11.56 by Bryan Webber
6 *-- Author : Ian Knowles & Bryan Webber
8 C-----------------------------------------------------------------------
12 C-----------------------------------------------------------------------
14 C Using properties of particle I supplied in HWUDAT checks particles
16 C and antiparticles have compatible properties and sets SWTEF(I) =
18 C ( rep. enhancement factor)^2 - used in cluster decays
20 C Finds iso-flavour hadrons and creates pointers for cluster decays.
22 C Sets CLDKWT(K) =(2J+1) spin weight normalizing largest value to 1.
24 C-----------------------------------------------------------------------
26 INCLUDE 'HERWIG61.INC'
32 DOUBLE PRECISION EPS,WTMX,REMMN,RWTMX,WTMP,RESTMP(91),WTMX2,
34 & REMMN2,WT,CDWTMP(NMXTMP)
36 INTEGER HWUANT,MAPF(89),MAPC(12,12),I,IANT,IABPDG,J,L,N,K,LTMP,
38 & NCDKS,IMN,ITMP,LOCTMP(91),NTMP,NCDTMP(NMXTMP),IMN2
44 DATA MAPF/21,31,41,51,61,12,32,42,52,62,13,23,43,53,63,14,24,34,
46 & 44,54,64,15,25,35,45,55,65,16,26,36,46,56,66,111,112,113,122,123,
48 & 133,222,223,233,333,-111,-112,-113,-122,-123,-133,-222,-223,-233,
50 & -333,114,124,134,224,234,334,-114,-124,-134,-224,-234,-334,115,
52 & 125,135,225,235,335,-115,-125,-135,-225,-235,-335,116,126,136,
54 & 226,236,336,-116,-126,-136,-226,-236,-336/
56 DATA MAPC/90,1,2,47,45,44,48,46,49,3,4,5,6,90,7,50,47,45,51,48,52,
58 & 8,9,10,11,12,91,51,48,46,52,49,53,13,14,15,37,40,41,6*0,57,69,81,
60 & 35,37,38,6*0,55,67,79,34,35,36,6*0,54,66,78,38,41,42,6*0,58,70,
62 & 82,36,38,39,6*0,56,68,80,39,42,43,6*0,59,71,83,16,17,18,63,61,60,
64 & 64,62,65,19,20,21,22,23,24,75,73,72,76,74,77,25,26,27,28,29,30,
66 & 87,85,84,88,86,89,31,32,33/
68 C Check particle/anti-particle properties are compatible
72 10 FORMAT(/10X,'Checking consistency of particle properties'/)
76 IF (IDPDG(I).GT.0) THEN
80 IF (IANT.EQ.20) GOTO 20
82 IF (MOD(IDPDG(I)/1000,10).EQ.0.AND.
84 & MOD(IDPDG(I)/100 ,10).NE.0) THEN
86 IF (MOD(IFLAV(I)/10-IFLAV(IANT),10).NE.0.OR.
88 & MOD(IFLAV(I)-IFLAV(IANT)/10,10).NE.0)
90 & WRITE(6,30) RNAME(I),IFLAV(I),IFLAV(IANT)
94 IF (IFLAV(I)+IFLAV(IANT).NE.0)
96 & WRITE(6,30) RNAME(I),IFLAV(I),IFLAV(IANT)
100 IF (ICHRG(I)+ICHRG(IANT).NE.0)
102 & WRITE(6,40) RNAME(I),RNAME(IANT),ICHRG(I),ICHRG(IANT)
104 IF (ABS(RMASS(I)-RMASS(IANT)).GT.EPS)
106 & WRITE(6,50) RNAME(I),RMASS(I),RMASS(IANT)
108 IF (ABS(RLTIM(I)-RLTIM(IANT)).GT.EPS)
110 & WRITE(6,60) RNAME(I),RLTIM(I),RLTIM(IANT)
112 IF (ABS(RSPIN(I)-RSPIN(IANT)).GT.EPS)
114 & WRITE(6,70) RNAME(I),RSPIN(I),RSPIN(IANT)
120 30 FORMAT(10X,A8,' flavour code=',I4,5X,' antiparticle=',I4)
122 40 FORMAT(10X,2A8,' charge =',I2,7X,' antiparticle=',I2)
124 50 FORMAT(10X,A8,' mass =',F7.3,2X,' antiparticle=',F7.3)
126 60 FORMAT(10X,A8,' life time =',E9.3,' antiparticle=',E9.3)
128 70 FORMAT(10X,A8,' spin =',F3.1,6X,' antiparticle=',F3.1)
130 C Compute resonance properties
134 C Compute representation weights for hadrons, used in cluster decays
140 IF (J.EQ.2.AND.MOD(IABPDG/100,10).LT.MOD(IABPDG/10,10)) THEN
142 C Singlet (Lambda-like) baryon
152 ELSEIF(2*(J/2).NE.J) THEN
154 C Mesons: identify by spin, angular momentum & radial excitation
158 L= MOD(IABPDG/10000 ,10)
160 N= MOD(IABPDG/100000,10)
162 IF (L.EQ.0.AND.J.EQ.0.AND.N.EQ.0.OR.
164 & L.GT.3.OR. J.GT.4.OR .N.GT.4) THEN
170 SWTEF(I)=REPWT(L,J,N)**2
184 C Prepare tables for cluster decays, except flavourless light mesons
192 C Store particles, flavour MAPF(I), noting highest spin and lowest mass
200 IF (VTOCDK(J).OR.IFLAV(J).NE.MAPF(I)) GOTO 90
204 IF (NCDKS.GT.NMXCDK) CALL HWWARN('HWURES',101,*999)
208 CLDKWT(NCDKS)=TWO*RSPIN(J)+ONE
210 IF (CLDKWT(NCDKS).GT.WTMX) WTMX=CLDKWT(NCDKS)
212 IF (RMASS(J).LT.REMMN) THEN
222 IF (NCDKS+1-LTMP.EQ.0) THEN
226 100 FORMAT(1X,'No particles exist for a cluster with flavour, ',I4,
230 CALL HWWARN('HWURES',51,*120)
234 C Set scaled spin weights
240 110 CLDKWT(J)=CLDKWT(J)*RWTMX
242 C Swap order if lightest hadron of given flavour not first
244 IF (IMN.NE.LTMP) THEN
250 NCLDK(LTMP)=NCLDK(IMN)
252 CLDKWT(LTMP)=CLDKWT(IMN)
264 RESTMP(I)=FLOAT(NCDKS+1-LTMP)
270 C Now do flavourless light mesons, allowing for mixing in weights
288 C Calculate mixing weight for (|uubar>+|ddbar>)/sqrt(2) component
290 ELSEIF (IFLAV(J).EQ.11) THEN
294 ELSEIF (IFLAV(J).EQ.33) THEN
300 WT=COS(ETAMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
302 ELSEIF (J.EQ.25 ) THEN
304 WT=SIN(ETAMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
308 ELSEIF (J.EQ.56 ) THEN
310 WT=COS(PHIMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
312 ELSEIF (J.EQ.24 ) THEN
314 WT=SIN(PHIMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
318 ELSEIF (J.EQ.58 ) THEN
320 WT=COS(F2MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
322 ELSEIF (J.EQ.26 ) THEN
324 WT=SIN(F2MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
326 C f_1(1420) - f_1(1285)
328 ELSEIF (J.EQ.57 ) THEN
330 WT=COS(F1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
332 ELSEIF (J.EQ.28 ) THEN
334 WT=SIN(F1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
336 C h_1(1380) - h_1(1170)
338 ELSEIF (J.EQ.289) THEN
340 WT=COS(H1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
342 ELSEIF (J.EQ.288) THEN
344 WT=SIN(H1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
346 C MISSING - f_0(1370)
348 ELSEIF (J.EQ.294) THEN
350 WT=SIN(F0MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
354 ELSEIF (J.EQ.396) THEN
356 WT=COS(PH3MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
358 ELSEIF (J.EQ.395) THEN
360 WT=SIN(PH3MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
362 C eta_2(1645) - eta_2(1870)
364 ELSEIF (J.EQ.397) THEN
366 WT=COS(ET2MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
368 ELSEIF (J.EQ.398) THEN
370 WT=SIN(ET2MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
372 C MISSING - omega(1600)
374 ELSEIF (J.EQ.399) THEN
376 WT=SIN(OMHMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
384 130 FORMAT(1X,'Isoscalar particle ',I3,' not recognised,',
386 & ' no I=0 mixing assumed')
400 IF (NCDKS.GT.NMXCDK) CALL HWWARN('HWURES',102,*999)
404 CLDKWT(NCDKS)=WT*(TWO*RSPIN(J)+ONE)
406 IF (CLDKWT(NCDKS).GT.WTMX) WTMX=CLDKWT(NCDKS)
408 IF (RMASS(J).LT.REMMN) THEN
418 IF (ONE-WT.GT.EPS) THEN
422 IF (NTMP.GT.NMXTMP) CALL HWWARN('HWURES',103,*999)
426 CDWTMP(NTMP)=(ONE-WT)*(TWO*RSPIN(J)+ONE)
428 IF (CDWTMP(NTMP).GT.WTMX2) WTMX2=CDWTMP(NTMP)
430 IF (RMASS(J).LT.REMMN2) THEN
442 IF (NCDKS+1-LTMP.EQ.0) THEN
446 CALL HWWARN('HWURES',52,*160)
450 C Normalize scaled spin weights
456 150 CLDKWT(I)=CLDKWT(I)*RWTMX
458 C Swap order if lightest hadron of flavour 11 not first
460 IF (IMN.NE.LTMP) THEN
466 NCLDK(LTMP)=NCLDK(IMN)
468 CLDKWT(LTMP)=CLDKWT(IMN)
476 160 IF (NTMP.EQ.0) THEN
480 CALL HWWARN('HWURES',53,*180)
484 IF (NCDKS+NTMP.GT.NMXCDK) CALL HWWARN('HWURES',104,*999)
486 C Store hadrons for |ssbar> channel and normalize their weights
496 170 CLDKWT(J)=CDWTMP(I)*RWTMX
498 C Swap order if lightest hadron of flavour 33 not first
506 NCLDK(NCDKS+1)=NCLDK(NCDKS+IMN2)
508 CLDKWT(NCDKS+1)=CLDKWT(NCDKS+IMN2)
510 NCLDK(NCDKS+IMN2)=ITMP
512 CLDKWT(NCDKS+IMN2)=WTMP
520 RESTMP(90)=FLOAT(NCDKS+1-LTMP)
524 RESTMP(91)=FLOAT(NTMP)
526 C Set pointers to hadrons of given flavours for cluster decays
536 RMIN(I,J)=RMASS(NCLDK(LOCN(I,2)))+RMASS(NCLDK(LOCN(I,2)))+1.D-2
544 RMIN(I,J)=RMASS(NCLDK(LOCN(I,J)))
554 *CMZ :- -26/04/91 11.11.56 by Bryan Webber
556 *-- Author : Bryan Webber
558 C-----------------------------------------------------------------------
560 SUBROUTINE HWUROB(R,P,Q)
562 C-----------------------------------------------------------------------
564 C ROTATES VECTORS BY INVERSE OF ROTATION MATRIX R
566 C-----------------------------------------------------------------------
568 DOUBLE PRECISION S1,S2,S3,R(3,3),P(3),Q(3)
570 S1=P(1)*R(1,1)+P(2)*R(2,1)+P(3)*R(3,1)
572 S2=P(1)*R(1,2)+P(2)*R(2,2)+P(3)*R(3,2)
574 S3=P(1)*R(1,3)+P(2)*R(2,3)+P(3)*R(3,3)