// ESAF : Euso Simulation and Analysis Framework // $Id: ShowerLightSource.hh,v 1.24 2005/10/21 09:11:13 moreggia Exp $ // Alessandro Thea created Nov, 24 2003 #ifndef __SHOWERLIGHTSOURCE_HH_ #define __SHOWERLIGHTSOURCE_HH_ #include "euso.hh" #include "LightSource.hh" #include "BunchOfPhotons.hh" #include "ShowerTrack.hh" #include #include class FluoCalculator; class CrkCalculator; class ListPhotonsInAtmosphere; class PhysicsData; class ShowerLightSource : public LightSource, public EsafMsgSource { public: // ctor ShowerLightSource(); // dtor virtual ~ShowerLightSource(); // generate photons virtual PhotonsInAtmosphere* Get( const PhysicsData* ); MCTruth* Truth(); // get ready for next event virtual void Reset(); EsafConfigClass(LightSource,ShowerLightSource) private: BunchOfPhotons* MakeFluoStep(const ShowerStep& step,TF2* EnergyDistribution, TF2* LateralDistribution,TF2* AngularDistribution); BunchOfPhotons* MakeCerenkovStep(const ShowerStep& step, TF2* EnergyDistribution, TF2* LateralDistribution,TF2* AngularDistribution); void Configure(); ListPhotonsInAtmosphere* fPh_in_atmo; FluoCalculator* fFluocalcul; CrkCalculator* fCrkcalcul; Double_t fShowerNemax; string fEnergyDistributionType; string fEnergyDistributionName; string fLateralDistributionName; string fAngularDistributionName; Bool_t fUseAngDev; // (config) if true -> Electrons angular deviation used for Yield calculation ClassDef(ShowerLightSource,0) }; #endif /* __SHOWERLIGHTSOURCE_HH_ */