CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_4/src/DataFormats/CastorReco/interface/CastorEgamma.h

Go to the documentation of this file.
00001 #ifndef CastorReco_CastorEgamma_h
00002 #define CastorReco_CastorEgamma_h
00003 
00012 #include <vector>
00013 #include "DataFormats/Math/interface/Point3D.h"
00014 #include "DataFormats/CastorReco/interface/CastorCluster.h"
00015 
00016 namespace reco {
00017 
00018   class CastorEgamma : public CastorCluster {
00019   public:
00020 
00022     CastorEgamma() : energycal_(0.) { }
00023 
00025     CastorEgamma(const double energycal, const CastorClusterRef& usedCluster);
00026 
00028     virtual ~CastorEgamma();
00029 
00031     double energy() const { return (*usedCluster_).energy(); }
00032 
00034     double energycal() const { return energycal_; }
00035 
00037     ROOT::Math::XYZPoint position() const { return (*usedCluster_).position(); }
00038     
00040     CastorClusterRef getUsedCluster() const { return usedCluster_; }
00041 
00043     bool operator >=(const CastorEgamma& rhs) const { return (energycal_>=rhs.energycal_); }
00044 
00046     bool operator > (const CastorEgamma& rhs) const { return (energycal_> rhs.energycal_); }
00047 
00049     bool operator <=(const CastorEgamma& rhs) const { return (energycal_<=rhs.energycal_); }
00050 
00052     bool operator < (const CastorEgamma& rhs) const { return (energycal_< rhs.energycal_); }
00053 
00055     double emEnergy() const { return (*usedCluster_).emEnergy(); }
00056 
00058     double hadEnergy() const { return (*usedCluster_).hadEnergy(); }
00059 
00061     double fem() const { return (*usedCluster_).fem(); }
00062 
00064     double width() const { return (*usedCluster_).width(); }
00065 
00067     double depth() const { return (*usedCluster_).depth(); }
00068 
00070     double fhot() const { return (*usedCluster_).fhot(); }
00071 
00073     double sigmaz() const { return (*usedCluster_).sigmaz(); }
00074 
00076     double eta() const { return (*usedCluster_).eta(); }
00077 
00079     double phi() const { return (*usedCluster_).phi(); }
00080 
00082     double x() const { return (*usedCluster_).x(); }
00083 
00085     double y() const { return (*usedCluster_).y(); }
00086 
00088     double rho() const { return (*usedCluster_).rho(); }
00089 
00090   private:
00091 
00093     double energycal_;
00094 
00096     CastorClusterRef usedCluster_;
00097   };
00098   
00099   // define CastorEgammaCollection
00100   typedef std::vector<CastorEgamma> CastorEgammaCollection;
00101 
00102 }
00103 
00104 #endif