// ESAF : Euso Simulation and Analysis Framework // $Id: LightToEuso.hh,v 1.2 2005/04/14 12:43:23 moreggia Exp $ // Marco Pallavicini created Mar, 13 2002 // Abstract class for all possible simulation chains up to // Euso Detector Simulation (excluded) // Basically, it brings a PhotonsOnPupil at the Euso entrance pupil // #ifndef __LIGHTTOEUSO_HH_ #define __LIGHTTOEUSO_HH_ #include "euso.hh" #include "EsafConfigurable.hh" #include "EsafMsgSource.hh" class EventGenerator; class LightSource; class RadiativeTransfer; class PhotonsOnPupil; class MCTruth; class PhysicsData; class EEvent; class DetectorGeometry; class LightToEuso : public EsafConfigurable, public EsafMsgSource { public: // ctor LightToEuso( const string& name ); // dtor virtual ~LightToEuso(); // returns the photons on the pupil virtual PhotonsOnPupil *Get(const DetectorGeometry*) = 0; // configure virtual void Configure() = 0; // get ready for next event virtual void Reset(); // get pointer to MonteCarlo Truth virtual MCTruth* GetTruth() = 0; // get pointer to shower object virtual PhysicsData* GetPhysics() = 0; // change the input file name when meaningful virtual void ReplaceInputFile( const char* ) = 0; // get the light to euso name inline const string& GetName() const { return fName; } EsafConfigClass(LightToEuso,LightToEuso) protected: EventGenerator* fGenerator; // event generator LightSource* fLight; // light generator in atmosphere RadiativeTransfer* fRadiative; // radiative transport to euso inline EventGenerator* GetGenerator() { return fGenerator; } inline RadiativeTransfer* GetRadiative() { return fRadiative; } inline LightSource* GetLightSource() { return fLight; } private: string fName; ClassDef(LightToEuso,0) }; #endif /* __LIGHTTOEUSO_HH_ */