]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSFindPrimaryVertex.C
Made a new abstract base class; AliL3HoughBaseTransformer for different implementations
[u/mrichter/AliRoot.git] / ITS / AliITSFindPrimaryVertex.C
1 #include "iostream.h"
2 #include "TMath.h"
3
4 void AliITSFindPrimaryVertex(Int_t evNumber1=0,Int_t evNumber2=0, const char *filename="galice.root") {
5
6   
7   ///////////////// Dynamically link some shared libs ////////////////////////////////
8   
9   if (gClassTable->GetID("AliRun") < 0) {
10     gROOT->LoadMacro("loadlibs.C");
11     loadlibs();
12   } else {
13     delete gAlice;
14     gAlice=0;
15   }
16
17 // Connect the Root Galice file containing Geometry, Kine and Hits
18    TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename);
19    if (!file) file = new TFile(filename,"UPDATE");
20
21
22 // Get AliRun object from file or create it if not on file
23    if (!gAlice) {
24       gAlice = (AliRun*)file->Get("gAlice");
25       if (gAlice) printf("AliRun object found on file\n");
26       if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
27    }
28
29 //   Loop over events 
30 //
31    Int_t Nh=0;
32    Int_t Nh1=0;
33    for (int nev=0; nev<= evNumber2; nev++) {
34      gAlice->SetEvent(nev);
35          Int_t nparticles = gAlice->GetEvent(nev);
36      cout << "nev         " << nev <<endl;
37      cout << "nparticles  " << nparticles <<endl;
38      if (nev < evNumber1) continue;
39      if (nparticles <= 0) return;
40   
41   
42      TStopwatch timer;
43      timer.Start();
44
45      AliITSVertex *V = new AliITSVertex();
46           V->Exec();
47
48      timer.Stop();
49      timer.Print();
50
51      cout << endl << "Xv = " << V->GetXv() << " cm" << endl;
52      cout << "X resolution = " << V->GetXRes()*10000 << " microns"  << endl;
53      cout << "Signal/Noise for X = " << V->GetXSNR() << endl;
54      cout << endl << "Yv = " << V->GetYv() << " cm"  << endl;
55      cout << "Y resolution = " << V->GetYRes()*10000 << " microns"  << endl;
56      cout << "Signal/Noise for Y = " << V->GetYSNR() << endl;
57      cout << endl << "Zv = " << V->GetZv() << " cm" << endl;
58      cout << "Z Resolution = " << V->GetZRes()*10000 << " microns" << endl;
59      cout << "Signal/Noise for Z = " << V->GetZSNR() <<endl;
60                  
61      delete V;
62   } 
63   
64   file->Close(); 
65 }
66