File indexing completed on 2023-10-25 09:46:19
0001 #ifndef Fireworks_Core_FWItemValueGetter_h
0002 #define Fireworks_Core_FWItemValueGetter_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
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