1 //********************************************************************
2 // Example of the reconstruction that generates the ESD
4 // a) AliTPCclusters.root containing the TPC clusters
5 // (the AliTPCFindClusters.C macro can be used to generate it)
6 // b) AliITSclustersV2.root containing the ITS clusters
7 // (the AliITSFindClustersV2.C macro can be used to generate it)
9 // AliESDs.root containing the ESD events
11 // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
12 //********************************************************************
15 #include <Riostream.h>
17 #include "TStopwatch.h"
20 #include "AliTPCParam.h"
21 #include "AliTPCtracker.h"
22 #include "AliITSgeom.h"
23 #include "AliITStrackerV2.h"
26 Int_t AliESDtest(Int_t nev=1) {
27 //File with the TPC clusters
28 TFile *tpccf=TFile::Open("AliTPCclusters.root");
29 if (!tpccf->IsOpen()) {
30 cerr<<"Can't open AliTPCclusters.root !\n";
33 AliTPCParam *par=(AliTPCParam*)tpccf->Get("75x40_100x60_150x60");
34 if (!par) {cerr<<"Can't get TPC parameters !\n"; return 3;}
36 //An instance of the TPC tracker
37 AliTPCtracker tpcTracker(par);
40 //File with the ITS clusters
41 TFile *itscf=TFile::Open("AliITSclustersV2.root");
42 if (!itscf->IsOpen()) {
43 cerr<<"Can't open AliITSclustersV2.root !\n";
46 AliITSgeom *geom=(AliITSgeom*)itscf->Get("AliITSgeom");
47 if (!geom) {cerr<<"Can't get AliITSgeom !\n"; return 5;}
49 //An instance of the ITS tracker
50 AliITStrackerV2 itsTracker(geom);
52 TFile *ef=TFile::Open("AliESDs.root","new");
53 if (!ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
57 //The loop over events
58 for (Int_t i=0; i<nev; i++) {
59 cerr<<"\n\nProcessing event number : "<<i<<endl;
60 AliESD *event=new AliESD();
62 tpcTracker.SetEventNumber(i);
63 tpcTracker.LoadClusters(tpccf);
65 itsTracker.SetEventNumber(i);
66 itsTracker.LoadClusters(itscf);
68 rc+=tpcTracker.Clusters2Tracks(event);
70 rc+=itsTracker.Clusters2Tracks(event);
72 rc+=itsTracker.PropagateBack(event);
73 itsTracker.UnloadClusters();
75 rc+=tpcTracker.PropagateBack(event);
76 tpcTracker.UnloadClusters();
80 sprintf(ename,"%d",i);
81 if (!event->Write(ename)) rc++;
84 cerr<<"Something bad happened...\n";
88 timer.Stop(); timer.Print();