

\subsection{The FairSoft Framework}

\Notiz{Stefanos pandanote on pandaroot?}


\subsection{Installation}

\subsubsection{External Packages}
\Notiz{Wiki ?}
The simulation is provided in two steps. First it the external packages should be installed and then \pandaroot itself. The external packages provide all necessary software which is not part of the \fairroot experiments developments. It includes:
\begin{itemize}
\item \Root - CERNs multi purpose software
\item VMC - Virtual Monte-Carlo and these MC engines for particle transport:
  \begin{itemize}\item Geant3
  \item Geant4
  \item Fluka
  \end{itemize}
\item cmake - building and test system \Notiz{??? }
\end{itemize}
For more information visit \Notiz{cbmroot.gsi.de ???}

The current release is available at \Notiz{Ja, wo denn nur? }

\Notiz{https://subversion.gsi.de/fairroot/fairsoft/july09}

To start the installation run the \code{cofigure.sh} script. Be sure to have a c++ and Fortran compiler available as well as \Notiz{openGL/Motif/\ldots}.

Depending on the computers speed the installation of the external packages will take more than two hours.

Installing the external packages in Debug Mode will allow to track bugs more deeply, but takes more runtime as well as installing time. It is recommoned for code developers.

\subsubsection{Installing \pandaroot}

The \pandaroot are hosted in the SVN repository which is organized with different branches called {\it release}, {\it stable} and  {\it trunk}. Each branch has its own level of code stability.

A {\it release} is a code revision selected by \Notiz{the computing coordinator}. It runs stable and is tested. Usually releases are used for data production i.e. on the PandaGrid.
\codeline{https://subversion.gsi.de/fairroot/pandaroot/release\Notiz{/???}}
{\it Stable} code is the most recent running version of each package managed by the developers. 
\codeline{https://subversion.gsi.de/fairroot/pandaroot/stable}
The most recent development snapshot is the {\it trunk} branch. It has a very high update frequency and does not necessarily run.
\codeline{https://subversion.gsi.de/fairroot/pandaroot/trunk}

Out of a building dirictory cmake is called to create the makefiles and make will start the compiling (ca. 40 minutes). Installing the current stable version would then look like:\\

\codetable{panda> svn co https://subversion.gsi.de/fairroot/pandaroot/stable\\
panda> mkdir build\\
panda> cd build\\
panda/build> cmake ../stable\\
panda/build> source config.sh\\
panda/build> make\\
}

\subsection{Common Simulation Layout}
\Notiz{Stefanos pandanote on pandaroot?}
With the frameworks modular task structure it is possible to go step-by-step through different data levels:
\begin{itemize}
\item[] particle generation (physics model)
\item[] Monte-Carlo engine and the particle transport through material
\item[] digitization and electronics emulation
\item[] cluster finding and local hit reconstruction 
\item[] track finding and fitting (Kalman)
\item[] particle identification
\item[] user physics analysis
\end{itemize}
In order to develop parts of code only once it is foreseen to have a logical separation of all the reconstruction code from the Monte-Carlo related information before. The interfaces are planned to be as close as possible to the upcoming detector data structures to simply switch from simulated to measured data.


\subsection{Running the Simulation and Reconstruction}

Each new terminal must be set up properly, including all the necessary paths. This is done by executing the script\code{ config.sh}, located in the build directory. The software itself is executed with macros using the built-in CINT C-interpreter of \code{\Root}. Usually this looks like  this: 
\codeline{> root macro.C}
Before the next macro can be executed it is necessary to quit the \Root session.



\subsection{Tools and Hints}

\subsubsection{IDE's}
The cmake mechanism allows to create project files for Integrated Development Environment (IDE) tools specified by 
\code{cmake -G <generator>}. 
The following IDE's are supported: 
\begin{itemize}
\item[]  \code{Unix Makefiles}                              = Generates standard UNIX makefiles.
\item[]  \code{Xcode}                                             = Generate XCode project files. (Mac OS X)
\item[]  \code{Eclipse CDT4 - Unix Makefiles}  = Generates Eclipse CDT 4.0 project files. (Java)
\item[]  \code{KDevelop3 - Unix Makefiles}       = Generates KDevelop 3 project files. (Linux / KDE)
\end{itemize}
IDE's feature file browsing, a code editor, compilation tools, linking of error output to the code lines and \emph{advanced search tools}. Also SVN implementations and debugging frontends are available. Really helpful are the automatically recognized tags in code comments: \code{TODO:} and \code{FIXME:}, e.g:
\codeline{// TODO: add more comments\\ 
// FIXME: Division with zero possible?}
However there are settings which are set automatically by cmake and need attention before the IDE can be used at full functionality. 
There are instructions on the PandaWiki (which can be extended by the users). See \Notiz{http://panda-wiki.gsi.de/...}




\subsubsection{PandaRoot Community}
The PANDA computing community has several communication platforms which serve for different needs. Most of them are easily accessible with a web browser.\\

\noindent
\begin{tabular}{p{0.2\textwidth}p{0.3\textwidth}p{0.5\textwidth}}
{\bf Service} & {\bf Site} & {\bf Description}  \\
\hline
Forums & forums.gsi.de & Discussions \& questions of many sorts (register there) \\
EVO Meetings & evo.caltech.edu & Bi-weekly telephone meetings, announced through the forums (register there) \\
PandaWiki & panda-wiki.gsi.de & WiKi site for documentation purpose (register there and ask someone for authorizations)\\
svn & subversion.gsi.de & Code repository \\
trac & https://subversion.gsi.de/ trac/fairroot/browser/pandaroot & Online revision \& code browsing, bug report ticket system\\
Dashboard & fairroot.gsi.de/CDash/ index.php?project=PandaRoot & Code status, Diagnostics \\
GSI & www.gsi.de & Homepage \\
FairRoot & fairroot.gsi.de & Framework homepage\\
\Root & www.root.cern.ch & Documentation, Class Browser etc. \\
&&\\
&&\\
&&\\
&&\\
\end{tabular}

\Notiz{www.gsi.de\\
root.cern.ch\\
EVO Meetings (announced in the forums)\\
Contact Wiki Site\\
INDICO
}

