source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/simulation/detector/optics/include/OpticsFactory.hh @ 117

Last change on this file since 117 was 117, checked in by moretto, 11 years ago

ESAF version compilable on mac OS

File size: 2.6 KB
Line 
1// $Id: OpticsFactory.hh 2849 2010-11-11 11:59:41Z biktem $
2// Author: M.Pallavicini, D.Demarco
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: OpticsFactory                                                        *
8 *  Package: Optics                                                          *
9 *  Coordinator: Alessandro.Thea                                             *
10 *                                                                           *
11 *****************************************************************************/
12
13#ifndef __OPTICSFACTORY_HH__
14#define __OPTICSFACTORY_HH__
15
16#include "OpticalSystem.hh"
17#include "FocalPlane.hh"
18#include "IdealFocalSurface.hh"
19#include "WallInteraction.hh"
20#include "Baffle.hh"
21#include "PmtGeometry.hh"
22#include "OpticalAdaptor.hh"
23#include "ConfigFileParser.hh"
24#include "Config.hh"
25
26class VirtualDetectorTransportManager;
27
28////////////////////////////////////////////////////////////////////////////////
29//                                                                            //
30// OpticsFactory                                                              //
31//                                                                            //
32// Singleton & FactoryMethod                                                  //
33//                                                                            //
34////////////////////////////////////////////////////////////////////////////////
35
36class OpticsFactory : public EsafConfigurable {
37public:
38    EsafConfigClass(Optics,OpticsFactory)
39private:
40    static OpticsFactory *fgMe;
41    OpticsFactory();
42
43    OpticalSystem*    fOptics;
44    FocalPlane*       fFocalPlane;
45//    IdealFocalSurface *fIdealFocalSurface;
46//    WallInteraction   *fWalls;
47//    Baffle            *fBaffle;
48//
49//    DetectorTransportManager *fTransportManager;
50
51public:
52    virtual ~OpticsFactory();
53    static OpticsFactory *Get();
54
55    void Build();
56
57    virtual     OpticalSystem *MakeOpticalSystem();
58    virtual        FocalPlane *MakeFocalPlane();
59    virtual IdealFocalSurface *MakeIdealFocalSurface();
60    virtual   WallInteraction *MakeWalls();
61    virtual            Baffle *MakeBaffle();
62    virtual    OpticalAdaptor *MakeOA();
63    virtual VirtualDetectorTransportManager *MakeTransportManager();
64
65    FocalPlane* GetFocalPlane()            { return fFocalPlane; }
66
67    ClassDef(OpticsFactory,0)
68};
69
70#endif /* __OPTICSFACTORY_HH__ */
Note: See TracBrowser for help on using the repository browser.