#ifndef __FdRecApertureLight_H #define __FdRecApertureLight_H #include //============================================================================= // // reconstructed profile data definition // //============================================================================= class FdRecApertureLight : public FdApertureLight { public: // class holding all variables dealing with the // reconstructed shower light FdRecApertureLight(); // getters ///returns the integral of number of photons at aperture Double_t GetTotalLightIntegral() const; ///returns the uncertainty of the integral of number of photons at aperture Double_t GetTotalLightIntegralError() const; ///returns pointer to error on time of arrival at camera \f$[ns]\f$ const std::vector& GetTimeError() const { return fTime_err; } ///returns pointer to error on total number of photons at aperture const std::vector& GetTotalLightAtApertureError() const { return fDia_total_err; } /// Get zeta Double_t GetZeta() const { return fZeta; } /// Returns reference to light collection efficiency for direct fluorescence light const std::vector& GetFluorLightCollEfficiency() const { return fLCEff_fluor; } /// Returns reference to light collection efficiency uncertainties for direct fluorescence light const std::vector& GetFluorLightCollEfficiencyErrors() const { return fLCEff_fluor_err; } /// Returns reference to light collection efficiency for direct Cherenkov light const std::vector& GetCherLightCollEfficiency() const { return fLCEff_direct_cher; } /// Returns reference to light collection efficiency uncertainties for direct Cherenkov light const std::vector& GetCherLightCollEfficiencyErrors() const { return fLCEff_direct_cher_err; } /// Returns reference to light collection efficiency for Mie scattered Cherenkov light const std::vector& GetMieCherLightCollEfficiency() const { return fLCEff_mie_cher; } /// Returns reference to light collection efficiency uncertainties for Mie scattered Cherenkov light const std::vector& GetMieCherLightCollEfficiencyErrors() const { return fLCEff_mie_cher_err; } /// Returns reference to light collection efficiency for Rayleigh scattered Cherenkov light const std::vector& GetRayCherLightCollEfficiency() const { return fLCEff_ray_cher; } /// Returns reference to light collection efficiency uncertainties for Rayleigh scattered Cherenkov light const std::vector& GetRayCherLightCollEfficiencyErrors() const { return fLCEff_ray_cher_err; } /// Get highest cloud camera's cloud fraction in zeta pixels Float_t GetMaxCloudCameraFractionInZeta() const { return fMaxCloudFractionInZeta; } /// Get highest cloud camera's cloud fraction in zeta pixels taking cloud height into account Float_t GetMaxCloudCameraFractionWithLidarInZeta() const { return fMaxCloudFractionWithLidarInZeta; } // setters /// Set time of arrival at camera void SetTime(const std::vector& tim, const std::vector& tim_err); /// Set total number of photons arriving at the aperture void SetTotalLightAtAperture(const std::vector& phot, const std::vector& phot_err); /// Set zeta void SetZeta(const Double_t zeta) { fZeta = zeta; } /// Set light collection efficiency for direct fluorescence light void SetFluorLightCollEfficiency(const std::vector& lceff) { fLCEff_fluor = lceff; } /// Set light collection efficiency uncertainties for direct fluorescence light void SetFluorLightCollEfficiencyErrors(const std::vector& lcefferr) { fLCEff_fluor_err = lcefferr; } /// Set light collection efficiency for direct Cherenkov light void SetCherLightCollEfficiency(const std::vector& lceff) { fLCEff_direct_cher = lceff; } /// Set light collection efficiency uncertainties for direct Cherenkov light void SetCherLightCollEfficiencyErrors(const std::vector& lcefferr) { fLCEff_direct_cher_err = lcefferr; } /// Set light collection efficiency for Mie scattered Cherenkov light void SetMieCherLightCollEfficiency(const std::vector& lceff) { fLCEff_mie_cher = lceff; } /// Set light collection efficiency uncertainties for Mie scattered Cherenkov light void SetMieCherLightCollEfficiencyErrors(const std::vector& lcefferr) { fLCEff_mie_cher_err = lcefferr; } /// Set light collection efficiency for Rayleigh scattered Cherenkov light void SetRayCherLightCollEfficiency(const std::vector& lceff) { fLCEff_ray_cher = lceff; } /// Set light collection efficiency uncertainties for Rayleigh scattered Cherenkov light void SetRayCherLightCollEfficiencyErrors(const std::vector& lcefferr) { fLCEff_ray_cher_err = lcefferr; } /// Set highest cloud camera's cloud fraction in zeta pixels void SetMaxCloudCameraFractionInZeta(const Float_t tmp) { fMaxCloudFractionInZeta = tmp; } /// Get highest cloud camera's cloud fraction in zeta pixels taking cloud height into account void SetMaxCloudCameraFractionWithLidarInZeta(const Float_t tmp) { fMaxCloudFractionWithLidarInZeta = tmp; } private: /// Error on time of arrival at camera \f$[ns]\f$ std::vector fTime_err; /// Error on total number of photons at aperture/diaphragm std::vector fDia_total_err; /// Light collection efficiency for direct fluorescence light std::vector fLCEff_fluor; /// Light collection efficiency uncertainties for direct fluorescence light std::vector fLCEff_fluor_err; /// Light collection efficiency for direct Cherenkov light std::vector fLCEff_direct_cher; /// Light collection efficiency uncertainties for direct Cherenkov light std::vector fLCEff_direct_cher_err; /// Light collection efficiency for Mie scattered Cherenkov light std::vector fLCEff_mie_cher; /// Light collection efficiency uncertainties for Mie scattered Cherenkov light std::vector fLCEff_mie_cher_err; /// Light collection efficiency for Rayleigh scattered Cherenkov light std::vector fLCEff_ray_cher; /// Light collection efficiency uncertainties for Rayleigh scattered Cherenkov light std::vector fLCEff_ray_cher_err; /// Result of zeta search Double_t fZeta; /// Integrated number of photons at aperture Double_t fDia_Integral; /// Highest cloud camera's cloud fraction in zeta pixels Float_t fMaxCloudFractionInZeta; Float_t fMaxCloudFractionWithLidarInZeta; ClassDef(FdRecApertureLight, 7); }; #endif