// ESAF : Euso Simulation and Analysis Framework // $Id: ClearSkyPropagator.hh,v 1.7 2005/04/14 16:39:25 moreggia Exp $ // Sylvain Moreggia created Jun, 1 2004 #ifndef __CLEARSKYPROPAGATOR_HH_ #define __CLEARSKYPROPAGATOR_HH_ #include "euso.hh" #include "BunchPropagator.hh" class RadiativeProcessesCalculator; class ClearSkyPropagator : public BunchPropagator { public: // ctor (should not be used) ClearSkyPropagator(); // ctor, copy RadiatvieTransfer ground description ClearSkyPropagator(const Ground*); // dtor virtual ~ClearSkyPropagator(); // Transport a BunchOfPhotons in clear sky conditions // if relevant, generates SinglePhotons all along the travel (filling ListPhotonsInAtmosphere) virtual Medium Go(BunchOfPhotons&,ListPhotonsInAtmosphere&) const = 0; // get ready for next event // NB: fCalcul must be reset by child classes virtual void Reset() = 0; // Get members methods inline Int_t GetOrder() const {return fOrder;} protected: RadiativeProcessesCalculator* fCalcul; // calculate coefficients of photon-atmosphere interactions Int_t fOrder; // order of propagation complexity ClassDef(ClearSkyPropagator,0) }; #endif /* __CLEARSKYPROPAGATOR_HH_ */