Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
testMergeCont.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_io
3 /// \notebook
4 /// Macro demonstrating the merging of containers.
5 /// \macro_code
6 ///
7 /// \author The Root Team
8 
9 TFile *f;
10 
11 
12 TSeqCollection *GetCollection()
13 {
14  TObject *obj;
15 #ifndef ClingWorkAroundMissingDynamicScope
16 # define ClingWorkAroundMissingDynamicScope
17 #endif
18  f = TFile::Open("hsimple.root");
19  if( !f ) {
20 #ifdef ClingWorkAroundMissingDynamicScope
21  f = (TFile*)gROOT->ProcessLine("hsimple(1);");
22 #else
23  f = hsimple(1);
24 #endif
25  }
26  gROOT->cd();
27  TList *l0 = new TList();
28  TList *l01 = new TList();
29  TH1 *hpx = (TH1*)f->Get("hpx");
30  printf("Adding hpx: %d entries\n", (int)hpx->GetEntries());
31  l01->Add(hpx);
32  TH1 *hpxpy = (TH1*)f->Get("hpxpy");
33  l01->Add(hpxpy);
34  TH1 *hprof = (TH1*)f->Get("hprof");
35  l0->Add(hprof);
36  l0->Add(l01);
37  return l0;
38 }
39 
40 void testMergeCont()
41 {
42  TString tutdir = gROOT->GetTutorialDir();
43  gROOT->LoadMacro(tutdir+"/hsimple.C");
44  TList *list1 = (TList *)GetCollection();
45  TList *inputs = new TList();
46  for (Int_t i=0; i<10; i++) {
47  inputs->AddAt(GetCollection(),0);
48  list1->Merge(inputs);
49  inputs->Delete();
50  f->Close();
51  }
52  delete inputs;
53  TH1F *hpx = (TH1F*)(((TList*)list1->At(1))->At(0));
54  printf("============================================\n");
55  printf("Total hpx: %d entries\n", (int)hpx->GetEntries());
56  hpx->Draw();
57  list1->Delete();
58  delete list1;
59 }