\section{S\-I\-O\-:\-:S\-I\-O\-Reader Class Reference}
\label{classSIO_1_1SIOReader}\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}}


Concrete implementation of L\-C\-Writer using \doxyref{S\-I\-O}{p.}{namespaceSIO}.  




{\ttfamily \#include $<$S\-I\-O/\-S\-I\-O\-Reader.\-h$>$}

Inheritance diagram for S\-I\-O\-:\-:S\-I\-O\-Reader\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classSIO_1_1SIOReader}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf S\-I\-O\-Reader} (int lc\-Reader\-Flag=0)\label{classSIO_1_1SIOReader_a9ff38183e38200ac6e4ed741dd56cdd6}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
virtual void {\bf open} (const std\-::vector$<$ std\-::string $>$ \&filenames)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Opens a list of files for reading (read-\/only). \end{DoxyCompactList}\item 
virtual void {\bf open} (const std\-::string \&filename)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Opens a file for reading (read-\/only). \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header} $\ast$ {\bf read\-Next\-Run\-Header} ()  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Reads the next run header from the file. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header} $\ast$ {\bf read\-Next\-Run\-Header} (int access\-Mode)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Same as \doxyref{read\-Next\-Run\-Header()}{p.}{classSIO_1_1SIOReader_a2a7d155c85e13a49190a2b6f91178f45} but allows to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Event} $\ast$ {\bf read\-Next\-Event} ()  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Reads the next event from the file. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Event} $\ast$ {\bf read\-Next\-Event} (int access\-Mode)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Same as \doxyref{read\-Next\-Run\-Header()}{p.}{classSIO_1_1SIOReader_a2a7d155c85e13a49190a2b6f91178f45} but allows to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. \end{DoxyCompactList}\item 
virtual int {\bf get\-Number\-Of\-Events} ()  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception )
\begin{DoxyCompactList}\small\item\em Return the number of events in the file -\/ the file has to be open. \end{DoxyCompactList}\item 
virtual int {\bf get\-Number\-Of\-Runs} ()  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception )
\begin{DoxyCompactList}\small\item\em Return the number of runs (run headers) in the file -\/ the file has to be open. \end{DoxyCompactList}\item 
virtual void {\bf get\-Runs} ({\bf E\-V\-E\-N\-T\-::\-Int\-Vec} \&runs)
\begin{DoxyCompactList}\small\item\em Return the run numbers of the runs (run headers) in the file -\/ the file has to be open. \end{DoxyCompactList}\item 
virtual void {\bf get\-Events} ({\bf E\-V\-E\-N\-T\-::\-Int\-Vec} \&events)
\begin{DoxyCompactList}\small\item\em Return the run and event numbers of the events in the file -\/ the file has to be open. \end{DoxyCompactList}\item 
virtual void {\bf skip\-N\-Events} (int n)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception )
\begin{DoxyCompactList}\small\item\em Skips the next n events from the current position. \end{DoxyCompactList}\item 
virtual void {\bf set\-Read\-Collection\-Names} (const std\-::vector$<$ std\-::string $>$ \&colnames)
\begin{DoxyCompactList}\small\item\em Limit the collection names that are going to be read to the subset given in the vector -\/ all other collection will be ignored. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header} $\ast$ {\bf read\-Run\-Header} (int run\-Number)  throw (\-I\-O\-::\-I\-O\-Exception , std\-::exception)
\begin{DoxyCompactList}\small\item\em Reads the specified run\-Header from file. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header} $\ast$ {\bf read\-Run\-Header} (int run\-Number, int access\-Mode)  throw (\-I\-O\-::\-I\-O\-Exception , std\-::exception)
\begin{DoxyCompactList}\small\item\em Same as L\-C\-Event$\ast$ \doxyref{read\-Run\-Header(int run\-Number)}{p.}{classSIO_1_1SIOReader_af0ce7f4cc33577010286e373fbc13306} allowing to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Event} $\ast$ {\bf read\-Event} (int run\-Number, int evt\-Number)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception )
\begin{DoxyCompactList}\small\item\em Reads the specified event from file. \end{DoxyCompactList}\item 
virtual {\bf E\-V\-E\-N\-T\-::\-L\-C\-Event} $\ast$ {\bf read\-Event} (int run\-Number, int evt\-Number, int access\-Mode)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception )
\begin{DoxyCompactList}\small\item\em Same as L\-C\-Event$\ast$ read\-Event(int run\-Number, int evt\-Number allowing to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. \end{DoxyCompactList}\item 
virtual void {\bf close} ()  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Closes the output file/stream etc. \end{DoxyCompactList}\item 
virtual void {\bf register\-L\-C\-Event\-Listener} ({\bf I\-O\-::\-L\-C\-Event\-Listener} $\ast$ls)\label{classSIO_1_1SIOReader_a06ff666a59087a57940d4941ccb68a71}

\begin{DoxyCompactList}\small\item\em Registers a listener for reading L\-C\-Events from a stream. \end{DoxyCompactList}\item 
virtual void {\bf remove\-L\-C\-Event\-Listener} ({\bf I\-O\-::\-L\-C\-Event\-Listener} $\ast$ls)\label{classSIO_1_1SIOReader_ac4cd5b5be5b156e0b261584e862e239d}

\begin{DoxyCompactList}\small\item\em Remove a listener for reading L\-C\-Events from a stream. \end{DoxyCompactList}\item 
virtual void {\bf register\-L\-C\-Run\-Listener} ({\bf I\-O\-::\-L\-C\-Run\-Listener} $\ast$ls)\label{classSIO_1_1SIOReader_a4e6890fcd97e3e65d9b62832723ef2e9}

\begin{DoxyCompactList}\small\item\em Registers a listener for reading L\-C\-Events\-L\-C\-Run\-Headers from a stream. \end{DoxyCompactList}\item 
virtual void {\bf remove\-L\-C\-Run\-Listener} ({\bf I\-O\-::\-L\-C\-Run\-Listener} $\ast$ls)\label{classSIO_1_1SIOReader_afd7dcff3fb9101f4695b4edc33fb3d13}

\begin{DoxyCompactList}\small\item\em Remove a listener for reading L\-C\-Run\-Headers from a stream. \end{DoxyCompactList}\item 
virtual void {\bf read\-Stream} ()  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Reads the input stream and notifies registered listeners according to the object type found in the stream. \end{DoxyCompactList}\item 
virtual void {\bf read\-Stream} (int max\-Record)  throw (\-I\-O\-::\-I\-O\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Reads max\-Record from the input stream and notifies registered listeners according to the object type found in the stream. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void {\bfseries set\-Up\-Handlers} ()\label{classSIO_1_1SIOReader_ac741ed4b5cb520f627a4ca0d4cdf76c4}

\item 
void {\bfseries read\-Record} ()  throw (\-I\-O\-::\-I\-O\-Exception , I\-O\-::\-End\-Of\-Data\-Exception , std\-::exception)\label{classSIO_1_1SIOReader_ad1a729a0440b870b0de9edec3f0d26d5}

\item 
void {\bfseries post\-Process\-Event} ()\label{classSIO_1_1SIOReader_aec2e4463624320c6f34c2ce4b72829f4}

\item 
void {\bfseries get\-Event\-Map} ()\label{classSIO_1_1SIOReader_ab6b1092ae72260fc5192641679b2c805}

\item 
void {\bfseries recreate\-Event\-Map} ()\label{classSIO_1_1SIOReader_a2ccf779e0e265a6a64c282ebfdeeb366}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
S\-I\-O\-\_\-record $\ast$ {\bfseries \-\_\-dummy\-Record}\label{classSIO_1_1SIOReader_a14bcd1f9446be7032593d73d37bec10d}

\item 
S\-I\-O\-\_\-stream $\ast$ {\bfseries \-\_\-stream}\label{classSIO_1_1SIOReader_a73bcfa2c5cfe0eb047c4b1efe6b21ed4}

\item 
{\bf S\-I\-O\-Run\-Header\-Handler} $\ast$ {\bfseries \-\_\-run\-Handler}\label{classSIO_1_1SIOReader_a09f6260ee7c35b95e934dd696c752087}

\item 
{\bf S\-I\-O\-Event\-Handler} $\ast$ {\bfseries \-\_\-evt\-Handler}\label{classSIO_1_1SIOReader_a60bb7cc7bf60d88060fe926dace3e6d4}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Concrete implementation of L\-C\-Writer using \doxyref{S\-I\-O}{p.}{namespaceSIO}. 

\begin{DoxyAuthor}{Author}
gaede 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
\doxyref{S\-I\-O\-Reader.\-h}{p.}{SIOReader_8h_source},v 1.\-29 2011-\/03-\/03 16\-:00\-:12 gaede Exp 
\end{DoxyParagraph}


\subsection{Member Function Documentation}
\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!close@{close}}
\index{close@{close}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{close}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::close (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a65b1877cb80ff3821c1a693a75e301f8}


Closes the output file/stream etc. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a62585716ccdb5d5c1e1a9bd043c07dcb}.



References S\-I\-O\-::\-L\-C\-I\-O\-Random\-Access\-Mgr\-::clear().

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!get\-Events@{get\-Events}}
\index{get\-Events@{get\-Events}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{get\-Events}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::get\-Events (
\begin{DoxyParamCaption}
\item[{{\bf E\-V\-E\-N\-T\-::\-Int\-Vec} \&}]{events}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_aae7b456825af3094810672850de8bd8e}


Return the run and event numbers of the events in the file -\/ the file has to be open. 

In case several input files are specified in the \doxyref{open()}{p.}{classSIO_1_1SIOReader_ab2076d97a5fc17963c04f4525d1e5048} method -\/ the run and event numbers of the events in the file that is currently open are returned. The size of the vector events will be twice the number of events, where i-\/th run number will be in events[2$\ast$i] and the i-\/th event number in events[2$\ast$i+]. 

Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_ae3057b1ff973556e430f4b18cc67ac22}.



