Use ESD objects from a tree (T.Kuhr)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 May 2004 12:13:19 +0000 (12:13 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 May 2004 12:13:19 +0000 (12:13 +0000)
ITS/AliCascadeComparison.C
ITS/AliITSComparisonV2.C
ITS/AliITSFindTracksANN.C
ITS/AliV0Comparison.C
PMD/AliPMDesdanal.C
STEER/AliESDComparison.C
STEER/AliESDanalysis.C
STEER/AliESDv0Analysis.C
STEER/CheckESD.C
TOF/AliTOFComparison.C
TPC/AliTPCComparison.C

index 11ee6dd..31a3085 100644 (file)
@@ -19,7 +19,7 @@
   #include <TText.h>
   #include <TBenchmark.h>
   #include <TStyle.h>
-  #include <TKey.h>
+  #include <TFile.h>
   #include <TROOT.h>
 
   #include "AliStack.h"
@@ -190,18 +190,20 @@ Int_t AliCascadeComparison(Int_t code=3312, const Char_t *dir=".") {
          return 5;
       }
    }
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
-
+   AliESD* event = new AliESD;
+   TTree* esdTree = (TTree*) ef->Get("esdTree");
+   if (!esdTree) {
+      ::Error("AliCascadeComparison.C", "no ESD tree found");
+      return 6;
+   }
+   esdTree->SetBranchAddress("ESD", &event);
 
 
    //******* Loop over events *********
    Int_t e=0;
-   while ((key=(TKey*)next())!=0) {
+   while (esdTree->GetEvent(e)) {
       cout<<endl<<endl<<"********* Processing event number: "<<e<<"*******\n";
  
-      AliESD *event=(AliESD*)key->ReadObj();
-
       Int_t nentr=event->GetNumberOfCascades();
       allfound+=nentr;
 
@@ -315,10 +317,10 @@ Int_t AliCascadeComparison(Int_t code=3312, const Char_t *dir=".") {
       brefs->Clear();
       prefs->Clear();
       nrefs->Clear();
-      delete event;
 
    } //**** End of the loop over events
 
+   delete event;
    ef->Close();
 
    delete csTree;
index b86d419..39021d4 100644 (file)
@@ -21,7 +21,7 @@
   #include <TText.h>
   #include <TBenchmark.h>
   #include <TStyle.h>
-  #include <TKey.h>
+  #include <TFile.h>
   #include <TROOT.h>
 
   #include "AliStack.h"
@@ -145,18 +145,20 @@ Int_t AliITSComparisonV2
          return 4;
       }
    }
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
-
+   AliESD* event = new AliESD;
+   TTree* esdTree = (TTree*) ef->Get("esdTree");
+   if (!esdTree) {
+      ::Error("AliITSComparison.C", "no ESD tree found");
+      return 6;
+   }
+   esdTree->SetBranchAddress("ESD", &event);
 
 
    //******* Loop over events *********
    Int_t e=0;
-   while ((key=(TKey*)next())!=0) {
+   while (esdTree->GetEvent(e)) {
      cout<<endl<<endl<<"********* Processing event number: "<<e<<"*******\n";
  
-     AliESD *event=(AliESD*)key->ReadObj();
-
      Float_t field=event->GetMagneticField();
      AliKalmanTrack::SetConvConst(1000/0.299792458/field);
  
@@ -281,9 +283,9 @@ Int_t AliITSComparisonV2
      cout<<"Number of \"good\" tracks : "<<ngood<<endl;
 
      refs->Clear();
-     delete event;
    } //***** End of the loop over events
 
+   delete event;
    ef->Close();
    
    delete itsTree;
index ad88f8d..038244c 100644 (file)
@@ -1,6 +1,7 @@
 #if !defined(__CINT__) || defined(__MAKECINT__)
   #include "Riostream.h"
-  #include "TKey.h"
+  #include "TFile.h"
+  #include "TTree.h"
   #include "TStopwatch.h"
 
   #include "AliRun.h"
@@ -10,7 +11,7 @@
   #include "AliITSLoader.h"
   #include "AliITS.h"
   #include "AliITSgeom.h"
-  #include "AliITStrackerV2.h"
+  #include "AliITStrackerANN.h"
   #include "AliESD.h"
 #endif
 
@@ -153,16 +154,19 @@ Int_t AliITSFindTracksANN
                cerr<<"Can't AliESDtpc.root !\n";
                return 1;
        }
