// ESAF : Euso Simulation and Analysis Framework // $Id: ParentBunch.hh,v 1.21 2005/05/02 17:21:51 moreggia Exp $ // Author: Anne Stutz Aug, 23 2004 #ifndef __PARENTBUNCH_HH_ #define __PARENTBUNCH_HH_ #include "euso.hh" #include "EarthVector.hh" #include "EsafSpectrum.hh" #include #include #include class BunchOfPhotons; /******************************************************************************* * * ParentBunch: class description * ******************************************************************************/ class ParentBunch { public: // copy ctor ParentBunch( const ParentBunch&); // ctor ParentBunch(const Double_t weight,const Double_t yield, const EarthVector& showerposi, const EarthVector& showerposf, const Double_t datei, const Double_t datef, const EsafSpectrum& spectrum, const EarthVector& axis); // dtor virtual ~ParentBunch(); // make a copy void Copy( ParentBunch& ) const ; // GetMembers methods inline Double_t GetYield() const {return fYield;} inline Double_t GetParentWeight() const {return fWeight;} inline const EarthVector& GetShowerPosi() const {return fShowerPosi; } inline const EarthVector& GetShowerPosf() const {return fShowerPosf; } inline const EarthVector& GetAxis() const {return fAxis; } inline Double_t GetDatei() const {return fDatei; } inline Double_t GetDatef() const {return fDatef; } inline TF12* GetLateralDist() const { return fLateralDist; } inline TF12* GetAngularDist() const { return fAngularDist; } inline const TH1F* GetHistoLateral() const { return fHistoLateral; } inline const TH1F* GetHistoAngular() const { return fHistoAngular; } // SetMembers methods void SetHistoLateral( const TH1F& ld); void SetHistoAngular( const TH1F& ad); inline void SetLateralDist( const TF12& ld ) { SafeDelete(fLateralDist); fLateralDist = new TF12(ld);} inline void SetAngularDist( const TF12& ad ) { SafeDelete(fAngularDist); fAngularDist = new TF12(ad);} private: EarthVector fShowerPosi; // 3D coordinates of the first point of the bunch EarthVector fShowerPosf; // 3D coordinates of the last point of the bunch EarthVector fAxis; // Symetry axis af the bunch Double_t fDatei; // time of passage at fShowerPosi Double_t fDatef; // time of passage at fShowerPosf Double_t fYield; // yield at creation Double_t fWeight; // weight at bunch creation EsafSpectrum fWlSpectrum; // wavelength spectrum of the bunch AT CREATION (normalized) TF12 *fLateralDist; // lateral distribution of photons in the bunch TF12 *fAngularDist; // theta angular distribution of photons in the bunch TH1F *fHistoLateral; // histogram of lateral distribution TH1F *fHistoAngular; // histogram of theta angular distribution ClassDef(ParentBunch,0) }; #endif /* __PARENTBUNCH_HH_ */