References S\-I\-O\-::\-L\-C\-I\-O\-Random\-Access\-Mgr\-::get\-Event\-Map(), get\-Number\-Of\-Events(), and get\-Number\-Of\-Runs().

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!get\-Number\-Of\-Events@{get\-Number\-Of\-Events}}
\index{get\-Number\-Of\-Events@{get\-Number\-Of\-Events}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{get\-Number\-Of\-Events}]{\setlength{\rightskip}{0pt plus 5cm}int S\-I\-O\-::\-S\-I\-O\-Reader\-::get\-Number\-Of\-Events (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_af4fe67eb353f497ca935b10733088c13}


Return the number of events in the file -\/ the file has to be open. 

In case several input files are specified in the \doxyref{open()}{p.}{classSIO_1_1SIOReader_ab2076d97a5fc17963c04f4525d1e5048} method -\/ the number of events in the file that is currently open is returned. 

Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_ada753d6d1e6d6f460560ed6c53107bec}.



References S\-I\-O\-::\-L\-C\-I\-O\-Random\-Access\-Mgr\-::get\-Event\-Map().



Referenced by get\-Events().

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!get\-Number\-Of\-Runs@{get\-Number\-Of\-Runs}}
\index{get\-Number\-Of\-Runs@{get\-Number\-Of\-Runs}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{get\-Number\-Of\-Runs}]{\setlength{\rightskip}{0pt plus 5cm}int S\-I\-O\-::\-S\-I\-O\-Reader\-::get\-Number\-Of\-Runs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a1e6aa0aeb62857b5c94b5224a0a830d5}


