1 #ifndef __InitialClusteringStepBase_H__
2 #define __InitialClusteringStepBase_H__
14 #include <unordered_map>
45 for (
const auto&
pset : thresholds) {
48 std::vector<int> depths;
49 std::vector<double> thresh_E;
50 std::vector<double> thresh_pT;
51 std::vector<double> thresh_pT2;
54 depths =
pset.getParameter<std::vector<int> >(
"depths");
55 thresh_E =
pset.getParameter<std::vector<double> >(
"gatheringThreshold");
56 thresh_pT =
pset.getParameter<std::vector<double> >(
"gatheringThresholdPt");
57 if (thresh_E.size() != depths.size() || thresh_pT.size() != depths.size()) {
59 <<
"gatheringThresholds mismatch with the numbers of depths";
63 thresh_E.push_back(
pset.getParameter<
double>(
"gatheringThreshold"));
64 thresh_pT.push_back(
pset.getParameter<
double>(
"gatheringThresholdPt"));
67 for (
unsigned int i = 0;
i < thresh_pT.size(); ++
i) {
68 thresh_pT2.push_back(thresh_pT[
i] * thresh_pT[
i]);
74 <<
"Detector layer : " << det <<
" is not in the list of recognized"
75 <<
" detector layers!";
90 const std::vector<bool>& mask,
91 const std::vector<bool>&
seeds,
95 o <<
"InitialClusteringStep with algo \"" <<
_algoName <<
"\" located " <<
_nSeeds <<
" seeds and built "
109 typedef std::tuple<std::vector<int>, std::vector<double>, std::vector<double> >
I3tuple;
const std::unordered_map< std::string, int > _layerMap
VParameterSet const & getParameterSetVector(std::string const &name) const
reco::PFRecHitRef makeRefhit(const edm::Handle< reco::PFRecHitCollection > &h, const unsigned i) const
InitialClusteringStepBase ICSB
virtual void updateEvent(const edm::Event &)
_algoName(conf.getParameter< std::string >("algoName"))
const std::string _algoName
virtual void buildClusters(const edm::Handle< reco::PFRecHitCollection > &, const std::vector< bool > &mask, const std::vector< bool > &seeds, reco::PFClusterCollection &)=0
InitialClusteringStepBase(const edm::ParameterSet &conf, edm::ConsumesCollector &cc)
edm::Ref< PFRecHitCollection > PFRecHitRef
persistent reference to PFRecHit objects
edmplugin::PluginFactory< InitialClusteringStepBase *(const edm::ParameterSet &, edm::ConsumesCollector &)> InitialClusteringStepFactory
virtual void update(const edm::EventSetup &)
std::tuple< std::vector< int >, std::vector< double >, std::vector< double > > I3tuple
T getParameter(std::string const &) const
ICSB & operator=(const ICSB &)=delete
virtual ~InitialClusteringStepBase()=default
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
std::unordered_map< int, I3tuple > _thresholds
std::ostream & operator<<(std::ostream &o) const