* AliEveTrack
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Nov 2009 14:13:09 +0000 (14:13 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 9 Nov 2009 14:13:09 +0000 (14:13 +0000)
  Rename ImportClusters() to ImportClustersFromLabel().

* AliEveTrackCounter
  Also save all three primary vertices.

* make_scan_results.C
  Processes also primary vertices.
  Delete objects read from file.

* MultiView.C
  Add function SetDepth() that sets current-depth of both projection
  managers.

* visscan_init.C
  Set projection z-depth to -10 before importing geometry, then set it
  back to 0.

* clusters_from_index.C
  Project clusters if gMultiView is defined.
  Increase marker size to 2cm.
  Remove solaris cint hack.

EVE/EveBase/AliEveTrack.cxx
EVE/EveBase/AliEveTrack.h
EVE/EveBase/AliEveTrackCounter.cxx
EVE/alice-macros/clusters_from_index.C
EVE/macros/MultiView.C
EVE/macros/make_scan_results.C
EVE/macros/visscan_init.C

index 0825541..93d65ee 100644 (file)
@@ -119,7 +119,7 @@ void AliEveTrack::ImportHits()
 }
 
 //______________________________________________________________________________
-void AliEveTrack::ImportClusters()
+void AliEveTrack::ImportClustersFromLabel()
 {
   // Import clusters with same label as the track.
   // Uses macro "clusters_from_label.C".
index bfc3178..fb6cdc6 100644 (file)
@@ -31,10 +31,11 @@ public:
   AliEveTrack(const AliEveTrack& t);
   virtual ~AliEveTrack();
 
-  virtual void ImportHits();      // *MENU*
-  virtual void ImportClusters();  // *MENU*
-
+  void ImportHits();      // *MENU*
+  
+  void ImportClustersFromLabel(); // *MENU*
   void ImportClustersFromIndex(); // *MENU*
+
   void ImportKine();              // *MENU*
   void ImportKineWithArgs(Bool_t importMother=kTRUE, Bool_t impDaugters=kTRUE,
                          Bool_t colorPdg    =kTRUE, Bool_t recurse    =kTRUE); // *MENU*
index d4a8e52..22be937 100644 (file)
@@ -316,6 +316,10 @@ void AliEveTrackCounter::OutputEventTracks()
     trk->Write(TString::Format("Tracks_%04d",    fEventId), kWriteDelete | kSingleKey);
     mul->Write(TString::Format("Tracklets_%04d", fEventId), kWriteDelete);
 
+    esd->GetPrimaryVertexTracks()->Write(TString::Format("PrimVertTracks_%04d", fEventId), kWriteDelete);
+    esd->GetPrimaryVertexTPC()   ->Write(TString::Format("PrimVertTPC_%04d",    fEventId), kWriteDelete);
+    esd->GetPrimaryVertexSPD()   ->Write(TString::Format("PrimVertSPD_%04d",    fEventId), kWriteDelete);
+
     f->Close();
   }
 }
index cdd4ab6..ddeec82 100644 (file)
@@ -48,21 +48,20 @@ TEvePointSet* clusters_from_index(Int_t index=0, TEveElement* cont=0)
   }
 
   clusters->SetMarkerStyle(2);
-  clusters->SetMarkerSize(0.5);
+  clusters->SetMarkerSize(2);
   clusters->SetMarkerColor(4);
 
-  //PH The line below is replaced waiting for a fix in Root
-  //PH which permits to use variable siza arguments in CINT
-  //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
-  //PH  clusters->SetName(Form("Clusters idx=%d", index));
-  char form[1000];
-  sprintf(form,"Clusters idx=%d", index);
-  clusters->SetName(form);
+  clusters->SetName(Form("Clusters idx=%d", index));
+  clusters->SetTitle(Form("N=%d", clusters->Size()));
 
-  char tip[1000];
-  sprintf(tip,"N=%d", clusters->Size());
-  clusters->SetTitle(tip);
   gEve->AddElement(clusters);
+
+  if (gMultiView)
+  {
+    gMultiView->ImportEventRPhi(clusters);
+    gMultiView->ImportEventRhoZ(clusters);
+  }
+
   gEve->Redraw3D();
 
   return clusters;
index 5e6b161..d8cc166 100644 (file)
@@ -136,13 +136,8 @@ public:
       fGeomGentleRPhi = grphi; fGeomGentleRPhi->IncDenyDestroy();
       fGeomGentleRhoZ = grhoz; fGeomGentleRhoZ->IncDenyDestroy();
 
-      fRPhiMgr->SetCurrentDepth(-10);
       ImportGeomRPhi(fGeomGentleRPhi);