Return the number of runs (run headers) in the file -\/ the file has to be open. 

In case several input files are specified in the \doxyref{open()}{p.}{classSIO_1_1SIOReader_ab2076d97a5fc17963c04f4525d1e5048} method -\/ the number of runs (run headers) in the file that is currently open is returned. 

Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a7497d188a5c67aa8530a2edf23cf6625}.



References S\-I\-O\-::\-L\-C\-I\-O\-Random\-Access\-Mgr\-::get\-Event\-Map().



Referenced by get\-Events(), and get\-Runs().

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!get\-Runs@{get\-Runs}}
\index{get\-Runs@{get\-Runs}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{get\-Runs}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::get\-Runs (
\begin{DoxyParamCaption}
\item[{{\bf E\-V\-E\-N\-T\-::\-Int\-Vec} \&}]{runs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a9c6809ed59279fb1cd087b3c5a44c159}


Return the run numbers of the runs (run headers) in the file -\/ the file has to be open. 

In case several input files are specified in the \doxyref{open()}{p.}{classSIO_1_1SIOReader_ab2076d97a5fc17963c04f4525d1e5048} method -\/ the run numbers of the runs (run headers) in the file that is currently open is returned. 

Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_ab0f37e43a643445ea6a4285a31146272}.



References S\-I\-O\-::\-L\-C\-I\-O\-Random\-Access\-Mgr\-::get\-Event\-Map(), and get\-Number\-Of\-Runs().

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!open@{open}}
\index{open@{open}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{open}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::open (
\begin{DoxyParamCaption}
\item[{const std\-::vector$<$ std\-::string $>$ \&}]{filenames}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_ab2076d97a5fc17963c04f4525d1e5048}


Opens a list of files for reading (read-\/only). 

All subsequent read operations will operate on the list, i.\-e. if an E\-O\-F is encountered the next file in the list will be opened and read transparently to the user. 
\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a3a66e7675b275d38581ef95a09579a53}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!open@{open}}
\index{open@{open}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{open}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::open (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{filename}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_ac2e84d6f07335e1bdde0747e58d8eae8}


Opens a file for reading (read-\/only). 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a526ffc1f09e8264f6335cc60039f43ef}.



