// ESAF : Euso Simulation and Analysis Framework // $Id: RadiativeProcessesCalculator.hh,v 1.14 2005/04/14 12:44:43 moreggia Exp $ // Sylvain Moreggia created Jan, 9 2004 #ifndef __RADIATIVEPROCESSESCALCULATOR_HH_ #define __RADIATIVEPROCESSESCALCULATOR_HH_ #include "euso.hh" #include #include #include "EarthVector.hh" #include "EsafMsgSource.hh" class BunchOfPhotons; class SinglePhoton; class RadiativeProcessesCalculator : public EsafMsgSource { public: // ctor RadiativeProcessesCalculator(); // dtor virtual ~RadiativeProcessesCalculator(); // Total transmission between photon position and finalpos virtual Double_t Trans(const SinglePhoton&, const EarthVector&) const = 0; // Total transmission between bunch and a final position virtual void Trans(const BunchOfPhotons&,const EarthVector&,vector&) const = 0; // Scattering phase function virtual Double_t PhaseFunction(string,const BunchOfPhotons&,const EarthVector&,Double_t) const; // get ready for next event virtual void Reset() = 0; // Get methods inline string GetName() {return fName;} protected: string fName; ClassDef(RadiativeProcessesCalculator,0) }; #endif /* __RADIATIVEPROCESSESCALCULATOR_HH_ */