ROOT logo

#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TClonesArray.h>
#include <TEveLine.h>
#include <TEveManager.h>
#include <TEveElement.h>

#include <AliRunLoader.h>
#include <AliLoader.h>
#include <AliDataLoader.h>
#include <AliTreeLoader.h>
#include <AliTRDarrayADC.h>
#include <AliTRDtrackletWord.h>
#include <AliTRDtrackletMCM.h>
#include <AliEveEventManager.h>
#include <AliEveTRDData.h>
#endif

TEveElementList *trd_tracklets()
{
  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
  AliLoader *loader = rl ? rl->GetLoader("TRDLoader") : 0x0;

  TTree *trklTree = 0x0;

  AliDataLoader *dl = loader ? loader->GetDataLoader("tracklets") : 0x0;
  if (!dl) {
    printf("No tracklet loader\n");
    return 0x0;
  }

  gEve->DisableRedraw();

  // ----- simulated tracklets -----
  dl->Load();
  trklTree = dl->Tree();
  
  if (trklTree) {
    TBranch *trklBranch = 0x0;
    if ((trklBranch = trklTree->GetBranch("mcmtrklbranch"))) {
      AliTRDtrackletMCM *trkl = 0x0; 
      trklBranch->SetAddress(&trkl);
      
      TEveElementList* listOfTracklets = new TEveElementList("TRD tracklets (sim)");
      gEve->AddElement(listOfTracklets);
      
      for (Int_t i = 0; i < trklBranch->GetEntries(); i++) {
	trklBranch->GetEntry(i);
	if (!trkl)
	  continue;
	gEve->AddElement(new AliEveTRDTrackletOnline(trkl), listOfTracklets);
      }
    }
  }

  // raw tracklets
  AliTreeLoader *tl = (AliTreeLoader*) dl->GetBaseLoader("tracklets-raw");
  if (tl) {
    tl->Load();
    trklTree = tl->Tree();
  }
  else 
    trklTree = 0x0;
  //  trklTree = tl ? tl->Load(), tl->Tree : 0x0;

  if (trklTree) {
    TEveElementList* listOfTracklets = new TEveElementList("TRD tracklets (raw)");
    gEve->AddElement(listOfTracklets);
    
    Int_t hc; 
    TClonesArray *ar = 0x0;
    trklTree->SetBranchAddress("hc", &hc);
    trklTree->SetBranchAddress("trkl", &ar);

    for (Int_t iEntry = 0; iEntry < trklTree->GetEntries(); iEntry++) {
      trklTree->GetEntry(iEntry);
      //      printf("%i tracklets in HC %i\n", ar->GetEntriesFast(), hc);
      for (Int_t iTracklet = 0; iTracklet < ar->GetEntriesFast(); iTracklet++) {
	AliTRDtrackletWord *trklWord = (AliTRDtrackletWord*) (*ar)[iTracklet];
        AliEveTRDTrackletOnline *evetrkl = new AliEveTRDTrackletOnline(new AliTRDtrackletWord(trklWord->GetTrackletWord(), hc));
        gEve->AddElement(evetrkl, listOfTracklets);
      }
    }
  }

  gEve->EnableRedraw();
  gEve->Redraw3D();

  return 0x0;
}

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