49 #include "TObjArray.h" 50 #include "TObjString.h" 68 Int_t entries =
aReport.GetEntries();
69 Int_t* indexes =
new Int_t[entries];
70 if (zipSort) TMath::Sort(entries,
zipSize.GetArray(),indexes,kTRUE);
72 TMath::Sort(entries,
totSize.GetArray(),indexes,kTRUE);
74 Float_t zipBytes =
zipSize[indexes[0]];
75 Float_t totBytes =
totSize[indexes[0]];
76 Float_t ratioT = 100.*zipBytes/totBytes;
77 for (Int_t i=entries-1; i>=0; i--){
78 Int_t ib = indexes[i];
79 Float_t ratio0= 100.*
totSize[ib]/totBytes;
80 Float_t ratio1= 100.*
zipSize[ib]/zipBytes;
82 printf(
"\n------------------------------------------------------------\n");
83 printf(
"%d \t\t%5.f(%.2f\%) \t\t%5.f(%.2f\%) \t%.2f \t%s\n",i,
86 printf(
"%d \t\t%5.f(%.2f\%) \t\t%5.f(%.2f\%) \t%.2f \t%s\n",i,
99 sprintf(fullname,
"%s.%s",prefix,name);
100 aReport.AddLast(
new TObjString(fullname));
101 Int_t entry =
aReport.GetEntries();
107 totSize[entry-1]=Float_t(size[0]);
108 zipSize[entry-1]=Float_t(size[1]);
116 void MakeStat(
const char *
prefix, TBranch * branch, Float_t* size, Float_t mratio);
126 Float_t size[2]={0,0};
128 Float_t mratio=tree->GetZipBytes()/float(tree->GetTotBytes());
129 for (Int_t i=0; i<array->GetEntries(); i++){
130 MakeStat(prefix,(TBranch*)array->At(i),size, mratio);
132 Float_t ratio= (size[0]>0) ? size[1]/Float_t(size[0]): 0;
140 void MakeStat(
const char *
prefix, TBranch * branch, Float_t *size, Float_t mratio){
145 Float_t bsizeSum[2]={0,0};
147 if (!array || array->GetEntries()==0){
148 Float_t bsize[2] = {0,0};
149 bsize[0]=branch->GetTotalSize();
150 bsize[1]=branch->GetZipBytes();
152 Float_t ratio= (bsize[0]>0) ? bsize[1]/Float_t(bsize[0]): 0;
154 AddToReport(prefix, branch->GetName(),bsize,ratio);
159 Float_t ratio= mratio;
161 AddToReport(prefix, branch->GetName(),bsize,ratio);
164 size[1]+=TMath::Nint(bsize[0]*mratio);
169 for (Int_t i=0; i<array->GetEntries(); i++){
170 Float_t bsize[2] = {0,0};
172 str+= branch->GetName();
173 MakeStat(str.Data(),(TBranch*)array->At(i), bsize, mratio);
174 bsizeSum[0]+=bsize[0];
175 bsizeSum[1]+=bsize[1];
179 Float_t ratio= (size[0]>0) ? size[1]/Float_t(size[0]): 0;
181 AddToReport(prefix,branch->GetName(),bsizeSum,ratio);
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
void AddToReport(const char *prefix, const char *name, Float_t size[2], Float_t ratio)
void PrintSorted(Bool_t zipSort)
void MakeStat(TTree *tree, Bool_t zipSort)