]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSFindPrimaryVertex.C
readers updated (mini header -> data header)
[u/mrichter/AliRoot.git] / ITS / AliITSFindPrimaryVertex.C
index 39576aa0d8582ab14bc386f29459915bda113de2..388d0ea9c4b9cae8b7dfe81059e222cbb73a70df 100644 (file)
@@ -8,7 +8,9 @@
 #include <AliGenEventHeader.h>
 #include <AliITSVertexerIons.h>
 #include <AliRunLoader.h>
+#include <AliITSVertexerIons.h>
 #include <AliITSLoader.h>
+#include <unistd.h>
 
 #endif
 
@@ -25,48 +27,47 @@ void AliITSFindPrimaryVertex(Int_t evNumber1=0,Int_t NumbofEv=1, const char *fil
       gAlice=0;
     }
   }
-
   
   AliRunLoader* rl = AliRunLoader::Open("galice.root");
   if (rl == 0x0){
     ::Error("AliITSFindPrimaryVertex.C","Can not open session RL=NULL");
     return;
   }
-  Int_t retval = rl->LoadHeader();
-  if (retval){
-    cerr<<"AliITSFindPrimaryVertex.C : LoadHeader returned error"<<endl;
-    return;
-  }
-  retval = rl->LoadKinematics();
-  if (retval){
-    cerr<<"AliITSFindPrimaryVertex.C : LoadKinematics returned error"<<endl;
-    return;
-  }
-
+  
   // Open output file for vertices (default name: ITS.Vertex.root 
   // and Create vertexer
+
   AliITSVertexerIons *vertexer = new AliITSVertexerIons("default");
-  AliITSVertex *V;
+  //vertexer->SetDebug(1);
+  
+  AliESDVertex *V;
   //   Loop over events 
-  //
+   
   for (int nev=evNumber1; nev< evNumber2; nev++) {
     cout<<"=============================================================\n";
     cout<<" Processing event "<<nev<<endl;
     cout<<"=============================================================\n";
     rl->GetEvent(nev);
-    cout << "nev         " << nev <<endl;
-    // The true Z coord. is fetched for comparison
     AliHeader *header = rl->GetHeader();
     AliGenEventHeader* genEventHeader = header->GenEventHeader();
     TArrayF primaryVertex(3);
     genEventHeader->PrimaryVertex(primaryVertex);
-  
+    
+    AliGenHijingEventHeader* hijingHeader = (AliGenHijingEventHeader*)  genEventHeader;
+    Float_t b = hijingHeader->ImpactParameter();   
+    cout << "Impact parameter = " << b << " fm" << endl;
+
     TStopwatch timer;
     timer.Start();
 
     V=vertexer->FindVertexForCurrentEvent(nev);
+
+    TVector3 vtrue(primaryVertex[0],primaryVertex[1],primaryVertex[2]);
+    TVector3 vfound(V->GetXv(),V->GetYv(),V->GetZv());
+    TVector3 dif=vtrue-vfound;
+    cout << "True vertex coordinates (cm) = " << vtrue.X() << " " << vtrue.Y() << " " << vtrue.Z() << endl;
+    cout << "Found vertex coordinates  (cm) = " << vfound.X() << " " << vfound.Y() << " " << vfound.Z() << endl;    cout << "Difference true - found (cm) = " << dif.Mag() << " " << dif.X() << " " << dif.Y() << " " << dif.Z() << endl;
+    
     if(V){
       Double_t pos[3];
       for(Int_t kk=0;kk<3;kk++)pos[kk]=(Double_t)primaryVertex[kk];
@@ -74,17 +75,7 @@ void AliITSFindPrimaryVertex(Int_t evNumber1=0,Int_t NumbofEv=1, const char *fil
     }
     timer.Stop();
     timer.Print();
-    if(!V)continue;
-    cout << endl << "Xv = " << V->GetXv() << " cm" << endl;
-    cout << "X resolution = " << V->GetXRes()*10000 << " microns"  << endl;
-    cout << "Signal/Noise for X = " << V->GetXSNR() << endl;
-    cout << endl << "Yv = " << V->GetYv() << " cm"  << endl;
-    cout << "Y resolution = " << V->GetYRes()*10000 << " microns"  << endl;
-    cout << "Signal/Noise for Y = " << V->GetYSNR() << endl;
-    cout << endl << "Zv = " << V->GetZv() << " cm" << endl;
-    cout << "Z Resolution = " << V->GetZRes()*10000 << " microns" << endl;
-    cout << "Signal/Noise for Z = " << V->GetZSNR() <<endl;
-                
+    
     vertexer->WriteCurrentVertex(); 
   }