This directory contains some very simple macros, just to show how to use the PamLevel2 class.
The macros need as input the name of a Level2 .root file produced by DarthVader 
(example1 and example2) or a list of files (see example3).

example1 - Example to integrate all detector info and solve the y-view tracks ambiguity
example2 - Example to get pamela tracks and integrate the trajectory in the apparatus
example3 - Example to loop over events, reading more than one file
Loop     - Example to loop over events, apply some selection cuts (My-Selection.cpp) and filling an 
           output file with histograms (My-Histos.cpp) and/or trees. 
Loop-1   - Example to loop over events, retrieve level0 data (only tracker... for the moment) and 
           reprocess the event (Histo-test.cpp)

In order to run the scripts:

1) Copy the magnetic field maps into the magnetic-field/ directory.
   You can find them in the CVS repository, inside DarthVader/param/trk-param/field_param-0/

2) Add the path of the directory containing the DarthVader libraries and the PamLevel2 library to the 
   shell variable LD_LIBRARY_PATH

3) Open a root session and execute the following commands:

[] .x load.C
[] .L example1.C
[] example1("level2-data-path/level2-file, execute the command.root")
Tracker      : set branch address TrkLevel2
Calorimeter  : set branch address CaloLevel2
ToF          : set branch address ToFLevel2
Trigger      : set branch address TrigLevel2
S4           : set branch address S4Level2
NeutronD     : set branch address NDLevel2
Anticounter  : set branch address AcLevel2

 Start loop over events
 
 Done

4) Macros example1 and example2 produce some histograms. Example3 just loop over events and tracks and 
counts time. It is usefull to check processing time.


5) To create Loop.exe execute the command (you need the PAMELA environment variables):

> make Loop.exe

The executable is create by compiling and linking the files:

Loop.cpp
My-Selection.cpp
My-Histos.cpp

You can use My-Selection.cpp and My-Histos.cpp as a template to inplement your own
selection cuts and analysis. 
More generally, you can compile and link Loop.cpp with your own source files (you need 
to edit also the Makefile), where you should implement at least the following functions:

bool Select(PamLevel2*);
void CreateHistos(PamLevel2*,TFile*);
void FillHistos(PamLevel2*);
void SaveHistos(TFile*);

To know how to use Loop.exe, issue:
./Loop.exe --help

(If you execute "make Loop-0.exe" the old example code, previously posted on the cvs, 
is compiled and linked. This is not a very general example, better use the new one)
 
