Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:46:19

0001 #ifndef Fireworks_Core_FWItemValueGetter_h
0002 #define Fireworks_Core_FWItemValueGetter_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWItemValueGetter
0007 //
0008 /**\class FWItemValueGetter FWItemValueGetter.h Fireworks/Core/interface/FWItemValueGetter.h
0009 
0010    Description: Retrieves a particular value from an item
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Sun Nov 30 16:14:58 EST 2008
0019 //
0020 
0021 #include <string>
0022 #include <vector>
0023 
0024 #include "Rtypes.h"
0025 #include "FWCore/Reflection/interface/TypeWithDict.h"
0026 
0027 #include "CommonTools/Utils/interface/parser/ExpressionPtr.h"
0028 #include "CommonTools/Utils/interface/parser/ExpressionBase.h"
0029 
0030 class FWItemValueGetter {
0031 public:
0032   FWItemValueGetter(const edm::TypeWithDict&, const std::string& iPurpose);
0033   double valueFor(const void*, int idx) const;
0034   UInt_t precision(int idx) const;
0035   std::vector<std::string> getTitles() const;
0036   int numValues() const;
0037 
0038   const std::string& getToolTip(const void* iObject) const;
0039 
0040 private:
0041   struct Entry {
0042     reco::parser::ExpressionPtr m_expr;
0043     std::string m_expression;
0044     std::string m_unit;
0045     std::string m_title;
0046     UInt_t m_precision;
0047 
0048     Entry(reco::parser::ExpressionPtr iExpr, std::string iExpression, std::string iUnit, std::string iTitle, int iPrec)
0049         : m_expr(iExpr), m_expression(iExpression), m_unit(iUnit), m_title(iTitle), m_precision(iPrec) {}
0050   };
0051 
0052   bool addEntry(std::string iExpression, int iPrec = 2, std::string iTitle = "", std::string iUnit = "");
0053 
0054   typedef std::vector<Entry> Entries_t;
0055   Entries_t::const_iterator Entries_i;
0056 
0057   Entries_t m_entries;
0058   edm::TypeWithDict m_type;
0059 
0060   int m_titleWidth;
0061 };
0062 
0063 #endif