CMS 3D CMS Logo

HGCGraph.h
Go to the documentation of this file.
1 // Author: Felice Pantaleo - felice.pantaleo@cern.ch
2 // Date: 11/2018
3 
4 #ifndef __RecoHGCal_TICL_HGCGraph_H__
5 #define __RecoHGCal_TICL_HGCGraph_H__
6 
7 #include <vector>
8 
11 #include "HGCDoublet.h"
12 
13 template <typename TILES>
14 class HGCGraphT {
15 public:
16  void makeAndConnectDoublets(const TILES &h,
17  const std::vector<TICLSeedingRegion> &regions,
18  int nEtaBins,
19  int nPhiBins,
20  const std::vector<reco::CaloCluster> &layerClusters,
21  const std::vector<float> &mask,
22  const edm::ValueMap<std::pair<float, float>> &layerClustersTime,
23  int deltaIEta,
24  int deltaIPhi,
25  float minCosThetai,
26  float maxCosPointing,
29  int skip_layers,
30  int maxNumberOfLayers,
31  float maxDeltaTime,
32  int lastLayerEE,
33  int lastLayerFH,
34  const std::vector<double> &siblings_maxRSquared);
35 
36  bool areTimeCompatible(int innerIdx,
37  int outerIdx,
38  const edm::ValueMap<std::pair<float, float>> &layerClustersTime,
39  float maxDeltaTime);
40 
41  bool areOverlappingOnSiblingLayers(int innerIdx,
42  int outerIdx,
43  const std::vector<reco::CaloCluster> &layerClusters,
44  float maxRSquared);
45 
46  std::vector<HGCDoublet> &getAllDoublets() { return allDoublets_; }
47  void findNtuplets(std::vector<HGCDoublet::HGCntuplet> &foundNtuplets,
48  std::vector<int> &seedIndices,
49  const unsigned int minClustersPerNtuplet,
50  const bool outInDFS,
51  const unsigned int maxOutInHops);
52  void clear() {
53  allDoublets_.clear();
54  theRootDoublets_.clear();
56  allDoublets_.shrink_to_fit();
57  theRootDoublets_.shrink_to_fit();
58  isOuterClusterOfDoublets_.shrink_to_fit();
59  }
61 
62 private:
63  std::vector<HGCDoublet> allDoublets_;
64  std::vector<unsigned int> theRootDoublets_;
65  std::vector<std::vector<int>> isOuterClusterOfDoublets_;
67 };
68 
69 #endif
std::vector< std::vector< int > > isOuterClusterOfDoublets_
Definition: HGCGraph.h:65
void makeAndConnectDoublets(const TILES &h, const std::vector< TICLSeedingRegion > &regions, int nEtaBins, int nPhiBins, const std::vector< reco::CaloCluster > &layerClusters, const std::vector< float > &mask, const edm::ValueMap< std::pair< float, float >> &layerClustersTime, int deltaIEta, int deltaIPhi, float minCosThetai, float maxCosPointing, float root_doublet_max_distance_from_seed_squared, float etaLimitIncreaseWindow, int skip_layers, int maxNumberOfLayers, float maxDeltaTime, int lastLayerEE, int lastLayerFH, const std::vector< double > &siblings_maxRSquared)
Definition: HGCGraph.cc:12
void setVerbosity(int level)
Definition: HGCGraph.h:60
std::vector< HGCDoublet > allDoublets_
Definition: HGCGraph.h:63
bool areOverlappingOnSiblingLayers(int innerIdx, int outerIdx, const std::vector< reco::CaloCluster > &layerClusters, float maxRSquared)
Definition: HGCGraph.cc:243
std::vector< HGCDoublet > & getAllDoublets()
Definition: HGCGraph.h:46
std::vector< unsigned int > theRootDoublets_
Definition: HGCGraph.h:64
void clear()
Definition: HGCGraph.h:52
bool areTimeCompatible(int innerIdx, int outerIdx, const edm::ValueMap< std::pair< float, float >> &layerClustersTime, float maxDeltaTime)
Definition: HGCGraph.cc:229
int verbosity_
Definition: HGCGraph.h:66
void findNtuplets(std::vector< HGCDoublet::HGCntuplet > &foundNtuplets, std::vector< int > &seedIndices, const unsigned int minClustersPerNtuplet, const bool outInDFS, const unsigned int maxOutInHops)
Definition: HGCGraph.cc:255
static constexpr int nPhiBins
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4