]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/trd_tracks.C
From Pawel Debski.
[u/mrichter/AliRoot.git] / EVE / alice-macros / trd_tracks.C
1 #ifndef __CINT__
2 #include <TGLViewer.h>
3 #include <TEveManager.h>
4 #include <EveBase/AliEveEventManager.h>
5 #include "TRD/AliTRDarrayADC.h"
6 #include <EveDet/AliEveTRDTrackList.h>
7
8 #include "AliESDEvent.h"
9 #include "AliESDfriend.h"
10 #include "TRD/AliTRDReconstructor.h"
11 #include "TRD/AliTRDtrackV1.h"
12 #endif
13
14 void trd_tracks(TEveElement *cont = 0)
15 {
16   // Link data containers
17   AliESDfriend *eventESDfriend = 0x0;
18   if(!(eventESDfriend = AliEveEventManager::AssertESDfriend())){
19     Warning("trd_tracks", "AliESDfriend not found");
20     return;
21   }
22
23   AliESDEvent* esd = AliEveEventManager::AssertESD();
24
25   AliEveEventManager::AssertGeometry();
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     AliESDfriendTrack *friendTrack = eventESDfriend->GetTrack(n);
36
37     TObject *cal = 0x0;
38     Int_t ical = 0;
39     while((cal = friendTrack->GetCalibObject(ical++))){
40       if(strcmp(cal->IsA()->GetName(), "AliTRDtrackV1") != 0) continue;
41       AliTRDtrackV1 *trackObj = dynamic_cast<AliTRDtrackV1 *>(cal);
42       trackObj->SetReconstructor(reco);
43       AliEveTRDTrack *trackEve = new AliEveTRDTrack(trackObj);
44       tracks->AddElement(trackEve);
45       trackEve->SetESDstatus(esdTrack->GetStatus());
46       trackEve->SetName(Form("[%4d] %s", n, trackEve->GetName()));
47     }
48   }
49
50   delete reco;
51
52   tracks->SetTitle(Form("Tracks %d", tracks->NumChildren()));
53   tracks->StampObjProps();
54   gEve->AddElement(tracks, cont);
55
56   gEve->Redraw3D();
57
58   //  TGLViewer *v = gEve->GetDefaultGLViewer();
59   //  v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
60   //  ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE);
61   //  v->UpdateScene();
62
63   return;
64 }