+       AliESD* event = new AliESD;
+       TTree* esdTree = (TTree*) tpcf->Get("esdTree");
+       if (!esdTree) {
+         cerr<<"no ESD tree found !\n";
+         return 1;
+       }
+       esdTree->SetBranchAddress("ESD", &event);
        
        // Loop on events
-       TKey *key=0;
-       TIter next(tpcf->GetListOfKeys());
        TStopwatch timer; 
        for (Int_t i = 0; i < nev; i++) {
-               tpcf->cd();
-               if ((key=(TKey*)next())==0) break;
                cerr << "Processing event number: " << i << endl;
-               AliESD *event=(AliESD*)key->ReadObj();
+               esdTree->GetEvent(i);
                
                rl->GetEvent(i);
                
@@ -237,12 +241,12 @@ Int_t AliITSFindTracksANN
                // End of operations: unload clusters
                tracker.UnloadClusters();
                
-               delete event;
        }
        timer.Stop(); 
        timer.Print();
        
        // Close files & delete objects
+       delete event;
        tpcf->Close();
        itsf->Close();
        delete rl;
index d8adee4..392463b 100644 (file)
@@ -19,7 +19,7 @@
   #include <TText.h>
   #include <TBenchmark.h>
   #include <TStyle.h>
-  #include <TKey.h>
+  #include <TFile.h>
   #include <TROOT.h>
 
   #include "AliStack.h"
@@ -164,17 +164,20 @@ Int_t AliV0Comparison(Int_t code=310, const Char_t *dir=".") {
          return 5;
       }
    }
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
+   AliESD* event = new AliESD;
+   TTree* esdTree = (TTree*) ef->Get("esdTree");
+   if (!esdTree) {
+      ::Error("AliV0Comparison.C", "no ESD tree found");
+      return 6;
+   }
+   esdTree->SetBranchAddress("ESD", &event);
 
 
    //******* Loop over events *********
    Int_t e=0;
