]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/trd_friend_tracks.C
small fixes for Kalman fitter
[u/mrichter/AliRoot.git] / EVE / alice-macros / trd_friend_tracks.C
1 void trd_friend_tracks(TEveElement *cont = 0)
2 {
3
4   // Link data containers
5   AliESDfriend *eventESDfriend = 0x0;
6   if(!(eventESDfriend = AliEveEventManager::AssertESDfriend())){
7     Warning("trd_friend_tracks", "AliESDfriend not found");
8     return 0x0;
9   }
10
11   AliESDEvent* esd = AliEveEventManager::AssertESD();
12
13   AliEveEventManager::AssertGeometry();
14
15   AliMagFMaps *field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG);
16   AliTracker::SetFieldMap(field, kTRUE);
17
18   AliTRDReconstructor *reco = new AliTRDReconstructor();
19   reco->SetRecoParam(AliTRDrecoParam::GetLowFluxParam());
20   reco->SetOption("!nn");
21
22   AliEveTRDTrackList *tracks = new AliEveTRDTrackList("TRD Tracks");
23   for (Int_t n=0; n<esd->GetNumberOfTracks(); n++){
24     AliESDtrack* esdTrack = esd->GetTrack(n);
25     AliESDfriendTrack *friendTrack = eventESDfriend->GetTrack(n);
26   
27     TObject *cal = 0x0;
28     Int_t ical = 0;
29     while(cal = friendTrack->GetCalibObject(ical++)){
30       if(strcmp(cal->IsA()->GetName(), "AliTRDtrackV1") != 0) continue;
31       AliTRDtrackV1 *trackObj = dynamic_cast<AliTRDtrackV1 *>(cal);
32       trackObj->SetReconstructor(reco);
33       AliEveTRDTrack *trackEve = new AliEveTRDTrack(trackObj);
34       tracks->AddElement(trackEve);
35       trackEve->SetESDstatus(esdTrack->GetStatus());
36     }
37   }
38         
39   tracks->SetTitle(Form("Tracks %d", tracks->NumChildren()));
40   tracks->StampObjProps();
41   gEve->AddElement(tracks, cont);
42   
43   gEve->Redraw3D();
44
45   TGLViewer *v = gEve->GetGLViewer();
46   v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
47   ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE);
48   v->UpdateScene();
49   
50   return;
51 }