#ifndef __DRCOPTMATLITHOTECQ0_H__ #define __DRCOPTMATLITHOTECQ0_H__ /*! \brief Class for optical material representation. In this case the fused silica grade Q0 from Lithotec. This is more an example: the material parameters are general fused quartz parameters. The following cefficients come from a fit to data of http://r.home.cern.ch/r/richrd26/www/hmpid/richsim.html (UV) and from visible light data from Kohlrausch (german text book) */ class DrcOptMatLithotecQ0 : public DrcOptMatAbs { protected: //! Sellmeier coefficient for refractive index. double m_f1; //! Sellmeier coefficient for refractive index. double m_e1; //! Sellmeier coefficient for refractive index. double m_f2; //! Sellmeier coefficient for refractive index. double m_e2; //! Random generator. mutable TRandom m_ran; private: /*! \brief Auxiliary function for assignment operator and copy constructor.. \param s The object to copy. */ void copy(const DrcOptMatLithotecQ0& s); public: //! Empty constructor. DrcOptMatLithotecQ0(); /*! Copy constructor. /param Object to copy. */ DrcOptMatLithotecQ0(const DrcOptMatLithotecQ0& mat); /*! Assignment operator. /param Object to assign. */ DrcOptMatLithotecQ0& operator=(const DrcOptMatLithotecQ0& mat); // Implementation of pure virtual functions from base class. DrcOptMatLithotecQ0* clone() const; double refIndex(const double lambda) const; double refIndexDeriv(const double lambda) const; bool absorptionFlag(double lambda, double length) const; }; #endif