Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:51

0001 #ifndef DataFormats_ParticleFlowReco_HGCalMultiCluster
0002 #define DataFormats_ParticleFlowReco_HGCalMultiCluster
0003 
0004 #include <vector>
0005 #include <limits>
0006 
0007 #include "DataFormats/Common/interface/PtrVector.h"
0008 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
0009 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
0010 
0011 namespace reco {
0012   class HGCalMultiCluster : public reco::PFCluster {
0013   public:
0014     typedef edm::PtrVector<reco::BasicCluster>::const_iterator component_iterator;
0015     typedef edm::PtrVector<reco::BasicCluster> ClusterCollection;
0016 
0017     HGCalMultiCluster() : PFCluster() { this->setLayer(PFLayer::HGCAL); }
0018 
0019     HGCalMultiCluster(double energy, double x, double y, double z, ClusterCollection& thecls);
0020 
0021     void push_back(const edm::Ptr<reco::BasicCluster>& b) { myclusters.push_back(b); }
0022 
0023     const edm::PtrVector<reco::BasicCluster>& clusters() const { return myclusters; }
0024 
0025     unsigned int size() const { return myclusters.size(); }
0026     component_iterator begin() const { return myclusters.begin(); }
0027     component_iterator end() const { return myclusters.end(); }
0028 
0029     bool operator>(const HGCalMultiCluster& rhs) const { return (energy() > rhs.energy()); }
0030 
0031   private:
0032     edm::PtrVector<reco::BasicCluster> myclusters;
0033   };
0034 
0035   typedef std::vector<HGCalMultiCluster> HGCalMultiClusterCollection;
0036 }  // namespace reco
0037 #endif