-   while ((key=(TKey*)next())!=0) { 
+   while (esdTree->GetEvent(e)) {
       cout<<endl<<endl<<"********* Processing event number: "<<e<<"*******\n";
  
-      AliESD *event=(AliESD*)key->ReadObj();
-
       Int_t nentr=event->GetNumberOfV0s();
       allfound+=nentr;
 
@@ -273,10 +276,10 @@ Int_t AliV0Comparison(Int_t code=310, const Char_t *dir=".") {
 
       prefs->Clear();
       nrefs->Clear();
-      delete event;
 
    } //**** End of the loop over events
 
+   delete event;
    ef->Close();
    
    delete v0Tree;
index eee6c8d..2a04026 100644 (file)
@@ -7,7 +7,7 @@
 
 #if !defined( __CINT__) || defined(__MAKECINT__)
   #include <Riostream.h>
-  #include "TKey.h"
+  #include "TTree.h"
   #include "TFile.h"
   #include "TH1F.h"
   #include "TCanvas.h"
@@ -28,17 +28,17 @@ Int_t AliPMDesdanal() {
 //****** File with the ESD
    TFile *ef=TFile::Open("AliESDcheck.root");
    if (!ef || !ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
+   AliESD* event = new AliESD;
+   TTree* tree = (TTree*) ef->Get("esdTree");
+   if (!tree) {cerr<<"no ESD tree found\n"; return 1;};
+   tree->SetBranchAddress("ESD", &event);
 
    Int_t n=0;
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
 
 //******* The loop over events
-   while ((key=(TKey*)next())!=0) {
+   while (tree->GetEvent(n)) {
      cout<<endl<<"Processing event number : "<<n++<<endl;
 
-     AliESD *event=(AliESD*)key->ReadObj();
-
 
      Int_t npmdcl=event->GetNumberOfPmdTracks();
      cout<<"Number of PMD tracks : "<<npmdcl<<endl; 
index 707ae6b..a5202d2 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");
index 4e9f967..53caf23 100644 (file)
@@ -6,7 +6,7 @@
 
 #if !defined( __CINT__) || defined(__MAKECINT__)
   #include <Riostream.h>
-  #include "TKey.h"
+  #include <TTree.h>
   #include "TFile.h"
   #include "TH1F.h"
   #include "TCanvas.h"
@@ -34,17 +34,17 @@ Int_t AliESDanalysis() {
 //****** File with the ESD
    TFile *ef=TFile::Open("AliESDs.root");
    if (!ef || !ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
+   AliESD* event = new AliESD;
+   TTree* tree = (TTree*) ef->Get("esdTree");
+   if (!tree) {cerr<<"no ESD tree found\n"; return 1;};
+   tree->SetBranchAddress("ESD", &event);
 
    Int_t n=0;
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
 
 //******* The loop over events
-   while ((key=(TKey*)next())!=0) {
+   while (tree->GetEvent(n)) {
      cout<<endl<<"Processing event number : "<<n++<<endl;
 
-     AliESD *event=(AliESD*)key->ReadObj();
-
      Int_t ntrk=event->GetNumberOfTracks();
      cout<<"Number of ESD tracks : "<<ntrk<<endl; 
      Int_t nv0=event->GetNumberOfV0s();
@@ -92,6 +92,9 @@ Int_t AliESDanalysis() {
 
    }
 
+   delete event;
+   ef->Close();
+
    timer.Stop(); timer.Print();
 
    TCanvas *c1=new TCanvas("c1","",0,0,600,1200);
index 101dbd8..bf2dd7d 100644 (file)
@@ -8,7 +8,7 @@
 
 #if !defined( __CINT__) || defined(__MAKECINT__)
   #include <Riostream.h>
-  #include "TKey.h"
+  #include <TTree.h>
   #include "TFile.h"
   #include "TH1F.h"
   #include "TH2F.h"
@@ -30,22 +30,22 @@ Int_t AliESDv0Analysis(Int_t nev=1) {
 
    TFile *ef=TFile::Open("AliESDs.root");
    if (!ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
+   AliESD* event = new AliESD;
+   TTree* tree = (TTree*) ef->Get("esdTree");
+   if (!tree) {cerr<<"no ESD tree found\n"; return 1;};
+   tree->SetBranchAddress("ESD", &event);
 
    TStopwatch timer;
    Int_t rc=0,n=0;
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
 
    //****** Tentative particle type "concentrations"
    Double_t c[5]={0.0, 0.0, 0.1, 0.1, 0.1};
 
    //******* The loop over events
-   while ((key=(TKey*)next())!=0) {
+   while (tree->GetEvent(n)) {
 
      cerr<<"Processing event number : "<<n++<<endl;
 
-     AliESD *event=(AliESD*)key->ReadObj();
-
      Int_t nv0=event->GetNumberOfV0s();
      cerr<<"Number of ESD v0s : "<<nv0<<endl; 
 
@@ -74,9 +74,11 @@ Int_t AliESDv0Analysis(Int_t nev=1) {
        Double_t mass=v0->GetEffMass();
        hm->Fill(mass);
      } 
-     delete event;
    }
 
+   delete event;
+   ef->Close();
+
    timer.Stop(); timer.Print();
 
    hm->Draw();
index 6f1ea70..66f1099 100644 (file)
@@ -7,6 +7,7 @@
 #include <TCanvas.h>
 #include <TVector3.h>
 #include <TPDGCode.h>
+#include <TParticle.h>
 
 #include "AliRunLoader.h"
 #include "AliLoader.h"
@@ -155,6 +156,13 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     Error("CheckESD", "opening ESD file %s failed", esdFileName);
     return kFALSE;
   }
+  AliESD* esd = new AliESD;
+  TTree* tree = (TTree*) esdFile->Get("esdTree");
+  if (!tree) {
+    Error("CheckESD", "no ESD tree found");
+    return kFALSE;
+  }
+  tree->SetBranchAddress("ESD", &esd);
 
   // efficienc and resolution histograms
   Int_t nBinsPt = 15;
@@ -291,9 +299,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     }
 
     // get the event summary data
-    char esdName[256]; 
-    sprintf(esdName, "ESD%d", iEvent);
-    AliESD* esd = (AliESD*) esdFile->Get(esdName);
+    tree->GetEvent(iEvent);
     if (!esd) {
       Error("CheckESD", "no ESD object found for event %d", iEvent);
       return kFALSE;
@@ -362,16 +368,12 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
     }
 
     // loop over calo tracks
-    for (Int_t iTrack = 0; iTrack < esd->GetNumberOfCaloTracks(); iTrack++) {
-      AliESDCaloTrack* caloTrack = esd->GetCaloTrack(iTrack);
-      TParticle* recParticle = caloTrack->GetRecParticle();
-      if (recParticle->InheritsFrom("AliPHOSRecParticle")) {
-       hEPHOS->Fill(recParticle->Energy());
-      } else if (recParticle->InheritsFrom("AliEMCALRecParticle")) {
-       hEEMCAL->Fill(recParticle->Energy());
-      } else {
-       Warning("CheckESD", "unknown calo particle");
-       recParticle->Dump();
+    for (Int_t iTrack = 0; iTrack < esd->GetNumberOfTracks(); iTrack++) {
+      AliESDtrack* track = esd->GetTrack(iTrack);
+      if (track->IsPHOS()) {
+       hEPHOS->Fill(track->GetPHOSsignal());
+      } else if (track->IsEMCAL()) {
+       hEEMCAL->Fill(track->GetEMCALsignal());
       }
     }
 
@@ -677,6 +679,7 @@ Bool_t CheckESD(const char* gAliceFileName = "galice.root",
   delete hMassXi;
   delete hMassOmega;
 
+  delete esd;
   esdFile->Close();
   delete esdFile;
 
index 640e851..9a57ded 100644 (file)
@@ -19,7 +19,7 @@
   #include <TText.h>
   #include <TBenchmark.h>
   #include <TStyle.h>
-  #include <TKey.h>
+  #include <TFile.h>
   #include <TROOT.h>
 
   #include "AliStack.h"
@@ -147,17 +147,22 @@ Int_t AliTOFComparison(const Char_t *dir=".") {
       delete rl;
       return 4;
    }
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
+   AliESD* event = new AliESD;
+   TTree* esdTree = (TTree*) ef->Get("esdTree");
+   if (!esdTree) {
+      ::Error("AliTOFComparison.C", "no ESD tree found");
+      return 5;
+   }
+   esdTree->SetBranchAddress("ESD", &event);
 
 
 
    //******* Loop over events *********
    Int_t e=0;
-   while ((key=(TKey*)next())!=0) {
+   while (esdTree->GetEvent(e)) {
      cout<<endl<<endl<<"********* Processing event number: "<<e<<"*******\n";
 
-     rl->GetEvent(e); ef->cd();
+     rl->GetEvent(e);
 
      TTree *digTree=tofl->TreeD();
      if (!digTree) {
@@ -178,7 +183,6 @@ Int_t AliTOFComparison(const Char_t *dir=".") {
 
 
 
-     AliESD *event=(AliESD*)key->ReadObj();
      Int_t ntrk=event->GetNumberOfTracks();
      cerr<<"Number of ESD tracks : "<<ntrk<<endl; 
 
@@ -245,9 +249,9 @@ Int_t AliTOFComparison(const Char_t *dir=".") {
      allgood+=ngood; allmatched+=matched; allmismatched+=mismatched;
 
      refs->Clear();
-     delete event;
    } //***** End of the loop over events
 
+   delete event;
    ef->Close();
    
    delete tofTree;
index 41c708c..b37a5fc 100644 (file)
@@ -22,7 +22,7 @@
   #include <TText.h>
   #include <TBenchmark.h>
   #include <TStyle.h>
-  #include <TKey.h>
+  #include <TFile.h>
   #include <TROOT.h>
 
   #include "AliStack.h"
@@ -146,17 +146,20 @@ Int_t AliTPCComparison
          return 5;
       }
    }
-   TKey *key=0;
-   TIter next(ef->GetListOfKeys());
+   AliESD* event = new AliESD;
+   TTree* esdTree = (TTree*) ef->Get("esdTree");
+   if (!esdTree) {
+      ::Error("AliTPCComparison.C", "no ESD tree found");
+      return 6;
+   }
+   esdTree->SetBranchAddress("ESD", &event);
 
 
    //******* Loop over events *********
    Int_t e=0;
-   while ((key=(TKey*)next())!=0) {
+   while (esdTree->GetEvent(e)) {
       cout<<endl<<endl<<"********* Processing event number: "<<e<<"*******\n";
 
-      AliESD *event=(AliESD*)key->ReadObj();
-
       Int_t nentr=event->GetNumberOfTracks();
       allfound+=nentr;
 
@@ -271,9 +274,9 @@ Int_t AliTPCComparison
       cout<<"Number of \"good\" tracks ="<<ngood<<endl;
 
       refs->Clear();
-      delete event;
   }// ***** End of the loop over events
 
+   delete event;
    ef->Close();
 
    delete tpcTree;