3 #include <TEveManager.h>
4 #include <EveBase/AliEveEventManager.h>
5 #include "TRD/AliTRDarrayADC.h"
6 #include <EveDet/AliEveTRDTrackList.h>
8 #include "AliESDEvent.h"
9 #include "AliESDfriend.h"
10 #include "TRD/AliTRDReconstructor.h"
11 #include "TRD/AliTRDtrackV1.h"
14 void trd_tracks(TEveElement *cont = 0)
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.");
24 AliEveEventManager::AssertGeometry();
26 AliTRDrecoParam *trdRecoParam = AliTRDrecoParam::GetLowFluxParam();
27 trdRecoParam->SetPIDNeuralNetwork();
28 AliTRDReconstructor *reco = new AliTRDReconstructor();
29 reco->SetRecoParam(trdRecoParam);
31 AliEveTRDTrackList *tracks = new AliEveTRDTrackList("TRD Tracks");
32 for (Int_t n=0; n<esd->GetNumberOfTracks(); n++){
33 AliESDtrack* esdTrack(esd->GetTrack(n));
34 if(!esdTrack) continue;
35 AliESDfriendTrack *friendTrack(esdTrack->GetFriendTrack());
36 if(!friendTrack) continue;
37 Info("trd_tracks", Form("Track[%3d] esd[%p] friend[%p]", n, (void*)esdTrack, (void*)friendTrack));
41 while((cal = friendTrack->GetCalibObject(ical++))){
42 //Info("trd_tracks", Form(" Obj[%d] %s", ical-1, cal->IsA()->GetName()));
43 if(strcmp(cal->IsA()->GetName(), "AliTRDtrackV1") != 0) continue;
44 AliTRDtrackV1 *trackObj = dynamic_cast<AliTRDtrackV1 *>(cal);
45 trackObj->SetReconstructor(reco);
46 AliEveTRDTrack *trackEve = new AliEveTRDTrack(new AliTRDtrackV1(*trackObj));
47 tracks->AddElement(trackEve);
48 trackEve->SetESDstatus(esdTrack->GetStatus());
49 trackEve->SetName(Form("[%4d] %s", n, trackEve->GetName()));
55 tracks->SetTitle(Form("Tracks %d", tracks->NumChildren()));
56 tracks->StampObjProps();
57 gEve->AddElement(tracks, cont);
61 // TGLViewer *v = gEve->GetDefaultGLViewer();
62 // v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
63 // ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE);