Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:51

0001 /*
0002  * RecoTauDiscriminantCleanerPlugin
0003  *
0004  * Author: Evan K. Friis, UC Davis
0005  *
0006  * A reco tau cleaner plugin that given a PFTau returns the associated value 
0007  * stored in a PFTauDiscrimiantor.
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       // Get discriminant value for a given tau Ref
0022       double operator()(const reco::PFTauRef&) const override;
0023       // Hook called from base class at the beginning of each event
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       // Load our handle to the discriminators from the event
0041       evt()->getByToken(discriminator_token, discriminator_);
0042     }
0043 
0044     double RecoTauDiscriminantCleanerPlugin::operator()(const reco::PFTauRef& tau) const {
0045       // Get the discriminator result for this tau. N.B. result is negated!  lower
0046       // = more "tau like"! This is opposite to the normal case.
0047       double result = -(*discriminator_)[tau];
0048       return result;
0049     }
0050 
0051   }  // namespace tau
0052 }  // namespace reco
0053 
0054 // Register our plugin
0055 #include "FWCore/Framework/interface/MakerMacros.h"
0056 DEFINE_EDM_PLUGIN(RecoTauCleanerPluginFactory,
0057                   reco::tau::RecoTauDiscriminantCleanerPlugin,
0058                   "RecoTauDiscriminantCleanerPlugin");