Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:40

0001 #ifndef SimDataFormats_HFShowerPhoton_H
0002 #define SimDataFormats_HFShowerPhoton_H
0003 ///////////////////////////////////////////////////////////////////////////////
0004 // File: HFShowerPhoton.h
0005 // Photons which will generate single photo electron as in HFShowerLibrary
0006 ///////////////////////////////////////////////////////////////////////////////
0007 
0008 #include "DataFormats/Math/interface/Point3D.h"
0009 #include <iostream>
0010 #include <cmath>
0011 #include <vector>
0012 
0013 class HFShowerPhoton {
0014 public:
0015   /// point in the space
0016   typedef math::XYZPointF Point;
0017 
0018   HFShowerPhoton(float x = 0, float y = 0, float z = 0, float lambda = 0, float t = 0);
0019   HFShowerPhoton(const Point& p, float time, float lambda);
0020   HFShowerPhoton(const HFShowerPhoton&) = default;
0021   HFShowerPhoton(HFShowerPhoton&&) = default;
0022 
0023   HFShowerPhoton& operator=(const HFShowerPhoton&) = default;
0024   HFShowerPhoton& operator=(HFShowerPhoton&&) = default;
0025 
0026   const Point& position() const { return position_; }
0027   float x() const { return position_.X(); }
0028   float y() const { return position_.Y(); }
0029   float z() const { return position_.Z(); }
0030   float lambda() const { return lambda_; }
0031   float t() const { return time_; }
0032 
0033 private:
0034   Point position_;
0035   float lambda_;
0036   float time_;
0037 };
0038 
0039 typedef std::vector<HFShowerPhoton> HFShowerPhotonCollection;
0040 
0041 std::ostream& operator<<(std::ostream&, const HFShowerPhoton&);
0042 
0043 #endif