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]; }
131 for (
unsigned int i = 0,
n =
data_.size();
i <
n; ++
i) {
196 float prevw = (newet -
pt) / newet;
197 float nextw =
pt / newet;
223 template <
typename Corrector>
230 std::unique_ptr<l1t::PFClusterCollection>
fetchCells(
bool unclusteredOnly =
false,
float ptMin = 0.)
const;
232 std::unique_ptr<l1t::PFClusterCollection>
fetch(
float ptMin = 0.)
const;
234 float ptMin = 0.)
const;
268 virtual void run() = 0;
275 template <
typename Corrector>
282 std::unique_ptr<l1t::PFClusterCollection>
fetch()
const;
302 void clear()
override;
312 void clear()
override;
323 void clear()
override;
Phase1GridBase(int nEta, int nPhi, int ietaCoarse, int ietaVeryCoarse, const float *towerEtas)
std::vector< CombinedCluster > clusters_
int iphi(int icell) const
int imove(int ieta, int iphi, int deta, int dphi)
float ptOverNeighLocalMaxSum
std::vector< double > etaBounds_
float eta(int icell) const
GridData< float > EtaPhiCenterGrid
std::vector< float > eta_
virtual ~SimpleCaloLinkerBase()
std::vector< unsigned int > maxClustersEtaPhi_
const Grid & grid() const
T & operator()(float eta, float phi)
int ieta(int icell) const
const Cluster nullCluster_
const EtaPhiCenterGrid & phiCenter() const
SimpleCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
const SingleCaloClusterer & hcal_
SingleCaloClusterer(const edm::ParameterSet &pset)
const std::vector< unsigned int > maxClustersEtaPhi_
void fill(float pt, float eta, float phi, unsigned int index)
EtaPhiCenterGrid phi_center_
const IndexGrid & indexGrid() const
int iphi(int icell) const
std::vector< unsigned int > maxClustersEtaPhi_
std::unique_ptr< SimpleCaloLinkerBase > makeCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
int ieta(int icell) const
CombinedCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
GridData< PreCluster > PreClusterGrid
void add(const reco::Candidate &c)
~CombinedCaloLinker() override
static const int phase1_ietaVeryCoarse_
std::vector< float > etaWidth_
std::vector< Cluster > clusters_
const T & operator[](int icell) const
FlatCaloLinker(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
PreClusterGrid ecalToHCal_
SimpleCaloLinkerBase(const edm::ParameterSet &pset, const SingleCaloClusterer &ecal, const SingleCaloClusterer &hcal)
T & operator[](int icell)
const Grid * getGrid(const std::string &type)
GridData(const Grid &grid)
bool valid_ieta_iphi(int ieta, int iphi) const
int ifind_cell(int ieta, int iphi) const
std::unique_ptr< l1t::PFClusterCollection > fetch() const
EtaPhiCenterGrid eta_center_
SingleCaloClusterer combClusterer_
int find_cell(float eta, float phi) const override
std::vector< int > cell_map_
const int ietaVeryCoarse_
int neighbour(int icell, unsigned int idx) const
std::vector< float > phiWidth_
static const int phase1_nEta_
float phi(int icell) const
Abs< T >::type abs(const T &t)
static const int phase2_ietaCoarse_
std::unique_ptr< l1t::PFClusterCollection > fetchCells(bool unclusteredOnly=false, float ptMin=0.) const
static const int phase2_nEta_
std::vector< float > phi_
std::vector< std::vector< std::pair< float, unsigned int > > > regionPtIndices_
std::vector< std::pair< int, float > > constituents
std::vector< unsigned int > returnSorted()
const T & operator()(float eta, float phi) const
std::vector< double > phiBounds_
void add(float pt, float eta, float phi)
float phi(float eta, float phi) const
void correct(const Corrector &corrector)
const SingleCaloClusterer & ecal_
const T & neigh(int icell, unsigned int idx) const
static const int phase2_ietaVeryCoarse_
unsigned int size() const
void correct(const Corrector &corrector)
void grow()
possibly grow clusters by adding unclustered energy on the sides
const std::vector< double > phiBounds_
EtGrid & raw()
non-const access to the energy: be careful to use it only before 'run()'
float etaWidth(int icell) const
std::vector< double > phiBounds_
static const int phase1_ietaCoarse_
const EtGrid & raw() const
const std::vector< double > etaBounds_
GridSelector(std::vector< double > etaBounds, std::vector< double > phiBounds, std::vector< unsigned int > maxClusters)
static const int phase2_nPhi_
std::vector< double > etaBounds_
EtaPhiCenterGrid & phiCenter()
PreClusterGrid precluster_
float eta(int icell) const
std::unique_ptr< l1t::PFClusterCollection > fetch(float ptMin=0.) const
const EtaPhiCenterGrid & etaCenter() const
EtaPhiCenterGrid & etaCenter()
float phi(int icell) const
GridData< T > & operator+=(const GridData< T > &other)
SingleCaloClusterer combClusterer_
float eta(float eta, float phi) const
GridData< int > IndexGrid
virtual int find_cell(float eta, float phi) const =0
GridData< T > & operator=(const GridData< T > &other)
bool energyWeightedPosition_
const Cluster & cluster(int i) const
~SimpleCaloLinker() override
~FlatCaloLinker() override
unsigned int size() const
std::vector< std::array< int, 8 > > neighbours_
std::vector< int > neighborCells_
EnergyShareAlgo energyShareAlgo_
static const float phase1_towerEtas_[phase1_nEta_]
static const float phase2_towerEtas_[phase2_nEta_]
const std::vector< Cluster > & clusters() const
float phiWidth(int icell) const
static const int phase1_nPhi_