]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDComparison.C
Use ESD objects from a tree (T.Kuhr)
[u/mrichter/AliRoot.git] / STEER / AliESDComparison.C
index 707ae6be6f0232b4d52799057c8fe7c25194b115..a5202d2debb335bbbb779aeff5959cdbaa24c5af 100644 (file)
@@ -13,7 +13,8 @@
   #include <TParticle.h>
   #include <TCanvas.h>
   #include <TBenchmark.h>
-  #include <TKey.h>
+  #include <TFile.h>
+  #include <TTree.h>
   #include <TROOT.h>
 
   #include <AliStack.h>
@@ -116,23 +117,27 @@ Int_t AliESDComparison(const Char_t *dir=".") {
       delete rl;
       return 1;
    }
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
+   AliESD* event = new AliESD;
+   TTree* tree = (TTree*) ef->Get("esdTree");
+   if (!tree) {
+      ::Error("AliESDComparison.C", "no ESD tree found");
+      delete rl;
+      return 1;
+   }
+   tree->SetBranchAddress("ESD", &event);
 
    //****** Tentative particle type "concentrations"
    Double_t c[5]={0.01, 0.01, 0.85, 0.10, 0.05};
 
    //******* The loop over events
    Int_t e=0;
-   while ((key=(TKey*)next())!=0) {
+   while (tree->GetEvent(e)) {
       cout<<endl<<endl<<"********* Processing event number: "<<e<<"*******\n";
 
-      rl->GetEvent(e); ef->cd();
+      rl->GetEvent(e);
  
       e++;
 
-      AliESD *event=(AliESD*)key->ReadObj();
-
       Int_t ntrk=event->GetNumberOfTracks();
       cerr<<"Number of ESD tracks : "<<ntrk<<endl; 
 
@@ -192,7 +197,6 @@ Int_t AliESDComparison(const Char_t *dir=".") {
            }
        }
       }
-      delete event;
       cout<<"Number of selected ESD tracks : "<<nsel<<endl;
       cout<<"Number of selected pion ESD tracks : "<<pisel<<endl;
       cout<<"Number of selected kaon ESD tracks : "<<kasel<<endl;
@@ -202,6 +206,7 @@ Int_t AliESDComparison(const Char_t *dir=".") {
 
    } // ***** End of the loop over events
 
+   delete event;
    ef->Close();
 
    TCanvas *c1=(TCanvas*)gROOT->FindObject("c1");