ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TClonesArray.h>
#include <TGLViewer.h>
#include <TStyle.h>
#include <TEveBrowser.h>
#include <TEveManager.h>
#include <TEveViewer.h>
#include <TEveWindow.h>
#include <TEveScene.h>
#include <TEveTreeTools.h>

#include <AliRunLoader.h>
#include <AliAODEvent.h>
#include <AliAODTrack.h>
#include <AliEveEventManager.h>
#include <AliEveJetPlane.h>
#endif

TEveViewer *gJPView   = 0;
TEveScene  *gJPScene  = 0;

AliEveJetPlane* jetplane()
{
  if (gJPView == 0)
  {
    TEveWindowSlot *slot    = 0;
    TEveBrowser    *browser = gEve->GetBrowser();

    slot = TEveWindow::CreateWindowInTab(browser->GetTabRight());
    slot->MakeCurrent();
    gJPView  = gEve->SpawnNewViewer("JetPlane", "");
    gJPScene = gEve->SpawnNewScene("JetPlane", "Scene holding elements of the jet-plane view.");
    gJPView->AddScene(gJPScene);

    gJPView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraPerspXOY);
  }

  AliAODEvent* aod = AliEveEventManager::AssertAOD();
  
  // We have event id everywhere now.
  Int_t iev = AliEveEventManager::GetMaster()->GetEventId();

  gStyle->SetPalette(1, 0);

  AliEveJetPlane* jp = new AliEveJetPlane(iev);
  jp->SetPickable(kTRUE);

  // Read Jets in current event

  TClonesArray* jets = aod->GetJets();
  Int_t njets = jets->GetEntries();
  Info("jetplane", "Event: %5d Number of jets: %5d \n", iev, njets);

  for (Int_t ij = 0; ij < njets; ij++)
  {
    AliAODJet *jet = (AliAODJet*) jets->At(ij);
    jp->AddJet(jet);
  }

  // Read tracks in current event

  TClonesArray* tracks = aod->GetTracks();
  Int_t ntracks = tracks->GetEntries();
  Info("jetplane", "Event: %5d Number of tracks: %5d \n", iev, ntracks);

  for (Int_t ij = 0; ij < ntracks; ij++)
  {
    AliAODTrack* track = (AliAODTrack*) tracks->At(ij);
    jp->AddTrack(track);
  }

  jp->CreateArrows();

  // Render Jet Plane
  gJPScene->AddElement(jp);
  AliEveEventManager::RegisterTransient(jp);

  gEve->Redraw3D();

  return jp;
}
 jetplane.C:1
 jetplane.C:2
 jetplane.C:3
 jetplane.C:4
 jetplane.C:5
 jetplane.C:6
 jetplane.C:7
 jetplane.C:8
 jetplane.C:9
 jetplane.C:10
 jetplane.C:11
 jetplane.C:12
 jetplane.C:13
 jetplane.C:14
 jetplane.C:15
 jetplane.C:16
 jetplane.C:17
 jetplane.C:18
 jetplane.C:19
 jetplane.C:20
 jetplane.C:21
 jetplane.C:22
 jetplane.C:23
 jetplane.C:24
 jetplane.C:25
 jetplane.C:26
 jetplane.C:27
 jetplane.C:28
 jetplane.C:29
 jetplane.C:30
 jetplane.C:31
 jetplane.C:32
 jetplane.C:33
 jetplane.C:34
 jetplane.C:35
 jetplane.C:36
 jetplane.C:37
 jetplane.C:38
 jetplane.C:39
 jetplane.C:40
 jetplane.C:41
 jetplane.C:42
 jetplane.C:43
 jetplane.C:44
 jetplane.C:45
 jetplane.C:46
 jetplane.C:47
 jetplane.C:48
 jetplane.C:49
 jetplane.C:50
 jetplane.C:51
 jetplane.C:52
 jetplane.C:53
 jetplane.C:54
 jetplane.C:55
 jetplane.C:56
 jetplane.C:57
 jetplane.C:58
 jetplane.C:59
 jetplane.C:60
 jetplane.C:61
 jetplane.C:62
 jetplane.C:63
 jetplane.C:64
 jetplane.C:65
 jetplane.C:66
 jetplane.C:67
 jetplane.C:68
 jetplane.C:69
 jetplane.C:70
 jetplane.C:71
 jetplane.C:72
 jetplane.C:73
 jetplane.C:74
 jetplane.C:75
 jetplane.C:76
 jetplane.C:77
 jetplane.C:78
 jetplane.C:79
 jetplane.C:80
 jetplane.C:81
 jetplane.C:82
 jetplane.C:83
 jetplane.C:84
 jetplane.C:85
 jetplane.C:86
 jetplane.C:87
 jetplane.C:88
 jetplane.C:89
 jetplane.C:90
 jetplane.C:91