CMS 3D CMS Logo

PatternRecognitionbyCA.h
Go to the documentation of this file.
1 // Author: Felice Pantaleo,Marco Rovere - felice.pantaleo@cern.ch, marco.rovere@cern.ch
2 // Date: 09/2018
3 
4 #ifndef __RecoHGCal_TICL_PRbyCA_H__
5 #define __RecoHGCal_TICL_PRbyCA_H__
6 #include <memory> // unique_ptr
10 #include "HGCGraph.h"
11 
12 namespace ticl {
13  template <typename TILES>
15  public:
17  ~PatternRecognitionbyCA() override;
18 
20  std::vector<Trackster>& result,
21  std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation) override;
22 
23  void energyRegressionAndID(const std::vector<reco::CaloCluster>& layerClusters,
24  const tensorflow::Session*,
25  std::vector<Trackster>& result);
26  void emptyTrackstersFromSeedsTRK(std::vector<Trackster>& tracksters,
27  std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation,
28  const edm::ProductID& collectionID) const;
29 
31 
32  private:
33  void mergeTrackstersTRK(const std::vector<Trackster>&,
34  const std::vector<reco::CaloCluster>&,
35  std::vector<Trackster>&,
36  std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation) const;
38  const std::unique_ptr<HGCGraphT<TILES>> theGraph_;
41  const bool out_in_dfs_;
42  const unsigned int max_out_in_hops_;
43  const float min_cos_theta_;
44  const float min_cos_pointing_;
47  const int skip_layers_;
49  bool check_missing_layers_ = false;
50  const unsigned int shower_start_max_layer_;
51  const unsigned int min_layers_per_trackster_;
52  const std::vector<int> filter_on_categories_;
53  const double pid_threshold_;
57  const float max_delta_time_;
61  const float eidMinClusterEnergy_;
62  const int eidNLayers_;
63  const int eidNClusters_;
64  const bool computeLocalTime_;
65 
67  tensorflow::Session* eidSession_;
68  const std::vector<double> siblings_maxRSquared_;
69 
70  static const int eidNFeatures_ = 3;
71  };
72 
73 } // namespace ticl
74 #endif
const std::unique_ptr< HGCGraphT< TILES > > theGraph_
void mergeTrackstersTRK(const std::vector< Trackster > &, const std::vector< reco::CaloCluster > &, std::vector< Trackster > &, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation) const
void emptyTrackstersFromSeedsTRK(std::vector< Trackster > &tracksters, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation, const edm::ProductID &collectionID) const
const std::vector< double > siblings_maxRSquared_
void makeTracksters(const typename PatternRecognitionAlgoBaseT< TILES >::Inputs &input, std::vector< Trackster > &result, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation) override
static std::string const input
Definition: EdmProvDump.cc:50
const std::vector< int > filter_on_categories_
const unsigned int min_layers_per_trackster_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
void energyRegressionAndID(const std::vector< reco::CaloCluster > &layerClusters, const tensorflow::Session *, std::vector< Trackster > &result)
PatternRecognitionbyCA(const edm::ParameterSet &conf, edm::ConsumesCollector iC)
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: Common.h:10
const unsigned int shower_start_max_layer_
const float root_doublet_max_distance_from_seed_squared_