#include <vector>

const Int_t kPat = 6;
const Int_t kNum[kPat] = {11, 10, 10, 15, 10, 10};
const Double_t kLED[kPat] = {3.8, 3.4, 3.2, 2.9, 2.8, 2.75};
const Double_t kHV[kPat][15]={{1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,0,0,0,0},
			      {1060,1070,1080,1090,1100,1120,1140,1160,1180,1200,0,0,0,0,0},
			      {1120,1140,1160,1180,1200,1220,1240,1260,1280,1300,0,0,0,0,0},
			      {1220,1240,1260,1280,1300,1330,1360,1390,1420,1450,1480,1510,1540,1570,1600},
			      {1480,1510,1540,1570,1600,1640,1680,1720,1760,1800,0,0,0,0,0},
			      {1640,1680,1720,1760,1800,1840,1880,1920,1960,2000,0,0,0,0,0}};

Double_t gain[kPat][15];
Double_t RMS[kPat][15];

void test()
{
  TCanvas* can = new TCanvas("can","can");
  gPad->SetLogx(0); gPad->SetLogy(0);
  
  for(Int_t i=0; i<kPat; i++){
    Int_t num = kNum[i];
    vector<TH1D*> histVec;
    can->Clear();
    for(Int_t j=0; j<num; j++){
      Double_t hv = kHV[i][j];
      Double_t led = kLED[i];
      char sigName[100], pedName[100];
      sprintf(pedName, "data/led%1.2f_hv%4.0f_ped.dat", led, hv);
      sprintf(sigName, "data/led%1.2f_hv%4.0f_sig.dat", led, hv);
      
      
      TH1D* pedHist = new TH1D(pedName, pedName, 2000, -0.5, 1999.5);
      Double_t ped = pedHist->GetMean();

      histVec.push_back(new TH1D(sigName, sigName, 2000, -0.5, 1999.5));
      
      gain[i][j] = histVec[j]->GetMean();
      RMS[i][j] = histVec[j]->GetRMS();
      histVec[j]->GetXaxis()->SetTitle("ADC Counts");
      histVec[j]->GetYaxis()->SetTitle("Events");
      histVec[j]->SetMaximum(100);
      if(j==0){
	histVec[j]->Draw();
      } else {
	histVec[j]->Draw("same");
      } // if
    } // j
    
    can->Update();
  } // i
}


