\hypertarget{classfv_1_1GenValue}{}\section{fv\+:\+:Gen\+Value Class Reference}
\label{classfv_1_1GenValue}\index{fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}}


Inheritance diagram for fv\+:\+:Gen\+Value\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classfv_1_1GenValue__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classfv_1_1GenValue_a6a85db33e2414e7e77735a4706760300}{}\label{classfv_1_1GenValue_a6a85db33e2414e7e77735a4706760300} 
{\bfseries Gen\+Value} (const std\+::string \&\hyperlink{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b}{name}, const std\+::string \&alias)
\item 
\hypertarget{classfv_1_1GenValue_a56f7eab1a0043ea73ecf01ec11dafa5c}{}\label{classfv_1_1GenValue_a56f7eab1a0043ea73ecf01ec11dafa5c} 
const std\+::string \& {\bfseries get\+\_\+name} ()
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classfv_1_1GenValue_a804fa6719404472466896cc191a8123c}{}\label{classfv_1_1GenValue_a804fa6719404472466896cc191a8123c} 
static void {\bfseries reset} ()
\item 
\hypertarget{classfv_1_1GenValue_a26e4aaa4c26437925dbe895fbb558bc5}{}\label{classfv_1_1GenValue_a26e4aaa4c26437925dbe895fbb558bc5} 
static \hyperlink{classfv_1_1GenValue}{Gen\+Value} $\ast$ {\bfseries get\+\_\+value} (const std\+::string \&\hyperlink{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b}{name})
\item 
\hypertarget{classfv_1_1GenValue_a2d4be21b68793e1f02411fe1143396cf}{}\label{classfv_1_1GenValue_a2d4be21b68793e1f02411fe1143396cf} 
static void {\bfseries alias} (const std\+::string \&\hyperlink{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b}{name}, \hyperlink{classfv_1_1GenValue}{Gen\+Value} $\ast$value)
\item 
\hypertarget{classfv_1_1GenValue_a71d887498102aca1c896e956c50bc0fe}{}\label{classfv_1_1GenValue_a71d887498102aca1c896e956c50bc0fe} 
static \hyperlink{classfv_1_1GenValue}{Gen\+Value} $\ast$ {\bfseries alias} (const std\+::string \&\hyperlink{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b}{name})
\item 
\hypertarget{classfv_1_1GenValue_a66807a611d5f3e693f538e8430ae9585}{}\label{classfv_1_1GenValue_a66807a611d5f3e693f538e8430ae9585} 
static std\+::string {\bfseries summary} ()
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classfv_1_1GenValue_a26160e53542b728f9e0c11495dce3c20}{\+\_\+reset} ()=0
\begin{DoxyCompactList}\small\item\em Mark the internal value as invalid. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
static std\+::map$<$ const std\+::string, \hyperlink{classfv_1_1GenValue}{Gen\+Value} $\ast$ $>$ \hyperlink{classfv_1_1GenValue_abbb57abc392c44d1f7ad5e7e74a75297}{values}
\begin{DoxyCompactList}\small\item\em A static mapping containing all created \hyperlink{classfv_1_1Value}{Value} objects. \end{DoxyCompactList}\item 
static std\+::map$<$ const std\+::string, \hyperlink{classfv_1_1GenValue}{Gen\+Value} $\ast$ $>$ \hyperlink{classfv_1_1GenValue_ab58b81925a05884bbebca0d870da80d0}{aliases}
\begin{DoxyCompactList}\small\item\em Composite value names are typically nested. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::string \hyperlink{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b}{name}
\begin{DoxyCompactList}\small\item\em The name of the value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classfv_1_1GenValue_a98a93398ab5dafb2a572c64908d687eb}{}\label{classfv_1_1GenValue_a98a93398ab5dafb2a572c64908d687eb} 
std\+::ostream \& {\bfseries operator$<$$<$} (std\+::ostream \&os, const \hyperlink{classfv_1_1GenValue}{Gen\+Value} \&gv)
\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classfv_1_1GenValue_a26160e53542b728f9e0c11495dce3c20}{}\label{classfv_1_1GenValue_a26160e53542b728f9e0c11495dce3c20} 
\index{fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}!\+\_\+reset@{\+\_\+reset}}
\index{\+\_\+reset@{\+\_\+reset}!fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}}
\subsubsection{\texorpdfstring{\+\_\+reset()}{\_reset()}}
{\footnotesize\ttfamily virtual void fv\+::\+Gen\+Value\+::\+\_\+reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}



