#if !defined(__CINT__) || defined(__MAKECINT__) #include #include #include #include #include #include #include #include #include #include #include #include #include #endif void AliITSVertexerZTest(Float_t delphi=0.05,Float_t window=3.,Float_t initx=0., Float_t inity=0.,TString FileIn="galice.root"){ // delphi ---> azimuthal range to accept tracklets // window ---> window in Z around the peak of tracklets proj. in mm Int_t kDebug = 50; TH2F *diff2 = new TH2F("diff2","Zfound vs Ztrue",100,-6,6,100,-6,6); TH1F *diff1 = new TH1F("diff1","Zfound - Ztrue(#mu m)",100,-500,500); delete gAlice; gAlice = 0; AliRunLoader *rl = AliRunLoader::Open(FileIn.Data()); Int_t retval = rl->LoadgAlice(); if(retval){ cerr<<"AliITSVertexerZTest.C: AliRun object not found"<LoadHeader(); if (retval){ cerr<<"AliITSVertexerZTest.C : LoadHeader returned error"<LoadKinematics(); if (retval){ cerr<<"AliITSVertexerZTest.C : LoadKinematics returned error"<Init("default"); //dovert->SetDebug(0); // dovert->SetDiffPhiMax(delphi); // dovert->SetWindow(window); dovert->PrintStatus(); Int_t sigmazero=0; AliESDVertex *vert = 0; AliITSLoader* itsloader = (AliITSLoader*) rl->GetLoader("ITSLoader"); itsloader->LoadRecPoints("read"); for(Int_t i=0; iTreeE()->GetEntries(); i++){ rl->GetEvent(i); // The true Z coord. is fetched for comparison AliHeader *header = rl->GetHeader(); AliGenEventHeader* genEventHeader = header->GenEventHeader(); TArrayF primaryVertex(3); genEventHeader->PrimaryVertex(primaryVertex); TTree* cltree = itsloader->TreeR(); vert = dovert->FindVertexForCurrentEvent(cltree); if(kDebug>0){ // Prints the results cout <<"========================================================\n"; cout << "Event number: "<GetZv()<<"; "; cout<GetZRes()<<"; "<GetNContributors()<GetZv(); diff2->Fill(primaryVertex[2],found); found = 10000.*(found-primaryVertex[2]); if(vert->GetZRes()!=0){ diff1->Fill(found); } else { sigmazero++; } dovert->WriteCurrentVertex(); } } if(kDebug>0){ cout<<"Only one tracklet (sigma = 0) "<