00001 #ifndef SimDataFormats_HFShowerPhoton_H 00002 #define SimDataFormats_HFShowerPhoton_H 00003 00004 // File: HFShowerPhoton.h 00005 // Photons which will generate single photo electron as in HFShowerLibrary 00007 00008 #include "DataFormats/Math/interface/Point3D.h" 00009 #include <iostream> 00010 #include <cmath> 00011 #include <vector> 00012 00013 class HFShowerPhoton { 00014 00015 public: 00016 00018 typedef math::XYZPointF Point; 00019 00020 HFShowerPhoton(float x=0, float y=0, float z=0, float lambda=0, float t=0); 00021 HFShowerPhoton(const Point &p, float time, float lambda); 00022 HFShowerPhoton(const HFShowerPhoton&); 00023 virtual ~HFShowerPhoton(); 00024 00025 const Point & position() const {return position_;} 00026 float x() const {return position_.X();} 00027 float y() const {return position_.Y();} 00028 float z() const {return position_.Z();} 00029 float lambda() const {return lambda_;} 00030 float t() const {return time_;} 00031 00032 private: 00033 00034 Point position_; 00035 float lambda_; 00036 float time_; 00037 00038 }; 00039 00040 typedef std::vector<HFShowerPhoton> HFShowerPhotonCollection; 00041 00042 std::ostream& operator<<(std::ostream&, const HFShowerPhoton&); 00043 00044 #endif