// ESAF : Euso Simulation and Analysis Framework
// $Id: UniformLayersCloudsPropagator.hh,v 1.6 2005/04/14 16:39:26 moreggia Exp $
// Author: Sylvain Moreggia   Aug, 19 2004

#ifndef __UNIFORMLAYERSCLOUDSPROPAGATOR_HH_
#define __UNIFORMLAYERSCLOUDSPROPAGATOR_HH_

#include "euso.hh"
#include "InCloudsPropagator.hh"

/*******************************************************************************
 *
 * UniformLayersCloudsPropagator: class description
 *
 * Associated with UniformLayersClouds objects
 *
 *
 ******************************************************************************/


class UniformLayersCloudsPropagator : public InCloudsPropagator {
public:
    
    // ctor (should not be used)
    UniformLayersCloudsPropagator();
  
    // ctor, copy RadiatvieTransfer ground description
    UniformLayersCloudsPropagator(const Ground*);
  
    // dtor
    virtual ~UniformLayersCloudsPropagator();
    
    // Transport a BunchOfPhotons in cloudy conditions,
    // generating SinglePhotons all along the travel (ListPhotonsInAtmosphere filled)
    virtual Medium Go(BunchOfPhotons&,ListPhotonsInAtmosphere&) const;
    
    // get ready for next event
    virtual void Reset() {}
    
private:

    ClassDef(UniformLayersCloudsPropagator,0)
};

#endif  /* __UNIFORMLAYERSCLOUDSPROPAGATOR_HH_ */