1 |
This directory contains some very simple macros, just to show how to use the PamLevel2 class. |
This directory contains some very simple macros, just to show how to use the PamLevel2 class. |
2 |
The macros need as input the name of a Level2 .root file produced by DarthVader. |
The macros need as input the name of a Level2 .root file produced by DarthVader |
3 |
|
(example1 and example2) or a list of files (see example3). |
4 |
|
|
5 |
Class implementation is under development and some problems still need to be fixed. |
example1 - Example to integrate all detector info and solve the y-view tracks ambiguity |
6 |
However this simple examples should allow to start working with Pamela data and to test the |
example2 - Example to get pamela tracks and integrate the trajectory in the apparatus |
7 |
general environment. |
example3 - Example to loop over events, reading more than one file |
8 |
|
Loop - Example to loop over events, apply some selection cuts (My-Selection.cpp) and filling an |
9 |
|
output file with histograms (My-Histos.cpp) and/or trees. |
10 |
|
Loop-1 - Example to loop over events, retrieve level0 data (only tracker... for the moment) and |
11 |
|
reprocess the event (Histo-test.cpp) |
12 |
|
|
13 |
In order to run the scripts: |
In order to run the scripts: |
14 |
|
|
22 |
|
|
23 |
[] .x load.C |
[] .x load.C |
24 |
[] .L example1.C |
[] .L example1.C |
25 |
[] example1("level2-data-path/level2-file.root") |
[] example1("level2-data-path/level2-file, execute the command.root") |
26 |
Tracker : set branch address TrkLevel2 |
Tracker : set branch address TrkLevel2 |
27 |
Calorimeter : set branch address CaloLevel2 |
Calorimeter : set branch address CaloLevel2 |
28 |
ToF : set branch address ToFLevel2 |
ToF : set branch address ToFLevel2 |
35 |
|
|
36 |
Done |
Done |
37 |
|
|
38 |
4) The macro creates some histograms, which you can list and plot as follows: |
4) Macros example1 and example2 produce some histograms. Example3 just loop over events and tracks and |
39 |
|
counts time. It is usefull to check processing time. |
40 |
|
|
41 |
[].ls |
|
42 |
TROOT* Rint The ROOT of EVERYTHING |
5) To create Loop.exe execute the command (you need the PAMELA environment variables): |
43 |
OBJ: TH1F qtot Total energy in the calorimeter : 0 at: 0xb3f7400 |
|
44 |
OBJ: TH1F npaddle Total number of hit ToF paddles : 0 at: 0xb3f8768 |
> make Loop.exe |
45 |
OBJ: TH1F ntr Number of fitted tracks : 0 at: 0xb3f8b60 |
|
46 |
OBJ: TH1F rig Particle rigidity : 0 at: 0xb3f8f30 |
The executable is create by compiling and linking the files: |
47 |
OBJ: TH1F resxs Spatial residual (X) on the 1^ calo plane (sorted tracks) : 0 at: 0xb3f94a0 |
|
48 |
OBJ: TH1F resys Spatial residual (Y) on the 1^ calo plane (sorted tracks) : 0 at: 0xb3f9a00 |
Loop.cpp |
49 |
OBJ: TH1F resxi Spatial residual (X) on the 1^ calo plane (image tracks) : 0 at: 0xb3f9f70 |
My-Selection.cpp |
50 |
OBJ: TH1F resyi Spatial residual (Y) on the 1^ calo plane (image tracks) : 0 at: 0xb3fa4e0 |
My-Histos.cpp |
51 |
[]rig->Draw() |
|
52 |
|
You can use My-Selection.cpp and My-Histos.cpp as a template to inplement your own |
53 |
|
selection cuts and analysis. |
54 |
|
More generally, you can compile and link Loop.cpp with your own source files (you need |
55 |
|
to edit also the Makefile), where you should implement at least the following functions: |
56 |
|
|
57 |
|
bool Select(PamLevel2*); |
58 |
|
void CreateHistos(PamLevel2*,TFile*); |
59 |
|
void FillHistos(PamLevel2*); |
60 |
|
void SaveHistos(TFile*); |
61 |
|
|
62 |
|
To know how to use Loop.exe, issue: |
63 |
|
./Loop.exe --help |
64 |
|
|
65 |
|
(If you execute "make Loop-0.exe" the old example code, previously posted on the cvs, |
66 |
|
is compiled and linked. This is not a very general example, better use the new one) |
67 |
|
|