Go to the documentation of this file. 1 #ifndef L1Trigger_Phase2L1ParticleFlow_CALOCLUSTERER_H
2 #define L1Trigger_Phase2L1ParticleFlow_CALOCLUSTERER_H
28 float eta(
int icell)
const {
return eta_[icell]; }
29 float phi(
int icell)
const {
return phi_[icell]; }
128 for (
unsigned int i = 0,
n =
data_.size();
i <
n; ++
i) {
204 template <
typename Corrector>
211 std::unique_ptr<l1t::PFClusterCollection>
fetchCells(
bool unclusteredOnly =
false,
float ptMin = 0.)
const;
213 std::unique_ptr<l1t::PFClusterCollection>
fetch(
float ptMin = 0.)
const;
215 float ptMin = 0.)
const;
242 virtual void run() = 0;
249 template <
typename Corrector>
256 std::unique_ptr<l1t::PFClusterCollection>
fetch()
const;
273 void clear()
override;
283 void clear()
override;
static const int phase1_ietaCoarse_
std::vector< std::array< int, 8 > > neighbours_
virtual ~SimpleCaloLinkerBase()
int imove(int ieta, int iphi, int deta, int dphi)
const IndexGrid & indexGrid() const
static const int phase2_ietaVeryCoarse_
const Grid * getGrid(const std::string &type)
const Cluster nullCluster_
const Grid & grid() const
T & operator()(float eta, float phi)
std::vector< Cluster > clusters_
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ cells
int iphi(int icell) const
PreClusterGrid ecalToHCal_
static const int phase2_ietaCoarse_
const SingleCaloClusterer & hcal_
std::vector< float > phi_
static const int phase2_nEta_
static const float phase1_towerEtas_[phase1_nEta_]
const T & operator[](int icell) const
SimpleCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
std::unique_ptr< SimpleCaloLinkerBase > makeCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
std::vector< std::pair< int, float > > constituents
SimpleCaloLinkerBase(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
int ifind_cell(int ieta, int iphi) const
int iphi(int icell) const
int ieta(int icell) const
void add(const reco::Candidate &c)
std::vector< float > etaWidth_
void grow()
possibly grow clusters by adding unclustered energy on the sides
FlatCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
GridData(const Grid &grid)
std::vector< int > cell_map_
T & operator[](int icell)
std::unique_ptr< l1t::PFClusterCollection > fetch() const
bool valid_ieta_iphi(int ieta, int iphi) const
static const int phase2_nPhi_
float phi(int icell) const
std::unique_ptr< l1t::PFClusterCollection > fetchCells(bool unclusteredOnly=false, float ptMin=0.) const
const EtGrid & raw() const
static const int phase1_nPhi_
int find_cell(float eta, float phi) const override
void add(float pt, float eta, float phi)
const int ietaVeryCoarse_
float ptOverNeighLocalMaxSum
const T & neigh(int icell, unsigned int idx) const
unsigned int size() const
const T & operator()(float eta, float phi) const
int neighbour(int icell, unsigned int idx) const
std::vector< float > phiWidth_
static const int phase1_ietaVeryCoarse_
static const float phase2_towerEtas_[phase2_nEta_]
const SingleCaloClusterer & ecal_
void correct(const Corrector &corrector)
EtGrid & raw()
non-const access to the energy: be careful to use it only before 'run()'
unsigned int size() const
float eta(int icell) const
GridData< PreCluster > PreClusterGrid
SingleCaloClusterer combClusterer_
float phi(int icell) const
std::vector< float > eta_
void correct(const Corrector &corrector)
GridData< int > IndexGrid
GridData< T > & operator=(const GridData< T > &other)
int ieta(int icell) const
bool energyWeightedPosition_
const Cluster & cluster(int i) const
~FlatCaloLinker() override
GridData< T > & operator+=(const GridData< T > &other)
Abs< T >::type abs(const T &t)
float eta(int icell) const
PreClusterGrid precluster_
float phiWidth(int icell) const
~SimpleCaloLinker() override
EnergyShareAlgo energyShareAlgo_
std::unique_ptr< l1t::PFClusterCollection > fetch(float ptMin=0.) const
SingleCaloClusterer(const edm::ParameterSet &pset)
const std::vector< Cluster > & clusters() const
Phase1GridBase(int nEta, int nPhi, int ietaCoarse, int ietaVeryCoarse, const float *towerEtas)
virtual int find_cell(float eta, float phi) const =0
std::vector< CombinedCluster > clusters_
float etaWidth(int icell) const
static const int phase1_nEta_