CMS 3D CMS Logo

SuperCluster.h

Go to the documentation of this file.
00001 #ifndef EgammaReco_SuperCluster_h
00002 #define EgammaReco_SuperCluster_h
00003 
00013 #include "DataFormats/Math/interface/Point3D.h"
00014 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00015 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00016 #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
00017 #include "DataFormats/DetId/interface/DetId.h"
00018 #include <Rtypes.h>
00019 
00020 namespace reco {
00021   class SuperCluster : public CaloCluster {
00022   public:
00023 
00024     typedef math::XYZPoint Point;
00025 
00027     SuperCluster() : CaloCluster(0., Point(0.,0.,0.)), rawEnergy_(-1.) {}
00028 
00030     SuperCluster( double energy, const Point& position );
00031 
00032     SuperCluster( double energy, const Point& position,
00033                   const BasicClusterRef & seed,
00034                   const BasicClusterRefVector& clusters,
00035                   double Epreshower=0.,
00036                   double phiWidth=0., double etaWidth=0. );
00037 
00039     double rawEnergy() const;
00040 
00042     double preshowerEnergy() const { return preshowerEnergy_; }
00043 
00045     double phiWidth() const { return phiWidth_; }
00046     double etaWidth() const { return etaWidth_; }
00047 
00048     //Assign new variables to supercluster
00049     void setPhiWidth( double pw ) { phiWidth_ = pw; }
00050     void setEtaWidth( double ew ) { etaWidth_ = ew; }
00051 
00053     const BasicClusterRef & seed() const { return seed_; }
00054 
00056     basicCluster_iterator clustersBegin() const { return clusters_.begin(); }
00057 
00059     basicCluster_iterator clustersEnd() const { return clusters_.end(); }
00060 
00062     size_t clustersSize() const { return clusters_.size(); }
00063 
00065     std::vector<DetId> getHitsByDetId() const { return usedHits_; }
00066 
00068     void setSeed( const BasicClusterRef & r ) { seed_ = r; }
00069 
00071     void add( const BasicClusterRef & r ) { clusters_.push_back( r ); }
00072 
00073   private:
00074 
00076     BasicClusterRef seed_;
00077 
00079     BasicClusterRefVector clusters_;
00080 
00082     std::vector<DetId> usedHits_;
00083 
00084     double preshowerEnergy_;
00085 
00086     mutable double rawEnergy_;
00087     
00088     Double32_t phiWidth_;
00089     Double32_t etaWidth_;
00090 
00091   };
00092 
00093 }
00094 #endif

Generated on Tue Jun 9 17:30:43 2009 for CMSSW by  doxygen 1.5.4