source: huonglan/NEWRELEASE/MERGEFILES/mergeFiles.C @ 11

Last change on this file since 11 was 11, checked in by huonglan, 13 years ago

first sPlot version

File size: 2.7 KB
Line 
1void 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}
Note: See TracBrowser for help on using the repository browser.