CMS 3D CMS Logo

Basic2DGenericPFlowClusterizer.h
Go to the documentation of this file.
1 #ifndef __Basic2DGenericPFlowClusterizer_H__
2 #define __Basic2DGenericPFlowClusterizer_H__
3 
6 
7 #include <unordered_map>
8 
11 
12 public:
14 
15  ~Basic2DGenericPFlowClusterizer() override = default;
16  Basic2DGenericPFlowClusterizer(const B2DGPF&) = delete;
17  B2DGPF& operator=(const B2DGPF&) = delete;
18 
19  void update(const edm::EventSetup& es) override {
20  _positionCalc->update(es);
21  if (_allCellsPosCalc)
22  _allCellsPosCalc->update(es);
24  _convergencePosCalc->update(es);
25  }
26 
28  const std::vector<bool>&,
29  reco::PFClusterCollection& outclus) override;
30 
31 private:
32  const unsigned _maxIterations;
33  const double _stoppingTolerance;
34  const double _showerSigma2;
35  const bool _excludeOtherSeeds;
36  const double _minFracTot;
37  const std::unordered_map<std::string, int> _layerMap;
38 
39  std::unordered_map<int, std::pair<std::vector<int>, std::vector<double> > > _recHitEnergyNorms;
40  std::unique_ptr<PFCPositionCalculatorBase> _allCellsPosCalc;
41  std::unique_ptr<PFCPositionCalculatorBase> _convergencePosCalc;
42 
43  void seedPFClustersFromTopo(const reco::PFCluster&, const std::vector<bool>&, reco::PFClusterCollection&) const;
44 
45  void growPFClusters(const reco::PFCluster&,
46  const std::vector<bool>&,
47  const unsigned toleranceScaling,
48  const unsigned iter,
49  double dist,
51 
53 };
54 
56 
57 #endif
void growPFClusters(const reco::PFCluster &, const std::vector< bool > &, const unsigned toleranceScaling, const unsigned iter, double dist, reco::PFClusterCollection &) const
void buildClusters(const reco::PFClusterCollection &, const std::vector< bool > &, reco::PFClusterCollection &outclus) override
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:46
std::unique_ptr< PosCalc > _positionCalc
const std::unordered_map< std::string, int > _layerMap
std::unique_ptr< PFCPositionCalculatorBase > _convergencePosCalc
std::unique_ptr< PFCPositionCalculatorBase > _allCellsPosCalc
~Basic2DGenericPFlowClusterizer() override=default
B2DGPF & operator=(const B2DGPF &)=delete
std::unordered_map< int, std::pair< std::vector< int >, std::vector< double > > > _recHitEnergyNorms
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
#define DEFINE_EDM_PLUGIN(factory, type, name)
void prunePFClusters(reco::PFClusterCollection &) const
void update(const edm::EventSetup &es) override
Basic2DGenericPFlowClusterizer B2DGPF
void seedPFClustersFromTopo(const reco::PFCluster &, const std::vector< bool > &, reco::PFClusterCollection &) const
Basic2DGenericPFlowClusterizer(const edm::ParameterSet &conf)