CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoParticleFlow/PFClusterTools/interface/Deposition.h

Go to the documentation of this file.
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_*/