// $Id: Pupil.hh,v 1.1 2005/10/28 16:07:12 thea Exp $ // Author: Alessandro Thea 2005/10/28 /***************************************************************************** * ESAF: Euso Simulation and Analysis Framework * * * * Id: Pupil * * Package: Radiativetransfer * * Coordinator: Sylvain.Moreggia * * * *****************************************************************************/ #ifndef __PUPIL_HH__ #define __PUPIL_HH__ #include "euso.hh" #include "PhotonsOnPupil.hh" class DetectorGeometry; //////////////////////////////////////////////////////////////////////////////// // // // Pupil // // // // Internal interface between the Photons in space and the current // // implementation of the detector // // // //////////////////////////////////////////////////////////////////////////////// class Pupil : public PhotonsOnPupil, public EsafMsgSource { public: Pupil(PhotonsOnPupil*, DetectorGeometry*); virtual ~Pupil(); virtual Photon* GetPhoton(); virtual inline void Clear(); virtual inline void Rewind(); virtual inline Int_t GetNphotons() const; virtual inline EsafRefFrame* GetFrame() const; virtual void SetFrame( EsafRefFrame* frame ) {}; private: PhotonsOnPupil* fPhotons; DetectorGeometry* fGeometry; TRotation fRotPoP2Det; // pop's to detector's frame roatation TRotation fRotDet2PoP; // detector's to pop's frame rotation TVector3 fTrasl; // pop's to detector's frame translation ClassDef(Pupil,0) }; void Pupil::Clear() { if (fPhotons) fPhotons->Clear(); } void Pupil::Rewind() { if (fPhotons) fPhotons->Rewind(); } Int_t Pupil::GetNphotons() const { return fPhotons ? fPhotons->GetNphotons() : 0 ; } EsafRefFrame* Pupil::GetFrame() const { return fPhotons ? fPhotons->GetFrame() : 0; } #endif /* __PUPIL_HH__ */