Go to the documentation of this file. 1 #ifndef __L1Trigger_L1THGCal_HGCalHistoSeedingImpl_h__
2 #define __L1Trigger_L1THGCal_HGCalHistoSeedingImpl_h__
18 std::array<float, 3>
values = {{0., 0., 0.}};
25 using Data = std::vector<T>;
53 <<
") in seeding histogram of size (" <<
bins1_ <<
"," <<
bins2_ <<
")";
70 if (
x1 < 0 || x2 < 0 || x1 >= std::get<0>(
bins_) ||
x2 >= std::get<1>(
bins_)) {
71 throw cms::Exception(
"OutOfBound") <<
"Setting invalid navigator home position (" <<
x1 <<
"," <<
x2 <<
"\n)";
77 std::array<int, 2>
move(
int offset1,
int offset2) {
return {{offset<0>(offset1), offset<1>(offset2)}}; }
81 int shifted = std::get<N>(
home_);
86 if (shifted < 0 || shifted >=
max)
93 while (shifted >=
max)
116 std::vector<std::pair<GlobalPoint, double>>& seedPositionsEnergy);
std::vector< std::pair< GlobalPoint, double > > computeSecondaryMaxSeeds(const Histogram &histoClusters)
unsigned index(int zside, unsigned x1, unsigned x2) const
static constexpr double area_per_triggercell_
void eventSetup(const edm::EventSetup &es)
T & at(int zside, unsigned x1, unsigned x2)
const_iterator end() const
std::array< double, 4 > boundaries()
std::vector< double > neighbour_weights_
std::array< int, 2 > home_
HGCalTriggerTools triggerTools_
Histogram fillHistoClusters(const std::vector< edm::Ptr< l1t::HGCalCluster >> &clustersPtrs)
void setHome(int x1, int x2)
std::array< int, 2 > move(int offset1, int offset2)
typename Data::const_iterator const_iterator
std::vector< std::pair< GlobalPoint, double > > computeInterpolatedMaxSeeds(const Histogram &histoClusters)
Histogram fillSmoothRPhiHistoClusters(const Histogram &histoClusters)
HistogramT(unsigned bins1, unsigned bins2)
static constexpr unsigned kSides_
SeedingSpace seedingSpace_
static constexpr unsigned neighbour_weights_size_
typename Data::iterator iterator
std::array< int, 2 > bins_
std::array< float, 3 > values
HistogramT< Bin > Histogram
Histogram fillSmoothHistoClusters(const Histogram &, const vector< double > &, Bin::Content)
std::vector< std::pair< GlobalPoint, double > > computeThresholdSeeds(const Histogram &histoClusters)
static constexpr double kXYMax_
const T & at(int zside, unsigned x1, unsigned x2) const
Histogram fillSmoothPhiHistoClusters(const Histogram &histoClusters, const vector< unsigned > &binSums)
const_iterator begin() const
void setSeedEnergyAndPosition(std::vector< std::pair< GlobalPoint, double >> &seedPositionsEnergy, int z_side, unsigned bin_R, unsigned bin_phi, const Bin &histBin)
std::string seedingAlgoType_
SeedingPosition seedingPosition_
HGCalHistoSeedingImpl(const edm::ParameterSet &conf)
static unsigned const int shift
std::vector< double > smoothing_hcal_
std::array< AxisType, 2 > axis_types_
Navigator(int bins1, AxisType type_axis1, int bins2, AxisType type_axis2)
std::vector< unsigned > binsSumsHisto_
std::vector< std::pair< GlobalPoint, double > > computeMaxSeeds(const Histogram &histoClusters)
void findHistoSeeds(const std::vector< edm::Ptr< l1t::HGCalCluster >> &clustersPtr, std::vector< std::pair< GlobalPoint, double >> &seedPositionsEnergy)
std::vector< double > smoothing_ecal_
float dR(const l1t::HGCalCluster &clu, const GlobalPoint &seed) const