1 #if !defined(__CINT__) || defined(__MAKECINT__)
9 #include <AliGenEventHeader.h>
10 #include <AliITSVertexerPPZ.h>
11 #include <AliRunLoader.h>
12 #include <AliITSLoader.h>
16 void AliITSVertexerZTest(Float_t delphi=0.05,Float_t window=3.,Float_t initx=0., Float_t inity=0.,TString FileIn="galice.root"){
17 // delphi ---> azimuthal range to accept tracklets
18 // window ---> window in Z around the peak of tracklets proj. in mm
20 TH2F *diff2 = new TH2F("diff2","Zfound vs Ztrue",100,-6,6,100,-6,6);
21 TH1F *diff1 = new TH1F("diff1","Zfound - Ztrue(#mu m)",100,-500,500);
24 AliRunLoader *rl = AliRunLoader::Open(FileIn.Data());
25 Int_t retval = rl->LoadgAlice();
27 cerr<<"AliITSVertexerZTest.C: AliRun object not found"<<endl;
30 retval = rl->LoadHeader();
32 cerr<<"AliITSVertexerZTest.C : LoadHeader returned error"<<endl;
35 retval = rl->LoadKinematics();
37 cerr<<"AliITSVertexerZTest.C : LoadKinematics returned error"<<endl;
40 AliITSLoader* ITSloader = (AliITSLoader*) rl->GetLoader("ITSLoader");
43 cerr<<"AliITSVertexerZTest.C : ITS loader not found"<<endl;
46 // ITSloader->LoadRecPoints("read");
47 // TFile *fo = new TFile("vertici.root","recreate");
48 AliITSVertexerPPZ *dovert = new AliITSVertexerPPZ("default",initx,inity);
50 dovert->SetDiffPhiMax(delphi);
51 dovert->SetWindow(window);
52 dovert->PrintStatus();
57 AliITSVertex *vert = 0;
58 for(Int_t i=0; i<rl->TreeE()->GetEntries(); i++){
60 // The true Z coord. is fetched for comparison
61 AliHeader *header = rl->GetHeader();
62 AliGenEventHeader* genEventHeader = header->GenEventHeader();
63 TArrayF primaryVertex(3);
64 genEventHeader->PrimaryVertex(primaryVertex);
65 vert = dovert->FindVertexForCurrentEvent(i);
68 cout <<"========================================================\n";
69 cout << "Event number: "<<i<<") Z Vertex:"<<endl;
71 cout<<"FOUND: "<<vert->GetZv()<<"; ";
72 cout<<vert->GetZRes()<<"; "<<vert->GetNContributors()<<endl;
75 cout<<"NOT FOUND - fZFound= "<<dovert->GetZFound();
76 cout<<" fZsig= "<<dovert->GetZsig()<<endl;
77 if(dovert->GetZFound() == -100) meno100++;
78 if(dovert->GetZFound() == -200) meno200++;
79 if(dovert->GetZFound() == -110) meno110++;
81 cout <<" True Z position "<<primaryVertex[2]<<", diff= ";
82 cout<<(primaryVertex[2]-dovert->GetZFound())*10000.<<endl;
86 for(Int_t kk=0;kk<3;kk++)pos[kk]=(Double_t)primaryVertex[kk];
87 vert->SetTruePos(pos);
88 Float_t found = vert->GetZv();
89 diff2->Fill(primaryVertex[2],found);
90 found = 10000.*(found-primaryVertex[2]);
91 if(vert->GetZRes()!=0){
97 dovert->WriteCurrentVertex();
101 cout<<"Number of bad vertices with code -100: "<<meno100<<endl;
102 cout<<"Number of bad vertices with code -110: "<<meno110<<endl;
103 cout<<"Number of bad vertices with code -200: "<<meno200<<endl;
104 cout<<"Only one tracklet (sigma = 0) "<<sigmazero<<endl;