References S\-I\-O\-::\-L\-C\-S\-I\-O\-::get\-Valid\-S\-I\-O\-Name().

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Event@{read\-Event}}
\index{read\-Event@{read\-Event}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Event}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-V\-E\-N\-T\-::\-L\-C\-Event} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Event (
\begin{DoxyParamCaption}
\item[{int}]{run\-Number, }
\item[{int}]{evt\-Number}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a59865ca183481eea07a5cc57da138680}


Reads the specified event from file. 

Returns N\-U\-L\-L if the specified event hasn't been found in the file.


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a3a290764ae704e51f3f898163c89ea1d}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Event@{read\-Event}}
\index{read\-Event@{read\-Event}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Event}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-V\-E\-N\-T\-::\-L\-C\-Event} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Event (
\begin{DoxyParamCaption}
\item[{int}]{run\-Number, }
\item[{int}]{evt\-Number, }
\item[{int}]{access\-Mode}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a77c87143daeac8610fa4c514591999de}


Same as L\-C\-Event$\ast$ read\-Event(int run\-Number, int evt\-Number allowing to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a97fe509e545f34dce96e7a58adef43f2}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Next\-Event@{read\-Next\-Event}}
\index{read\-Next\-Event@{read\-Next\-Event}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Next\-Event}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-C\-Event} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Next\-Event (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_ab06b585581e9afa2401696bb041531ca}


Reads the next event from the file. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a4bddd82c63b0224c5b6c93b1357e5064}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Next\-Event@{read\-Next\-Event}}
\index{read\-Next\-Event@{read\-Next\-Event}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Next\-Event}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-C\-Event} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Next\-Event (
\begin{DoxyParamCaption}
\item[{int}]{access\-Mode}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a0782381839bb861db97a1eae5180e922}


Same as \doxyref{read\-Next\-Run\-Header()}{p.}{classSIO_1_1SIOReader_a2a7d155c85e13a49190a2b6f91178f45} but allows to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_aafca3a9b5f9c39ac24be9bb6b59f4669}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Next\-Run\-Header@{read\-Next\-Run\-Header}}
\index{read\-Next\-Run\-Header@{read\-Next\-Run\-Header}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Next\-Run\-Header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-C\-Run\-Header} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Next\-Run\-Header (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a2a7d155c85e13a49190a2b6f91178f45}


Reads the next run header from the file. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a3c082c91f2194e2786b40229ab4fd38b}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Next\-Run\-Header@{read\-Next\-Run\-Header}}
\index{read\-Next\-Run\-Header@{read\-Next\-Run\-Header}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Next\-Run\-Header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf L\-C\-Run\-Header} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Next\-Run\-Header (
\begin{DoxyParamCaption}
\item[{int}]{access\-Mode}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_afa43f01023559aba2aa6c34da426c5c6}


