#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 ana_list(TEveElement *cont = 0) { // Link data containers AliESDfriend *eventESDfriend = 0x0; if(!(eventESDfriend = AliEveEventManager::AssertESDfriend())){ Warning("trd_loadObjectList", "AliESDfriend not found"); return; } AliESDEvent* esd = AliEveEventManager::AssertESD(); AliEveEventManager::AssertGeometry(); AliTRDrecoParam *trdRecoParam = AliTRDrecoParam::GetLowFluxParam(); if (!trdRecoParam) { printf("Could not load AliTRDrecoParam\n"); return; } trdRecoParam->SetPIDNeuralNetwork(); AliTRDReconstructor *reco = new AliTRDReconstructor(); if (!reco) { printf("Could not load AliTRDReconstructor\n"); return; } reco->SetRecoParam(trdRecoParam); AliEveListAnalyser *objects = new AliEveListAnalyser("TRD Analysis Object"); for (Int_t n = 0; n < esd->GetNumberOfTracks(); n++) { AliESDtrack* esdTrack = esd->GetTrack(n); AliESDfriendTrack *friendTrack = eventESDfriend->GetTrack(n); if (!esdTrack || !friendTrack) { printf("Problem with track %d\n", n); continue; } 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); if (!trackObj) { printf("Cast to AliTRDtrackV1 failed!\n"); continue; } trackObj->SetReconstructor(reco); AliEveTRDTrack *trackEve = new AliEveTRDTrack(trackObj); if (!trackEve) { printf("Cast to AliEveTRDTrack failed!\n"); continue; } objects->AddElement(trackEve); trackEve->SetESDstatus(esdTrack->GetStatus()); trackEve->SetName(Form("[%4d] %s", n, trackEve->GetName())); } } delete reco; objects->SetTitle(Form("Objects %d", objects->NumChildren())); objects->StampObjProps(); gEve->AddElement(objects, cont); gEve->Redraw3D(); // TGLViewer *v = gEve->GetDefaultGLViewer(); // v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY); // ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE); // v->UpdateScene(); return; }