CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
KDTreeLinkerTrackEcal.h
Go to the documentation of this file.
1 #ifndef KDTreeLinkerTrackEcal_h
2 #define KDTreeLinkerTrackEcal_h
3 
7 
8 
9 // This class is used to find all links between Tracks and ECAL clusters
10 // using a KDTree algorithm.
11 // It is used in PFBlockAlgo.cc in the function links().
13 {
14  public:
17 
18  // With this method, we create the list of psCluster that we want to link.
20 
21  // Here, we create the list of ecalCluster that we want to link. From ecalCluster
22  // and fraction, we will create a second list of rechits that will be used to
23  // build the KDTree.
24  void insertFieldClusterElt(reco::PFBlockElement *ecalCluster);
25 
26  // The KDTree building from rechits list.
27  void buildTree();
28 
29  // Here we will iterate over all tracks. For each track intersection point with ECAL,
30  // we will search the closest rechits in the KDTree, from rechits we will find the
31  // ecalClusters and after that we will check the links between the track and
32  // all closest ecalClusters.
33  void searchLinks();
34 
35  // Here, we will store all PS/ECAL founded links in the PFBlockElement class
36  // of each psCluster in the PFmultilinks field.
38 
39  // Here we free all allocated structures.
40  void clear();
41 
42  private:
43  // Data used by the KDTree algorithm : sets of Tracks and ECAL clusters.
46 
47  // Sets of rechits that compose the ECAL clusters.
49 
50  // Map of linked Track/ECAL clusters.
52 
53  // Map of the ECAL clusters associated to a rechit.
55 
56  // KD trees
58 
59 };
60 
61 
62 #endif /* !KDTreeLinkerTrackEcal_h */
Abstract base class for a PFBlock element (track, cluster...)
std::map< reco::PFBlockElement *, BlockEltSet > BlockElt2BlockEltMap
void insertFieldClusterElt(reco::PFBlockElement *ecalCluster)
std::set< reco::PFBlockElement * > BlockEltSet
std::set< const reco::PFRecHit * > RecHitSet
std::map< const reco::PFRecHit *, BlockEltSet > RecHit2BlockEltMap
void insertTargetElt(reco::PFBlockElement *track)
RecHit2BlockEltMap rechit2ClusterLinks_
BlockElt2BlockEltMap target2ClusterLinks_