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 <TObjArray.h>
#include <TBranch.h>
#include <TTree.h>
#include <TString.h>
#include <TEveManager.h>
#include <TEveElement.h>
#include <TEvePointSet.h>

#include <AliCluster.h>
#include <AliRunLoader.h>
#include <AliEveEventManager.h>
#endif

TEvePointSet* phos_clusters(TEveElement* cont=0)
{
  AliEveEventManager::AssertGeometry();

  AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
  rl->LoadRecPoints("PHOS");

  TTree *cTree = rl->GetTreeR("PHOS", false);

	if(!cTree) return 0;

  TEvePointSet* clusters = new TEvePointSet(10000);
  clusters->SetOwnIds(kTRUE);

  TObjArray *arr=NULL;
  TBranch *branch=cTree->GetBranch("PHOSEmcRP");
  branch->SetAddress(&arr);

  Int_t nentr=(Int_t)branch->GetEntries();
  for (Int_t i=0; i<nentr; i++) {
    if (!branch->GetEvent(i)) continue;

    Int_t ncl=arr->GetEntriesFast();
    while (ncl--) {
      AliCluster *cl=(AliCluster*)arr->UncheckedAt(ncl);

      Float_t g[3]; //global coordinates
      cl->GetGlobalXYZ(g);

      AliCluster *atp = new AliCluster(*cl);
      clusters->SetNextPoint(g[0], g[1], g[2]);
      clusters->SetPointId(atp);
    }
  }

  Warning("phos_clusters"," %d", clusters->Size());

  if(clusters->Size() == 0 && gEve->GetKeepEmptyCont() == kFALSE) {
    Warning("phos_clusters", "No PHOS clusters");
    delete clusters;
    return 0;
  }

  clusters->SetMarkerStyle(2);
  clusters->SetMarkerSize(0.5);
  clusters->SetMarkerColor(4);

  clusters->SetName("PHOS Clusters");

  clusters->SetTitle(Form("N=%d", clusters->Size()));

  const TString viz_tag("REC Clusters PHOS");

  clusters->ApplyVizTag(viz_tag, "Clusters");

  gEve->AddElement(clusters);

  gEve->Redraw3D();

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