CMS 3D CMS Logo

HGCalClusteringImpl.h
Go to the documentation of this file.
1 #ifndef __L1Trigger_L1THGCal_HGCalClusteringImpl_h__
2 #define __L1Trigger_L1THGCal_HGCalClusteringImpl_h__
3 
4 #include <array>
5 #include <string>
12 
14 
15 private:
16  static const unsigned kNSides_ = 2;
17  // FIXME: currently there is no access to the HGCal DDDConstants
18  // So cannot retrieve the following constants.
19  static const unsigned kLayersEE_ = 28;
20  static const unsigned kLayersFH_ = 12;
21  static const unsigned kLayers_ = kLayersEE_+kLayersFH_;
22 
23 public:
24 
25  HGCalClusteringImpl( const edm::ParameterSet & conf);
26 
27 
28  /* dR-algorithms */
29  bool isPertinent( const l1t::HGCalTriggerCell & tc,
30  const l1t::HGCalCluster & clu,
31  double distXY) const;
32 
33  void clusterizeDR( const edm::PtrVector<l1t::HGCalTriggerCell> & triggerCellsPtrs,
35  );
36 
37  /* NN-algorithms */
38  void mergeClusters( l1t::HGCalCluster & main_cluster,
39  const l1t::HGCalCluster & secondary_cluster ) const;
40 
41  void NNKernel( const std::vector<edm::Ptr<l1t::HGCalTriggerCell>> &reshuffledTriggerCells,
43  const HGCalTriggerGeometryBase & triggerGeometry
44  );
45 
46  void clusterizeNN( const edm::PtrVector<l1t::HGCalTriggerCell> & triggerCellsPtrs,
48  const HGCalTriggerGeometryBase & triggerGeometry
49  );
50 
51 
52 private:
53 
56  double dr_;
58  void triggerCellReshuffling( const edm::PtrVector<l1t::HGCalTriggerCell> & triggerCellsPtrs,
59  std::array<std::array<std::vector<edm::Ptr<l1t::HGCalTriggerCell>>, kLayers_>, kNSides_> & reshuffledTriggerCells );
60 
61 
62 };
63 
64 #endif
void clusterizeDR(const edm::PtrVector< l1t::HGCalTriggerCell > &triggerCellsPtrs, l1t::HGCalClusterBxCollection &clusters)
void mergeClusters(l1t::HGCalCluster &main_cluster, const l1t::HGCalCluster &secondary_cluster) const
static const unsigned kLayersFH_
void clusterizeNN(const edm::PtrVector< l1t::HGCalTriggerCell > &triggerCellsPtrs, l1t::HGCalClusterBxCollection &clusters, const HGCalTriggerGeometryBase &triggerGeometry)
bool isPertinent(const l1t::HGCalTriggerCell &tc, const l1t::HGCalCluster &clu, double distXY) const
void triggerCellReshuffling(const edm::PtrVector< l1t::HGCalTriggerCell > &triggerCellsPtrs, std::array< std::array< std::vector< edm::Ptr< l1t::HGCalTriggerCell >>, kLayers_ >, kNSides_ > &reshuffledTriggerCells)
static const unsigned kLayersEE_
std::string clusteringAlgorithmType_
static const unsigned kNSides_
HGCalClusteringImpl(const edm::ParameterSet &conf)
void NNKernel(const std::vector< edm::Ptr< l1t::HGCalTriggerCell >> &reshuffledTriggerCells, l1t::HGCalClusterBxCollection &clusters, const HGCalTriggerGeometryBase &triggerGeometry)
static const unsigned kLayers_