From: abercuci Date: Fri, 27 Nov 2009 10:25:12 +0000 (+0000) Subject: first version of list analyser steering macro (Ben) X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=938315b86e6491a64e5e8d63bff3b9f5e66b840b;p=u%2Fmrichter%2FAliRoot.git first version of list analyser steering macro (Ben) --- diff --git a/EVE/alice-macros/ana_list.C b/EVE/alice-macros/ana_list.C new file mode 100755 index 00000000000..d2b5f60753f --- /dev/null +++ b/EVE/alice-macros/ana_list.C @@ -0,0 +1,96 @@ +#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; +}