source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/radiativetransfer/include/RadiativeFactory.hh @ 114

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

actual version of ESAF at CCin2p3

File size: 1.4 KB
Line 
1// ESAF : Euso Simulation and Analysis Framework
2// $Id: RadiativeFactory.hh 1759 2005-04-19 00:15:48Z thea $
3// S. Moreggia created 27 October 2003
4//
5// Factory class is a singleton
6// Build objects needed for radiative transfer according to config parameters
7
8#ifndef __RADIATIVEFACTORY_HH__
9#define __RADIATIVEFACTORY_HH__
10
11#include "EsafConfigurable.hh"
12#include "EsafMsgSource.hh"
13
14class Ground;
15class RadiativeProcessesCalculator;
16class ClearSkyPropagator;
17class InCloudsPropagator;
18
19class RadiativeFactory : public EsafConfigurable, public EsafMsgSource  {
20public:
21
22    // dtor
23    virtual ~RadiativeFactory();
24    // to get the instance
25    static RadiativeFactory* Get();
26   
27    // Build and return the ExtinctionCalculator object
28    RadiativeProcessesCalculator* GetRadiativeProcessesCalculator() const;
29
30    // Build and return the Ground object
31    Ground* GetGround() const;
32   
33    // Build and returns the InCloudsPropagator object
34    ClearSkyPropagator* GetClearSkyPropagator(const Ground*) const;
35
36    // Build and returns the InCloudsPropagator object
37    InCloudsPropagator* GetInCloudsPropagator(const Ground*) const;
38   
39    EsafConfigClass(RadiativeTransfer,RadiativeFactory)
40
41private:
42   
43    // private ctor
44    RadiativeFactory();
45   
46    // single instance
47    static RadiativeFactory* fMe;
48
49    ClassDef(RadiativeFactory,0)
50};
51   
52
53#endif /* __RADIATIVEFACTORY_HH__ */
Note: See TracBrowser for help on using the repository browser.