// =====================================================================
//  $Id: demo.C,v 1.1 2006/02/15 07:04:51 goiwai Exp $
//  $Name: CLDAQ-1-14-06 $
//  $Log: demo.C,v $
//  Revision 1.1  2006/02/15 07:04:51  goiwai
//  ドキュメント用に最も簡単な例題ソフトウェアDAQプログラムを作りました。
//
// =====================================================================
void demo()
{
  gROOT->Reset();
  gSystem->Load("$CLDAQ_INSTALL/lib/bindings/libCINT.so");
  TInputObjectFile file("demo.drec");

  cv = new TCanvas("cv", "CHANNEL-4 1D-HISTOGRAM");
  ch4 = new TH1D("ch4", "ADC CHANNEL 4", 100, 0, 4096);
  ch4->GetXaxis()->SetTitle("ADC Counts");
  ch4->GetYaxis()->SetTitle("Number of Events");
  ch4->Draw();

  for (int i = 0; i < file.Size(); i++) {
    if (file[i] == "ADC TRIGGER") {
      // 低速だが可読性の高いデータアクセス
      TDataElement element = file[i]["ADC EVENT"]["ADC"]["4"];

      // 高速データアクセス
      // TDataElement element = file[i][0][3][4];
      int ch;
      element.StorePrimitive(ch);
      ch4->Fill(ch);
    }
  }

  cv->Modified();
  cv->Update();

  cv->Print("demo.ps");
  cv->Print("demo.gif");
}