-      fRPhiMgr->SetCurrentDepth(0);
-
-      fRhoZMgr->SetCurrentDepth(-10);
       ImportGeomRhoZ(fGeomGentleRhoZ);
-      fRhoZMgr->SetCurrentDepth(0);
    }
 
    void InitGeomGentleTrd(TEveGeoShape* gtrd)
@@ -161,6 +156,14 @@ public:
 
    //-------------------------------------------------------------------------
 
+   void SetDepth(Float_t d)
+   {
+      fRPhiMgr->SetCurrentDepth(d);
+      fRhoZMgr->SetCurrentDepth(d);
+   }
+
+   //-------------------------------------------------------------------------
+
    void ImportGeomRPhi(TEveElement* el)
    { 
       fRPhiMgr->ImportElements(el, fRPhiGeomScene);
index a5b4ba1..26be1bf 100644 (file)
@@ -5,6 +5,19 @@
 //
 // This allows to check all possible combinations.
 
+struct XXX
+{
+  const char   *bname;
+  const char   *oname;
+  TBranch      *branch;
+  AliESDVertex *vert;
+};
+
+XXX vvv[3] = {
+  { "VT",   "PrimVertTracks" },
+  { "VTPC", "PrimVertTPC" },
+  { "VSPD", "PrimVertSPD" }
+};
 
 void make_scan_results()
 {
@@ -14,34 +27,50 @@ void make_scan_results()
 
   T = new TTree("SR", "Scanning results");
 
-  TClonesArray* clones = new TClonesArray("AliESDtrack", 32);
-  TBranch * tb = T->Branch("T", &clones);
+  TClonesArray* ts = new TClonesArray("AliESDtrack", 32);
+  TBranch * tb = T->Branch("T", &ts);
+  delete ts;
 
-  AliMultiplicity *mult = 0;
-  TBranch *mb = T->Branch("M", &mult);
+  AliMultiplicity *ms = 0;
+  TBranch *mb = T->Branch("M", &ms);
 
+  for (Int_t v = 0; v < 3; ++v)
+  {
+    vvv[v].vert   = 0;
+    vvv[v].branch = T->Branch(vvv[v].bname, &vvv[v].vert);
+  }
 
   for (Int_t i=0; i<=9999; ++i)
   {
     TString name;
 
     name.Form("Tracks_%04d", i);
-    TClonesArray* ts = (TClonesArray*) f->Get(name);
+    ts = (TClonesArray*) f->Get(name);
+    if (ts == 0)
+      continue;
 
     name.Form("Tracklets_%04d", i);
-    AliMultiplicity* ms =  (AliMultiplicity*) f->Get(name);
+    ms = (AliMultiplicity*) f->Get(name);
+    if (ms == 0)
+      Error("make_scan_results", "'%s' not found.", name.Data());
 
-    if (ts && ms)
-    {
-      tb->SetAddress(&ts);
-      mb->SetAddress(&ms);
-      T->Fill();
-    }
-    else if ((ts && !ms) || (!ts && ms))
+    tb->SetAddress(&ts);
+    mb->SetAddress(&ms);
+
+    for (Int_t v = 0; v < 3; ++v)
     {
-      Error("make_scan_results", "Only one of tracks/tracklets exists for index %d.", i);
+      name.Form("%s_%04d", vvv[v].oname, i);
+      vvv[v].vert = (AliESDVertex*) f->Get(name);
+      if (vvv[v].vert == 0)
+        Error("make_scan_results", "'%s' not found.", name.Data());
+      vvv[v].branch->SetAddress(&vvv[v].vert);
     }
 
+    T->Fill();
+
+    delete ts;
+    delete ms;
+    for (Int_t v = 0; v < 3; ++v) delete vvv[v].vert;
   }
 
   T->Write();
index ec7655b..cdd74eb 100644 (file)
@@ -61,6 +61,8 @@ void visscan_init(const TString& cdburi = "",
 
   gMultiView = new MultiView;
 
+  gMultiView->SetDepth(-10);
+
   TEveUtil::LoadMacro("geom_gentle.C");
   gMultiView->InitGeomGentle(geom_gentle(),
                              geom_gentle_rphi(), 
@@ -76,6 +78,7 @@ void visscan_init(const TString& cdburi = "",
     gMultiView->InitGeomGentleMuon(geom_gentle_muon(kFALSE), gShowMuonRPhi, gShowMuonRhoZ);
   }
 
+  gMultiView->SetDepth(0);
 
   //==============================================================================
   // Registration of per-event macros