Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

userGuide Class Reference

User Guide information, class used to make documentation with doxygen. More...

#include <userGuide.h>

List of all members.

Public Methods

 userGuide ()
 default constructor.

virtual ~userGuide ()
 default destructor.

virtual void writeOut () const
 writeOut the guide.


Detailed Description

User Guide information, class used to make documentation with doxygen.

userGuide contains a general information for the user

Introduction

Centella is a framework to process data from one representation into another.
Centella has been developed at the University of California Santa Cruz, to reconstruct the GLAST 2000 test beam data, SLAC, 2000.
Centella inherit GAUDI's philosophy. It keeps the concepts in their minimal expresions.

Centella Philosophy

data processors

A data processor turns data from one representation into another. Most of HEP software programs are data processors. Lets consider a reconstruction program, it converts raw data , (ADC values, strips ID's, etc) into reconstructed data (that is, tracks, vertexes, clusters, etc), or physical data (momenta of the particle, ID's of particles and interactions points,etc).
The GAUDI philosophy consider that a data processor program is well described separating data from algorithms.. Data turns to be simple store places where data values are located, and algorithms are the processes that create and manipulate the Data. This seems to be a pass ahead of object orienting programming, where algorithms should be methods of the data classes. This separation is nevertheless very convenient. It adds flexibility and reusability to the code, but most important, it creates a sort of language where data became subjects in a sentence where the algorithms are the verbs. The program turns to therefore a collection of grammar sentences where algorithms are applied to data classes.
In addition with algorithms, most of data processors, could use filters or selections, that we called cuts. A cut is a class that knows if a certain condition of the data or the algorithms has been fulfilled. The program could change its behavior if one cut is realized or not.
Centella uses data, algorithms, and cuts classes.
GAUDI divides the data in two: transient, and persistent data. Persistent data is data store in Durable support: disk, tapes, etc. The transient data is the data that only live during the run time of the program. GAUDI suggests creating transient data copies of the persistent data in order to be "independent" of the persistent data support chosen. Therefore they should be a collection of converters that transform persistent data into transient and vicecersa.

High Energy Physics processors

Lets consider now a HEP program, we can realize that it will need the following generic data classes: Centella does not provide any class to implement the detector geometry. The user should create that class, it can use for example GEANT4.
Centella transient data is devided into calibration (detector) or event data. All the transient data inherits from trsDataVI base class.
Centella does not provide any base class for the permanent data and how to implement the converters. But we provide base classes to use ROOT trees and file, and also histograms and ntuples using ROOT. We provide a converterVI base class for converters, and a algorithmImport to create algorithms from methods of classes.

If we now consider the algorithms, we can realize that there are two nested tasks: a run, that will process collection of events, and the event task, which are the task executed for every event. In more detail, a event task is most likely separated into three tasks, that we call: generation, reconstruction, and analysis.
In the generation part, whatever is the initial point (data or MonteCarlo) the task creates the detector response to one event. In other words will create (or maybe load) the raw data. Data that contains only ADC values, etc. In the reconstruction part the Raw data is converter into reconstructed data, for example, the reconstruction algorithms will use the raw data, and most likely the geometrical description of the detector and the calibration data, to create reconstructed data. Lets say an algorithm that from the ADC values of a tracker devices creates clusters with physical positions will be an algorithm of the reconstruction task. Finally, the data is converter into the "physical" data, the closest representation to the original particle and its interaction. For example, we transform tracks into particle momentum.
Centella includes a Run algorithm (named runRunAlg) and an Event algorithm (named runEventAlg) . And the Event algorithm (eventTask) is divided into generation, reconstruction and analysis algorithms. In fact the Event algorithm can be constructed with several event algorithms.

User implementation of Centella

What classses should users implement and how to declare them into the system?

How to set options into classes?

Users can set options into classes wich have the services of serviceI (or optionV), and have declared in their constructor some parameters as options.
The optionManager class applies the system options from a file that we will call system option file. The default input file is "centella.in".
The sytem options are grammar lines in the system option file. The options are set with the following grammar lines :
objectName optionName \ e optionType optionValue
where: To list of the options declared in the system, execute the algorithm "comListOptions"
.

How to indicate the input and output file names

The user should use the system option ifile and incorporate on it a grammar line to execute some options of the IOfileServer. These are the grammar lines:
IOfileServer InFile S input_file_name
IOfileServer OutFile S ouput_file_name

How to create dinamically multialgorithms, or multicuts and how to execute them

The user can create algorithms, cuts, and execute other simple operations, via some system options already defined. This operations are grammar lines in the system option ile (the file that by defualt is centella.in).

Definition at line 210 of file userGuide.h.


Constructor & Destructor Documentation

userGuide::userGuide ( ) [inline]

default constructor.

Definition at line 216 of file userGuide.h.

userGuide::~userGuide ( ) [inline, virtual]

default destructor.

Definition at line 218 of file userGuide.h.


Member Function Documentation

void userGuide::writeOut ( ) const [inline, virtual]

writeOut the guide.

Definition at line 221 of file userGuide.h.


The documentation for this class was generated from the following file:
Generated at Fri Aug 18 12:57:42 2000 for centella framework by doxygen 1.1.3 written by Dimitri van Heesch, © 1997-2000