5 * Revision 1.1.1.1 1995/10/24 10:21:47 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/03 10/10/94 15.45.50 by S.Ravndal
12 SUBROUTINE GDRMAT(IMATES,IPART,CHMECA,MMEC)
13 C. ******************************************************************
15 C. * DRAW cross sections and energy loss tables *
16 C. * material IMATE, particle IPART, mecanism name CHMECA, *
18 C. * The CHMECAnism name can be : *
19 C. * 'HADF' 'INEF' 'ELAF' 'FISF' 'CAPF' *
20 C. * 'HADG' 'INEG' 'ELAG' 'FISG' 'CAPG' *
21 C. * 'LOSS' 'PHOT' 'ANNI' 'COMP' 'BREM' *
22 C. * 'PAIR' 'DRAY' 'PFIS' 'RAYL' 'HADG' *
23 C. * 'MUNU' 'RANG' 'STEP' *
25 C. * For Hadronic particles it also computes the *
26 C. * hadronic cross section from FLUKA ( '***F' ) or *
27 C. * GHEISHA ( '***G' ) programs: *
28 C. * HADF or HADG -- total *
29 C. * INEF or INEG -- inelastic *
30 C. * ELAF or ELAG -- elastic *
31 C. * FISF or FISG -- fission (0.0 for FLUKA) *
32 C. * CAPF or CAPG -- neutron capture (0.0 for FLUKA) *
34 C. * Input parameters *
35 C. * IMATE Geant material number *
36 C. * IPART Geant particle number *
37 C. * CHMECA mechanism name of the bank to be fetched *
39 C. * ==>Called by : <USER> GXCONT *
40 C. * Authors R.Brun, M.Maire ********* *
42 C. ******************************************************************
43 #include "geant321/gcbank.inc"
44 #include "geant321/gcmulo.inc"
45 #include "geant321/gconsp.inc"
47 CHARACTER*4 CHMECA(MMEC)
48 CHARACTER*20 MESSGE,NAMEM,NAMEP
51 #include "geant321/gcnmec.inc"
52 DIMENSION CRY(201),IYES(NMECA+2),XC(2)
63 CALL GPLMAT(IMATES,IPART,CHMECA(JMEC),NEKBIN,ELOW,IDM)
68 IBASE = 10000*IMATE+100*IPART
82 IF(CRS.GT.1.E10)GO TO 20
83 IF(CRS.LT.YMIN)YMIN=CRS
84 IF(CRS.GT.YMAX)YMAX=CRS
93 CALL IGSET('MSCF',0.8)
94 CALL IGSET('TXAL',10.)
100 CALL HPLFRA(ELOW(1),ELOW(NEKBIN+1),YMIN,YMAX,' ')
104 CALL UHTOC(IQ(JMA+1),4,NAMEM,20)
106 IF(NAMEM(NCHM:NCHM).EQ.'$')THEN
110 CALL UHTOC(IQ(JPA+1),4,NAMEP,20)
112 IF(NAMEP(NCHP:NCHP).EQ.'$')THEN
115 TITLE='Tables for '//NAMEP(1:NCHP)//' in '//NAMEM(1:NCHM)
117 CALL HPLTOC(XCT,YMAX,XCTT,YCTT,NT)
120 CALL IGSET('CHHE',0.28)
121 CALL ITX(XCTT,YCTT,TITLE)
130 IF(IYES(IDB).NE.0)THEN
131 IF(HSYM.EQ.31) HSYM = 20
133 IF(HCOL.EQ.7) HCOL = 0
135 ID=10000*IMATE+100*IPART+IDB
136 CALL HUNPAK(ID,CRY,'HIST',1)
138 CALL IGSET('MTYP',HSYM)
139 CALL IGSET('PMCI',HCOL)
140 CALL IGSET('PLCI',HCOL)
144 IF(CRY(IBIN).GT.0.) THEN
152 CALL IGRAPH(KMAX-KMIN+1,ELOW(KMIN),CRY(KMIN),'PLGXY')
159 YC=10.**(YLA-(NSHIF-1)*0.8*DELTA)
160 CALL HPLTOC(XC(IND),YC,XCM,YCM,NT)
163 IF(IDB.LE.NMECA) THEN
164 IF (CHNMEC(IDB).EQ.'LOSS') THEN
165 MESSGE=CHNMEC(IDB)//' (MeV/cm)'
166 ELSEIF (CHNMEC(IDB).EQ.'RANG') THEN
167 MESSGE=CHNMEC(IDB)//' (cm)'
168 ELSEIF (CHNMEC(IDB).EQ.'STEP') THEN
169 MESSGE=CHNMEC(IDB)//' (cm)'
171 MESSGE=CHNMEC(IDB)//' X-sec'
173 MESSGE(LNBLNK(MESSGE)+1:) = ' (barn)'
175 MESSGE(LNBLNK(MESSGE)+1:) = ' (1/cm)'
178 ELSEIF(IDB.EQ.NMECA+1) THEN
181 MESSGE(LNBLNK(MESSGE)+1:) = ' (barn)'
183 MESSGE(LNBLNK(MESSGE)+1:) = ' (1/cm)'
185 ELSEIF(IDB.EQ.NMECA+2) THEN
186 MESSGE='Mean free path (cm)'
188 CALL IGSET('CHHE',0.28)
189 CALL ITX(XCM+0.5,YCM,MESSGE)
193 CALL HPLOPT('LINX',1)
194 CALL HPLOPT('LINY',1)
195 CALL IGSET('PMCI',1.)
196 CALL IGSET('PLCI',1.)