#include <TROOT.h>
#include <TTree.h>
#include <TH1.h>
#include <TH2.h>
#include <TFile.h>
#include <TF1.h>
#include <TStyle.h>
#include <TColor.h>
#include <TGaxis.h>
#include <TCanvas.h>
#include <TPaveLabel.h>
#include <TPaveText.h>
#include <TGraphErrors.h>

void graphmulticol()  
{
  //Define parameters common to all analysis configurations
  const Int_t points = 12;
  char printname[256];
  char graphname1[256];
  char xTitle[256];
  char yTitle[256];
  char GraphText1[256];
  char histTitle[256];
  char output_line[256];

  gStyle->SetStatColor(0);//All this stuff makes backgrounds, etc.
  gStyle->SetTitleColor(0);//transparent for printing purposes...
  gStyle->SetCanvasColor(0);
  gStyle->SetPadColor(0);
  gStyle->SetPadBorderMode(0);
  gStyle->SetCanvasBorderMode(0);
  gStyle->SetFrameBorderMode(0);
  gStyle->SetPalette(1);
  gStyle->SetOptStat(kFALSE);
  gStyle->SetOptStat(11);
  gStyle->SetOptFit(1111);
  gStyle->SetPadGridX(kTRUE);
  gStyle->SetPadGridY(kTRUE);
  TGaxis::SetMaxDigits(4);

  char INPUT_FILENAME[256];
  sprintf(INPUT_FILENAME,"summary_table_first_order.txt");
  fprintf(stderr, "My Input file name is: %s\n", INPUT_FILENAME);
  ifstream myInFile(INPUT_FILENAME);

  float Run[points], HV[points], PreAmp[points], Navg[points], PedAve[points], PedRMS[points], nonLin[points], nonLinpV[points], Error[points], Chi2p6df[points];
  char header[256];
  for(int h = 0; h<10; h++) { //read the header info
    myInFile >> header;
  }

  Double_t RelativeWidth[points], HV_positive[points], nonLin_positive[points], Chi2[points], erX[points], erY[points], myPreAmp[points], myNavg[points], Vout[points], nonLinpV_positive[points];
	const int ndf = 6;
	Double_t Vperch = 76.29E-6; //Volts per channel

  for(int i=0;i<points;i++) {
    myInFile >> Run[i] >> HV[i] >> PreAmp[i] >> Navg[i] >> PedAve[i] >> PedRMS[i] >> nonLin[i] >> Error[i] >> nonLinpV[i] >> Chi2p6df[i];
    RelativeWidth[i] = PedRMS[i]/PedAve[i];
    HV_positive[i] = HV[i];
    nonLin_positive[i] = nonLin[i];
    nonLinpV_positive[i] = nonLinpV[i];
    Chi2[i] = Chi2p6df[i]/ndf;
    myPreAmp[i] = PreAmp[i];
    erX[i] = 0.0;
    erY[i] = Error[i];
    myNavg[i] = Navg[i];
    Vout[i] = Navg[i]*Vperch;
    cout << Run[i]<<"	"<<HV_positive[i] <<"	"<< myPreAmp[i] <<"	"<< RelativeWidth[i] <<"	"<< Chi2[i]<< "	"<< nonLin_positive[i]<<"	"<< nonLinpV_positive[i]<<"	"<<Navg[i]<<"	"<<Vout[i]<< endl;
  	}

  myInFile.close();

  TCanvas *c = new TCanvas("c","non-Linearity vs HV",0,0,700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,HV_positive, nonLin_positive, erX, erY);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity vs HV");
   TExec *ex1 = new TExec("ex1","PreAmp();");
   gr->GetListOfFunctions()->Add(ex1);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("HV (V)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("nonLinearity %");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   char labelA[256], labelB[256], labelC[256], labelD[256];
   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.68,0.85, 0.83,0.89,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kRed);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.68,0.81, 0.81,0.85,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kMagenta);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.68,0.77, 0.81,0.81,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlue);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing-ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./nonLinearity_vs_HV_1st_Order_07nA.png");
   c->Print(plotname);

   TCanvas *c1 = new TCanvas("c1","nonLinearity vs pre-Amp Settings",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,myPreAmp, nonLin_positive, erX, erY);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity vs pre-Amp Settings");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("pre-Amp (MOhm)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("nonLinearity %");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   char label[points][256];
   sprintf(label[0],"*   1060 V HV");
   TPaveLabel *pt1 = new TPaveLabel(0.70,0.86, 0.80,0.89,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV");
   TPaveLabel *pt2 = new TPaveLabel(0.70,0.83, 0.80,0.86,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV");
   TPaveLabel *pt3 = new TPaveLabel(0.70,0.80, 0.80,0.83,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV");
   TPaveLabel *pt4 = new TPaveLabel(0.70,0.77, 0.80,0.80,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV");
   TPaveLabel *pt5 = new TPaveLabel(0.70,0.74, 0.80,0.77,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV");
   TPaveLabel *pt6 = new TPaveLabel(0.70,0.71, 0.80,0.74,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV");
   TPaveLabel *pt7 = new TPaveLabel(0.70,0.68, 0.80,0.71,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV");
   TPaveLabel *pt8 = new TPaveLabel(0.70,0.65, 0.80,0.68,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV");
   TPaveLabel *pt9 = new TPaveLabel(0.70,0.62, 0.80,0.65,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV");
   TPaveLabel *pt10 = new TPaveLabel(0.70,0.59, 0.80,0.62,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV");
   TPaveLabel *pt11 = new TPaveLabel(0.70,0.56, 0.80,0.59,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV");
   TPaveLabel *pt12 = new TPaveLabel(0.70,0.53, 0.80,0.56,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing_ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./nonLinearity_vs_pre-Amp_Settings_1st_Order_07nA.png");
   c1->Print(plotname);

   TCanvas *c2 = new TCanvas("c2","Relative width of pedestal vs pre-Amp Settings",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,myPreAmp, RelativeWidth);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("RelativeWidth of pedestal vs pre-Amp Settings");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("pre-Amp (MOhm)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("PedRMS/PedMean");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   sprintf(label[0],"*   1060 V HV");
   TPaveLabel *pt1 = new TPaveLabel(0.65,0.86, 0.75,0.89,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV");
   TPaveLabel *pt2 = new TPaveLabel(0.65,0.83, 0.75,0.86,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV");
   TPaveLabel *pt3 = new TPaveLabel(0.65,0.80, 0.75,0.83,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV");
   TPaveLabel *pt4 = new TPaveLabel(0.65,0.77, 0.75,0.80,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV");
   TPaveLabel *pt5 = new TPaveLabel(0.65,0.74, 0.75,0.77,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV");
   TPaveLabel *pt6 = new TPaveLabel(0.65,0.71, 0.75,0.74,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV");
   TPaveLabel *pt7 = new TPaveLabel(0.65,0.68, 0.75,0.71,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV");
   TPaveLabel *pt8 = new TPaveLabel(0.65,0.65, 0.75,0.68,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV");
   TPaveLabel *pt9 = new TPaveLabel(0.65,0.62, 0.75,0.65,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV");
   TPaveLabel *pt10 = new TPaveLabel(0.65,0.59, 0.75,0.62,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV");
   TPaveLabel *pt11 = new TPaveLabel(0.65,0.56, 0.75,0.59,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV");
   TPaveLabel *pt12 = new TPaveLabel(0.65,0.53, 0.75,0.56,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing-ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./relativewidth_vs_pre-Amp_Settings_1st_Order_07nA.png");
   c2->Print(plotname);

   TCanvas *c3 = new TCanvas("c3","Relative width of pedestal vs HV",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,HV_positive, RelativeWidth);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("RelativeWidth of pedestal vs HV");
   TExec *ex1 = new TExec("ex1","PreAmp();");
   gr->GetListOfFunctions()->Add(ex1);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("HV (V)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("PedRMS/PedMean");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   char labelA[256], labelB[256], labelC[256], labelD[256];
   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.70,0.81, 0.85,0.85,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kRed);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.70,0.77, 0.85,0.81,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kMagenta);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.70,0.73, 0.85,0.77,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlue);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing-ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./relativewidth_vs_HV_1st_Order_07nA.png");
   c3->Print(plotname);

   TCanvas *c4 = new TCanvas("c4","#chi^{2}/df vs HV",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,HV_positive, Chi2);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("#chi^{2}/df vs HV");
   TExec *ex1 = new TExec("ex1","PreAmp();");
   gr->GetListOfFunctions()->Add(ex1);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("HV (V)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("#chi^{2}/df");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.67,0.85, 0.83,0.89,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kRed);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.67,0.81, 0.81,0.85,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kMagenta);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.67,0.77, 0.81,0.81,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlue);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing_ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./Chi2_vs_HV_1st_Order_07nA.png");
   c4->Print(plotname);

  TCanvas *c5 = new TCanvas("c5","#chi^{2}/df vs pre-Amp Settings",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,myPreAmp, Chi2);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("#chi^{2}/df vs pre-Amp Settings");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("pre-Amp (MOhm)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("#chi^{2}/df");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   sprintf(label[0],"*   1060 V HV");
   TPaveLabel *pt1 = new TPaveLabel(0.70,0.86, 0.80,0.89,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV");
   TPaveLabel *pt2 = new TPaveLabel(0.70,0.83, 0.80,0.86,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV");
   TPaveLabel *pt3 = new TPaveLabel(0.70,0.80, 0.80,0.83,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV");
   TPaveLabel *pt4 = new TPaveLabel(0.70,0.77, 0.80,0.80,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV");
   TPaveLabel *pt5 = new TPaveLabel(0.70,0.74, 0.80,0.77,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV");
   TPaveLabel *pt6 = new TPaveLabel(0.70,0.71, 0.80,0.74,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV");
   TPaveLabel *pt7 = new TPaveLabel(0.70,0.68, 0.80,0.71,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV");
   TPaveLabel *pt8 = new TPaveLabel(0.70,0.65, 0.80,0.68,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV");
   TPaveLabel *pt9 = new TPaveLabel(0.70,0.62, 0.80,0.65,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV");
   TPaveLabel *pt10 = new TPaveLabel(0.70,0.59, 0.80,0.62,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV");
   TPaveLabel *pt11 = new TPaveLabel(0.70,0.56, 0.80,0.59,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV");
   TPaveLabel *pt12 = new TPaveLabel(0.70,0.53, 0.80,0.56,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing_ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./Chi2_vs_pre-Amp_Settings_1st_Order_07nA.png");
   c5->Print(plotname);

  TCanvas *c6 = new TCanvas("c6","non-linearity vs RelativeWidth of pedestal ",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,RelativeWidth,nonLin_positive,erX,erY);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity vs RelativeWidth of pedestal");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("RelativeWidth");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("non-linearity (%)");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   sprintf(label[0],"*   1060 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt1 = new TPaveLabel(0.16,0.82, 0.31,0.85,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt2 = new TPaveLabel(0.17,0.79, 0.31,0.82,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt3 = new TPaveLabel(0.16,0.76, 0.30,0.79,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt4 = new TPaveLabel(0.15,0.73, 0.30,0.76,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt5 = new TPaveLabel(0.15,0.70, 0.30,0.73,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt6 = new TPaveLabel(0.15,0.67, 0.30,0.70,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt7 = new TPaveLabel(0.15,0.64, 0.30,0.67,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt8 = new TPaveLabel(0.175,0.61, 0.29,0.64,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt9 = new TPaveLabel(0.15,0.58, 0.30,0.61,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt10 = new TPaveLabel(0.15,0.55, 0.30,0.58,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt11 = new TPaveLabel(0.15,0.52, 0.30,0.55,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt12 = new TPaveLabel(0.15,0.49, 0.30,0.52,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

/*   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.30,0.81, 0.47,0.85,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kBlack);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.30,0.77, 0.45,0.81,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kBlack);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.30,0.73, 0.45,0.77,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlack);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();
*/
   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing_ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./non-linearity_vs_RelativeWidth_1st_Order_07nA.png");
   c6->Print(plotname);

  TCanvas *c7 = new TCanvas("c7","non-linearity vs Navg",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,myNavg,nonLin_positive,erX,erY);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity vs Navg");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("Navg");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("non-linearity (%)");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gr->GetXaxis()->SetLimits(0,131072);
   gPad->Modified();

   sprintf(label[0],"*   1060 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt1 = new TPaveLabel(0.16,0.82, 0.31,0.85,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt2 = new TPaveLabel(0.17,0.79, 0.31,0.82,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt3 = new TPaveLabel(0.16,0.76, 0.30,0.79,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt4 = new TPaveLabel(0.15,0.73, 0.30,0.76,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt5 = new TPaveLabel(0.15,0.70, 0.30,0.73,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt6 = new TPaveLabel(0.15,0.67, 0.30,0.70,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt7 = new TPaveLabel(0.15,0.64, 0.30,0.67,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt8 = new TPaveLabel(0.175,0.61, 0.29,0.64,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt9 = new TPaveLabel(0.15,0.58, 0.30,0.61,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt10 = new TPaveLabel(0.15,0.55, 0.30,0.58,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt11 = new TPaveLabel(0.15,0.52, 0.30,0.55,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt12 = new TPaveLabel(0.15,0.49, 0.30,0.52,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

/*   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.20,0.81, 0.30,0.85,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kBlack);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.20,0.77, 0.35,0.81,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kBlack);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.20,0.73, 0.35,0.77,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlack);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();
*/
   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing_ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./non-linearity_vs_Navg_1st_Order_07nA.png");
   c7->Print(plotname);

  TCanvas *c8 = new TCanvas("c8","non-linearity vs ADC Signal",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,Vout,nonLin_positive,erX,erY);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity vs ADC Signal (V)");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("ADC Signal (V)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("non-linearity (%)");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gr->GetXaxis()->SetLimits(0,10);
   gPad->Modified();

   sprintf(label[0],"*   1060 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt1 = new TPaveLabel(0.16,0.82, 0.31,0.85,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt2 = new TPaveLabel(0.17,0.79, 0.31,0.82,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt3 = new TPaveLabel(0.16,0.76, 0.30,0.79,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt4 = new TPaveLabel(0.15,0.73, 0.30,0.76,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt5 = new TPaveLabel(0.15,0.70, 0.30,0.73,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt6 = new TPaveLabel(0.15,0.67, 0.30,0.70,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt7 = new TPaveLabel(0.15,0.64, 0.30,0.67,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt8 = new TPaveLabel(0.175,0.61, 0.29,0.64,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt9 = new TPaveLabel(0.15,0.58, 0.30,0.61,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt10 = new TPaveLabel(0.15,0.55, 0.30,0.58,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt11 = new TPaveLabel(0.15,0.52, 0.30,0.55,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt12 = new TPaveLabel(0.15,0.49, 0.30,0.52,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

/*   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.20,0.81, 0.30,0.85,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kBlack);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.20,0.77, 0.35,0.81,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kBlack);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.20,0.73, 0.35,0.77,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlack);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();
*/
   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing_ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./non-linearity_vs_ADC-Signal_1st_Order_07nA.png");
   c8->Print(plotname);

  TCanvas *c9 = new TCanvas("c9","non-linearity per volt vs ADC Signal",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,Vout,nonLinpV_positive);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity per volt vs ADC Signal (V)");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("ADC Signal (V)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("non-linearity per volt (%)");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gr->GetXaxis()->SetLimits(0,10);
   gPad->Modified();

   sprintf(label[0],"*   1060 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt1 = new TPaveLabel(0.16,0.82, 0.31,0.85,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt2 = new TPaveLabel(0.17,0.79, 0.31,0.82,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt3 = new TPaveLabel(0.16,0.76, 0.30,0.79,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV, 0.3 MOhm (KDPA)");
   TPaveLabel *pt4 = new TPaveLabel(0.15,0.73, 0.30,0.76,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt5 = new TPaveLabel(0.15,0.70, 0.30,0.73,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt6 = new TPaveLabel(0.15,0.67, 0.30,0.70,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt7 = new TPaveLabel(0.15,0.64, 0.30,0.67,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV, 0.5 MOhm (LUMI)");
   TPaveLabel *pt8 = new TPaveLabel(0.175,0.61, 0.29,0.64,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt9 = new TPaveLabel(0.15,0.58, 0.30,0.61,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt10 = new TPaveLabel(0.15,0.55, 0.30,0.58,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt11 = new TPaveLabel(0.15,0.52, 0.30,0.55,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV, 1.0 MOhm (LUMI)");
   TPaveLabel *pt12 = new TPaveLabel(0.15,0.49, 0.30,0.52,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

/*   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.20,0.81, 0.30,0.85,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kBlack);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.20,0.77, 0.35,0.81,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kBlack);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.20,0.73, 0.35,0.77,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlack);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();
*/
   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing-ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./non-linearity_per_volt_vs_ADC-Signal_1st_Order_07nA.png");
   c9->Print(plotname);

  TCanvas *c10 = new TCanvas("c10","non-Linearity per volt vs HV",0,0,700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,HV_positive, nonLinpV_positive);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity per volt vs HV");
   TExec *ex1 = new TExec("ex1","PreAmp();");
   gr->GetListOfFunctions()->Add(ex1);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("HV (V)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("nonLinearity per volt (%)");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   char labelA[256], labelB[256], labelC[256], labelD[256];
   sprintf(labelA,"*      0.3 MOhm pre-Amp (KDPA)");
   TPaveLabel *ptA = new TPaveLabel(0.67,0.85, 0.82,0.89,labelA,"NDC");
   ptA->SetBorderSize(0);
   ptA->SetTextColor(kRed);
   ptA->SetTextSize(0.70);
   ptA->SetFillColor(0);
   ptA->Draw();
   sprintf(labelB,"+      0.5 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptB = new TPaveLabel(0.67,0.81, 0.81,0.85,labelB,"NDC");
   ptB->SetBorderSize(0);
   ptB->SetTextColor(kMagenta);
   ptB->SetTextSize(0.70);
   ptB->SetFillColor(0);
   ptB->Draw();
   sprintf(labelD,"X     1.0 MOhm pre-Amp (LUMI)");
   TPaveLabel *ptD = new TPaveLabel(0.67,0.77, 0.81,0.81,labelD,"NDC");
   ptD->SetBorderSize(0);
   ptD->SetTextColor(kBlue);
   ptD->SetTextSize(0.70);
   ptD->SetFillColor(0);
   ptD->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing-ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./nonLinearity_per_volt_vs_HV_1st_Order_07nA.png");
   c10->Print(plotname);

   TCanvas *c11 = new TCanvas("c11","nonLinearity per volt vs pre-Amp Settings",700,500);
  gPad->SetLogy(0);
  gPad->SetLogx(0);
  gStyle->SetOptStat(kFALSE);

  sprintf(graphname1,"");

   TGraphErrors *gr = new TGraphErrors(points,myPreAmp, nonLinpV_positive);
   gr->SetLineColor(kCyan+3);
   gr->SetMarkerSize(0.75);
   gr->SetTitle("non-linearity per volt vs pre-Amp Settings");
   TExec *ex = new TExec("ex","HighVoltage();");
   gr->GetListOfFunctions()->Add(ex);
   gr->Draw("AP");
   gr->GetXaxis()->SetTitle("pre-Amp (MOhm)");
   gr->GetXaxis()->SetTitleColor(1);
   gr->GetYaxis()->SetTitle("nonLinearity per volt (%)");
   gr->GetXaxis()->CenterTitle();
   gr->GetYaxis()->CenterTitle();
   gr->GetYaxis()->SetTitleOffset(1.4);
   gPad->Modified();

   char label[points][256];
   sprintf(label[0],"*   1060 V HV");
   TPaveLabel *pt1 = new TPaveLabel(0.70,0.86, 0.80,0.89,label[0],"NDC");
   pt1->SetBorderSize(0);
   pt1->SetTextColor(1);
   pt1->SetTextSize(0.70);
   pt1->SetFillColor(0);
   pt1->Draw();
   sprintf(label[1],"*   1035 V HV");
   TPaveLabel *pt2 = new TPaveLabel(0.70,0.83, 0.80,0.86,label[1],"NDC");
   pt2->SetBorderSize(0);
   pt2->SetTextColor(2);
   pt2->SetTextSize(0.70);
   pt2->SetFillColor(0);
   pt2->Draw();
   sprintf(label[2],"*   1000 V HV");
   TPaveLabel *pt3 = new TPaveLabel(0.70,0.80, 0.80,0.83,label[2],"NDC");
   pt3->SetBorderSize(0);
   pt3->SetTextColor(3);
   pt3->SetTextSize(0.70);
   pt3->SetFillColor(0);
   pt3->Draw();
   sprintf(label[3],"*   970 V HV");
   TPaveLabel *pt4 = new TPaveLabel(0.70,0.77, 0.80,0.80,label[3],"NDC");
   pt4->SetBorderSize(0);
   pt4->SetTextColor(4);
   pt4->SetTextSize(0.70);
   pt4->SetFillColor(0);
   pt4->Draw();
   sprintf(label[4],"+   950 V HV");
   TPaveLabel *pt5 = new TPaveLabel(0.70,0.74, 0.80,0.77,label[4],"NDC");
   pt5->SetBorderSize(0);
   pt5->SetTextColor(5);
   pt5->SetTextSize(0.70);
   pt5->SetFillColor(0);
   pt5->Draw();
   sprintf(label[5],"+   920 V HV");
   TPaveLabel *pt6 = new TPaveLabel(0.70,0.71, 0.80,0.74,label[5],"NDC");
   pt6->SetBorderSize(0);
   pt6->SetTextColor(6);
   pt6->SetTextSize(0.70);
   pt6->SetFillColor(0);
   pt6->Draw();
   sprintf(label[6],"+   890 V HV");
   TPaveLabel *pt7 = new TPaveLabel(0.70,0.68, 0.80,0.71,label[6],"NDC");
   pt7->SetBorderSize(0);
   pt7->SetTextColor(7);
   pt7->SetTextSize(0.70);
   pt7->SetFillColor(0);
   pt7->Draw();
   sprintf(label[7],"+   850 V HV");
   TPaveLabel *pt8 = new TPaveLabel(0.70,0.65, 0.80,0.68,label[7],"NDC");
   pt8->SetBorderSize(0);
   pt8->SetTextColor(8);
   pt8->SetTextSize(0.70);
   pt8->SetFillColor(0);
   pt8->Draw();
   sprintf(label[8],"X   825 V HV");
   TPaveLabel *pt9 = new TPaveLabel(0.70,0.62, 0.80,0.65,label[8],"NDC");
   pt9->SetBorderSize(0);
   pt9->SetTextColor(9);
   pt9->SetTextSize(0.70);
   pt9->SetFillColor(0);
   pt9->Draw();
   sprintf(label[9],"X   800 V HV");
   TPaveLabel *pt10 = new TPaveLabel(0.70,0.59, 0.80,0.62,label[9],"NDC");
   pt10->SetBorderSize(0);
   pt10->SetTextColor(13);
   pt10->SetTextSize(0.70);
   pt10->SetFillColor(0);
   pt10->Draw();
   sprintf(label[10],"X   780 V HV");
   TPaveLabel *pt11 = new TPaveLabel(0.70,0.56, 0.80,0.59,label[10],"NDC");
   pt11->SetBorderSize(0);
   pt11->SetTextColor(30);
   pt11->SetTextSize(0.70);
   pt11->SetFillColor(0);
   pt11->Draw();
   sprintf(label[11],"X   750 V HV");
   TPaveLabel *pt12 = new TPaveLabel(0.70,0.53, 0.80,0.56,label[11],"NDC");
   pt12->SetBorderSize(0);
   pt12->SetTextColor(38);
   pt12->SetTextSize(0.70);
   pt12->SetFillColor(0);
   pt12->Draw();

   char flip[256];
   sprintf(flip,"LED flash rate: 120 Hz  (sing-ped), with LL: 0.7 nA");
   TPaveLabel *pt_ff = new TPaveLabel(0.20,0.85,0.50,0.89,flip,"NDC");
   pt_ff->SetBorderSize(0);
   pt_ff->SetTextColor(kBlack);
   pt_ff->SetTextSize(0.80);
   pt_ff->SetFillColor(0);
   pt_ff->Draw();

   char plotname[256];
   sprintf(plotname,"./nonLinearity_per_volt_vs_pre-Amp_Settings_1st_Order_07nA.png");
   c11->Print(plotname);
}

void HighVoltage()
{
   Int_t i,points;
   Double_t x,y;

   TGraph *g = (TGraph*)gPad->GetListOfPrimitives()->FindObject("Graph");
   points = g->GetN();
   TMarker *m;
	for (i=0; i<points; i++) {
     g->GetPoint(i,x,y);
	if(i>=0 && i<=3){
     m = new TMarker(x,y,29);
	}else if(i>=4 && i<=7){
	m = new TMarker(x,y,34);
	}else if(i>=8 && i<=11){
     m = new TMarker(x,y,5);
	}
     if(i==0){
	m->SetMarkerColor(1);
	}else if(i==1){
	m->SetMarkerColor(2);
	}else if(i==2){
	m->SetMarkerColor(3);
	}else if(i==3){
	m->SetMarkerColor(4);
	}else if(i==4){
	m->SetMarkerColor(5);
	}else if(i==5){
	m->SetMarkerColor(6);
	}else if(i==6){
	m->SetMarkerColor(7);
	}else if(i==7){
	m->SetMarkerColor(8);
	}else if(i==8){
	m->SetMarkerColor(9);
	}else if(i==9){
	m->SetMarkerColor(13);
	}else if(i==10){
	m->SetMarkerColor(30);
	}else if(i==11){
	m->SetMarkerColor(38);
	}
     m->Paint();
	}
}

void PreAmp()
{
   Int_t i,points;
   Double_t x,y;

   TGraph *g1 = (TGraph*)gPad->GetListOfPrimitives()->FindObject("Graph");
   points = g1->GetN();
   TMarker *m1;
	for (i=0; i<points; i++) {
     g1->GetPoint(i,x,y);
	if(i>=0 && i<=3){
     m1 = new TMarker(x,y,29);
	m1->SetMarkerColor(kRed);
	}else if(i>=4 && i<=7){
	m1 = new TMarker(x,y,34);
	m1->SetMarkerColor(kMagenta);
	}else if(i>=8 && i<=11){
     m1 = new TMarker(x,y,5);
	m1->SetMarkerColor(kBlue);
	}
     m1->Paint();
	}
}