Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:32

0001 #ifndef Fireworks_Core_FWModelFilter_h
0002 #define Fireworks_Core_FWModelFilter_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWModelFilter
0007 //
0008 /**\class FWModelFilter FWModelFilter.h Fireworks/Core/interface/FWModelFilter.h
0009 
0010    Description: <one line class summary>
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Fri Feb 29 13:39:51 PST 2008
0019 //
0020 
0021 // system include files
0022 #include <string>
0023 #include "FWCore/Reflection/interface/TypeWithDict.h"
0024 
0025 // user include files
0026 #include "CommonTools/Utils/interface/parser/SelectorPtr.h"
0027 #include "CommonTools/Utils/interface/parser/SelectorBase.h"
0028 
0029 // forward declarations
0030 
0031 class FWModelFilter {
0032 public:
0033   FWModelFilter(const std::string& iExpression, const std::string& iClassName);
0034   virtual ~FWModelFilter();
0035 
0036   // ---------- const member functions ---------------------
0037 
0038   const std::string& expression() const;
0039 
0040   bool passesFilter(const void*) const;
0041 
0042   bool trivialFilter() const;
0043   // ---------- static member functions --------------------
0044 
0045   // ---------- member functions ---------------------------
0046   /** Throws an FWExpressionException if there is a problem */
0047   void setExpression(const std::string&);
0048   void setClassName(const std::string&);
0049 
0050 private:
0051   //FWModelFilter(const FWModelFilter&); // stop default
0052 
0053   //const FWModelFilter& operator=(const FWModelFilter&); // stop default
0054 
0055   // ---------- member data --------------------------------
0056   std::string m_expression;
0057   std::string m_className;
0058   reco::parser::SelectorPtr m_selector;
0059   edm::TypeWithDict m_type;
0060 };
0061 
0062 #endif