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