test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  public:
13 
15  PFMultiDepthClusterizer(const B2DGPF&) = delete;
16  B2DGPF& operator=(const B2DGPF&) = delete;
17 
18  void update(const edm::EventSetup& es) {
19  _allCellsPosCalc->update(es);
20  }
21 
23  const std::vector<bool>&,
24  reco::PFClusterCollection& outclus);
25 
26  private:
27  std::unique_ptr<PFCPositionCalculatorBase> _allCellsPosCalc;
28  double nSigmaEta_;
29  double nSigmaPhi_;
30 
31 
32  class ClusterLink {
33  public:
34  ClusterLink(unsigned int i,unsigned int j,double DR,double DZ,double energy) {
35  from_ = i;
36  to_ = j;
37  linkDR_ =DR;
38  linkDZ_ =DZ;
39  linkE_ =energy;
40  }
41 
43 
44  }
45 
46  unsigned int from() const {return from_;}
47  unsigned int to() const {return to_;}
48  double dR() const {return linkDR_;}
49  double dZ() const {return linkDZ_;}
50  double energy() const {return linkE_;}
51 
52  private:
53  unsigned int from_;
54  unsigned int to_;
55  double linkDR_;
56  double linkDZ_;
57  double linkE_;
58 
59  };
60 
61 
62  void calculateShowerShapes(const reco::PFClusterCollection&,std::vector<double>&,std::vector<double>&);
63  std::vector<ClusterLink> link(const reco::PFClusterCollection&,const std::vector<double>&,const std::vector<double>&);
64  std::vector<ClusterLink> prune(std::vector<ClusterLink>&,std::vector<bool>& linkedClusters);
65 
66 
67  void expandCluster(reco::PFCluster&,unsigned int point, std::vector<bool>& mask,const reco::PFClusterCollection& , const std::vector<ClusterLink>& links);
68 
70 
71 
72 
73 };
74 
77  "PFMultiDepthClusterizer");
78 
79 #endif
void calculateShowerShapes(const reco::PFClusterCollection &, std::vector< double > &, std::vector< double > &)
int i
Definition: DBlmapReader.cc:9
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:47
B2DGPF & operator=(const B2DGPF &)=delete
void buildClusters(const reco::PFClusterCollection &, const std::vector< bool > &, reco::PFClusterCollection &outclus)
std::vector< ClusterLink > prune(std::vector< ClusterLink > &, std::vector< bool > &linkedClusters)
std::unique_ptr< PFCPositionCalculatorBase > _allCellsPosCalc
void absorbCluster(reco::PFCluster &, const reco::PFCluster &)
PFMultiDepthClusterizer(const edm::ParameterSet &conf)
int j
Definition: DBlmapReader.cc:9
std::vector< ClusterLink > link(const reco::PFClusterCollection &, const std::vector< double > &, const std::vector< double > &)
void update(const edm::EventSetup &es)
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
#define DEFINE_EDM_PLUGIN(factory, type, name)
*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
void expandCluster(reco::PFCluster &, unsigned int point, std::vector< bool > &mask, const reco::PFClusterCollection &, const std::vector< ClusterLink > &links)