7ea5eba75c9d1c7ba5ac37c83ae1418573a05761
[u/mrichter/AliRoot.git] / ITS / AliITSHits2FastRecPoints.C
1 #include "iostream.h"
2
3 void AliITSHits2FastRecPoints (Int_t evNumber1=0,Int_t evNumber2=0,Int_t nsignal=25, Int_t size=-1) 
4 {
5 /////////////////////////////////////////////////////////////////////////
6 //   This macro is a small example of a ROOT macro
7 //   illustrating how to read the output of GALICE
8 //   and do some analysis.
9 //   
10 /////////////////////////////////////////////////////////////////////////
11
12 // Dynamically link some shared libs
13
14    if (gClassTable->GetID("AliRun") < 0) {
15       gROOT->LoadMacro("loadlibs.C");
16       loadlibs();
17    } else {
18       delete gAlice;
19       gAlice=0;
20    }
21
22 // Connect the Root Galice file containing Geometry, Kine and Hits
23
24    TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
25    if (file) file->Close(); 
26    file = new TFile("galice.root","UPDATE");
27    file->ls();
28
29    printf ("I'm after Map \n");
30
31 // Get AliRun object from file or create it if not on file
32
33    if (!gAlice) {
34        gAlice = (AliRun*)file->Get("gAlice");
35        if (gAlice) printf("AliRun object found on file\n");
36        if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
37    }
38    printf ("I'm after gAlice \n");
39    
40    AliITS *ITS  = (AliITS*) gAlice->GetModule("ITS");
41    if (!ITS) return;
42
43   // Set the simulation model
44
45   /* Bug !!! (I.Belikov)
46    AliITSsimulationFastPoints *sim = new AliITSsimulationFastPoints();
47
48    for (Int_t i=0;i<3;i++) {
49        ITS->SetSimulationModel(i,sim);
50    }
51    */
52    
53    for (Int_t i=0;i<3;i++) {
54        ITS->SetSimulationModel(i,new AliITSsimulationFastPoints());
55    }
56    
57
58 //
59 // Event Loop
60 //
61
62    Int_t nbgr_ev=0;
63    TStopwatch timer;
64
65    cout << "Creating fast reconstructed points from hits for the ITS..." << endl;
66
67    for (int ev=evNumber1; ev<= evNumber2; ev++) {
68        cout << "...working on event "<< ev << " ..." << endl;
69        Int_t nparticles = gAlice->GetEvent(ev);
70        cout << "event         " <<ev<<endl;
71        cout << "nparticles  " <<nparticles<<endl;
72        gAlice->SetEvent(ev);
73        if(!gAlice->TreeR()) gAlice-> MakeTree("R");
74        ITS->MakeBranch("R");
75        if (ev < evNumber1) continue;
76        if (nparticles <= 0) return;
77
78        Int_t bgr_ev=Int_t(ev/nsignal);
79        //printf("bgr_ev %d\n",bgr_ev);
80        timer.Start();
81        ITS->HitsToFastRecPoints(ev,bgr_ev,size," ","All"," ");
82        timer.Stop(); timer.Print();
83    } // event loop 
84
85    delete gAlice; gAlice=0;
86    file->Close();
87 }
88
89
90
91
92
93
94
95
96
97
98
99
100
101