// $Id: OpticsFactory.hh,v 1.15 2004/12/23 00:39:44 thea Exp $ // Author: M.Pallavicini, D.Demarco /***************************************************************************** * ESAF: Euso Simulation and Analysis Framework * * * * Id: OpticsFactory * * Package: Optics * * Coordinator: Alessandro.Thea * * * *****************************************************************************/ #ifndef __OPTICSFACTORY_HH__ #define __OPTICSFACTORY_HH__ #include "OpticalSystem.hh" #include "FocalPlane.hh" #include "IdealFocalSurface.hh" #include "WallInteraction.hh" #include "Baffle.hh" #include "PmtGeometry.hh" #include "OpticalAdaptor.hh" #include "ConfigFileParser.hh" #include "Config.hh" class DetectorTransportManager; //////////////////////////////////////////////////////////////////////////////// // // // OpticsFactory // // // // Singleton & FactoryMethod // // // //////////////////////////////////////////////////////////////////////////////// class OpticsFactory : public EsafConfigurable { public: EsafConfigClass(Optics,OpticsFactory) private: static OpticsFactory *fgMe; OpticsFactory(); OpticalSystem *fOptics; FocalPlane *fFocalPlane; IdealFocalSurface *fIdealFocalSurface; WallInteraction *fWalls; Baffle *fBaffle; DetectorTransportManager *fTransportManager; public: virtual ~OpticsFactory() {} static OpticsFactory *Get(); void Build(); virtual OpticalSystem *GetOpticalSystem(); virtual FocalPlane *GetFocalPlane(); virtual IdealFocalSurface *GetIdealFocalSurface(); virtual WallInteraction *GetWalls(); virtual Baffle *GetBaffle(); virtual OpticalAdaptor *GetOA(); virtual DetectorTransportManager *GetTransportManager(); ClassDef(OpticsFactory,0) }; #endif /* __OPTICSFACTORY_HH__ */