FUNCTION PHOCHA(IDHEP) C.---------------------------------------------------------------------- C. C. PHOTOS: PHOton radiation in decays CHArge determination C. C. Purpose: Calculate the charge of particle with code IDHEP. The C. code of the particle is defined by the Particle Data C. Group in Phys. Lett. B204 (1988) 1. C. C. Input Parameter: IDHEP C. C. Output Parameter: Funtion value = charge of particle with code C. IDHEP C. C. Author(s): E. Barberio and B. van Eijk Created at: 29/11/89 C. Last update: 02/01/90 C. C.---------------------------------------------------------------------- IMPLICIT NONE REAL*8 PHOCHA INTEGER IDHEP,IDABS,Q1,Q2,Q3 C-- C-- Array 'CHARGE' contains the charge of the first 101 particles ac- C-- cording to the PDG particle code... (0 is added for convenience) REAL*8 CHARGE(0:100) DATA CHARGE/ 0.D0, &-0.3333333333D0, 0.6666666667D0, -0.3333333333D0, 0.6666666667D0, &-0.3333333333D0, 0.6666666667D0, -0.3333333333D0, 0.6666666667D0, & 2*0.D0, -1.D0, 0.D0, -1.D0, 0.D0, -1.D0, 0.D0, -1.D0, 6*0.D0, & 1.D0, 12*0.D0, 1.D0, 63*0.D0/ IDABS=ABS(IDHEP) IF (IDABS.LE.100) THEN C-- C-- Charge of quark, lepton, boson etc.... PHOCHA = CHARGE(IDABS) ELSE C-- C-- Check on particle build out of quarks, unpack its code... Q3=MOD(IDABS/1000,10) Q2=MOD(IDABS/100,10) Q1=MOD(IDABS/10,10) IF (Q3.EQ.0) THEN C-- C-- ...meson... IF(MOD(Q2,2).EQ.0) THEN PHOCHA=CHARGE(Q2)-CHARGE(Q1) ELSE PHOCHA=CHARGE(Q1)-CHARGE(Q2) ENDIF ELSE C-- C-- ...diquarks or baryon. PHOCHA=CHARGE(Q1)+CHARGE(Q2)+CHARGE(Q3) ENDIF ENDIF C-- C-- Find the sign of the charge... IF (IDHEP.LT.0.D0) PHOCHA=-PHOCHA IF (PHOCHA**2.lt.1d-6) PHOCHA=0.D0 RETURN END