00001 #ifndef DataFormats_EgammaReco_PreshowerCluster_h 00002 #define DataFormats_EgammaReco_PreshowerCluster_h 00003 /* 00004 * Preshower cluster class 00005 * 00006 * \authors Dmirty Bandurin (KSU), Ted Kolberg (ND) 00007 */ 00008 // $Id: PreshowerCluster.h,v 1.19 2009/03/25 16:09:47 ferriff Exp $ 00009 // 00010 #include "DataFormats/Math/interface/Point3D.h" 00011 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h" 00012 00013 #include <cmath> 00014 00015 namespace reco { 00016 00017 class PreshowerCluster : public CaloCluster { 00018 public: 00019 00020 typedef math::XYZPoint Point; 00021 00023 PreshowerCluster() : CaloCluster(0., Point(0.,0.,0.)) { }; 00024 00025 virtual ~PreshowerCluster(); 00026 00028 PreshowerCluster(const double E, const Point& pos, 00029 const std::vector< std::pair<DetId, float> > usedHits, 00030 const int plane); 00031 00033 PreshowerCluster(const PreshowerCluster&); 00034 00036 int nhits() const {return hitsAndFractions_.size();} 00037 00039 int plane() const { return plane_; } 00040 00041 double et() const { return energy()/cosh(eta()); } 00042 00044 bool operator==(const PreshowerCluster&) const; 00045 bool operator<(const PreshowerCluster&) const; 00046 00048 CaloClusterPtr basicCluster() const {return bc_ref_;} 00049 00051 //std::vector<DetId> getHitsByDetId() const { return usedHits_; } 00052 00053 void setBCRef( const CaloClusterPtr & r ) { bc_ref_ = r; } 00054 00055 private: 00056 00057 int plane_; 00058 00060 CaloClusterPtr bc_ref_; 00061 00063 //std::vector<DetId> usedHits_; 00064 }; 00065 } 00066 #endif