1 | void mergeFiles(TString TheTreeName = "T") { |
---|
2 | |
---|
3 | TChain *tdn = new TChain(TheTreeName); |
---|
4 | |
---|
5 | TString fSingT[63]; |
---|
6 | TString fAllWj[63]; |
---|
7 | TString fAllZj[63]; |
---|
8 | |
---|
9 | TString vers = "v1"; |
---|
10 | TString fRes[63]; |
---|
11 | |
---|
12 | ifstream ftxt("listMCResFiles"+vers+".txt"); |
---|
13 | for (int i = 0; i < 63; i++){ |
---|
14 | ftxt >> fRes[i]; |
---|
15 | } |
---|
16 | ftxt.close(); |
---|
17 | |
---|
18 | for (int i = 0; i < 63; i++){ |
---|
19 | cout << fRes[i] << endl; |
---|
20 | } |
---|
21 | |
---|
22 | //sum all the loose histos |
---|
23 | TH1F *hlooseTot = new TH1F("hlooseTot", "", 202, -2, 200); |
---|
24 | double binV[202]; |
---|
25 | for (int i = 0; i < 202; i++){ |
---|
26 | binV[i] = 0; |
---|
27 | } |
---|
28 | |
---|
29 | // m_njets = new TH1F("njets", "njets", 29, 1, 30); |
---|
30 | // fOutput->Add(m_njets); |
---|
31 | |
---|
32 | // m_njetsE = new TH1F("njetsE", "njetsE", 29, 1, 30); |
---|
33 | // fOutput->Add(m_njetsE); |
---|
34 | |
---|
35 | // m_njetsM = new TH1F("njetsM", "njetsM", 29, 1, 30); |
---|
36 | // fOutput->Add(m_njetsM); |
---|
37 | |
---|
38 | |
---|
39 | //sum all the njets histos |
---|
40 | TH1F *hnjet = new TH1F("Njet", "", 29, 1, 30); |
---|
41 | TH1F *hnjetE = new TH1F("NjetE", "", 29, 1, 30); |
---|
42 | TH1F *hnjetM = new TH1F("NjetM", "", 29, 1, 30); |
---|
43 | double njet[29], njetE[29], njetM[29]; |
---|
44 | for (int i = 0; i < 29; i++){ |
---|
45 | njet[i] = 0; |
---|
46 | njetE[i] = 0; |
---|
47 | njetM[i] = 0; |
---|
48 | } |
---|
49 | |
---|
50 | TChain *tdW = new TChain(TheTreeName); |
---|
51 | for (int ifi = 0; ifi < 63; ifi++){ |
---|
52 | std::cout << "Copying file " << fRes[ifi] << std::endl; |
---|
53 | TFile *f = TFile::Open(fRes[ifi]); |
---|
54 | TTree *t = (TTree*)f->Get("T"); |
---|
55 | cout << "Entries Number of " << fRes[ifi] << " = " << t->GetEntries() << endl; |
---|
56 | tdW->Add(fRes[ifi]); |
---|
57 | |
---|
58 | TH1F *hloose = (TH1F*)f->Get("loose"); |
---|
59 | for (int ib = 1; ib < 203; ib++){ |
---|
60 | double bb = hloose->GetBinContent(ib); |
---|
61 | binV[ib-1] += bb; |
---|
62 | } |
---|
63 | TH1F *nj = (TH1F*)f->Get("njets"); |
---|
64 | TH1F *njE = (TH1F*)f->Get("njetsE"); |
---|
65 | TH1F *njM = (TH1F*)f->Get("njetsM"); |
---|
66 | for (int ib = 1; ib < 30; ib++){ |
---|
67 | double bb = nj->GetBinContent(ib); |
---|
68 | double bbE = njE->GetBinContent(ib); |
---|
69 | double bbM = njM->GetBinContent(ib); |
---|
70 | njet[ib-1] += bb; |
---|
71 | njetE[ib-1] += bbE; |
---|
72 | njetM[ib-1] += bbM; |
---|
73 | } |
---|
74 | } |
---|
75 | |
---|
76 | for (int i = 0; i < 202; i++){ |
---|
77 | hlooseTot->SetBinContent(i+1,binV[i]); |
---|
78 | } |
---|
79 | for (int i = 0; i < 29; i++){ |
---|
80 | hnjet->SetBinContent(i+1,njet[i]); |
---|
81 | hnjetE->SetBinContent(i+1,njetE[i]); |
---|
82 | hnjetM->SetBinContent(i+1,njetM[i]); |
---|
83 | } |
---|
84 | |
---|
85 | TFile *fn = new TFile("resAllMCFiles"+vers+".root","RECREATE"); |
---|
86 | // TTree *tW = tdW->CloneTree(0); |
---|
87 | // tW->SetName("T"); |
---|
88 | // tW->SetAutoSave(); |
---|
89 | // gROOT->cd(); |
---|
90 | |
---|
91 | int nCount = 0; |
---|
92 | |
---|
93 | // for (int iev = 0; iev < tdW->GetEntries(); iev++) { |
---|
94 | // nCount ++; |
---|
95 | // if (iev%1000 == 0) std::cout << "Reading event " << iev << std::endl; |
---|
96 | // tdW->GetEntry(iev); |
---|
97 | // tW->Fill(); |
---|
98 | // } |
---|
99 | fn->cd(); |
---|
100 | //tW->Write("",TObject::kOverwrite); |
---|
101 | hlooseTot->Write(); |
---|
102 | hnjet->Write(); |
---|
103 | hnjetE->Write(); |
---|
104 | hnjetM->Write(); |
---|
105 | fn->Close(); |
---|
106 | |
---|
107 | cout << "nCount = " << nCount << endl; |
---|
108 | |
---|
109 | } |
---|