13 std::vector<edm::ParameterSet>
cuts = iConfig.
getParameter<std::vector<edm::ParameterSet> >(
"cuts");
14 for (
const auto&
cut : cuts) {
16 info.
depth =
cut.getParameter<
double>(
"depth");
17 info.
minE =
cut.getParameter<
double>(
"minEnergy");
18 info.
maxE =
cut.getParameter<
double>(
"maxEnergy");
19 info.
minTime =
cut.getParameter<
double>(
"minTime");
20 info.
maxTime =
cut.getParameter<
double>(
"maxTime");
21 info.
endcap =
cut.getParameter<
bool>(
"endcap");
25 produces<reco::PFClusterCollection>();
26 produces<reco::PFClusterCollection>(
"OOT");
32 auto out = std::make_unique<reco::PFClusterCollection>();
33 auto outOOT = std::make_unique<reco::PFClusterCollection>();
35 for (
const auto& cluster : *clusters) {
36 const double energy = cluster.energy();
37 const double time = cluster.time();
38 const double depth = cluster.depth();
41 if (energy < info.minE || energy >
info.maxE)
43 if (depth < 0.9 * info.depth || depth > 1.1 *
info.depth)
50 if (time >
info.minTime && time <
info.maxTime)
51 out->push_back(cluster);
53 outOOT->push_back(cluster);
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< CutInfo > cutInfo_
PFClusterTimeSelector(const edm::ParameterSet &)
~PFClusterTimeSelector() override
void beginRun(const edm::Run &run, const edm::EventSetup &es) override
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
edm::EDGetTokenT< reco::PFClusterCollection > clusters_