// $Id: ListPhotonsOnPupil.hh,v 1.14 2005/10/13 13:27:31 moreggia Exp $ // Author: M. Pallavicini Sep, 16 2002 /***************************************************************************** * ESAF: Euso Simulation and Analysis Framework * * * * Id: PhotonsOnPupil * * Package: RadiativeTransfer * * Coordinator: Sylvain.Moreggia * * * *****************************************************************************/ #ifndef __LISTPHOTONSONPUPIL_HH__ #define __LISTPHOTONSONPUPIL_HH__ #include #include "PhotonsOnPupil.hh" #include "ParentPhoton.hh" #include "ListPhotonsInAtmosphere.hh" #include "TVector3.h" //////////////////////////////////////////////////////////////////////////////// // // ListPhotonsOnPupil // // Blind PhotonsOnPupil object // It is just a list of photons that may be given to the constructor // or associated later on // The list can be optionally owned (destroyed in the destructor) or not // //////////////////////////////////////////////////////////////////////////////// class ListPhotonsOnPupil : public PhotonsOnPupil { public: ListPhotonsOnPupil( vector* =0 ); virtual ~ListPhotonsOnPupil(); virtual Photon* GetPhoton(); inline virtual Int_t GetNphotons() const { return fPhotons->size(); } inline void Add( ParentPhoton* p ) { if (fPhotons) fPhotons->push_back(p); } // fill the list with a ParentPhoton, copied from SinglePhoton void Add( const SinglePhoton&, const TVector3&, const TVector3&); // clear the list virtual void Clear(); private: vector* fPhotons; // list of parent photons ClassDef(ListPhotonsOnPupil,0) }; #endif /* __LISTPHOTONSONPUPIL_HH__ */