\section{A\-I\-D\-A\-:\-:I\-Range\-Set\-R\-O\-O\-T Class Reference}
\label{classAIDA_1_1IRangeSetROOT}\index{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}}


User level interface to Range\-Set.  




{\ttfamily \#include $<$I\-Range\-Set\-R\-O\-O\-T.\-h$>$}

Inheritance diagram for A\-I\-D\-A\-:\-:I\-Range\-Set\-R\-O\-O\-T\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classAIDA_1_1IRangeSetROOT}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual {\bf $\sim$\-I\-Range\-Set\-R\-O\-O\-T} ()\label{classAIDA_1_1IRangeSetROOT_adbdc8d90a4a8a30820be0cd35180bee7}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf lower\-Bounds} ()
\begin{DoxyCompactList}\small\item\em Return array of lower Bounds for the current set of ranges. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf upper\-Bounds} ()
\begin{DoxyCompactList}\small\item\em Return array of upper Bounds for the current set of ranges. \end{DoxyCompactList}\item 
virtual void {\bf include} (double x\-Min, double x\-Max)
\begin{DoxyCompactList}\small\item\em Add [x\-Min, x\-Max] interval to existing set of valid ranges. \end{DoxyCompactList}\item 
virtual void {\bf exclude} (double x\-Min, double x\-Max)
\begin{DoxyCompactList}\small\item\em Exclude [x\-Min, x\-Max] interval from the existing set of valid ranges. \end{DoxyCompactList}\item 
virtual void {\bf include\-All} ()\label{classAIDA_1_1IRangeSetROOT_a8ac9a008bb83dcc52de3e6465a1da472}

\begin{DoxyCompactList}\small\item\em Set full range (from M\-I\-N\-U\-S\-\_\-\-I\-N\-F to P\-L\-U\-S\-\_\-\-I\-N\-F ). \end{DoxyCompactList}\item 
virtual void {\bf exclude\-All} ()\label{classAIDA_1_1IRangeSetROOT_a1438c853ba5f287fe0b43fd8670ba251}

\begin{DoxyCompactList}\small\item\em Set empty range. \end{DoxyCompactList}\item 
virtual bool {\bfseries is\-In\-Range} (double point)\label{classAIDA_1_1IRangeSetROOT_a12a6540662c3e1b7d2470fa76227f4be}

\item 
virtual int {\bf size} ()
\begin{DoxyCompactList}\small\item\em Return current number of disjoint ranges (non-\/overlapping intervals). \end{DoxyCompactList}\item 
virtual double {\bfseries P\-L\-U\-S\-\_\-\-I\-N\-F} ()\label{classAIDA_1_1IRangeSetROOT_ad198b707a91d959f954a633a57889eb0}

\item 
virtual double {\bfseries M\-I\-N\-U\-S\-\_\-\-I\-N\-F} ()\label{classAIDA_1_1IRangeSetROOT_a50e878497b213427bd54bf71588387ac}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
User level interface to Range\-Set. 

Proposed rules for ranges\-:


\begin{DoxyItemize}
\item By default (no arguments) Range\-Set object is created with one valid range\-: (-\/infinity, +infinity).
\item size=0 means no valid ranges (is\-In\-Range(double point) will return false for any point). It also can be used to check if any range is set -\/ Range\-Set include valid interval only if size!=0.
\item Range\-Set can be smart, e.\-g merge overlapping valid ranges. So \doxyref{size()}{p.}{classAIDA_1_1IRangeSetROOT_a1d3d66e7a87eb42c4a7567a59a7c0845} does not always equal to the number of times user call include method.
\end{DoxyItemize}

\begin{DoxyAuthor}{Author}
T. Kraemer, D\-E\-S\-Y 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
\doxyref{I\-Range\-Set\-R\-O\-O\-T.\-h}{p.}{IRangeSetROOT_8h_source},v 1.\-1 2006-\/12-\/14 10\-:52\-:46 tkraemer Exp 
\end{DoxyParagraph}


