]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/macros/make_scan_results.C
Adding muon related macros in EVE in documentation
[u/mrichter/AliRoot.git] / EVE / macros / make_scan_results.C
index a5b4ba14f810624b1d2b7796107e3012768c9ada..26be1bf53704c1b345dfd0b22a716c99a29abfd1 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();