ROOT logo

class TEveProjectionManager;
class TEveGeoShape;
class TEveElement;
class TEveElementList;

TEveProjectionManager  * proj = 0;
TEveGeoShape * geom = 0;

void tpc_tracks(const char *input=0)
{
  //
  //
  //
  if (input){
    TString ipath(input);
    if (ipath.Contains(".zip")){
      gSystem->Exec("rm TPC*");
      gSystem->Exec("rm AliESD*");
      if (ipath.Contains("root:/")){
	char command[1000];
	sprintf(command,"xrdcp %s in.zip",input);
	gSystem->Exec(command);
      }
      if (ipath.Contains("alien:/")){
	char command[1000];
	sprintf(command,"alien_cp %s in.zip",input);
	gSystem->Exec(command);
      }
      gSystem->Exec("unzip in.zip");      
    }
  }

  TEveUtil::LoadMacro("alieve_init.C");
  alieve_init(".", -1);

  TEveUtil::LoadMacro("geom_gentle.C");

  TEveUtil::LoadMacro("primary_vertex.C");
  TEveUtil::LoadMacro("esd_tracks.C");
  TEveUtil::LoadMacro("its_clusters.C+");
  TEveUtil::LoadMacro("tpc_clusters.C+");

  TEveViewer* nv = gEve->SpawnNewViewer("NLT Projected");
  TEveScene*  ns = gEve->SpawnNewScene("NLT"); 
  nv->AddScene(ns);
  TGLViewer* v = nv->GetGLViewer();
  v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
  TGLCameraMarkupStyle* mup = v->GetCameraMarkup();
  if(mup) mup->SetShow(kFALSE);

  TEveTrackCounter* g_trkcnt = new TEveTrackCounter("Primary Counter");
  gEve->AddToListTree(g_trkcnt, kFALSE);

  TEveProjectionManager* p = new TEveProjectionManager; proj = p;
  gEve->AddToListTree(p, kTRUE);
  gEve->AddElement(proj, ns);

  // geometry
  TEveGeoShape* gg = geom_gentle();
  geom = gg;

  // event
  gAliEveEvent->AddNewEventCommand("on_new_event();");
  gAliEveEvent->GotoEvent(0);

  gEve->Redraw3D(kTRUE);
}

/**************************************************************************/

void on_new_event()
{
  try {
    //TEvePointSet* itsc = its_clusters();
    //itsc->SetMarkerColor(5);

    TEvePointSet* tpcc = tpc_clusters();
    tpcc->SetMarkerColor(4);
  }
  catch(TEveException& exc) {
    printf("Exception loading ITS/TPC clusters: %s\n", exc.Data());
  }

  TEveTrackList* cont = esd_tracks();
  cont->SetLineWidth((Width_t)2);

  TEveElement* top = gEve->GetCurrentEvent();
  proj->DestroyElements();
  //AliESDEvent* esd = AliEveEventManager::AssertESD();

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