Same as \doxyref{read\-Next\-Run\-Header()}{p.}{classSIO_1_1SIOReader_a2a7d155c85e13a49190a2b6f91178f45} but allows to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a2bc66e14b6df1e20cfc0e72f05921266}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Run\-Header@{read\-Run\-Header}}
\index{read\-Run\-Header@{read\-Run\-Header}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Run\-Header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Run\-Header (
\begin{DoxyParamCaption}
\item[{int}]{run\-Number}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception} , std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_af0ce7f4cc33577010286e373fbc13306}


Reads the specified run\-Header from file. 

Returns N\-U\-L\-L if the specified run\-Header hasn't been found in the file.


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a74b4606602dea49f756bf46640b0d184}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Run\-Header@{read\-Run\-Header}}
\index{read\-Run\-Header@{read\-Run\-Header}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Run\-Header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header} $\ast$ S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Run\-Header (
\begin{DoxyParamCaption}
\item[{int}]{run\-Number, }
\item[{int}]{access\-Mode}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception} , std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a5fcd28348214a80f7e0a569175bd1e1b}


Same as L\-C\-Event$\ast$ \doxyref{read\-Run\-Header(int run\-Number)}{p.}{classSIO_1_1SIOReader_af0ce7f4cc33577010286e373fbc13306} allowing to set the access mode L\-C\-I\-O\-::\-R\-E\-A\-D\-\_\-\-O\-N\-L\-Y (default) or L\-C\-I\-O\-::\-Update. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a60b15262f5060940224ab06c9f2b74b6}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Stream@{read\-Stream}}
\index{read\-Stream@{read\-Stream}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Stream}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Stream (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_aae1b9365b6851cd0f1e4372e23226921}


Reads the input stream and notifies registered listeners according to the object type found in the stream. 


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
{\em End\-Of\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a975b125dff2efdf2d820643aaccbed31}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!read\-Stream@{read\-Stream}}
\index{read\-Stream@{read\-Stream}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{read\-Stream}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::read\-Stream (
\begin{DoxyParamCaption}
\item[{int}]{max\-Record}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_af88ed1dadc37b96c0d67a6f853f76778}


Reads max\-Record from the input stream and notifies registered listeners according to the object type found in the stream. 

Throws End\-Of\-Exception if less than max\-Record records are found in the stream.


\begin{DoxyExceptions}{Exceptions}
{\em I\-O\-Exception} & \\
\hline
{\em End\-Of\-Exception} & \\
\hline
\end{DoxyExceptions}


Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a4f79a39bd76d6756f47815d36794eb97}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!set\-Read\-Collection\-Names@{set\-Read\-Collection\-Names}}
\index{set\-Read\-Collection\-Names@{set\-Read\-Collection\-Names}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{set\-Read\-Collection\-Names}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::set\-Read\-Collection\-Names (
\begin{DoxyParamCaption}
\item[{const std\-::vector$<$ std\-::string $>$ \&}]{colnames}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_abae3e3c2751213b93645bb6b51514549}


Limit the collection names that are going to be read to the subset given in the vector -\/ all other collection will be ignored. 

This might improve the reading performance considerably in cases where only a small subset of the collections in the event is needed. 

Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_ab8f9a8784a52e318008d085dc3bc3a10}.

\index{S\-I\-O\-::\-S\-I\-O\-Reader@{S\-I\-O\-::\-S\-I\-O\-Reader}!skip\-N\-Events@{skip\-N\-Events}}
\index{skip\-N\-Events@{skip\-N\-Events}!SIO::SIOReader@{S\-I\-O\-::\-S\-I\-O\-Reader}}
\subsubsection[{skip\-N\-Events}]{\setlength{\rightskip}{0pt plus 5cm}void S\-I\-O\-::\-S\-I\-O\-Reader\-::skip\-N\-Events (
\begin{DoxyParamCaption}
\item[{int}]{n}
\end{DoxyParamCaption}
) throw  {\bf I\-O\-::\-I\-O\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classSIO_1_1SIOReader_a9989f2edfa7bb63e6811104cbf20df45}


Skips the next n events from the current position. 

In fact simply reads the next n event headers so that the next event read is the (n+1)-\/th event. 

Implements {\bf I\-O\-::\-L\-C\-Reader} \doxyref{}{p.}{classIO_1_1LCReader_a38be826f2fd75e6072f07fdea0ef30e4}.



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