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 
12 #include "HGCDoublet.h"
13 
14 class HGCGraph {
15 public:
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<float> &layerClustersTime,
23  int deltaIEta,
24  int deltaIPhi,
25  float minCosThetai,
26  float maxCosPointing,
27  int missing_layers,
28  int maxNumberOfLayers,
29  float maxDeltaTime);
30 
31  bool areTimeCompatible(int innerIdx, int outerIdx, const edm::ValueMap<float> &layerClustersTime, float maxDeltaTime);
32 
33  std::vector<HGCDoublet> &getAllDoublets() { return allDoublets_; }
34  void findNtuplets(std::vector<HGCDoublet::HGCntuplet> &foundNtuplets,
35  std::vector<int> &seedIndices,
36  const unsigned int minClustersPerNtuplet,
37  const bool outInDFS,
38  const unsigned int maxOutInHops);
39  void clear() {
40  allDoublets_.clear();
41  theRootDoublets_.clear();
42  theNtuplets_.clear();
44  }
47 
48 private:
49  std::vector<HGCDoublet> allDoublets_;
50  std::vector<unsigned int> theRootDoublets_;
51  std::vector<std::vector<HGCDoublet *>> theNtuplets_;
52  std::vector<std::vector<int>> isOuterClusterOfDoublets_;
54 };
55 
56 #endif
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
std::vector< HGCDoublet > & getAllDoublets()
Definition: HGCGraph.h:33
constexpr int nPhiBins
Definition: Common.h:12
std::vector< unsigned int > theRootDoublets_
Definition: HGCGraph.h:50
constexpr int nEtaBins
Definition: Common.h:11
void makeAndConnectDoublets(const TICLLayerTiles &h, const std::vector< TICLSeedingRegion > &regions, int nEtaBins, int nPhiBins, const std::vector< reco::CaloCluster > &layerClusters, const std::vector< float > &mask, const edm::ValueMap< float > &layerClustersTime, int deltaIEta, int deltaIPhi, float minCosThetai, float maxCosPointing, int missing_layers, int maxNumberOfLayers, float maxDeltaTime)
Definition: HGCGraph.cc:10
int verbosity_
Definition: HGCGraph.h:53
void setVerbosity(int level)
Definition: HGCGraph.h:45
std::vector< std::vector< HGCDoublet * > > theNtuplets_
Definition: HGCGraph.h:51
VerbosityLevel
Definition: HGCGraph.h:46
void clear()
Definition: HGCGraph.h:39
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:137
std::vector< std::vector< int > > isOuterClusterOfDoublets_
Definition: HGCGraph.h:52
std::vector< HGCDoublet > allDoublets_
Definition: HGCGraph.h:49
bool areTimeCompatible(int innerIdx, int outerIdx, const edm::ValueMap< float > &layerClustersTime, float maxDeltaTime)
Definition: HGCGraph.cc:126