// ESAF : Euso Simulation and Analysis Framework // $Id: FastRadiativeProcessesCalculator.hh,v 1.13 2005/10/27 13:54:35 moreggia Exp $ // Sylvain Moreggia created Jan, 29 2004 #ifndef __FASTRADIATIVEPROCESSESCALCULATOR_HH_ #define __FASTRADIATIVEPROCESSESCALCULATOR_HH_ #include "euso.hh" #include "RadiativeProcessesCalculator.hh" class EsafDirection; class BunchOfPhotons; class SinglePhoton; class FastRadiativeProcessesCalculator : public RadiativeProcessesCalculator { public: // ctor FastRadiativeProcessesCalculator(); // dtor virtual ~FastRadiativeProcessesCalculator(); // Total transmission between photon position and finalpos (EUSO() by default) virtual Double_t Trans(const SinglePhoton&, const EarthVector& finalpos, Double_t* dummy=0) const; // Total transmission between bunch and a final position virtual void Trans(const BunchOfPhotons&,const EarthVector&,vector&) const; // Generate a random rayleigh-scattering position expressed in grammage Double_t RandomGrammage_RaylScat(Double_t Wl) const; // get ready for next event void Reset() {} private: ClassDef(FastRadiativeProcessesCalculator,0) }; #endif /* __FASTRADIATIVEPROCESSESCALCULATOR_HH_ */