Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 /*
0002  * =====================================================================================
0003  *       Filename:  RecoTauStringCleanerPlugin.cc
0004  *
0005  *    Description:  Rank taus by a string function.  There are three arguments,
0006  *                  a binary [selection] string, an expression to return if that
0007  *                  selection passes, and value to return if the selection
0008  *                  fails.
0009  *        Created:  11/11/2010 11:09:52
0010  *
0011  *         Author:  Evan K. Friis (UC Davis), evan.klose.friis@cern.ch
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   }  // namespace tau
0051 }  // namespace reco
0052 
0053 #include "FWCore/Framework/interface/MakerMacros.h"
0054 
0055 DEFINE_EDM_PLUGIN(RecoTauCleanerPluginFactory, reco::tau::RecoTauStringCleanerPlugin, "RecoTauStringCleanerPlugin");