// ESAF : Euso Simulation and Analysis Framework // $Id: FastDetectorTransportManager.hh,v 1.11 2005/02/13 23:23:05 thea Exp $ // M. Pallavicini created Apr, 27 2003 #ifndef __FASTDETECTORTRANSPORTMANAGER_HH_ #define __FASTDETECTORTRANSPORTMANAGER_HH_ #include "euso.hh" #include "DetectorTransportManager.hh" class EEvent; class Photon; class FastDetectorTransportManager : public DetectorTransportManager { public: FastDetectorTransportManager(); virtual ~FastDetectorTransportManager(); virtual void Draw() const; virtual void Go( PhotonsOnPupil* ); virtual Photon* Transport( Photon* ) const ; EsafConfigClass(Optics,FastDetectorTransportManager) private: // number of theta bins int fNumThBins; // number of phi bins for theta given int *fNumPhBins; // begin of given theta in fPmtMap int *fThBeginBin; // array of unique channels ids; data is stored in an array (theta first) int *fUIds; // getters inline int GetNumThBins() const { return fNumThBins; } inline int GetNumPhBins(int iTh) const {return fNumPhBins[iTh];} inline int GetThBeginBin(int iTh) const {return fThBeginBin[iTh];} inline int GetUId(int iTh,int iPh) const {return fUIds[GetThBeginBin(iTh)+iPh];} void FillPmt( Photon& ) const; ClassDef(FastDetectorTransportManager,0) }; #endif /* __FASTDETECTORTRANSPORTMANAGER_HH_ */