00001 #ifndef DEPOSITION_HH_ 00002 #define DEPOSITION_HH_ 00003 #include <iostream> 00004 00005 #include <boost/shared_ptr.hpp> 00006 00007 #include "RecoParticleFlow/PFClusterTools/interface/DetectorElement.h" 00008 00009 namespace pftools { 00010 00020 class Deposition { 00021 public: 00022 00023 inline void setEnergy(double energy) { 00024 myEnergy = energy; 00025 } 00026 00027 00028 inline double getEta() const { 00029 return myEta; 00030 } 00031 ; 00032 00033 inline double getPhi() const { 00034 return myPhi; 00035 } 00036 ; 00037 00038 inline double getEnergy() const { 00039 return myEnergy; 00040 } 00041 ; 00042 00043 inline DetectorElementPtr getDetectorElement() const { 00044 return myElementPtr; 00045 } 00046 ; 00047 00048 /* 00049 * Returns the user specified "depth" for this deposition. 00050 * Usually presumed to be zero. 00051 * */ 00052 inline double getDepth() const { 00053 return myDepth; 00054 } 00055 ; 00056 00057 Deposition(DetectorElementPtr element, double eta = 0.0, double phi = 0.0, 00058 double energy = 0.0, double depth = 0.0); 00059 00060 virtual ~Deposition(); 00061 00062 /* 00063 * Streams a description of this deposition into the supplied stream. 00064 * */ 00065 friend std::ostream& operator<<(std::ostream& s, const Deposition& d); 00066 00067 private: 00068 //DetectorElement* myElement; 00069 DetectorElementPtr myElementPtr; 00070 00071 double myEta; 00072 double myPhi; 00073 double myEnergy; 00074 double myDepth; 00075 }; 00076 00077 typedef boost::shared_ptr<Deposition> DepositionPtr; 00078 00079 } 00080 00081 #endif /*DEPOSITION_HH_*/