]>
Commit | Line | Data |
---|---|---|
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 | 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(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 | } |