CMS 3D CMS Logo

PFMultiDepthClusterizer.h
Go to the documentation of this file.
1 #ifndef __PFMultiDepthClusterizer_H__
2 #define __PFMultiDepthClusterizer_H__
3 
6 
7 #include <unordered_map>
8 
11 
12 public:
14 
15  ~PFMultiDepthClusterizer() override = default;
16  PFMultiDepthClusterizer(const B2DGPF&) = delete;
17  B2DGPF& operator=(const B2DGPF&) = delete;
18 
19  void update(const edm::EventSetup& es) override { _allCellsPosCalc->update(es); }
20 
22  const std::vector<bool>&,
23  reco::PFClusterCollection& outclus) override;
24 
25 private:
26  std::unique_ptr<PFCPositionCalculatorBase> _allCellsPosCalc;
27  double nSigmaEta_;
28  double nSigmaPhi_;
29 
30  class ClusterLink {
31  public:
32  ClusterLink(unsigned int i, unsigned int j, double DR, double DZ, double energy) {
33  from_ = i;
34  to_ = j;
35  linkDR_ = DR;
36  linkDZ_ = DZ;
37  linkE_ = energy;
38  }
39 
40  ~ClusterLink() = default;
41 
42  unsigned int from() const { return from_; }
43  unsigned int to() const { return to_; }
44  double dR() const { return linkDR_; }
45  double dZ() const { return linkDZ_; }
46  double energy() const { return linkE_; }
47 
48  private:
49  unsigned int from_;
50  unsigned int to_;
51  double linkDR_;
52  double linkDZ_;
53  double linkE_;
54  };
55 
56  void calculateShowerShapes(const reco::PFClusterCollection&, std::vector<double>&, std::vector<double>&);
57  std::vector<ClusterLink> link(const reco::PFClusterCollection&,
58  const std::vector<double>&,
59  const std::vector<double>&);
60  std::vector<ClusterLink> prune(std::vector<ClusterLink>&, std::vector<bool>& linkedClusters);
61 
63  unsigned int point,
64  std::vector<bool>& mask,
66  const std::vector<ClusterLink>& links);
67 
69 };
70 
72 
73 #endif
reco::PFClusterCollection
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
mps_fire.i
i
Definition: mps_fire.py:355
PFMultiDepthClusterizer::calculateShowerShapes
void calculateShowerShapes(const reco::PFClusterCollection &, std::vector< double > &, std::vector< double > &)
Definition: PFMultiDepthClusterizer.cc:74
PFMultiDepthClusterizer::expandCluster
void expandCluster(reco::PFCluster &, unsigned int point, std::vector< bool > &mask, const reco::PFClusterCollection &, const std::vector< ClusterLink > &links)
Definition: PFMultiDepthClusterizer.cc:204
PFMultiDepthClusterizer::nSigmaEta_
double nSigmaEta_
Definition: PFMultiDepthClusterizer.h:27
PFMultiDepthClusterizer::operator=
B2DGPF & operator=(const B2DGPF &)=delete
PFMultiDepthClusterizer::PFMultiDepthClusterizer
PFMultiDepthClusterizer(const edm::ParameterSet &conf)
Definition: PFMultiDepthClusterizer.cc:12
PFMultiDepthClusterizer::_allCellsPosCalc
std::unique_ptr< PFCPositionCalculatorBase > _allCellsPosCalc
Definition: PFMultiDepthClusterizer.h:26
PFMultiDepthClusterizer::prune
std::vector< ClusterLink > prune(std::vector< ClusterLink > &, std::vector< bool > &linkedClusters)
Definition: PFMultiDepthClusterizer.cc:133
PFClusterBuilderBase.h
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
PFMultiDepthClusterizer::absorbCluster
void absorbCluster(reco::PFCluster &, const reco::PFCluster &)
Definition: PFMultiDepthClusterizer.cc:184
edm::ParameterSet
Definition: ParameterSet.h:36
PFMultiDepthClusterizer::update
void update(const edm::EventSetup &es) override
Definition: PFMultiDepthClusterizer.h:19
edmplugin::PluginFactory
Definition: PluginFactory.h:34
PFMultiDepthClusterizer::nSigmaPhi_
double nSigmaPhi_
Definition: PFMultiDepthClusterizer.h:28
PFMultiDepthClusterizer::link
std::vector< ClusterLink > link(const reco::PFClusterCollection &, const std::vector< double > &, const std::vector< double > &)
Definition: PFMultiDepthClusterizer.cc:98
edm::EventSetup
Definition: EventSetup.h:57
PFRecHitFraction.h
PFMultiDepthClusterizer::~PFMultiDepthClusterizer
~PFMultiDepthClusterizer() override=default
electronStore.links
links
Definition: electronStore.py:149
reco::PFCluster
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:46
PFMultiDepthClusterizer::buildClusters
void buildClusters(const reco::PFClusterCollection &, const std::vector< bool > &, reco::PFClusterCollection &outclus) override
Definition: PFMultiDepthClusterizer.cc:23
PFClusterBuilderBase
Definition: PFClusterBuilderBase.h:18
PFMultiDepthClusterizer
Definition: PFMultiDepthClusterizer.h:9
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
point
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
PFMultiDepthClusterizer::B2DGPF
PFMultiDepthClusterizer B2DGPF
Definition: PFMultiDepthClusterizer.h:10