#ifndef __CINT__ #include #include #include #include "TRD/AliTRDarrayADC.h" #include #include "AliESDEvent.h" #include "AliESDfriend.h" #include "TRD/AliTRDReconstructor.h" #include "TRD/AliTRDtrackV1.h" #endif void trd_tracks(TEveElement *cont = 0) { // Link data containers AliESDfriend *eventESDfriend = 0x0; if(!(eventESDfriend = AliEveEventManager::AssertESDfriend())){ Warning("trd_tracks", "AliESDfriend not found"); return; } AliESDEvent* esd = AliEveEventManager::AssertESD(); AliEveEventManager::AssertGeometry(); AliTRDrecoParam *trdRecoParam = AliTRDrecoParam::GetLowFluxParam(); trdRecoParam->SetPIDNeuralNetwork(); AliTRDReconstructor *reco = new AliTRDReconstructor(); reco->SetRecoParam(trdRecoParam); AliEveTRDTrackList *tracks = new AliEveTRDTrackList("TRD Tracks"); for (Int_t n=0; nGetNumberOfTracks(); n++){ AliESDtrack* esdTrack = esd->GetTrack(n); AliESDfriendTrack *friendTrack = eventESDfriend->GetTrack(n); TObject *cal = 0x0; Int_t ical = 0; while((cal = friendTrack->GetCalibObject(ical++))){ if(strcmp(cal->IsA()->GetName(), "AliTRDtrackV1") != 0) continue; AliTRDtrackV1 *trackObj = dynamic_cast(cal); trackObj->SetReconstructor(reco); AliEveTRDTrack *trackEve = new AliEveTRDTrack(new AliTRDtrackV1(*trackObj)); tracks->AddElement(trackEve); trackEve->SetESDstatus(esdTrack->GetStatus()); trackEve->SetName(Form("[%4d] %s", n, trackEve->GetName())); } } delete reco; tracks->SetTitle(Form("Tracks %d", tracks->NumChildren())); tracks->StampObjProps(); gEve->AddElement(tracks, cont); gEve->Redraw3D(); // TGLViewer *v = gEve->GetDefaultGLViewer(); // v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY); // ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE); // v->UpdateScene(); return; }