1 // The following macro runs the HLT ITS tracker over the HLT
2 // tracks stored in the ESD and stores the output tracks in a
3 // separate ESD file AliESDits.root
5 Int_t RunHLTITS(Int_t nev=1,Int_t run=0) {
11 delete gAlice->GetRunLoader();
16 AliRunLoader *rl = AliRunLoader::Open("galice.root");
18 cerr<<"Can not open session"<<endl;
21 Int_t retval = rl->LoadgAlice();
23 cerr<<"AliESDtest.C : LoadgAlice returned error"<<endl;
27 retval = rl->LoadHeader();
29 cerr<<"AliESDtest.C : LoadHeader returned error"<<endl;
33 gAlice=rl->GetAliRun();
36 AliKalmanTrack::SetConvConst(
37 1000/0.299792458/gAlice->Field()->SolenoidField()
40 AliITSLoader* itsl = (AliITSLoader*)rl->GetLoader("ITSLoader");
42 cerr<<"AliESDtest.C : Can not get the ITS loader"<<endl;
45 itsl->LoadRecPoints("read");
47 AliITS *dITS = (AliITS*)gAlice->GetDetector("ITS");
49 cerr<<"AliESDtest.C : Can not find the ITS detector !"<<endl;
52 AliITSgeom *geom = dITS->GetITSgeom();
54 //An instance of the HLT ITS tracker
55 AliL3ITStracker itsTracker(geom);
57 TFile *ef=TFile::Open("AliESDs.root");
58 if (!ef || !ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
59 AliESD* event = new AliESD;
60 TTree* tree = (TTree*) ef->Get("esdTree");
61 if (!tree) {cerr<<"no ESD tree found\n"; return 1;};
62 tree->SetBranchAddress("ESD", &event);
64 TFile *itsf=TFile::Open("AliESDits.root","RECREATE");
65 if ((!itsf)||(!itsf->IsOpen())) {
66 cerr<<"Can't AliESDits.root !\n"; return 1;
70 if (nev>rl->GetNumberOfEvents()) nev=rl->GetNumberOfEvents();
71 //The loop over events
72 for (Int_t i=0; i<nev; i++) {
74 cerr<<"\n\nProcessing event number : "<<i<<endl;
80 rl->GetHeader()->GenEventHeader()->PrimaryVertex(v);
81 Double_t vtx[3]={v[0],v[1],v[2]};
82 Double_t cvtx[3]={0.005,0.005,0.010};
83 AliESDVertex vertex1(vtx,cvtx);
84 event->SetVertex(&vertex1);
88 AliESDVertex *vertex = event->GetVertex();
90 vertex->GetSigmaXYZ(cvtx);
91 itsTracker.SetVertex(vtx,cvtx);
93 TTree *itsTree=itsl->TreeR();
95 cerr<<"Can't get the ITS cluster tree !\n";
98 itsTracker.LoadClusters(itsTree);
99 rc+=itsTracker.Clusters2Tracks(event);
100 // rc+=itsTracker.PropagateBack(event);
101 itsTracker.UnloadClusters();
104 TTree* tree = new TTree("esdTree", "Tree with ESD objects");
105 tree->Branch("ESD", "AliESD", &event);
111 cerr<<"Something bad happened...\n";