#if !defined(__CINT__) || defined(__MAKECINT__)
//-- --- standard headers-------------
#include <Riostream.h>
//--------Root headers ---------------
#include <TSystem.h>
#include <TFile.h>
#include <TStopwatch.h>
#include <TObject.h>
#include <TTree.h>
//----- AliRoot headers ---------------
#include "alles.h"
#include "AliRun.h"
#include "AliMagF.h"
#include "AliKalmanTrack.h"
#include "AliITSVertex.h"
#include "AliITSVertexer.h"
#include "AliITSVertexerTracks.h"
#include <AliHeader.h>
#include <AliGenEventHeader.h>
//-------------------------------------
#endif
void AliITSVertexerTracksTest2(Int_t evFirst=0,Int_t evLast=0,
const Char_t *galiceName="galice.root",
const Char_t *trksName="AliITStracksV2.root",
const Char_t *vtxName="AliITSVertices.root") {
/*******************************************************************
* *
* Test macro for vertexing in pp using tracks. *
* Input file must contain trees with AliITStrackV2 objects. *
* Output file can be the same file with the tracks *
* or another file. *
* If the file galice.root is available, B is taken from there, *
* otherwise is can be set here "by hand". *
* *
* Origin: A.Dainese, Padova andrea.dainese@pd.infn.it *
*******************************************************************/
// Look for field value in galice.root
Double_t field = 0.4;
Int_t kDebug = 0;
TFile *galice = 0;
if(!gSystem->AccessPathName(galiceName,kFileExists)) {
galice = new TFile(galiceName);
gAlice = (AliRun*)galice->Get("gAlice");
AliMagF *fiel = TGeoGlobalMagField::Instance()->GetField();
field=(Double_t)fiel->SolenoidField()/10.;
AliKalmanTrack::SetConvConst(100/0.299792458/field);
printf(" B = %3.1f read from gAlice and set\n",field);
} else {
printf(" File galice.root not found: default 0.4 T being used!\n");
}
// Open input and output files
TFile *inFile = TFile::Open(trksName);
TFile *outFile = TFile::Open(vtxName,"recreate");
// Create vertexer
AliITSVertexerTracks *vertexer =
new AliITSVertexerTracks(inFile,outFile,field,0.,0.);
vertexer->SetDebug(0);
vertexer->SetUseThrustFrame(0);
vertexer->PrintStatus();
AliITSVertex *vert = 0;
// Find vertices
for(Int_t i=evFirst; i<=evLast; i++){
if(i%100==0)cout<<"processing event "<<i<<endl;
gAlice->GetEvent(i);
// The true Z coord. is fetched for comparison
AliHeader *header = gAlice->GetHeader();
AliGenEventHeader* genEventHeader = header->GenEventHeader();
TArrayF primaryVertex(3);
genEventHeader->PrimaryVertex(primaryVertex);
vert = vertexer->FindVertexForCurrentEvent(i);
if(kDebug>0){
// Prints the results
cout <<"========================================================\n";
cout << "Event number: "<<i<<") Z Vertex:"<<endl;
if(vert){
cout<<"FOUND: "<<vert->GetZ()<<"; "<<vert->GetZRes()<<endl;
cout <<" True Z position "<<primaryVertex[2]<<endl;
cout<<", diff= "<<(primaryVertex[2]-vert->GetZ())*10000.<<endl;
}
else {
cout<<"NOT FOUND "<<endl;
}
}
if(vert){
Double_t pos[3];
for(Int_t kk=0;kk<3;kk++)pos[kk]=(Double_t)primaryVertex[kk];
vert->SetTruePos(pos);
vertexer->WriteCurrentVertex();
}
}
delete vertexer;
inFile->Close();
outFile->Close();
delete inFile;
delete outFile;
galice->Close();
delete galice;
return;
}
AliITSVertexerTracksTest2.C:1 AliITSVertexerTracksTest2.C:2 AliITSVertexerTracksTest2.C:3 AliITSVertexerTracksTest2.C:4 AliITSVertexerTracksTest2.C:5 AliITSVertexerTracksTest2.C:6 AliITSVertexerTracksTest2.C:7 AliITSVertexerTracksTest2.C:8 AliITSVertexerTracksTest2.C:9 AliITSVertexerTracksTest2.C:10 AliITSVertexerTracksTest2.C:11 AliITSVertexerTracksTest2.C:12 AliITSVertexerTracksTest2.C:13 AliITSVertexerTracksTest2.C:14 AliITSVertexerTracksTest2.C:15 AliITSVertexerTracksTest2.C:16 AliITSVertexerTracksTest2.C:17 AliITSVertexerTracksTest2.C:18 AliITSVertexerTracksTest2.C:19 AliITSVertexerTracksTest2.C:20 AliITSVertexerTracksTest2.C:21 AliITSVertexerTracksTest2.C:22 AliITSVertexerTracksTest2.C:23 AliITSVertexerTracksTest2.C:24 AliITSVertexerTracksTest2.C:25 AliITSVertexerTracksTest2.C:26 AliITSVertexerTracksTest2.C:27 AliITSVertexerTracksTest2.C:28 AliITSVertexerTracksTest2.C:29 AliITSVertexerTracksTest2.C:30 AliITSVertexerTracksTest2.C:31 AliITSVertexerTracksTest2.C:32 AliITSVertexerTracksTest2.C:33 AliITSVertexerTracksTest2.C:34 AliITSVertexerTracksTest2.C:35 AliITSVertexerTracksTest2.C:36 AliITSVertexerTracksTest2.C:37 AliITSVertexerTracksTest2.C:38 AliITSVertexerTracksTest2.C:39 AliITSVertexerTracksTest2.C:40 AliITSVertexerTracksTest2.C:41 AliITSVertexerTracksTest2.C:42 AliITSVertexerTracksTest2.C:43 AliITSVertexerTracksTest2.C:44 AliITSVertexerTracksTest2.C:45 AliITSVertexerTracksTest2.C:46 AliITSVertexerTracksTest2.C:47 AliITSVertexerTracksTest2.C:48 AliITSVertexerTracksTest2.C:49 AliITSVertexerTracksTest2.C:50 AliITSVertexerTracksTest2.C:51 AliITSVertexerTracksTest2.C:52 AliITSVertexerTracksTest2.C:53 AliITSVertexerTracksTest2.C:54 AliITSVertexerTracksTest2.C:55 AliITSVertexerTracksTest2.C:56 AliITSVertexerTracksTest2.C:57 AliITSVertexerTracksTest2.C:58 AliITSVertexerTracksTest2.C:59 AliITSVertexerTracksTest2.C:60 AliITSVertexerTracksTest2.C:61 AliITSVertexerTracksTest2.C:62 AliITSVertexerTracksTest2.C:63 AliITSVertexerTracksTest2.C:64 AliITSVertexerTracksTest2.C:65 AliITSVertexerTracksTest2.C:66 AliITSVertexerTracksTest2.C:67 AliITSVertexerTracksTest2.C:68 AliITSVertexerTracksTest2.C:69 AliITSVertexerTracksTest2.C:70 AliITSVertexerTracksTest2.C:71 AliITSVertexerTracksTest2.C:72 AliITSVertexerTracksTest2.C:73 AliITSVertexerTracksTest2.C:74 AliITSVertexerTracksTest2.C:75 AliITSVertexerTracksTest2.C:76 AliITSVertexerTracksTest2.C:77 AliITSVertexerTracksTest2.C:78 AliITSVertexerTracksTest2.C:79 AliITSVertexerTracksTest2.C:80 AliITSVertexerTracksTest2.C:81 AliITSVertexerTracksTest2.C:82 AliITSVertexerTracksTest2.C:83 AliITSVertexerTracksTest2.C:84 AliITSVertexerTracksTest2.C:85 AliITSVertexerTracksTest2.C:86 AliITSVertexerTracksTest2.C:87 AliITSVertexerTracksTest2.C:88 AliITSVertexerTracksTest2.C:89 AliITSVertexerTracksTest2.C:90 AliITSVertexerTracksTest2.C:91 AliITSVertexerTracksTest2.C:92 AliITSVertexerTracksTest2.C:93 AliITSVertexerTracksTest2.C:94 AliITSVertexerTracksTest2.C:95 AliITSVertexerTracksTest2.C:96 AliITSVertexerTracksTest2.C:97 AliITSVertexerTracksTest2.C:98 AliITSVertexerTracksTest2.C:99 AliITSVertexerTracksTest2.C:100 AliITSVertexerTracksTest2.C:101 AliITSVertexerTracksTest2.C:102 AliITSVertexerTracksTest2.C:103 AliITSVertexerTracksTest2.C:104 AliITSVertexerTracksTest2.C:105 AliITSVertexerTracksTest2.C:106 AliITSVertexerTracksTest2.C:107 AliITSVertexerTracksTest2.C:108 AliITSVertexerTracksTest2.C:109