File indexing completed on 2024-04-06 12:27:51
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include "RecoTauTag/RecoTau/interface/RecoTauBuilderPlugins.h"
0011 #include "DataFormats/TauReco/interface/PFTauDiscriminator.h"
0012
0013 namespace reco {
0014 namespace tau {
0015
0016 class RecoTauDiscriminantCleanerPlugin : public RecoTauCleanerPlugin {
0017 public:
0018 RecoTauDiscriminantCleanerPlugin(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC);
0019 ~RecoTauDiscriminantCleanerPlugin() override {}
0020
0021
0022 double operator()(const reco::PFTauRef&) const override;
0023
0024 void beginEvent() override;
0025
0026 private:
0027 edm::InputTag discriminatorSrc_;
0028 edm::Handle<PFTauDiscriminator> discriminator_;
0029 edm::EDGetTokenT<PFTauDiscriminator> discriminator_token;
0030 };
0031
0032 RecoTauDiscriminantCleanerPlugin::RecoTauDiscriminantCleanerPlugin(const edm::ParameterSet& pset,
0033 edm::ConsumesCollector&& iC)
0034 : RecoTauCleanerPlugin(pset, std::move(iC)) {
0035 discriminatorSrc_ = pset.getParameter<edm::InputTag>("src");
0036 discriminator_token = iC.consumes<PFTauDiscriminator>(discriminatorSrc_);
0037 }
0038
0039 void RecoTauDiscriminantCleanerPlugin::beginEvent() {
0040
0041 evt()->getByToken(discriminator_token, discriminator_);
0042 }
0043
0044 double RecoTauDiscriminantCleanerPlugin::operator()(const reco::PFTauRef& tau) const {
0045
0046
0047 double result = -(*discriminator_)[tau];
0048 return result;
0049 }
0050
0051 }
0052 }
0053
0054
0055 #include "FWCore/Framework/interface/MakerMacros.h"
0056 DEFINE_EDM_PLUGIN(RecoTauCleanerPluginFactory,
0057 reco::tau::RecoTauDiscriminantCleanerPlugin,
0058 "RecoTauDiscriminantCleanerPlugin");