\subsection{Member Function Documentation}
\index{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}!exclude@{exclude}}
\index{exclude@{exclude}!AIDA::IRangeSetROOT@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}}
\subsubsection[{exclude}]{\setlength{\rightskip}{0pt plus 5cm}void I\-Range\-Set\-R\-O\-O\-T\-::exclude (
\begin{DoxyParamCaption}
\item[{double}]{x\-Min, }
\item[{double}]{x\-Max}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IRangeSetROOT_a1b24c29f4a95e806c32d1c72edee244f}


Exclude [x\-Min, x\-Max] interval from the existing set of valid ranges. 


\begin{DoxyParams}{Parameters}
{\em x\-Min} & -\/ lower bound of range to be excluded \\
\hline
{\em x\-Max} & -\/ upper bound of range to be excluded \\
\hline
\end{DoxyParams}


Implements {\bf A\-I\-D\-A\-::\-I\-Range\-Set} \doxyref{}{p.}{classAIDA_1_1IRangeSet_ac96707dea3e2e0df8fd8e5d4b5aabb65}.

\index{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}!include@{include}}
\index{include@{include}!AIDA::IRangeSetROOT@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}}
\subsubsection[{include}]{\setlength{\rightskip}{0pt plus 5cm}void I\-Range\-Set\-R\-O\-O\-T\-::include (
\begin{DoxyParamCaption}
\item[{double}]{x\-Min, }
\item[{double}]{x\-Max}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IRangeSetROOT_a89cfae30a6a1859da9dd29f000796037}


Add [x\-Min, x\-Max] interval to existing set of valid ranges. 


\begin{DoxyParams}{Parameters}
{\em x\-Min} & -\/ lower bound of a new valid range \\
\hline
{\em x\-Max} & -\/ upper bound of a new valid range \\
\hline
\end{DoxyParams}


Implements {\bf A\-I\-D\-A\-::\-I\-Range\-Set} \doxyref{}{p.}{classAIDA_1_1IRangeSet_a6991338421992e1d81eef1ef197a100d}.

\index{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}!lower\-Bounds@{lower\-Bounds}}
\index{lower\-Bounds@{lower\-Bounds}!AIDA::IRangeSetROOT@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}}
\subsubsection[{lower\-Bounds}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::vector$<$ double $>$ \& I\-Range\-Set\-R\-O\-O\-T\-::lower\-Bounds (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IRangeSetROOT_a176908d6b1dd365a142f7626bd8ba9d9}


Return array of lower Bounds for the current set of ranges. 

\begin{DoxyReturn}{Returns}
Array of lower bounds for all valid ranges 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Range\-Set} \doxyref{}{p.}{classAIDA_1_1IRangeSet_adaeba923de16adcc7ea73f3ab40613d3}.

\index{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}!size@{size}}
\index{size@{size}!AIDA::IRangeSetROOT@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}int I\-Range\-Set\-R\-O\-O\-T\-::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IRangeSetROOT_a1d3d66e7a87eb42c4a7567a59a7c0845}


Return current number of disjoint ranges (non-\/overlapping intervals). 

Note\-: it is not always equal to the number of times user set the range \begin{DoxyReturn}{Returns}
Number of disjoint ranges 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Range\-Set} \doxyref{}{p.}{classAIDA_1_1IRangeSet_afd7de8039e9e6d92fb091e9cd96cd308}.

\index{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}!upper\-Bounds@{upper\-Bounds}}
\index{upper\-Bounds@{upper\-Bounds}!AIDA::IRangeSetROOT@{A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T}}
\subsubsection[{upper\-Bounds}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::vector$<$ double $>$ \& I\-Range\-Set\-R\-O\-O\-T\-::upper\-Bounds (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IRangeSetROOT_a9bdfeb230ab3f1b5ef6140995a207760}


Return array of upper Bounds for the current set of ranges. 

\begin{DoxyReturn}{Returns}
Array of upper bounds for all valid ranges 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Range\-Set} \doxyref{}{p.}{classAIDA_1_1IRangeSet_a142dbb0b0bdad08cd958c23a655d487d}.



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
I\-Range\-Set\-R\-O\-O\-T.\-h\item 
I\-Range\-Set\-R\-O\-O\-T.\-cc\end{DoxyCompactItemize}
