]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/trd_tracks.C
Update master to aliroot
[u/mrichter/AliRoot.git] / EVE / alice-macros / trd_tracks.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include <TGLViewer.h>
3 #include <TEveManager.h>
4
5 #include <AliESDEvent.h>
6 #include <AliESDfriend.h>
7 #include <AliTRDarrayADC.h>
8 #include <AliTRDReconstructor.h>
9 #include <AliTRDtrackV1.h>
10 #include <AliEveEventManager.h>
11 #include <AliEveTRDTrackList.h>
12 #endif
13
14 void trd_tracks(TEveElement *cont = 0)
15 {
16   // Link data containers
17   AliESDEvent* esd(AliEveEventManager::AssertESD());
18   AliESDfriend *esdFriend(AliEveEventManager::AssertESDfriend());
19   if(!esd || !esdFriend){
20     Warning("trd_tracks", "Full ESD data missing.");
21     return;
22   }
23
24 /*  AliEveEventManager::AssertGeometry();
25   AliRunLoader *rl = AliEveEventManager::AssertRunLoader();
26 */
27   AliTRDrecoParam *trdRecoParam = AliTRDrecoParam::GetLowFluxParam();
28   trdRecoParam->SetPIDNeuralNetwork();
29   AliTRDReconstructor *reco = new AliTRDReconstructor();
30   reco->SetRecoParam(trdRecoParam);
31
32   AliEveTRDTrackList *tracks = new AliEveTRDTrackList("TRD Tracks");
33   for (Int_t n=0; n<esd->GetNumberOfTracks(); n++){
34     AliESDtrack* esdTrack(esd->GetTrack(n));
35     if(!esdTrack) continue;
36     AliESDfriendTrack *friendTrack = new AliESDfriendTrack(*(esdTrack->GetFriendTrack()));
37     if(!friendTrack) continue;
38     //Info("trd_tracks", Form("Track[%3d] esd[%p] friend[%p]", n, (void*)esdTrack, (void*)friendTrack));
39
40     TObject *cal(NULL);
41     Int_t ical(0);
42     while((cal = friendTrack->GetCalibObject(ical++))){
43       //Info("trd_tracks", Form("  Obj[%d] %s", ical-1, cal->IsA()->GetName()));
44       if(strcmp(cal->IsA()->GetName(), "AliTRDtrackV1") != 0) continue;
45       AliTRDtrackV1 *trackObj = dynamic_cast<AliTRDtrackV1 *>(cal);
46       trackObj->SetReconstructor(reco);
47       AliEveTRDTrack *trackEve = new AliEveTRDTrack(new AliTRDtrackV1(*trackObj));
48       tracks->AddElement(trackEve);
49       trackEve->SetESDstatus(esdTrack->GetStatus());
50       trackEve->SetName(Form("[%4d] %s", n, trackEve->GetName()));
51     }
52   }
53
54   delete reco;
55
56   tracks->SetTitle(Form("Tracks %d", tracks->NumChildren()));
57   tracks->StampObjProps();
58   gEve->AddElement(tracks, cont);
59
60   gEve->Redraw3D();
61
62   //  TGLViewer *v = gEve->GetDefaultGLViewer();
63   //  v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
64   //  ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE);
65   //  v->UpdateScene();
66
67   return;
68 }