]>
Commit | Line | Data |
---|---|---|
1b866d4b | 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 |