]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/TPCcalib/tpcSelectorTracks.C
Updated Publisher Mrian)
[u/mrichter/AliRoot.git] / TPC / TPCcalib / tpcSelectorTracks.C
1 /*
2
3  /
4
5   STANDALONE - no PROOF
6   .x ~/rootlogon.C
7   .L $ALICE_ROOT/TPC/TPCcalib/AliTPCcalibTracks.cxx+
8   .L $ALICE_ROOT/TPC/TPCcalib/AliTPCSelectorTracks.cxx+
9   .L $ALICE_ROOT/TPC/TPCcalib/tpcSelectorTracks.C+
10   gMaxFiles = 50;
11   //  TChain * chain = makeChain("list.list", kTRUE,kFALSE, kTRUE);
12   TChain * chain = makeChain("listTr.list", kTRUE,kTRUE, kFALSE);
13   chain->SetBranchStatus("*",1);
14   chain->Process("$ALICE_ROOT/TPC/TPCcalib/AliTPCSelectorTracks.cxx+"); 
15
16  
17   
18 */
19
20
21 #include <fstream>
22 #include <TSystem.h>
23 #include <TStyle.h>
24 #include <TFile.h>
25 #include <TTree.h>
26 #include <TChain.h>
27 #include <TDSet.h>
28 #include <TVectorF.h>
29 #include <TLinearFitter.h>
30 #include "AliESD.h"
31
32
33
34
35 char  *prefix = "root://lxfs35.gsi.de:1094//alice/testtpc/rec0606";
36
37
38 Int_t gMaxFiles  =10000;
39 TChain * gChain = 0;
40 void MakeSet( char * ifile, TChain *cESDTree=0, TChain *cESDFriend=0, Bool_t check=kTRUE);
41 void MakeSetZip( char * ifile, TChain *cESDTree=0, TChain *cESDFriend=0, Bool_t check=kTRUE);
42
43
44
45 TChain * makeChain(char * input, Bool_t check, Bool_t bFriend=kFALSE, Bool_t bZip = kTRUE ){
46   //
47   //
48   //
49   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
50   gSystem->AddIncludePath("-I$ALICE_ROOT/TPC");
51   
52   TChain *cESDTree = new TChain("esdTree");
53   TChain *cESDFriend = 0;
54   if (bFriend) cESDFriend = new TChain("esdFriendTree");
55   if (bFriend) {
56     MakeSet(input,cESDTree,cESDFriend, check);
57   }else{
58     if (bZip){
59       MakeSetZip(input,cESDTree,cESDFriend, check);
60     }
61     else{
62       MakeSet(input,cESDTree,cESDFriend, check);
63     }
64   }
65   if (bFriend) cESDTree->AddFriend(cESDFriend,"kokot");  
66   cESDTree->Lookup();
67   gChain=cESDTree;
68   return cESDTree;
69 }
70
71
72 void MakeSet( char * ifile, TChain *cESDTree, TChain *cESDFriend, Bool_t check){
73   //
74   //
75   // 
76   char dir[100];
77   char esdFile[100];
78   char friendFile[100];
79   ifstream in(ifile);
80   Int_t count =0;
81   while (!in.eof()) {
82    if (in.eof()) break;
83    in >> dir;
84    if (in.eof()) break;
85    sprintf(esdFile,"%s/%s/AliESDs.root",prefix,gSystem->DirName(Form("%s/",dir)));
86    sprintf(friendFile,"%s/%s/AliESDfriends.root",prefix,gSystem->DirName(Form("%s/",dir)));
87    //
88    // check file
89    if (check){
90      Int_t entries0=0;
91      Int_t entries1=0;
92      TFile * fESD = TFile::Open(esdFile);
93      if (!fESD) continue;
94      TTree * treeESD = (TTree*)fESD->Get("esdTree");
95      if (!treeESD) {delete fESD; continue;}
96      else{
97        entries0 = treeESD->GetEntries();
98      }
99      delete fESD;     
100      TFile * fFriend = TFile::Open(friendFile);
101      if (!fFriend) continue;
102      //
103      if (cESDFriend){
104        TTree * tFriend = (TTree*)fFriend->Get("esdFriendTree");
105        if (!tFriend) { delete tFriend; continue;}
106        
107        else{
108          entries1 = tFriend->GetEntries();
109        }
110        delete fFriend;
111        if (entries0!=entries1) continue;
112        if (entries0==0) continue;
113      }
114    }
115    //
116    //  
117    if ( cESDTree)   cESDTree->Add(esdFile);
118    if (cESDFriend)   cESDFriend->Add(friendFile);
119    printf ("%s\n",dir);
120    count++;
121    if (count>gMaxFiles) break;
122  }
123 }
124
125
126 void MakeSetZip( char * ifile, TChain *cESDTree, TChain */*cESDFriend*/, Bool_t check){
127   //
128   //
129   // 
130   char dir[500];
131   char esdFile[500];
132   char friendFile[500];
133   ifstream in(ifile);
134   Int_t count=0;
135   while (!in.eof()) {
136    if (in.eof()) break;
137    in >> dir;
138    if (in.eof()) break;
139    sprintf(esdFile,"%s/root_archive.zip#AliESDs.root",dir);
140    sprintf(friendFile,"%s/root_archive.zip#AliESDfriends.root",dir);
141    printf("%s\n", esdFile);
142    //
143    // check file
144    if (check){
145      Int_t entries0=0;
146      //     Int_t entries1=0;
147      TFile * fESD = TFile::Open(esdFile);
148      if (!fESD) continue;
149      TTree * treeESD = (TTree*)fESD->Get("esdTree");
150      if (!treeESD) {delete fESD; continue;}
151      else{
152        entries0 = treeESD->GetEntries();
153      }
154      delete fESD;     
155      //TFile * fFriend = TFile::Open(friendFile);
156      //if (!fFriend) continue;
157    }
158    //
159    //  
160    if ( cESDTree)   cESDTree->Add(esdFile);
161    count++;
162    if (count>gMaxFiles) break;
163  }
164 }
165
166
167