File indexing completed on 2023-03-17 11:21:47
0001 #ifndef RecoTauTag_RecoTau_PFRecoTauChargedHadronPlugins_h
0002 #define RecoTauTag_RecoTau_PFRecoTauChargedHadronPlugins_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
0021 #include "FWCore/Framework/interface/ConsumesCollector.h"
0022 #include "RecoTauTag/RecoTau/interface/RecoTauPluginsCommon.h"
0023
0024 #include <vector>
0025
0026 namespace reco {
0027
0028
0029 class Jet;
0030 class PFRecoTauChargedHadron;
0031
0032 namespace tau {
0033
0034 class PFRecoTauChargedHadronBuilderPlugin : public RecoTauEventHolderPlugin {
0035 public:
0036
0037 typedef std::vector<std::unique_ptr<PFRecoTauChargedHadron>> ChargedHadronVector;
0038 typedef ChargedHadronVector return_type;
0039 explicit PFRecoTauChargedHadronBuilderPlugin(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC)
0040 : RecoTauEventHolderPlugin(pset) {}
0041 ~PFRecoTauChargedHadronBuilderPlugin() override {}
0042
0043 virtual return_type operator()(const Jet&) const = 0;
0044
0045 void beginEvent() override {}
0046 };
0047
0048 class PFRecoTauChargedHadronQualityPlugin : public RecoTauNamedPlugin {
0049 public:
0050 explicit PFRecoTauChargedHadronQualityPlugin(const edm::ParameterSet& pset) : RecoTauNamedPlugin(pset) {}
0051 ~PFRecoTauChargedHadronQualityPlugin() override {}
0052
0053 virtual double operator()(const PFRecoTauChargedHadron&) const = 0;
0054 };
0055
0056 }
0057 }
0058
0059 #include "FWCore/PluginManager/interface/PluginFactory.h"
0060
0061 typedef edmplugin::PluginFactory<reco::tau::PFRecoTauChargedHadronQualityPlugin*(const edm::ParameterSet&)>
0062 PFRecoTauChargedHadronQualityPluginFactory;
0063 typedef edmplugin::PluginFactory<reco::tau::PFRecoTauChargedHadronBuilderPlugin*(const edm::ParameterSet&,
0064 edm::ConsumesCollector&& iC)>
0065 PFRecoTauChargedHadronBuilderPluginFactory;
0066
0067 #endif