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