3 {
4 int rBin,phiBin,zBin;
8 float efficiency0,
x[400],y[400];
9 TTree *
t =
new TTree(
"effTree",
"colEff");
10
11 float t1;
12 TH1F* h1 = new TH1F("h1","time distr.(ns)",400,0,20);
14
15 t->Branch(
"rBin", &rBin,
"rBin/I");
16 t->Branch(
"phiBin", &phiBin,
"phiBin/I");
17 t->Branch(
"zBin", &zBin,
"zBin/I");
18 t->Branch(
"efficiency0", &efficiency0,
"efficiency0/F");
19 t->Branch(
"x", x,
"x[400]/F");
20 t->Branch(
"y", y,
"y[400]/F");
21
22 for (Int_t i = 0; i <
nR; i++){
23 rBin = i;
24 for(Int_t j = 0; j<
nPhi;j++){
25 phiBin = j;
26 for(Int_t k=0;k<
nZ;k++){
27 int rPos = 400+i*10;
28 sprintf(
file,
"/ihepbatch/besd12/liuy/EndcapTof/OpInETof2/results/%d/timeSta_%d_%d_%d.root",rPos,rPos,j,k);
29
30
31
32
33
34
35
36 cout <<
"The file:" <<
file << endl;
37 TFile*
f1 = TFile::Open(
file);
38 TNtuple*
n1 = (TNtuple*)
f1 -> Get(
"timeTuple");
39 n1->SetBranchAddress(
"inTimePre",&t1);
40 int nEntries = (Int_t)
n1->GetEntries();
41 cout << "nEntries:" << nEntries << "\n" << endl;
42
43 for(int m=0;m<nEntries;m++)
44 {
46 h1->Fill(t1);
47 }
48 double norm = h1->Integral();
49 efficiency0 = norm/2000000.;
50
51 if(norm!=0)
52 h1->Scale(1./norm);
53 else
54 {
55 cout << "The eff is null!" << endl;
56 continue;
57 }
58 TAxis* xaxis = h1->GetXaxis();
59 for(int m=0;m<400;m++)
60 {
61 x[m] = xaxis->GetBinCenter(m);
62 y[m] = h1->GetBinContent(m);
63 }
65
66 zBin = k;
68
69 }
70 }
71
72 }
73 TFile *f = new TFile("effTree.root", "recreate");
74 cout << "TTree write" <<endl;
76 f->Close();
77}