44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
|
#include <TFile.h>
|
||
|
#include <TTree.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
int main(int argc, char* argv[]) {
|
||
|
double e[24];
|
||
|
int id[24], N[1];
|
||
|
int sum1, sum2;
|
||
|
if (argc != 2) {
|
||
|
printf("usage: ./xxx <input root file>\n");
|
||
|
return 0;
|
||
|
}
|
||
|
TFile f(argv[1]);
|
||
|
if (f.IsZombie()) {
|
||
|
printf("cannot open root file\n");
|
||
|
return 0;
|
||
|
}
|
||
|
TTree* t = (TTree*)f.Get("SimData1");
|
||
|
if (!t) {
|
||
|
printf("cannot find tree!\n");
|
||
|
return 0;
|
||
|
}
|
||
|
t->SetBranchAddress("detE", e);
|
||
|
t->SetBranchAddress("detId", id);
|
||
|
t->SetBranchAddress("Ndets", N);
|
||
|
int n = t->GetEntries();
|
||
|
// printf("n=%d\n", n);
|
||
|
int i, j;
|
||
|
sum1 = sum2 = 0;
|
||
|
for (i = 0; i < n; i++) {
|
||
|
t->GetEntry(i);
|
||
|
for (j = 0; j < N[0]; j++) {
|
||
|
if (e[j] > 0.18 && id[j] < 12) {
|
||
|
sum1++;
|
||
|
}
|
||
|
if (e[j] > 0.18 && id[j] > 11) {
|
||
|
sum2++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
printf(" %s,%d,%d,%d,%f\n", argv[1], sum1 + sum2, sum1, sum2, 1.0 * sum1 / sum2);
|
||
|
return 0;
|
||
|
}
|