source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/simulation/lighttoeuso/include/LightToEuso.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// ESAF : Euso Simulation and Analysis Framework
2// $Id: LightToEuso.hh 2604 2006-03-20 21:51:35Z thea $
3// Marco Pallavicini created Mar, 13 2002
4// Abstract class for all possible simulation chains up to
5// Euso Detector Simulation (excluded)
6// Basically, it brings a PhotonsOnPupil at the Euso entrance pupil
7//
8#ifndef __LIGHTTOEUSO_HH_
9#define __LIGHTTOEUSO_HH_
10
11#include "euso.hh"
12#include "EsafConfigurable.hh"
13#include "EsafMsgSource.hh"
14
15class EventGenerator;
16class LightSource;
17class RadiativeTransfer;
18class PhotonsOnPupil;
19class MCTruth;
20class PhysicsData;
21class EEvent;
22class DetectorGeometry;
23
24////////////////////////////////////////////////////////////////////////////////
25//                                                                            //
26//  LightToEuso                                                               //
27//                                                                            //
28//  Abstract interface for all the light propagators                          //
29//                                                                            //
30////////////////////////////////////////////////////////////////////////////////
31
32
33class LightToEuso : public EsafConfigurable, public EsafMsgSource {
34public:
35    LightToEuso( const string& name );
36    // ctor
37
38    virtual ~LightToEuso();
39    // dtor
40
41    // returns the photons on the pupil
42    virtual PhotonsOnPupil *Get(const DetectorGeometry*) = 0;
43   
44    virtual void Configure() = 0;
45    // configure
46   
47    virtual void Reset();
48    // get ready for next event
49
50    virtual MCTruth* GetTruth() = 0;
51    // get pointer to MonteCarlo Truth
52   
53    virtual PhysicsData* GetPhysics() = 0;
54    // get pointer to shower object
55
56    virtual void ReplaceInputFile( const char* ) = 0;
57    // change the input file name when meaningful
58
59    inline const string& GetName() const { return fName; }
60    // get the light to euso name
61   
62    virtual Bool_t ClearMemory() = 0;
63    // physically release the memory allocated by the arrays of this object
64   
65    EsafConfigClass(LightToEuso,LightToEuso)
66
67protected:
68    EventGenerator* fGenerator;          // event generator
69    LightSource* fLight;                 // light generator in atmosphere
70    RadiativeTransfer* fRadiative;       // radiative transport to euso   
71   
72    inline EventGenerator* GetGenerator() { return fGenerator; }
73    inline RadiativeTransfer* GetRadiative() { return fRadiative; }
74    inline LightSource* GetLightSource() { return fLight; }
75
76private:
77    string fName;
78
79    ClassDef(LightToEuso,0)
80};
81
82#endif  /* __LIGHTTOEUSO_HH_ */
83
Note: See TracBrowser for help on using the repository browser.