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

info.h

Go to the documentation of this file.
00001 
00002 /*
00003         2) the execution of a run, which loop in a collection of events to apply some 
00004         algorithms, 3) the execution of some final algorithms.
00005         <br><ul>
00006         <br><li> Some of the algorithms executed in the initial and finalize part
00007         are already declared in \c define(), except two of them. They are the algorithmTask 
00008         named \e "iniOfRun" and \e "endOfRun" where the \b user can define the algorithms 
00009         to execute at the start and the end of the run. 
00010         <br><li> The execute() method of
00011         \e centella run the runRunAlg algorithm, a system algorithm that performs the loop on
00012         the number of event of the persistent storage and call the algorithm runEventAlg to
00013         process every event. 
00014         <br><li>The runEventAlg has an eventProcess (algorithm) called \e "runEvent" (a eventProcess) 
00015         which the user can indicate which algorithms to run dinamically to. In addition
00016         runEventAlg has two cutSelection named "selRead" and "selAna" which decide if
00017         the event shoulb be processed and if the processed event should be intalled in
00018         persistent data. This two cutSelection can be dinamically defined by the user.
00019         </ul>
00020         </ul>
00021         */
00022 
00023 /*
00024 <li> The optionManager and messageManager are <b> application independent <\b>. 
00025         In priciple the User will not need to modify them.
00026         </ul>
00027         <ul>
00028           The system has five managers. Three should have a \e Centella specific
00029         implementation: dataManager, processManager, selectionManager.
00030         Which declares the \b data (persistent and transient) the \b processes (algorithms and
00031         multialgorithms) and \b selections (cuts and multicuts). These managers 
00032         declare and use the data, algorithms and selections relevant for the
00033         \e centella application. The virtual base classes
00034         for data, algorithms and selections are trsDataVI, algorithmVI and cutVI.
00035         <br><ul>
00036         <br><li>The data is clasified into detector data -geometry and calibration- (dataUserServerDet);
00037         event data - data relevant for every event - (dataUserServerEvent) and
00038         persistend data (dataUserServerROOT). In \e Centella the persisten data is
00039         stored into ROOT trees, histograms and ntuples. The dataManager serves the
00040         transient data via the \c getData() template method. In \e Centella calibration
00041         and event data are declared transient. The other data, persistent
00042         and geometry is for the moment provided via pointers. Most of the data is
00043         created one, it reference pointer stored into the server and its contents
00044         update. 
00045         <br><li> The processes are algorithms. They are some system process and some user defined ones.
00046         The algorithms can be simple (algorithmVI, algorithmCommand) or multialgorithms 
00047         (algorithmComposite, algorithmTree). Their main method is \c run(). The processManager serves the algorithms
00048         vita the \c getAlgorithm() method.
00049         In the processManager there are servers to algorithmTask and eventProcess which are
00050         algorithms that can be defined dinamically, in particular, they can be created
00051         by the user via the input file and the optionManager \c setOption() method. The algorithms
00052         are created at one and not removed after stored into the server. 
00053         <br><li> The selections are cuts. They are some system cuts and some defined by the user. 
00054         They are simple cuts (cutVI) or multicuts (cutComposite). Their main method is
00055         \c apply(). The selectionManager
00056         serves the selection via the \c getCut() method. selectionManager has also a server
00057         for cutSelection, a cutComposite that can be defined by the user. Again, the cuts
00058         should be construct an included in the server and not deleted.
00059         <br></ul><br>
00060         There are two independent managers: optionManager and messageManager. 
00061         <br><ul>
00062         <br><li> The optionManager serves to set options (that can be turn into operations) 
00063         into servived classes derived from the base class optionVI. Previously, paramaters of the classes,
00064         (types accepted: strings, double, int) should be turn into options 
00065         using the method \c defineOption() declared in optionVI. In this way it is possible to create
00066         objects dinamically, in particular algorithms and selections by the user. 
00067         In \e Centella algorithms and selections are dinamically implemented via 
00068         the input file. 
00069         <br><li>The messageManager defines an ostream where to send
00070         the messages and provides some methods (i.e \c message()) to send them. 
00071         The messageManager and
00072         the classes serviced by messageVI has a message level that determines if a message should
00073         or not realized.
00074         </ul>
00075         <br>
00076         */

Generated at Wed Jun 28 17:41:07 2000 for Centella Framework by doxygen 1.1.3 written by Dimitri van Heesch, © 1997-2000