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
reco::PFClusterCollection
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
Basic2DGenericPFlowClusterizer::_minFracTot
const double _minFracTot
Definition: Basic2DGenericPFlowClusterizer.h:36
Basic2DGenericPFlowClusterizer::_convergencePosCalc
std::unique_ptr< PFCPositionCalculatorBase > _convergencePosCalc
Definition: Basic2DGenericPFlowClusterizer.h:41
Basic2DGenericPFlowClusterizer::seedPFClustersFromTopo
void seedPFClustersFromTopo(const reco::PFCluster &, const std::vector< bool > &, reco::PFClusterCollection &) const
Definition: Basic2DGenericPFlowClusterizer.cc:113
Basic2DGenericPFlowClusterizer::growPFClusters
void growPFClusters(const reco::PFCluster &, const std::vector< bool > &, const unsigned toleranceScaling, const unsigned iter, double dist, reco::PFClusterCollection &) const
Definition: Basic2DGenericPFlowClusterizer.cc:132
Basic2DGenericPFlowClusterizer::Basic2DGenericPFlowClusterizer
Basic2DGenericPFlowClusterizer(const edm::ParameterSet &conf)
Definition: Basic2DGenericPFlowClusterizer.cc:24
Basic2DGenericPFlowClusterizer::_recHitEnergyNorms
std::unordered_map< int, std::pair< std::vector< int >, std::vector< double > > > _recHitEnergyNorms
Definition: Basic2DGenericPFlowClusterizer.h:39
Basic2DGenericPFlowClusterizer::_excludeOtherSeeds
const bool _excludeOtherSeeds
Definition: Basic2DGenericPFlowClusterizer.h:35
Basic2DGenericPFlowClusterizer::_maxIterations
const unsigned _maxIterations
Definition: Basic2DGenericPFlowClusterizer.h:32
Basic2DGenericPFlowClusterizer::_layerMap
const std::unordered_map< std::string, int > _layerMap
Definition: Basic2DGenericPFlowClusterizer.h:37
Basic2DGenericPFlowClusterizer
Definition: Basic2DGenericPFlowClusterizer.h:9
Basic2DGenericPFlowClusterizer::B2DGPF
Basic2DGenericPFlowClusterizer B2DGPF
Definition: Basic2DGenericPFlowClusterizer.h:10
PFClusterBuilderBase.h
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
Basic2DGenericPFlowClusterizer::update
void update(const edm::EventSetup &es) override
Definition: Basic2DGenericPFlowClusterizer.h:19
edm::ParameterSet
Definition: ParameterSet.h:36
edmplugin::PluginFactory
Definition: PluginFactory.h:34
Basic2DGenericPFlowClusterizer::buildClusters
void buildClusters(const reco::PFClusterCollection &, const std::vector< bool > &, reco::PFClusterCollection &outclus) override
Definition: Basic2DGenericPFlowClusterizer.cc:83
edm::EventSetup
Definition: EventSetup.h:57
PFRecHitFraction.h
Basic2DGenericPFlowClusterizer::operator=
B2DGPF & operator=(const B2DGPF &)=delete
Basic2DGenericPFlowClusterizer::_stoppingTolerance
const double _stoppingTolerance
Definition: Basic2DGenericPFlowClusterizer.h:33
reco::PFCluster
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:46
PFClusterBuilderBase
Definition: PFClusterBuilderBase.h:18
Basic2DGenericPFlowClusterizer::~Basic2DGenericPFlowClusterizer
~Basic2DGenericPFlowClusterizer() override=default
PFClusterBuilderBase::_positionCalc
std::unique_ptr< PosCalc > _positionCalc
Definition: PFClusterBuilderBase.h:57
Basic2DGenericPFlowClusterizer::_allCellsPosCalc
std::unique_ptr< PFCPositionCalculatorBase > _allCellsPosCalc
Definition: Basic2DGenericPFlowClusterizer.h:40
Basic2DGenericPFlowClusterizer::_showerSigma2
const double _showerSigma2
Definition: Basic2DGenericPFlowClusterizer.h:34
Basic2DGenericPFlowClusterizer::prunePFClusters
void prunePFClusters(reco::PFClusterCollection &) const
Definition: Basic2DGenericPFlowClusterizer.cc:254