// ESAF : Euso Simulation and Analysis Framework // $Id: RadiativeTransfer.hh,v 1.17 2005/04/14 12:44:43 moreggia Exp $ // D. De Marco - M. Pallavicini created Jan, 20 2002 // // IMPORTANT : EVERY child of this generic class MUST CONTAIN and HANDLE // creation and destruction of the PhotonsOnPupil* pointer // (the object MUST be in the HEAP) // #ifndef __RADIATIVETRANSFER_HH_ #define __RADIATIVETRANSFER_HH_ #include "euso.hh" #include "EsafConfigurable.hh" #include "EsafMsgSource.hh" class PhotonsOnPupil; class PhotonsInAtmosphere; class Ground; class RadiativeProcessesCalculator; class DetectorGeometry; class EEvent; class RadiativeTransfer : public EsafConfigurable, public EsafMsgSource { public: // ctor RadiativeTransfer(); // dtor virtual ~RadiativeTransfer(); // Transfers atmospheric photons until EUSO pupil virtual PhotonsOnPupil *Get( PhotonsInAtmosphere*,const DetectorGeometry* dg ) = 0; // Get ground object inline const Ground* GetGround() const {return fGround;} // get ready for next event // NB: fGround must be reset by child classes virtual void Reset() = 0; EsafConfigClass(RadiativeTransfer,RadiativeTransfer) protected: Ground* fGround; // ground description ClassDef(RadiativeTransfer,0) }; #endif /* __RADIATIVETRANSFER_HH_ */