o change logic in TPC: don't do calculation only in case of kDetNoPid -> was before...
[u/mrichter/AliRoot.git] / STEER / AliESD2Tree.C
CommitLineData
e3690992 1/***************************************************************************
2 * This macros collects into a common Tree sets of ESD objects
3 * saved individually in separate files given by "fnames".
4 * Example:
5 * root [0] .L $ALICE_ROOT/STEER/AliESD2Tree.C
6 * root [1] char * names[] = {"rfio:///castor/cern.ch/user/a/aliprod/AliEn-1.0/data/00001/00205.1077678127","rfio:///castor/cern.ch/user/a/aliprod/AliEn-1.0/data/00001/00467.1077678996"}
7 * root [2] AliESD2Tree(names,2)
8 *
9 **************************************************************************/
10
11#if !defined(__CINT__) || defined(__MAKECINT__)
12 #include <TError.h>
13 #include <Riostream.h>
14 #include <TFile.h>
15 #include <TTree.h>
16 #include <TKey.h>
17
18 #include "AliESD.h"
19#endif
20
21static const Char_t *names[]={"AliESDs.root"};
22static Int_t n=sizeof(names)/sizeof(Char_t *);
23
24Int_t AliESD2Tree(const Char_t *fnames[]=names, Int_t nf=n) {
25 TFile out("AliESDtree.root","recreate");
26
27 TTree *esdTree=new TTree("esdTree","Tree with ESD objects");
28 AliESD *event=0;
29 esdTree->Branch("ESD","AliESD",&event);
30
31 for (Int_t i=0; i<nf; i++) {
32 TFile * in = TFile::Open(fnames[i]);
33 if (!in->IsOpen()) {
34 ::Error("AliESD2Tree.C","Can't open file %s",fnames[i]);
35 continue;
36 }
37 TKey *key=0;
38 TIter next(in->GetListOfKeys());
39 while ((key=(TKey*)next())!=0) {
40 event=(AliESD*)key->ReadObj();
41 esdTree->Fill();
42 delete event;
43 }
44 in->Close();
45 }
46
47 out.cd();
48 esdTree->Write();
49 delete esdTree;
50
51 return 0;
52}