--- /dev/null
+#ifndef FOPPHCM_H
+#define FOPPHCM_H 1
+
+#include "Rtypes.h"
+#include "cfortran.h"
+#include "Fdimpar.h"
+
+extern "C" {
+/*
+*=== Opphcm ===========================================================*
+*
+*----------------------------------------------------------------------*
+* *
+* OPtical PHoton CoMmon: *
+* *
+* Created on 19 september 1997 by Alfredo Ferrari & Paola Sala *
+* Infn - Milan *
+* *
+* Last change on 11-jan-99 by Alfredo Ferrari *
+* *
+* Opphpr (ip,im) = ip_th optical property parameter of the im_th *
+* material (non metal) *
+* ip = *
+* 1: refraction index *
+* 2: absorption coeff. (cm^-1) *
+* 3: diffusion coeff. (cm^-1) *
+* 4: refraction index 1st derivative *
+* 5: absorption 1st derivative *
+* 6: diffusion 1st derivative *
+* 7: refraction index 2nd derivative *
+* 8: absorption 2nd derivative *
+* 9: diffusion 2nd derivative *
+* 10: refraction index 3rd derivative *
+* 11: absorption 3rd derivative *
+* 12: diffusion 3rd derivative *
+* metal: *
+* ip = *
+* 1: refraction index (not used) *
+* 2: absorption coeff. (cm^-1) (not used) *
+* 3: 1 - reflectivity index *
+* 7: 1 - reflectivity index 1st derivative *
+* 9: 1 - reflectivity index 2nd derivative *
+* 12: 1 - reflectivity index 3rd derivative *
+* Emncer (im) = minimum energy for Cerenkov photon production *
+* for im_th medium *
+* Emxcer (im) = maximum energy for Cerenkov photon production *
+* for im_th medium *
+* Rmxcer (im) = maximum refractive index in the energy range *
+* of interest for Cerenkov photon production *
+* for im_th medium *
+* Escint (je,im) = energy for je_th scintillation photon produc- *
+* tion for im_th medium *
+* Fscint (je,im) = fraction of energy emitted as the je_th scin- *
+* tillation photon energy for im_th medium *
+* Sscint (je,im) = sensitivity for the je_th scintillation photon*
+* energy for im_th medium *
+* Tscint (je,im) = time constant of je_th scintillation photon *
+* production for im_th medium *
+* Emntrd (im) = minimum energy for transition radiation photon*
+* production for im_th medium *
+* Emxtrd (im) = maximum energy for transition radiation photon*
+* production for im_th medium *
+* Wvmnop (im) = minimum wavelength for opt. photon transport *
+* for im_th medium (default: 250 nm) *
+* Wvcnop (im) = central wavelength for opt. photon transport *
+* for im_th medium (default: 589 nm, Na D) *
+* Wvmxop (im) = maximum wavelength for opt. photon transport *
+* for im_th medium (default: 600 nm) *
+* Ommnop (im) = minimum 2pi x freq. for opt. photon transport *
+* for im_th medium *
+* Omcnop (im) = central 2pi x freq. for opt. photon transport *
+* for im_th medium *
+* Ommxop (im) = maximum 2pi x freq. for opt. photon transport *
+* for im_th medium *
+* Wvmnsn = minimum wavelength for opt. photon sensitivity*
+* (default: 25 nm) *
+* Wvcnsn = central wavelength for opt. photon sensitivity*
+* (default: 589 nm, Na D) *
+* Wvmxsn = maximum wavelength for opt. photon sensitivity*
+* for im_th medium (default: 6000 nm) *
+* Ommnsn = minimum 2pi x freq. for opt. photon sensiti- *
+* vity *
+* Omcnsn = central 2pi x freq. for opt. photon sensiti- *
+* vity *
+* Ommxsn = maximum 2pi x freq. for opt. photon sensiti- *
+* vity *
+* Opsnmx = maximum of optical photon sensitivity *
+* Rghnss (ib) = Roughness parameter for ib_th material-to-ma- *
+* terial boundary ib_th *
+* M1rghn (ib) = 1st material of ib_th material-to-material *
+* boundary *
+* M2rghn (ib) = 2nd material of ib_th material-to-material *
+* boundary *
+* M1rgbx (ix) = 1st region of ix_th region-to-region special *
+* boundary *
+* M2rgbx (ix) = 2nd region of ix_th region-to-region special *
+* boundary *
+* Lopprp (im) = logical flag for optical properties of im_th *
+* material *
+* Lopmtl (im) = logical flag whether the im_th optical mate- *
+* rial is a metal or not *
+* Lwvopp (im) = logical flag whether optical properties of *
+* im_th material are expressed as a function of *
+* wavelength (true) or 2pi x frequency (false). *
+* By default it is true. *
+* Lwvops = logical flag whether optical photon sensiti- *
+* vities are expressed as a function of wave- *
+* length (true) or 2pi x frequency (false). *
+* By default it is true. *
+* Lcrnkv (im) = logical flag for Cerenkov photon production *
+* for im_th material *
+* Lscntl (im) = logical flag for scintillation photon produ- *
+* ction for im_th material *
+* Ltscnt (je,im) = logical flag for time constant for je_th *
+* scintill photon production in im_th medium *
+* Ltrrad (im) = logical flag for transition radiation photon *
+* production for im_th material *
+* Lopphp (im) = logical flag for transition radiation photon *
+* production for im_th material *
+* Nxoppb = number of material boundaries for which the *
+* roughness has been defined *
+* Nxopbx = number of region boundaries for which the *
+* special user routine ophbdx should be called *
+* *
+*----------------------------------------------------------------------*
+
+ PARAMETER ( MXOPSN = 4 )
+ PARAMETER ( MXOPPR = 12 )
+ PARAMETER ( MXOPPB = 20 )
+ PARAMETER ( MXOPBX = 40 )
+ PARAMETER ( MXSCPH = 3 )
+ PARAMETER ( WVMNTR = 250.D-07 )
+ PARAMETER ( WVCNTR = 589.D-07 )
+ PARAMETER ( WVMXTR = 600.D-07 )
+ LOGICAL LOPPRP, LOPMTL, LWVOPP, LCRNKV, LTRRAD, LSCNTL, LOPPHP,
+ & LWVOPS, LTSCNT
+ COMMON / OPPHCM / WVMNSN, WVCNSN, WVMXSN, OMMNSN, OMCNSN, OMMXSN,
+ & OPSNMX, OPSNPR (MXOPSN),OPPHPR (MXOPPR,MXXMDF),
+ & EMNCER (MXXMDF), EMXCER (MXXMDF), RMXCER (MXXMDF),
+ & EMNTRD (MXXMDF), EMXTRD (MXXMDF), WVMNOP (MXXMDF),
+ & WVMXOP (MXXMDF), WVCNOP (MXXMDF), OMMNOP (MXXMDF),
+ & OMMXOP (MXXMDF), OMCNOP (MXXMDF), RGHNSS (MXOPPB),
+ & ESCINT (MXSCPH,MXXMDF), FSCINT (MXSCPH,MXXMDF),
+ & SSCINT (MXSCPH,MXXMDF), TSCINT(MXSCPH,MXXMDF),
+ & M1RGHN (MXOPPB), M2RGHN (MXOPPB), M1RGBX (MXOPBX),
+ & M2RGBX (MXOPBX), LOPPRP (MXXMDF), LOPMTL (MXXMDF),
+ & LWVOPP (MXXMDF), LCRNKV (MXXMDF), LSCNTL (MXXMDF),
+ & LTRRAD (MXXMDF), LOPPHP (MXXMDF), LWVOPS, NXOPPB,
+ & NXOPBX, LTSCNT (MXSCPH,MXXMDF)
+*/
+ const Int_t mxopsn = 4;
+ const Int_t mxoppr = 12;
+ const Int_t mxoppb = 20;
+ const Int_t mxopbx = 40;
+ const Int_t mxscph = 3;
+ const Double_t wvmntr = 250.e-07;
+ const Double_t wvcntr = 589.e-07;
+ const Double_t wvmxtr = 600.e-07;
+
+ typedef struct {
+ Double_t wvmnsn;
+ Double_t wvcnsn;
+ Double_t wvmxsn;
+ Double_t ommnsn;
+ Double_t omcnsn;
+ Double_t ommxsn;
+ Double_t opsnmx;
+ Double_t opsnpr [mxopsn];
+ Double_t opphpr [mxxmdf][mxoppr];
+ Double_t emncer [mxxmdf];
+ Double_t emxcer [mxxmdf];
+ Double_t rmxcer [mxxmdf];
+ Double_t emntrd [mxxmdf];
+ Double_t emxtrd [mxxmdf];
+ Double_t wvmnop [mxxmdf];
+ Double_t wvmxop [mxxmdf];
+ Double_t wvcnop [mxxmdf];
+ Double_t ommnop [mxxmdf];
+ Double_t ommxop [mxxmdf];
+ Double_t omcnop [mxxmdf];
+ Double_t rghnss [mxoppb];
+ Double_t escint [mxxmdf][mxscph];
+ Double_t fscint [mxxmdf][mxscph];
+ Double_t sscint [mxxmdf][mxscph];
+ Double_t tscint [mxxmdf][mxscph];
+ Int_t m1rghn [mxoppb];
+ Int_t m2rghn [mxoppb];
+ Int_t m1rgbx [mxopbx];
+ Int_t m2rgbx [mxopbx];
+ Int_t lopprp [mxxmdf];
+ Int_t lopmtl [mxxmdf];
+ Int_t lwvopp [mxxmdf];
+ Int_t lcrnkv [mxxmdf];
+ Int_t lscntl [mxxmdf];
+ Int_t ltrrad [mxxmdf];
+ Int_t lopphp [mxxmdf];
+ Int_t lwvops;
+ Int_t nxoppb;
+ Int_t nxopbx;
+ Int_t ltscnt [mxxmdf][mxscph];
+ } opphcmCommon;
+#define OPPHCM COMMON_BLOCK(OPPHCM,opphcm)
+COMMON_BLOCK_DEF(opphcmCommon,OPPHCM);
+}
+#endif