Mark the internal value as invalid. 

This is needed for \hyperlink{classfv_1_1DerivedValue}{Derived\+Value} to force a recalculation of the internal value when a new observation is loaded into memory. It is called automatically for all \hyperlink{classfv_1_1GenValue}{Gen\+Value} objects when reset is called. 

Implemented in \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ T $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ double $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ int $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ std\+::vector$<$ R $>$ $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ std\+::vector$<$ T $>$ $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ T\+Lorentz\+Vector $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ T $\ast$$>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ bool $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ std\+::pair$<$ T1, T2 $>$ $>$}, \hyperlink{classfv_1_1DerivedValue_a5c296d4f3171797f31a3fab002dececa}{fv\+::\+Derived\+Value$<$ std\+::pair$<$ T, int $>$ $>$}, and \hyperlink{classfv_1_1ObservedValue_af301f95c27cfa8024105a845ac6a7760}{fv\+::\+Observed\+Value$<$ T $>$}.



\subsection{Member Data Documentation}
\hypertarget{classfv_1_1GenValue_ab58b81925a05884bbebca0d870da80d0}{}\label{classfv_1_1GenValue_ab58b81925a05884bbebca0d870da80d0} 
\index{fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}!aliases@{aliases}}
\index{aliases@{aliases}!fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}}
\subsubsection{\texorpdfstring{aliases}{aliases}}
{\footnotesize\ttfamily std\+::map$<$const std\+::string, \hyperlink{classfv_1_1GenValue}{Gen\+Value}$\ast$$>$ fv\+::\+Gen\+Value\+::aliases\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}



Composite value names are typically nested. 

This makes complex values have rather unwieldy names. Therefore, one can declare aliases which allow for more human-\/usable names to be used. When a value is requested by name, an alias with that value takes precidence over a name with that value. \hypertarget{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b}{}\label{classfv_1_1GenValue_a610f89ee441eaad4c9e78f74d6bde93b} 
\index{fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}!name@{name}}
\index{name@{name}!fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}}
\subsubsection{\texorpdfstring{name}{name}}
{\footnotesize\ttfamily std\+::string fv\+::\+Gen\+Value\+::name\hspace{0.3cm}{\ttfamily [private]}}



The name of the value. 

This is used to allow for dynamic lookup of values based on their name via Gen\+Value\+::get\+\_\+value. \hypertarget{classfv_1_1GenValue_abbb57abc392c44d1f7ad5e7e74a75297}{}\label{classfv_1_1GenValue_abbb57abc392c44d1f7ad5e7e74a75297} 
\index{fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}!values@{values}}
\index{values@{values}!fv\+::\+Gen\+Value@{fv\+::\+Gen\+Value}}
\subsubsection{\texorpdfstring{values}{values}}
{\footnotesize\ttfamily std\+::map$<$const std\+::string, \hyperlink{classfv_1_1GenValue}{Gen\+Value}$\ast$$>$ fv\+::\+Gen\+Value\+::values\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}



A static mapping containing all created \hyperlink{classfv_1_1Value}{Value} objects. 

Every value object must have a unique name, and this name is used as a key in values to that object. This is used to enable more dynamic creation of objects as well as avoiding the uneccesary passing of pointers. 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/home/caleb/\+Sources/\+T\+T\+T\+T/filval/\hyperlink{value_8hpp}{value.\+hpp}\end{DoxyCompactItemize}
