PFSuperCluster

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#ifndef DataFormats_ParticleFlowReco_PFSuperCluster_h
#define DataFormats_ParticleFlowReco_PFSuperCluster_h

#include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
#include "DataFormats/ParticleFlowReco/interface/PFRecHit.h"
#include "DataFormats/Common/interface/PtrVector.h"

#include <iostream>
#include <vector>

class PFSuperClusterAlgo;

namespace reco {

  /**\class PFSuperCluster
     \brief Particle flow cluster, see clustering algorithm in PFSuperClusterAlgo
     
     A particle flow supercluster is constructed from clusters.
     This calculation is performed in PFSuperClusterAlgo.

     \author Chris Tully
     \date   July 2012
  */
  class PFSuperCluster : public PFCluster {
  public:
    PFSuperCluster() {}

    /// constructor
    PFSuperCluster(const edm::PtrVector<reco::PFCluster>& clusters);

    /// resets clusters parameters
    void reset();

    /// vector of clusters
    const edm::PtrVector<reco::PFCluster>& clusters() const { return clusters_; }

    PFSuperCluster& operator=(const PFSuperCluster&);

  private:
    /// vector of clusters
    edm::PtrVector<reco::PFCluster> clusters_;

    friend class ::PFSuperClusterAlgo;
  };

  std::ostream& operator<<(std::ostream& out, const PFSuperCluster& cluster);

}  // namespace reco

#endif