\section{A\-I\-D\-A\-:\-:I\-Range\-Set Class Reference}
\label{classAIDA_1_1IRangeSet}\index{A\-I\-D\-A\-::\-I\-Range\-Set@{A\-I\-D\-A\-::\-I\-Range\-Set}}


User level interface to Range\-Set.  




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

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

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf lower\-Bounds} ()=0
\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} ()=0
\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)=0
\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)=0
\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} ()=0\label{classAIDA_1_1IRangeSet_a346868bb4ef9bd75b0d436788e2af7b5}

\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} ()=0\label{classAIDA_1_1IRangeSet_ac3c3a041f1c9793aba74a86998059170}

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

\item 
virtual int {\bf size} ()=0
\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} ()=0\label{classAIDA_1_1IRangeSet_a5b3d37f794aecce6117a8062c553b01f}

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

\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_1IRangeSet_afd7de8039e9e6d92fb091e9cd96cd308} does not always equal to the number of times user call include method.
\end{DoxyItemize}

\begin{DoxyAuthor}{Author}
The \doxyref{A\-I\-D\-A}{p.}{namespaceAIDA} team ({\tt http\-://aida.\-freehep.\-org/}) 
\end{DoxyAuthor}


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


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}


Implemented in {\bf A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T} \doxyref{}{p.}{classAIDA_1_1IRangeSetROOT_a1b24c29f4a95e806c32d1c72edee244f}.

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


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}


Implemented in {\bf A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T} \doxyref{}{p.}{classAIDA_1_1IRangeSetROOT_a89cfae30a6a1859da9dd29f000796037}.

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


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

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


Implemented in {\bf A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T} \doxyref{}{p.}{classAIDA_1_1IRangeSetROOT_a176908d6b1dd365a142f7626bd8ba9d9}.

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


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}


Implemented in {\bf A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T} \doxyref{}{p.}{classAIDA_1_1IRangeSetROOT_a1d3d66e7a87eb42c4a7567a59a7c0845}.

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


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

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


Implemented in {\bf A\-I\-D\-A\-::\-I\-Range\-Set\-R\-O\-O\-T} \doxyref{}{p.}{classAIDA_1_1IRangeSetROOT_a9bdfeb230ab3f1b5ef6140995a207760}.



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