Common blocks to access material properties and
[u/mrichter/AliRoot.git] / TFluka / Fopphcm.h
1 #ifndef FOPPHCM_H
2 #define FOPPHCM_H 1
3
4 #include "Rtypes.h"
5 #include "cfortran.h"
6 #include "Fdimpar.h"
7
8 extern "C" {
9 /*
10 *=== Opphcm ===========================================================*
11 *
12 *----------------------------------------------------------------------*
13 *                                                                      *
14 *     OPtical PHoton CoMmon:                                           *
15 *                                                                      *
16 *     Created on 19 september 1997 by    Alfredo Ferrari & Paola Sala  *
17 *                                                   Infn - Milan       *
18 *                                                                      *
19 *     Last change on 11-jan-99     by    Alfredo Ferrari               *
20 *                                                                      *
21 *       Opphpr (ip,im) = ip_th optical property parameter of the im_th *
22 *                        material (non metal)                          *
23 *                       ip =                                           *
24 *                            1: refraction index                       *
25 *                            2: absorption  coeff. (cm^-1)             *
26 *                            3: diffusion   coeff. (cm^-1)             *
27 *                            4: refraction index 1st derivative        *
28 *                            5: absorption 1st derivative              *
29 *                            6: diffusion  1st derivative              *
30 *                            7: refraction index 2nd derivative        *
31 *                            8: absorption 2nd derivative              *
32 *                            9: diffusion  2nd derivative              *
33 *                           10: refraction index 3rd derivative        *
34 *                           11: absorption 3rd derivative              *
35 *                           12: diffusion  3rd derivative              *
36 *                        metal:                                        *
37 *                       ip =                                           *
38 *                            1: refraction index (not used)            *
39 *                            2: absorption  coeff. (cm^-1) (not used)  *
40 *                            3: 1 - reflectivity index                 *
41 *                            7: 1 - reflectivity index 1st derivative  *
42 *                            9: 1 - reflectivity index 2nd derivative  *
43 *                           12: 1 - reflectivity index 3rd derivative  *
44 *          Emncer (im) = minimum energy for Cerenkov photon production *
45 *                        for im_th medium                              *
46 *          Emxcer (im) = maximum energy for Cerenkov photon production *
47 *                        for im_th medium                              *
48 *          Rmxcer (im) = maximum refractive index in the energy range  *
49 *                        of interest for Cerenkov photon production    *
50 *                        for im_th medium                              *
51 *       Escint (je,im) = energy for je_th scintillation photon produc- *
52 *                        tion for im_th medium                         *
53 *       Fscint (je,im) = fraction of energy emitted as the je_th scin- *
54 *                        tillation photon energy for im_th medium      *
55 *       Sscint (je,im) = sensitivity for the je_th scintillation photon*
56 *                        energy for im_th medium                       *
57 *       Tscint (je,im) = time constant of  je_th scintillation photon  *
58 *                        production  for im_th medium                  *
59 *          Emntrd (im) = minimum energy for transition radiation photon*
60 *                        production for im_th medium                   *
61 *          Emxtrd (im) = maximum energy for transition radiation photon*
62 *                        production for im_th medium                   *
63 *          Wvmnop (im) = minimum wavelength for opt. photon transport  *
64 *                        for im_th medium (default: 250 nm)            *
65 *          Wvcnop (im) = central wavelength for opt. photon transport  *
66 *                        for im_th medium (default: 589 nm, Na D)      *
67 *          Wvmxop (im) = maximum wavelength for opt. photon transport  *
68 *                        for im_th medium (default: 600 nm)            *
69 *          Ommnop (im) = minimum 2pi x freq. for opt. photon transport *
70 *                        for im_th medium                              *
71 *          Omcnop (im) = central 2pi x freq. for opt. photon transport *
72 *                        for im_th medium                              *
73 *          Ommxop (im) = maximum 2pi x freq. for opt. photon transport *
74 *                        for im_th medium                              *
75 *               Wvmnsn = minimum wavelength for opt. photon sensitivity*
76 *                        (default:  25 nm)                             *
77 *               Wvcnsn = central wavelength for opt. photon sensitivity*
78 *                        (default: 589 nm, Na D)                       *
79 *               Wvmxsn = maximum wavelength for opt. photon sensitivity*
80 *                        for im_th medium (default: 6000 nm)           *
81 *               Ommnsn = minimum 2pi x freq. for opt. photon sensiti-  *
82 *                        vity                                          *
83 *               Omcnsn = central 2pi x freq. for opt. photon sensiti-  *
84 *                        vity                                          *
85 *               Ommxsn = maximum 2pi x freq. for opt. photon sensiti-  *
86 *                        vity                                          *
87 *               Opsnmx = maximum of optical photon sensitivity         *
88 *          Rghnss (ib) = Roughness parameter for ib_th material-to-ma- *
89 *                        terial boundary ib_th                         *
90 *          M1rghn (ib) = 1st material of ib_th material-to-material    *
91 *                        boundary                                      *
92 *          M2rghn (ib) = 2nd material of ib_th material-to-material    *
93 *                        boundary                                      *
94 *          M1rgbx (ix) = 1st region of ix_th region-to-region special  *
95 *                        boundary                                      *
96 *          M2rgbx (ix) = 2nd region of ix_th region-to-region special  *
97 *                        boundary                                      *
98 *          Lopprp (im) = logical flag for optical properties of im_th  *
99 *                        material                                      *
100 *          Lopmtl (im) = logical flag whether the im_th optical mate-  *
101 *                        rial is a metal or not                        *
102 *          Lwvopp (im) = logical flag whether optical properties of    *
103 *                        im_th material are expressed as a function of *
104 *                        wavelength (true) or 2pi x frequency (false). *
105 *                        By default it is true.                        *
106 *               Lwvops = logical flag whether optical photon sensiti-  *
107 *                        vities are expressed as a function of wave-   *
108 *                        length (true) or 2pi x frequency (false).     *
109 *                        By default it is true.                        *
110 *          Lcrnkv (im) = logical flag for Cerenkov photon production   *
111 *                        for im_th material                            *
112 *          Lscntl (im) = logical flag for scintillation photon produ-  *
113 *                        ction for im_th material                      *
114 *       Ltscnt (je,im) = logical flag  for time constant for je_th     *
115 *                        scintill photon production in im_th medium    *
116 *          Ltrrad (im) = logical flag for transition radiation photon  *
117 *                        production for im_th material                 *
118 *          Lopphp (im) = logical flag for transition radiation photon  *
119 *                        production for im_th material                 *
120 *               Nxoppb = number of material boundaries for which the   *
121 *                        roughness has been defined                    *
122 *               Nxopbx = number of region boundaries for which the     *
123 *                        special user routine ophbdx should be called  *
124 *                                                                      *
125 *----------------------------------------------------------------------*
126
127       PARAMETER ( MXOPSN =  4 )
128       PARAMETER ( MXOPPR = 12 )
129       PARAMETER ( MXOPPB = 20 )
130       PARAMETER ( MXOPBX = 40 )
131       PARAMETER ( MXSCPH =  3 )
132       PARAMETER ( WVMNTR = 250.D-07 )
133       PARAMETER ( WVCNTR = 589.D-07 )
134       PARAMETER ( WVMXTR = 600.D-07 )
135       LOGICAL LOPPRP, LOPMTL, LWVOPP, LCRNKV, LTRRAD, LSCNTL, LOPPHP,
136      &        LWVOPS, LTSCNT
137       COMMON / OPPHCM /  WVMNSN, WVCNSN, WVMXSN, OMMNSN, OMCNSN, OMMXSN,
138      &                   OPSNMX, OPSNPR (MXOPSN),OPPHPR (MXOPPR,MXXMDF),
139      &                EMNCER (MXXMDF), EMXCER (MXXMDF), RMXCER (MXXMDF),
140      &                EMNTRD (MXXMDF), EMXTRD (MXXMDF), WVMNOP (MXXMDF),
141      &                WVMXOP (MXXMDF), WVCNOP (MXXMDF), OMMNOP (MXXMDF),
142      &                OMMXOP (MXXMDF), OMCNOP (MXXMDF), RGHNSS (MXOPPB),
143      &                ESCINT (MXSCPH,MXXMDF),    FSCINT (MXSCPH,MXXMDF),
144      &                SSCINT (MXSCPH,MXXMDF), TSCINT(MXSCPH,MXXMDF),
145      &                M1RGHN (MXOPPB), M2RGHN (MXOPPB), M1RGBX (MXOPBX),
146      &                M2RGBX (MXOPBX), LOPPRP (MXXMDF), LOPMTL (MXXMDF),
147      &                LWVOPP (MXXMDF), LCRNKV (MXXMDF), LSCNTL (MXXMDF),
148      &                LTRRAD (MXXMDF), LOPPHP (MXXMDF), LWVOPS, NXOPPB,
149      &                NXOPBX, LTSCNT (MXSCPH,MXXMDF)
150 */
151     const Int_t mxopsn =  4;
152     const Int_t mxoppr = 12;
153     const Int_t mxoppb = 20;
154     const Int_t mxopbx = 40;
155     const Int_t mxscph =  3;
156     const Double_t wvmntr = 250.e-07;
157     const Double_t wvcntr = 589.e-07;
158     const Double_t wvmxtr = 600.e-07;
159
160     typedef struct {
161         Double_t wvmnsn;
162         Double_t wvcnsn;
163         Double_t wvmxsn;
164         Double_t ommnsn;
165         Double_t omcnsn;
166         Double_t ommxsn;
167         Double_t opsnmx;
168         Double_t opsnpr [mxopsn];
169         Double_t opphpr [mxxmdf][mxoppr];
170         Double_t emncer [mxxmdf];
171         Double_t emxcer [mxxmdf];
172         Double_t rmxcer [mxxmdf];
173         Double_t emntrd [mxxmdf];
174         Double_t emxtrd [mxxmdf];
175         Double_t wvmnop [mxxmdf];
176         Double_t wvmxop [mxxmdf];
177         Double_t wvcnop [mxxmdf];
178         Double_t ommnop [mxxmdf];
179         Double_t ommxop [mxxmdf];
180         Double_t omcnop [mxxmdf];
181         Double_t rghnss [mxoppb];
182         Double_t escint [mxxmdf][mxscph];
183         Double_t fscint [mxxmdf][mxscph];
184         Double_t sscint [mxxmdf][mxscph];
185         Double_t tscint [mxxmdf][mxscph];
186         Int_t    m1rghn [mxoppb];
187         Int_t    m2rghn [mxoppb];
188         Int_t    m1rgbx [mxopbx];
189         Int_t    m2rgbx [mxopbx];
190         Int_t    lopprp [mxxmdf];
191         Int_t    lopmtl [mxxmdf];
192         Int_t    lwvopp [mxxmdf];
193         Int_t    lcrnkv [mxxmdf];
194         Int_t    lscntl [mxxmdf];
195         Int_t    ltrrad [mxxmdf];
196         Int_t    lopphp [mxxmdf];
197         Int_t    lwvops;
198         Int_t    nxoppb;
199         Int_t    nxopbx;
200         Int_t    ltscnt [mxxmdf][mxscph];
201     } opphcmCommon;
202 #define OPPHCM COMMON_BLOCK(OPPHCM,opphcm)
203 COMMON_BLOCK_DEF(opphcmCommon,OPPHCM);
204 }
205 #endif