4 /// .L $ALICE_ROOT/TPC/macros/AliEveTree.C+
7 /// TFile fesd("AliESDs.root");
8 /// TTree * treeESD = (TTree*)fesd.Get("esdTree");
10 /// TFile ftpc("TPCdebug.root");
11 /// TFile fits("ITSdebug.root");
12 /// TTree * treeTPC = (TTree*)ftpc.Get("Transform");
13 /// TTree * treeITS = (TTree*)fits.Get("Clusters");
15 /// treeTPC->Draw("gx2/sqrt(gx0^2+gx1^2):sqrt(gx0^2+gx1^2)>>his(100,0,200,100,-1,1)","event==4","")
16 /// treeITS->Draw("gz/sqrt(gx^2+gy^2):sqrt(gx^2+gy^2)>>his(100,0,200,100,-1,1)","event==4","same")
18 /// treeTPC->Draw("atan2(gx1,gx0):sqrt(gx0^2+gx1^2)>>his(100,0,200,100,-1,1)","event==4","*")
19 /// treeITS->Draw("atan2(gy,gx):sqrt(gx^2+gy^2)>>his(100,0,200,100,-1,1)","event==4","same*");
24 #include "TTreeStream.h"
25 #include "TPolyMarker3D.h"
28 #include "AliESDEvent.h"
29 #include "AliESDtrack.h"
30 #include "AliESDfriendTrack.h"
31 #include "AliTrackPointArray.h"
34 AliTrackPointArray* MakeArray(TPolyMarker3D *pol);
35 void MakeESDTree(AliESDEvent*esd, TTreeSRedirector &cstream);
38 TFile fesd("AliESDs.root");
39 TTree * esdTree = (TTree*)fesd.Get("esdTree");
41 esdTree->SetBranchStatus("*",kTRUE);
42 cesd.ReadFromTree(esdTree);
43 TTreeSRedirector cstream("eveTree.root");
44 for (Int_t ievent=0; ievent<esdTree->GetEntries();ievent++) {
45 //cout<<endl<<endl<<"********* Processing event number: "<<event<<"*******\n";
46 esdTree->GetEvent(ievent);
47 AliESDfriend *fESDfriend = (AliESDfriend*)cesd.FindListObject("AliESDfriend");
48 cesd.SetESDfriend(fESDfriend);
49 MakeESDTree(&cesd,cstream);
54 void MakeESDTree(AliESDEvent*esd, TTreeSRedirector &cstream){
57 Float_t bz = esd->GetMagneticField();
58 //AliTPCseed dummyTPC;
59 //AliTPCseed dummyTRD;
60 for (Int_t i=0;i<esd->GetNumberOfTracks(); i++){
61 AliESDtrack * track = esd->GetTrack(i);
68 AliTrackPointArray * arrayA=0;
69 AliTrackPointArray * arrayV=0;
70 AliTrackPointArray * arrayI=0;
71 AliTrackPointArray * arrayO=0;
73 if (track->GetInnerParam()) {
74 ((AliExternalTrackParam*)track->GetInnerParam())->FillPolymarker(&polA,bz,0,350,1);}
76 track->FillPolymarker(&polA,bz,0,300,5);
78 arrayA=MakeArray(&polA);
79 track->FillPolymarker(&polV,bz,0,60,1);
80 arrayV=MakeArray(&polV);
81 if (track->GetInnerParam()) {
82 ((AliExternalTrackParam*)track->GetInnerParam())->FillPolymarker(&polI,bz,60,170,1);
83 arrayI = MakeArray(&polI);
85 if (track->GetOuterParam()) {
86 ((AliExternalTrackParam*)track->GetOuterParam())->FillPolymarker(&polO,bz,170,350,1);
87 arrayO=MakeArray(&polO);
89 static AliTrackPointArray cldummy(5);
90 AliTrackPointArray *clarray= &cldummy;
91 const AliESDfriendTrack *ftrack = track->GetFriendTrack();
92 if (ftrack && ftrack->GetTrackPointArray()) {
93 clarray=(AliTrackPointArray *)ftrack->GetTrackPointArray();
95 Int_t event = esd->GetEventNumberInFile();
96 Int_t id = track->GetID();
118 AliTrackPointArray *MakeArray(TPolyMarker3D *pol){
119 /// Make a aray of points with errors
121 Int_t entries = pol->GetN();
122 AliTrackPointArray * array = new AliTrackPointArray(entries);
123 for (Int_t i=0;i<entries;i++){
124 Double_t xyz[3]={0,0,0};
125 pol->GetPoint(i,xyz[0],xyz[1],xyz[2]);
126 ((Float_t*)array->GetX())[i]=xyz[0];
127 ((Float_t*)array->GetY())[i]=xyz[1];
128 ((Float_t*)array->GetZ())[i]=xyz[2];