File indexing completed on 2024-04-06 12:27:52
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "RecoTauTag/RecoTau/interface/RecoTauBuilderPlugins.h"
0016 #include "DataFormats/TauReco/interface/PFTau.h"
0017 #include "DataFormats/TauReco/interface/PFTauFwd.h"
0018
0019 #include "CommonTools/Utils/interface/StringCutObjectSelector.h"
0020 #include "CommonTools/Utils/interface/StringObjectFunction.h"
0021
0022 namespace reco {
0023 namespace tau {
0024
0025 class RecoTauStringCleanerPlugin : public RecoTauCleanerPlugin {
0026 public:
0027 explicit RecoTauStringCleanerPlugin(const edm::ParameterSet&, edm::ConsumesCollector&& iC);
0028 ~RecoTauStringCleanerPlugin() override {}
0029 double operator()(const PFTauRef& tau) const override;
0030
0031 private:
0032 const StringCutObjectSelector<PFTau> selector_;
0033 const StringObjectFunction<PFTau> function_;
0034 double failResult_;
0035 };
0036
0037 RecoTauStringCleanerPlugin::RecoTauStringCleanerPlugin(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC)
0038 : RecoTauCleanerPlugin(pset, std::move(iC)),
0039 selector_(pset.getParameter<std::string>("selection")),
0040 function_(pset.getParameter<std::string>("selectionPassFunction")),
0041 failResult_(pset.getParameter<double>("selectionFailValue")) {}
0042
0043 double RecoTauStringCleanerPlugin::operator()(const PFTauRef& cand) const {
0044 if (selector_(*cand))
0045 return function_(*cand);
0046 else
0047 return failResult_;
0048 }
0049
0050 }
0051 }
0052
0053 #include "FWCore/Framework/interface/MakerMacros.h"
0054
0055 DEFINE_EDM_PLUGIN(RecoTauCleanerPluginFactory, reco::tau::RecoTauStringCleanerPlugin, "RecoTauStringCleanerPlugin");