#include <Riostream.h>
#include "TClonesArray.h"
#include "TH1F.h"
#include "TCanvas.h"
#include "TString.h"


class MyTest: public TObject{

private:
  TCanvas *cshow;
  TString fHistoName;
  TClonesArray *fContainerTest;

public:
  MyTest();
  ~MyTest();
  void FillContainer();
  void DrawContainer();

  ClassDef(MyTest,0)
};


ClassImp(MyTest)

MyTest::MyTest(){
  fContainerTest = new TClonesArray("TH1F",1000);
}

MyTest::~MyTest(){
  fContainerTest->Delete();
  delete fContainerTest;
}

void MyTest::FillContainer(){

  cout << "Ciao" << endl;
  
  //   // Filling
  for(Int_t nh=0;nh<10;nh++){
    fHistoName.Form("Histogram_%d",nh);
    //    fContainerTest->New(fHistoName,fHistoName,100,-2,2);
    TH1F *his = (TH1F *)fContainerTest->New(nh);
    his->SetName(fHistoName);
    his->SetTitle(fHistoName);
    his->SetBins(100,-2,2);

    ((TH1F *)fContainerTest->At(nh))->FillRandom("gaus",10*(100+nh));
  }
}
  
void MyTest::DrawContainer(){
  // Drawing
  cshow = new TCanvas("ShowCanvas","Show Canvas",10,10,900,700);
  cshow->Divide(5,2);
  for(Int_t nh=0;nh<10;nh++){
    cshow->cd(nh+1);
    ((TH1F *)fContainerTest->At(nh))->Draw();
  }
}



//_________________________________
void TestTClonesArray_Class_Pointer(){
  
  MyTest *cont_test = new MyTest();
  cont_test->FillContainer();
  cont_test->DrawContainer();
}

