26 std::vector<std::unique_ptr<PFRecHitCreatorBase>>
creators_;
42 produces<reco::PFRecHitCollection>();
43 produces<reco::PFRecHitCollection>(
"Cleaned");
47 std::vector<edm::ParameterSet> creators = iConfig.
getParameter<std::vector<edm::ParameterSet>>(
"producers");
48 for (
auto& creator : creators) {
65 creator->init(iSetup);
73 auto out = std::make_unique<reco::PFRecHitCollection>();
74 auto cleaned = std::make_unique<reco::PFRecHitCollection>();
76 out->reserve(localRA1.upper());
77 cleaned->reserve(localRA2.upper());
80 creator->importRecHits(
out, cleaned,
iEvent, iSetup);
83 if (
out->capacity() > 2 *
out->size())
85 if (cleaned->capacity() > 2 * cleaned->size())
86 cleaned->shrink_to_fit();
87 localRA1.update(
out->size());
88 localRA2.update(cleaned->size());
94 for (
auto& pfrechit : *
out) {
107 pset.add<std::vector<int>>(
"hcalEnums", {});
127 psd2.
add<std::vector<int>>(
"maxSeverities", {});
128 psd2.
add<std::vector<double>>(
"cleaningThresholds", {});
129 psd2.
add<std::vector<std::string>>(
"flags", {});
130 psd2.
add<
bool>(
"usePFThresholdsFromDB",
false);
133 psd3.
add<std::vector<int>>(
"depth", {});
134 psd3.
add<std::vector<double>>(
"threshold", {});
135 psd3.
add<
int>(
"detectorEnum", 0);
138 psd2.
add<
double>(
"thresholdSNR", 0);
139 psd2.
add<
bool>(
"applySelectionsToAllCrystals",
false);
140 psd2.
add<
double>(
"cleaningThreshold", 0);
141 psd2.
add<
bool>(
"timingCleaning",
false);
142 psd2.
add<
bool>(
"topologicalCleaning",
false);
143 psd2.
add<
bool>(
"skipTTRecoveredHits",
false);
144 psd2.
add<
double>(
"threshold", 0);
145 psd2.
add<
double>(
"threshold_ring0", 0);
146 psd2.
add<
double>(
"threshold_ring12", 0);
147 psd.
addVPSet(
"qualityTests", psd2, {});
149 psd.
add<
double>(
"EMDepthCorrection", 0);
150 psd.
add<
double>(
"HADDepthCorrection", 0);
151 psd.
add<
double>(
"thresh_HF", 0);
152 psd.
add<
double>(
"ShortFibre_Cut", 0);
153 psd.
add<
double>(
"LongFibre_Fraction", 0);
154 psd.
add<
double>(
"LongFibre_Cut", 0);
155 psd.
add<
double>(
"ShortFibre_Fraction", 0);
156 psd.
add<
double>(
"HFCalib29", 0);
159 desc.addVPSet(
"producers", psd, {});
std::vector< std::unique_ptr< PFRecHitCreatorBase > > creators_
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
T getParameter(std::string const &) const
~PFRecHitProducer() override
ParameterDescriptionBase * addVPSet(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
def create(alignables, pedeDump, additionalData, outputFile, config)
uint32_t cc[maxCellsPerHit]
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
void produce(edm::Event &, const edm::EventSetup &) override
static bool sortByDetId(const std::pair< int, float > &pair1, const std::pair< int, float > &pair2)
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
#define DEFINE_FWK_MODULE(type)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
PFRecHitProducer(const edm::ParameterSet &iConfig)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::unique_ptr< PFRecHitNavigatorBase > navigator_
void beginRun(edm::Run const &, const edm::EventSetup &) override