ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TApplication.h>
#include <TGClient.h>
#include <TGButton.h>
#include <TGFrame.h>
#include <TGLayout.h>
#include <TGWindow.h>
#include <TGLabel.h>
#include <TGNumberEntry.h>
#include <TString.h>
#include <TCanvas.h>
#include <TStyle.h>
#include <TPad.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TF1.h>
#include <TSystem.h>
#include <TGraph.h>
#include <TLatex.h>
#include <TLine.h>
#include <TROOT.h>
#endif

// Macro to display the output of SDD calibration runs
// -> copies the ASCII files with the DA output from the LDC
// -> plot various histograms and graphs
// Origin: F. Prino (prino@to.infn.it)

class CheckCalibInterface : public TGMainFrame {

private:
  TGCompositeFrame    *fHor1;
  TGCompositeFrame    *fHor2;
  TGCompositeFrame    *fHor3;
  TGCompositeFrame    *fHor4;
  TGTextButton        *fCopyFiles;
  TGTextButton        *fShowPedest;
  TGTextButton        *fShowPulser;
  TGTextButton        *fShowInject;
  TGTextButton        *fShowOneMod;
  TGTextButton        *fShowDDL;
  TGTextButton        *fExit;
  TGGroupFrame        *fGframeALL;
  TGGroupFrame        *fGframeSING;
  TGGroupFrame        *fGframe1;
  TGGroupFrame        *fGframe2;
  TGNumberEntry       *fDDL;
  TGNumberEntry       *fChannel;
  Int_t fNumDDL;
  Int_t fNumChannel;

public:
  CheckCalibInterface(const TGWindow *p, UInt_t w, UInt_t h);
  virtual ~CheckCalibInterface();
  void DoSetlabel();

  static void CopyFiles();
  static void ShowPedestal();
  static void ShowPulser();
  static void ShowInjector();
  static void ShowSingleModule(Int_t iddl, Int_t ichan);
  static void ShowDDL(Int_t iddl);
  static void ClearAll();

  ClassDef(CheckCalibInterface, 0)
};
                          
CheckCalibInterface::CheckCalibInterface(const TGWindow *p, UInt_t w, UInt_t h)
   : TGMainFrame(p, w, h)
{

  fHor1 = new TGHorizontalFrame(this);
  fHor2 = new TGHorizontalFrame(this);
  fHor3 = new TGHorizontalFrame(this);
  fHor4 = new TGHorizontalFrame(this);

  TGLayoutHints *lh=new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5);
  TGLayoutHints *lhc=new TGLayoutHints(kLHintsCenterY | kLHintsExpandY, 5, 5, 5, 5);
  TGLayoutHints *lh1=new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5);

  fCopyFiles = new TGTextButton(fHor1, "&Copy Files", "CheckCalibInterface::CopyFiles()");
  fHor1->AddFrame(fCopyFiles, lh1);

  fGframeALL = new TGGroupFrame(fHor2,"All Modules",kHorizontalFrame);
  fShowPedest = new TGTextButton(fGframeALL, "&Show Pedestal","CheckCalibInterface::ShowPedestal()");
  fShowPulser = new TGTextButton(fGframeALL, "&Show Pulser","CheckCalibInterface::ShowPulser()");
  fShowInject = new TGTextButton(fGframeALL, "&Show Injector","CheckCalibInterface::ShowInjector()");    
  fGframeALL->AddFrame(fShowPedest, lh1);
  fGframeALL->AddFrame(fShowPulser, lh1);
  fGframeALL->AddFrame(fShowInject, lh1);
  fHor2->AddFrame(fGframeALL, lh1);

  fGframeSING = new TGGroupFrame(fHor3,"Single Module",kHorizontalFrame);
  fGframe1 = new TGGroupFrame(fGframeSING, "DDL");
  fDDL = new TGNumberEntry(fGframe1, 0, 2,-1, TGNumberFormat::kNESInteger,
			   TGNumberFormat::kNEANonNegative, 
			   TGNumberFormat::kNELLimitMinMax,
			   0, 23);
  fGframe2 = new TGGroupFrame(fGframeSING, "Channel");
  fChannel = new TGNumberEntry(fGframe2, 0, 2,-1, TGNumberFormat::kNESInteger,
			       TGNumberFormat::kNEANonNegative, 
			       TGNumberFormat::kNELLimitMinMax,
			       0, 11);
  fGframe1->AddFrame(fDDL,lh);
  fGframe2->AddFrame(fChannel,lh);
  fGframeSING->AddFrame(fGframe1,lh);
  fGframeSING->AddFrame(fGframe2,lh);
  
  fDDL->Connect("ValueSet(Long_t)", "CheckCalibInterface", this, "DoSetlabel()");
  (fDDL->GetNumberEntry())->Connect("ReturnPressed()", "CheckCalibInterface", this, "DoSetlabel()");
  
  fChannel->Connect("ValueSet(Long_t)", "CheckCalibInterface", this, "DoSetlabel()");
  (fChannel->GetNumberEntry())->Connect("ReturnPressed()", "CheckCalibInterface", this, "DoSetlabel()");
  fHor3->AddFrame(fGframeSING, lh1);
  
  fShowOneMod = new TGTextButton(fGframeSING, "&Show Selected Module","CheckCalibInterface::ShowSingleModule(0,0)");
  fGframeSING->AddFrame(fShowOneMod, lhc);

  fShowDDL = new TGTextButton(fGframeSING, "&Show vdrift for DDL","CheckCalibInterface::ShowDDL(0)");
  fGframeSING->AddFrame(fShowDDL, lhc);

  fExit = new TGTextButton(fHor4, "&Exit", "gApplication->Terminate(0)");
  fHor4->AddFrame(fExit, lh1);

  AddFrame(fHor1,lh1);
  AddFrame(fHor2,lh1);
  AddFrame(fHor3,lh1);
  AddFrame(fHor4,lh1);

  SetCleanup(kDeepCleanup);
  SetWindowName("Main Control");
  MapSubwindows();
  Resize(GetDefaultSize());
  MapWindow();
}

CheckCalibInterface::~CheckCalibInterface()
{
   // Destructor.
   
   Cleanup();
}


void CheckCalibInterface::CopyFiles(){
  //
  // 8 LDCs in Run2 with new (simpler) dirs - M.S. 25 jul 14
  TString command;
  TString ldcName[8]={"aldaqpc009","aldaqpc010","aldaqpc011","aldaqpc012",
		      "aldaqpc013","aldaqpc014","aldaqpc015","aldaqpc016"};
  gSystem->Exec("rm -rf calibFiles");
  gSystem->Exec("mkdir calibFiles");
  for(Int_t iLDC=0; iLDC<8; iLDC++){
    Int_t firstDDL=iLDC*3;
    Int_t lastDDL=iLDC*3+2;
    command.Form("scp %s:/dateSite/ldc-SDD-%d/work/SDDbase_step2_LDC.tar calibFiles/.",ldcName[iLDC].Data(),iLDC);
    gSystem->Exec(command.Data());
    command.Form("scp %s:/dateSite/ldc-SDD-%d/work/SDDbase_LDC.tar calibFiles/.",ldcName[iLDC].Data(),iLDC);
    gSystem->Exec(command.Data());
    command.Form("scp %s:/dateSite/ldc-SDD-%d/work/SDDinj_LDC.tar calibFiles/.",ldcName[iLDC].Data(),iLDC);
    gSystem->Exec(command.Data());
    gSystem->Exec("cd calibFiles; tar xvf SDDbase_step2_LDC.tar; tar xvf SDDbase_LDC.tar; tar xvf SDDinj_LDC.tar; cd ..");
  }
  printf("-------------- DONE ---------------\n");

  return;
}

void CheckCalibInterface::ShowPedestal(){
  ClearAll();

  TH2F* hbadchan=new TH2F("hbadchan","Number of bad channels",24,-0.25,11.75,24,-0.5,23.5);
  TH2F* hrawnoisemod=new TH2F("hrawnoisemod","",288,-0.5,287.5,50,0.,10.);
  TH1F* hrawnoise=new TH1F("hrawnoise","",100,0.,10.);
  TH2F* hcornoisemod=new TH2F("hcornoisemod","",288,-0.5,287.5,50,0.,10.);
  TH1F* hcornoise=new TH1F("hcornoise","",100,0.,10.);
  TH2F* hbasemod=new TH2F("hbasemod","",288,-0.5,287.5,50,0.,150.);
  TH1F* hbase=new TH1F("hbase","",100,0.,150.);
  Int_t retfscf;
  TString inpFileName;
  Float_t baseline,rawnoise,cmn,corn;
  Int_t isgoodan,i,basmin,basoff;
  Int_t th,tl;
  Int_t nGoodAnodes=0;
  for(Int_t iddl=0;iddl<24;iddl++){
    for(Int_t imod=0;imod<12;imod++){
      for(Int_t isid=0;isid<2;isid++){
	inpFileName.Form("./calibFiles/SDDbase_step2_ddl%02dc%02d_sid%d.data",iddl,imod,isid);
	FILE* basFil = fopen(inpFileName.Data(),"read");
	Int_t sideId=imod*2+isid;
	Int_t modId=iddl*12+imod;
	if (basFil == 0) hbadchan->SetBinContent(sideId+1,iddl+1,256);
	else{
	  retfscf=fscanf(basFil,"%d\n",&th);
	  retfscf=fscanf(basFil,"%d\n",&tl);
	  if(th==255 && tl==20) continue;
	  for(Int_t ian=0;ian<256;ian++){
	    retfscf=fscanf(basFil,"%d %d %f %d %d %f %f %f\n",&i,&isgoodan,&baseline,&basmin,&basoff,&rawnoise,&cmn,&corn);
	    hrawnoisemod->Fill(modId,rawnoise);
	    hrawnoise->Fill(rawnoise);
	    hcornoisemod->Fill(modId,corn);
	    hcornoise->Fill(corn);
	    hbasemod->Fill(modId,baseline);
	    hbase->Fill(baseline);
	    if(!isgoodan){
	      hbadchan->SetBinContent(sideId+1,iddl+1, 1+hbadchan->GetBinContent(sideId+1,iddl+1));
	    }else{
	      nGoodAnodes++;
	    }
	  }
	  fclose(basFil);
	}
      }
    }
  }
  hrawnoisemod->SetStats(0);
  hcornoisemod->SetStats(0);
  hbasemod->SetStats(0);
  hbadchan->SetStats(0);
  gStyle->SetPalette(1);
  TString txtCountGood;
  Float_t fracGood=100.*(Float_t)nGoodAnodes/(520.*260.);
  txtCountGood.Form("Number of GoodAnodes = %d (%5.1f\%)\n",nGoodAnodes,fracGood);

  TCanvas* c0=new TCanvas("c0","Bad Channels",800,900);
  c0->SetRightMargin(0.14);
  c0->SetBottomMargin(0.2);
  hbadchan->Draw("colz"); 
  hbadchan->GetXaxis()->SetTitle("Channel");
  hbadchan->GetYaxis()->SetTitle("DDL");
  hbadchan->GetXaxis()->SetTickLength(0);
  hbadchan->GetYaxis()->SetTickLength(0);
  c0->cd();
  TLine** linv=new TLine*[12];
  for(Int_t i=0;i<12;i++){
    linv[i]=new TLine(i+0.75,-0.5,i+0.75,23.5);
    linv[i]->SetLineColor(kGray+1);
    linv[i]->Draw();
  }
  TLine** linh=new TLine*[24];
  for(Int_t i=0;i<24;i++){
    linh[i]=new TLine(-0.25,i+0.5,11.75,i+0.5);
    linh[i]->SetLineColor(kGray+1);
    linh[i]->Draw();
  }
  TLatex* tg=new TLatex(0.1,0.05,txtCountGood.Data());
  tg->SetNDC();
  tg->SetTextColor(4);
  tg->SetTextSize(0.04);
  tg->Draw();
  c0->Update();
 
  TCanvas* c1=new TCanvas("c1","Baseline",1200,700);
  c1->Divide(2,1);
  c1->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hbase->Draw();
  hbase->GetXaxis()->SetTitle("Baseline (ADC)");
  c1->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hbasemod->Draw("colz");
  hbasemod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hbasemod->GetYaxis()->SetTitle("Baseline (ADC)");
  hbasemod->GetYaxis()->SetTitleOffset(1.35);

  TCanvas* c2=new TCanvas("c2","Raw Noise",1200,700);
  c2->Divide(2,1);
  c2->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hrawnoise->Draw();
  hrawnoise->GetXaxis()->SetTitle("Raw Noise (ADC)");
  c2->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hrawnoisemod->Draw("colz");
  hrawnoisemod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hrawnoisemod->GetYaxis()->SetTitle("Raw Noise (ADC)");
  hrawnoisemod->GetYaxis()->SetTitleOffset(1.35);

  TCanvas* c3=new TCanvas("c3","Corr Noise",1200,700);
  c3->Divide(2,1);
  c3->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hcornoise->Draw();
  hcornoise->GetXaxis()->SetTitle("Raw Noise (ADC)");
  c3->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hcornoisemod->Draw("colz");
  hcornoisemod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hcornoisemod->GetYaxis()->SetTitle("Raw Noise (ADC)");
  hcornoisemod->GetYaxis()->SetTitleOffset(1.35);  
}

void CheckCalibInterface::ShowPulser(){
  ClearAll();

  TH2F* hbadchan=new TH2F("hbadchan","Number of bad channels",24,-0.25,11.75,24,-0.5,23.5);
  TH2F* hrawnoisemod=new TH2F("hrawnoisemod","",288,-0.5,287.5,50,0.,10.);
  TH1F* hrawnoise=new TH1F("hrawnoise","",100,0.,10.);
  TH2F* hcornoisemod=new TH2F("hcornoisemod","",288,-0.5,287.5,50,0.,10.);
  TH1F* hcornoise=new TH1F("hcornoise","",100,0.,10.);
  TH2F* hbasemod=new TH2F("hbasemod","",288,-0.5,287.5,50,0.,150.);
  TH1F* hbase=new TH1F("hbase","",100,0.,150.);
  TH2F* hgainmod=new TH2F("hgainmod","",288,-0.5,287.5,50,0.,5.);
  TH1F* hgain=new TH1F("hgain","",100,0.,5.);

  Int_t retfscf;
  TString inpFileName;
  Float_t baseline,rawnoise,cmn,corn,gain;
  Int_t isgoodan,i,basmin,basoff;
  Int_t th,tl;
  Int_t iii,jjj,kkk;
  Int_t nGoodAnodes=0;

  for(Int_t iddl=0;iddl<24;iddl++){
    for(Int_t imod=0;imod<12;imod++){
      for(Int_t isid=0;isid<2;isid++){
	inpFileName.Form("./calibFiles/SDDbase_ddl%02dc%02d_sid%d.data",iddl,imod,isid);
	FILE* basFil = fopen(inpFileName.Data(),"read");
	Int_t sideId=imod*2+isid;
	Int_t modId=iddl*12+imod;
	if (basFil == 0) hbadchan->SetBinContent(sideId+1,iddl+1,256);
	else{
	  retfscf=fscanf(basFil,"%d %d %d\n",&iii,&jjj,&kkk);
	  if(kkk==0) continue;
	  retfscf=fscanf(basFil,"%d\n",&th);
	  retfscf=fscanf(basFil,"%d\n",&tl);
	  if(th==255 && tl==20) continue;
	  for(Int_t ian=0;ian<256;ian++){
	    retfscf=fscanf(basFil,"%d %d %f %d %d %f %f %f %f\n",&i,&isgoodan,&baseline,&basmin,&basoff,&rawnoise,&cmn,&corn,&gain);
	    hrawnoisemod->Fill(modId,rawnoise);
	    hrawnoise->Fill(rawnoise);
	    hcornoisemod->Fill(modId,corn);
	    hcornoise->Fill(corn);
	    hbasemod->Fill(modId,baseline);
	    hbase->Fill(baseline);
	    hgainmod->Fill(modId,gain);
	    hgain->Fill(gain);
	    if(!isgoodan){
	      hbadchan->SetBinContent(sideId+1,iddl+1, 1+hbadchan->GetBinContent(sideId+1,iddl+1));
	    }else{
	      nGoodAnodes++;
	    }
	  }
	  fclose(basFil);
	}
      }
    }
  }
  hrawnoisemod->SetStats(0);
  hcornoisemod->SetStats(0);
  hbasemod->SetStats(0);
  hgainmod->SetStats(0);
  hbadchan->SetStats(0);
  gStyle->SetPalette(1);
  TString txtCountGood;
  Float_t fracGood=100.*(Float_t)nGoodAnodes/(520.*260.);
  txtCountGood.Form("Number of GoodAnodes = %d (%5.1f\%)\n",nGoodAnodes,fracGood);

  TCanvas* c0=new TCanvas("c0","Bad Channels",800,900);
  c0->SetRightMargin(0.14);
  c0->SetBottomMargin(0.2);
  hbadchan->Draw("colz"); 
  hbadchan->GetXaxis()->SetTitle("Channel");
  hbadchan->GetYaxis()->SetTitle("DDL");
  hbadchan->GetXaxis()->SetTickLength(0);
  hbadchan->GetYaxis()->SetTickLength(0);
  c0->cd();
  TLine** linv=new TLine*[12];
  for(Int_t i=0;i<12;i++){
    linv[i]=new TLine(i+0.75,-0.5,i+0.75,23.5);
    linv[i]->SetLineColor(kGray+1);
    linv[i]->Draw();
  }
  TLine** linh=new TLine*[24];
  for(Int_t i=0;i<24;i++){
    linh[i]=new TLine(-0.25,i+0.5,11.75,i+0.5);
    linh[i]->SetLineColor(kGray+1);
    linh[i]->Draw();
  }
  TLatex* tg=new TLatex(0.1,0.05,txtCountGood.Data());
  tg->SetNDC();
  tg->SetTextColor(4);
  tg->SetTextSize(0.04);
  tg->Draw();
  c0->Update();
 
  TCanvas* c1=new TCanvas("c1","Baseline",1200,700);
  c1->Divide(2,1);
  c1->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hbase->Draw();
  hbase->GetXaxis()->SetTitle("Baseline (ADC)");
  c1->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hbasemod->Draw("colz");
  hbasemod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hbasemod->GetYaxis()->SetTitle("Baseline (ADC)");
  hbasemod->GetYaxis()->SetTitleOffset(1.35);

  TCanvas* c2=new TCanvas("c2","Raw Noise",1200,700);
  c2->Divide(2,1);
  c2->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hrawnoise->Draw();
  hrawnoise->GetXaxis()->SetTitle("Raw Noise (ADC)");
  c2->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hrawnoisemod->Draw("colz");
  hrawnoisemod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hrawnoisemod->GetYaxis()->SetTitle("Raw Noise (ADC)");
  hrawnoisemod->GetYaxis()->SetTitleOffset(1.35);

  TCanvas* c3=new TCanvas("c3","Corr Noise",1200,700);
  c3->Divide(2,1);
  c3->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hcornoise->Draw();
  hcornoise->GetXaxis()->SetTitle("Raw Noise (ADC)");
  c3->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hcornoisemod->Draw("colz");
  hcornoisemod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hcornoisemod->GetYaxis()->SetTitle("Raw Noise (ADC)");
  hcornoisemod->GetYaxis()->SetTitleOffset(1.35);

  TCanvas* c4=new TCanvas("c4","Gain",1200,700);
  c4->Divide(2,1);
  c4->cd(1);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hgain->Draw();
  hgain->GetXaxis()->SetTitle("Gain (ADC/DAC)");
  c4->cd(2);
  gPad->SetLeftMargin(0.14);
  gPad->SetRightMargin(0.14);
  hgainmod->Draw("colz");
  hgainmod->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  hgainmod->GetYaxis()->SetTitle("Gain (ADC/DAC)");
  hgainmod->GetYaxis()->SetTitleOffset(1.35);

  return;
}

void CheckCalibInterface::ShowInjector(){
  ClearAll();

  TH2F* hinjstatus=new TH2F("hinjstatus","Injector Status",24,-0.25,11.75,24,-0.5,23.5);
  TGraph *vvsmod0=new TGraph(0);
  TGraph *vvsmod1=new TGraph(0);
  TGraph *poldegvsmod0=new TGraph(0); 
  TGraph *poldegvsmod1=new TGraph(0); 
  TGraph *anmaxvsmod0=new TGraph(0); 
  TGraph *anmaxvsmod1=new TGraph(0); 
  TGraph *dvcevsmod0=new TGraph(0);
  TGraph *dvcevsmod1=new TGraph(0);
  TGraph *dveevsmod0=new TGraph(0);
  TGraph *dveevsmod1=new TGraph(0);
  vvsmod0->SetTitle("Drift Speed vs. mod. number");
  vvsmod1->SetTitle("Drift Speed vs. mod. number");
  poldegvsmod0->SetTitle("Degree of poly fit vs. mod. number");
  poldegvsmod1->SetTitle("Degree of poly fit vs. mod. number");
  anmaxvsmod0->SetTitle("Anode with max. vdrift vs. mod. number");
  anmaxvsmod1->SetTitle("Anode with max. vdrift vs. mod. number");
  dvcevsmod0->SetTitle("Delta Vdrift 128-0 vs. mod. number");
  dvcevsmod1->SetTitle("Delta Vdrift 128-0 vs. mod. number");
  dveevsmod0->SetTitle("Delta Vdrift 256-0 vs. mod. number");
  dveevsmod1->SetTitle("Delta Vdrift 256-0 vs. mod. number");

  TF1* fPoly=new TF1("fPoly","pol3",0.,256.);

  Int_t evNumb,polDeg; 
  UInt_t timeStamp,statusInj;
  Int_t retfscf;
  TString inpFileName;
  Float_t auxP;
  Int_t iGoodInj=0;
  for(Int_t iddl=0;iddl<24;iddl++){
    for(Int_t imod=0;imod<12;imod++){
      for(Int_t isid=0;isid<2;isid++){
	inpFileName.Form("./calibFiles/SDDinj_ddl%02dc%02d_sid%d.data",iddl,imod,isid);
	FILE* injFil = fopen(inpFileName.Data(),"read");
	Int_t sideId=imod*2+isid;
	Int_t modId=iddl*12+imod;
	if (injFil == 0){ 
	  hinjstatus->SetBinContent(sideId+1,iddl+1,0);
	}else{
	  Bool_t firstEvent=kTRUE;
	  retfscf=fscanf(injFil,"%d",&polDeg);
	  while (!feof(injFil)){
	    retfscf=fscanf(injFil,"%d %u ",&evNumb,&timeStamp);
	    if(evNumb==-99){
	      statusInj=timeStamp;
	      Int_t n7=(statusInj&(0x1F<<25))>>25;
	      Int_t n6=(statusInj&(0x1F<<20))>>20;
	      Int_t n5=(statusInj&(0x1F<<15))>>15;
	      Int_t n4=(statusInj&(0x1F<<5))>>10;
	      Int_t n3=(statusInj&(0x1F<<5))>>5;
	      Int_t n2=statusInj&0x1F;
	      Float_t aveStatus=(7.*n7+6.*n6+5.*n5+4.*n4+3.*n3+2.*n2)/32;
	      hinjstatus->SetBinContent(sideId+1,iddl+1,aveStatus);
	    }else{
	      if(feof(injFil)) break;
	      for(Int_t ic=0;ic<4;ic++){ 
		retfscf=fscanf(injFil,"%f ",&auxP);
		fPoly->SetParameter(ic,auxP);		
	      }
	      if(firstEvent && polDeg>0){
		firstEvent=kFALSE;
		++iGoodInj;
		if(isid==0){
		  vvsmod0->SetPoint(vvsmod0->GetN(),(Float_t)modId,fPoly->Eval(128));
		  poldegvsmod0->SetPoint(poldegvsmod0->GetN(),(Float_t)modId,polDeg);
		  anmaxvsmod0->SetPoint(anmaxvsmod0->GetN(),(Float_t)modId,fPoly->GetMaximumX(0.,256.));
		  dvcevsmod0->SetPoint(dvcevsmod0->GetN(),(Float_t)modId,fPoly->Eval(128)-fPoly->Eval(0));
		  dveevsmod0->SetPoint(dveevsmod0->GetN(),(Float_t)modId,fPoly->Eval(256)-fPoly->Eval(0));
		}else{
		  vvsmod1->SetPoint(vvsmod1->GetN(),(Float_t)modId,fPoly->Eval(128));
		  poldegvsmod1->SetPoint(poldegvsmod1->GetN(),(Float_t)modId,polDeg);
		  anmaxvsmod1->SetPoint(anmaxvsmod1->GetN(),(Float_t)modId,fPoly->GetMaximumX(0.,256.));
		  dvcevsmod1->SetPoint(dvcevsmod1->GetN(),(Float_t)modId,fPoly->Eval(128)-fPoly->Eval(0));
		  dveevsmod1->SetPoint(dveevsmod1->GetN(),(Float_t)modId,fPoly->Eval(256)-fPoly->Eval(0));
		}
	      }
	    }
	  }	
	  fclose(injFil);
	}
      }
    }
  }
  delete fPoly;

  TString countmods;
  countmods.Form("Number of half-modules with drift speed from injectors = %d",iGoodInj);
  gStyle->SetPalette(51);
  hinjstatus->SetStats(0);
  hinjstatus->SetMinimum(-0.01);
  hinjstatus->SetMaximum(7.);
  TCanvas* c0=new TCanvas("c0","Injector status",800,900);
  c0->SetRightMargin(0.14);
  c0->SetBottomMargin(0.2);
  hinjstatus->Draw("colz"); 
  hinjstatus->GetXaxis()->SetTitle("Channel");
  hinjstatus->GetYaxis()->SetTitle("DDL");
  hinjstatus->GetXaxis()->SetTickLength(0);
  hinjstatus->GetYaxis()->SetTickLength(0);
  c0->cd();
  TLine** linv=new TLine*[12];
  for(Int_t i=0;i<12;i++){
    linv[i]=new TLine(i+0.75,-0.5,i+0.75,23.5);
    linv[i]->SetLineColor(kGray+1);
    linv[i]->Draw();
  }
  TLine** linh=new TLine*[24];
  for(Int_t i=0;i<24;i++){
    linh[i]=new TLine(-0.25,i+0.5,11.75,i+0.5);
    linh[i]->SetLineColor(kGray+1);
    linh[i]->Draw();
  }
  TLatex* t3=new TLatex(0.1,0.05,countmods.Data());
  t3->SetNDC();
  t3->SetTextColor(4);
  t3->SetTextSize(0.03);
  t3->Draw();
  c0->Update();

  TLatex* tleft=new TLatex(0.2,0.82,"Side 0");
  tleft->SetNDC();
  tleft->SetTextColor(1);
  TLatex* tright=new TLatex(0.2,0.75,"Side 1");
  tright->SetNDC();
  tright->SetTextColor(2);

  TCanvas* c1;
  c1=new TCanvas("c1","Vdrift vs. mod",1000,700);  
  vvsmod0->SetMarkerStyle(20);
  vvsmod0->Draw("AP");
  vvsmod0->GetXaxis()->SetLimits(-1,290);
  vvsmod0->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  vvsmod0->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
  vvsmod1->SetMarkerStyle(21);
  vvsmod1->SetMarkerColor(2);
  vvsmod1->Draw("SAMEP");
  tleft->Draw();
  tright->Draw();
  TLine* ltop=new TLine(12*8-0.5,vvsmod0->GetYaxis()->GetXmin(),12*8-0.5,vvsmod0->GetYaxis()->GetXmax());
  ltop->SetLineColor(4);
  ltop->Draw();
  TLatex* ttop=new TLatex(12*3.5,vvsmod0->GetYaxis()->GetXmin()+0.05,"TOP");
  ttop->SetTextColor(4);
  ttop->Draw();
  TLine* lmed=new TLine(12*16-0.5,vvsmod0->GetYaxis()->GetXmin(),12*16-0.5,vvsmod0->GetYaxis()->GetXmax());
  lmed->SetLineColor(4);
  lmed->Draw();
  TLatex* tmed=new TLatex(12*11.5,vvsmod0->GetYaxis()->GetXmin()+0.05,"MED");
  tmed->SetTextColor(4);
  tmed->Draw();
  TLatex* tbot=new TLatex(12*19.5,vvsmod0->GetYaxis()->GetXmin()+0.05,"BOT");
  tbot->SetTextColor(4);
  tbot->Draw();


  TCanvas* c2=new TCanvas("c2","Params vs. mod",900,900);
  c2->Divide(2,2);
  
  c2->cd(1);
  gPad->SetLeftMargin(0.14);
  poldegvsmod0->SetMarkerStyle(20);
  poldegvsmod0->Draw("AP");
  poldegvsmod0->GetXaxis()->SetLimits(-1,290);
  poldegvsmod0->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  poldegvsmod0->GetYaxis()->SetTitle("Degree of Polynomial fit");
  poldegvsmod0->GetYaxis()->SetTitleOffset(1.4);
  poldegvsmod1->SetMarkerStyle(21);
  poldegvsmod1->SetMarkerColor(2);
  poldegvsmod1->Draw("SAMEP");
  tleft->Draw();
  tright->Draw();
  c2->cd(2);
  gPad->SetLeftMargin(0.14);
  anmaxvsmod0->SetMarkerStyle(20);
  anmaxvsmod0->Draw("AP");
  anmaxvsmod0->GetXaxis()->SetLimits(-1,290);
  anmaxvsmod0->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  anmaxvsmod0->GetYaxis()->SetTitle("Anode with max. drift speed");
  anmaxvsmod0->GetYaxis()->SetTitleOffset(1.4);
  anmaxvsmod1->SetMarkerStyle(21);
  anmaxvsmod1->SetMarkerColor(2);
  anmaxvsmod1->Draw("SAMEP");
  tleft->Draw();
  tright->Draw();
  c2->cd(3);
  gPad->SetLeftMargin(0.14);
  dvcevsmod0->SetMarkerStyle(20);
  dvcevsmod0->Draw("AP");
  dvcevsmod0->GetXaxis()->SetLimits(-1,290);
  dvcevsmod0->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  dvcevsmod0->GetYaxis()->SetTitle("vdrift(anode128)-vdrift(anode0)");
  dvcevsmod0->GetYaxis()->SetTitleOffset(1.4);
  dvcevsmod1->SetMarkerStyle(21);
  dvcevsmod1->SetMarkerColor(2);
  dvcevsmod1->Draw("SAMEP");
  tleft->Draw();
  tright->Draw();
  c2->cd(4);
  gPad->SetLeftMargin(0.14);
  dveevsmod0->SetMarkerStyle(20);
  dveevsmod0->Draw("AP");
  dveevsmod0->GetXaxis()->SetLimits(-1,290);
  dveevsmod0->GetYaxis()->SetTitleOffset(1.4);
  dveevsmod0->GetXaxis()->SetTitle("Module index (=DDL*12+Channel)");
  dveevsmod0->GetYaxis()->SetTitle("vdrift(anode256)-vdrift(anode0)");
  dveevsmod1->SetMarkerStyle(21);
  dveevsmod1->SetMarkerColor(2);
  dveevsmod1->Draw("SAMEP");
  tleft->Draw();
  tright->Draw();

  return;
}

void CheckCalibInterface::ShowDDL(Int_t iddl){
  //
  ClearAll();
  TF1* fPoly=new TF1("fPoly","pol3",0.,256.);
  TString inpFileName;
  TGraph* gdrsp[24];
  Int_t retfscf;
  Int_t evNumb,polDeg; 
  UInt_t timeStamp,statusInj;
  Float_t auxP;
  for(Int_t imod=0;imod<12;imod++){
    for(Int_t isid=0;isid<2;isid++){
      inpFileName.Form("./calibFiles/SDDinj_ddl%02dc%02d_sid%d.data",iddl,imod,isid);
      FILE* injFil = fopen(inpFileName.Data(),"read");
      Int_t sideId=imod*2+isid;
      gdrsp[sideId]=new TGraph(0);
      gdrsp[sideId]->SetTitle(Form("DDL %d  Mod %d  Sid %d\n",iddl,imod,isid));
      Bool_t firstEvent=kTRUE;
      if (injFil != 0){
	retfscf=fscanf(injFil,"%d",&polDeg);
	while (!feof(injFil)){
	  retfscf=fscanf(injFil,"%d %u ",&evNumb,&timeStamp);
	  if(evNumb==-99){
	    statusInj=timeStamp;
	  }else{
	    if(feof(injFil)) break;
	    for(Int_t ic=0;ic<4;ic++){ 
	      retfscf=fscanf(injFil,"%f ",&auxP);
	      fPoly->SetParameter(ic,auxP);
	    }	  
	  }
	  if(firstEvent==kTRUE && polDeg>0){
	    firstEvent=kFALSE;
	    for(Int_t ian=0; ian<256; ian+=8){
	      gdrsp[sideId]->SetPoint(gdrsp[sideId]->GetN(),(Float_t)ian,fPoly->Eval(ian));
	    }
	  }
	}
	fclose(injFil);	
      }
      if(gdrsp[sideId]->GetN()==0) gdrsp[sideId]->SetPoint(0,128.,0.);
    }
  }
  delete fPoly;

  TCanvas* c0=new TCanvas("c0","Drift Speed Vs. Anode",1300,900);
  c0->Divide(6,4);
  for(Int_t i=0; i<24;i++){
    c0->cd(i+1);
    gdrsp[i]->Draw("APL");
    gdrsp[i]->GetXaxis()->SetTitle("Anode");
    gdrsp[i]->GetYaxis()->SetTitle("Drift Speed (#mum/ns)");
    gdrsp[i]->GetYaxis()->SetTitleOffset(1.35);
  }

}

void CheckCalibInterface::ShowSingleModule(Int_t iddl, Int_t ichan){
  //
  ClearAll();
  TString inpFileName1,inpFileName2,inpFileName3;
  Int_t retfscf;
  Float_t baseline,rawnoise,cmn,corn,gain;
  Int_t isgoodan,i,basmin,basoff;
  Int_t th,tl;
  Int_t iii,jjj,kkk;
  Int_t evNumb,polDeg; 
  UInt_t timeStamp,statusInj;
  Float_t auxP;
  TF1* fPoly=new TF1("fPoly","pol3",0.,256.);

  TGraph* gbasel=new TGraph(0);
  TGraph* gbaser=new TGraph(0);
  TGraph* grawnl=new TGraph(0);
  TGraph* grawnr=new TGraph(0);
  TGraph* gcornl=new TGraph(0);
  TGraph* gcornr=new TGraph(0);
  TGraph* ggainl=new TGraph(0);
  TGraph* ggainr=new TGraph(0);
  TGraph* gstpdl=new TGraph(0);
  TGraph* gstpdr=new TGraph(0);
  TGraph* gstpul=new TGraph(0);
  TGraph* gstpur=new TGraph(0);
  TGraph* gdrspl=new TGraph(0);
  TGraph* gdrspr=new TGraph(0);
  gbasel->SetTitle("Baseline Left");
  gbaser->SetTitle("Baseline Right");
  grawnl->SetTitle("Noise Left");
  grawnr->SetTitle("Noise Right");
  gcornl->SetTitle("Noise Left");
  gcornr->SetTitle("Noise Right");
  ggainl->SetTitle("Gain Left");
  ggainr->SetTitle("Gain Right");
  gstpdl->SetTitle("Status Left");
  gstpdr->SetTitle("Status Right");
  gstpul->SetTitle("Status Left");
  gstpur->SetTitle("Status Right");
  gdrspl->SetTitle("Drift Speed Left");
  gdrspr->SetTitle("Drift Speed Right");

  for(Int_t isid=0;isid<2;isid++){
    inpFileName1.Form("./calibFiles/SDDbase_step2_ddl%02dc%02d_sid%d.data",iddl,ichan,isid);
    inpFileName2.Form("./calibFiles/SDDbase_ddl%02dc%02d_sid%d.data",iddl,ichan,isid);
    inpFileName3.Form("./calibFiles/SDDinj_ddl%02dc%02d_sid%d.data",iddl,ichan,isid);
  
  
    FILE* basFil = fopen(inpFileName1.Data(),"read");
    if (basFil != 0){
      retfscf=fscanf(basFil,"%d\n",&th);
      retfscf=fscanf(basFil,"%d\n",&tl);
      if(th==255 && tl==20) continue;
      for(Int_t ian=0;ian<256;ian++){
	retfscf=fscanf(basFil,"%d %d %f %d %d %f %f %f\n",&i,&isgoodan,&baseline,&basmin,&basoff,&rawnoise,&cmn,&corn);
	if(isid==0){
	  gbasel->SetPoint(gbasel->GetN(),(Float_t)i,baseline);
	  grawnl->SetPoint(grawnl->GetN(),(Float_t)i,rawnoise);
	  gcornl->SetPoint(gcornl->GetN(),(Float_t)i,corn);
	  gstpdl->SetPoint(gstpdl->GetN(),(Float_t)i,(Float_t)isgoodan);
	}else{
	  gbaser->SetPoint(gbaser->GetN(),(Float_t)i,baseline);
	  grawnr->SetPoint(grawnr->GetN(),(Float_t)i,rawnoise);
	  gcornr->SetPoint(gcornr->GetN(),(Float_t)i,corn);
	  gstpdr->SetPoint(gstpdr->GetN(),(Float_t)i,(Float_t)isgoodan);
	}
      }
      fclose(basFil);
    }
	
    FILE* pulFil = fopen(inpFileName2.Data(),"read");
    if (pulFil != 0){
      retfscf=fscanf(pulFil,"%d %d %d\n",&iii,&jjj,&kkk);
      retfscf=fscanf(pulFil,"%d\n",&th);
      retfscf=fscanf(pulFil,"%d\n",&tl);
      if(th==255 && tl==20) continue;
      for(Int_t ian=0;ian<256;ian++){
	retfscf=fscanf(pulFil,"%d %d %f %d %d %f %f %f %f\n",&i,&isgoodan,&baseline,&basmin,&basoff,&rawnoise,&cmn,&corn,&gain);
	if(isid==0){
	  ggainl->SetPoint(ggainl->GetN(),(Float_t)i,gain);
	  gstpul->SetPoint(gstpul->GetN(),(Float_t)i,(Float_t)isgoodan);
	}else{
	  ggainr->SetPoint(ggainr->GetN(),(Float_t)i,gain);
	  gstpur->SetPoint(gstpur->GetN(),(Float_t)i,(Float_t)isgoodan);
	}
      }
      fclose(pulFil);
    }
    
    FILE* injFil = fopen(inpFileName3.Data(),"read");
    Bool_t firstEvent=kTRUE;
    if (injFil != 0){
      retfscf=fscanf(injFil,"%d",&polDeg);
      while (!feof(injFil)){
	retfscf=fscanf(injFil,"%d %u ",&evNumb,&timeStamp);
	if(evNumb==-99){
	  statusInj=timeStamp;
	}else{
	  if(feof(injFil)) break;
	  for(Int_t ic=0;ic<4;ic++){ 
	    retfscf=fscanf(injFil,"%f ",&auxP);
	    fPoly->SetParameter(ic,auxP);
	  }	  
	}
	if(firstEvent==kTRUE && polDeg>0){
	  firstEvent=kFALSE;
	  for(Int_t ian=0; ian<256; ian+=8){
	    if(isid==0) gdrspl->SetPoint(gdrspl->GetN(),(Float_t)ian,fPoly->Eval(ian));
	    else gdrspr->SetPoint(gdrspr->GetN(),(Float_t)ian,fPoly->Eval(ian));
	    
	  }
	}
      }
    }
  }


  TCanvas * c0=new TCanvas("c0","Baselines",900,600);
  c0->Divide(2,1);
  c0->cd(1);
  gPad->SetLeftMargin(0.14);
  gbasel->SetMarkerStyle(7);
  gbasel->Draw("AP");
  gbasel->GetXaxis()->SetTitle("Anode");
  gbasel->GetYaxis()->SetTitle("Baseline (ADC)");
  gbasel->GetYaxis()->SetTitleOffset(1.35);
  c0->cd(2);
  gPad->SetLeftMargin(0.14);
  gbaser->SetMarkerStyle(7);
  gbaser->Draw("AP");
  gbaser->GetXaxis()->SetTitle("Anode");
  gbaser->GetYaxis()->SetTitle("Baseline (ADC)");
  gbaser->GetYaxis()->SetTitleOffset(1.35);

  TCanvas * c1=new TCanvas("c1","Noise",900,600);
  c1->Divide(2,1);
  c1->cd(1);
  gPad->SetLeftMargin(0.14);
  TLatex* t1=new TLatex(0.6,0.8,"Raw");
  t1->SetNDC();
  TLatex* t2=new TLatex(0.6,0.75,"Corrected");
  t2->SetTextColor(2);
  t2->SetNDC();
  grawnl->SetMarkerStyle(7);
  grawnl->Draw("AP");
  grawnl->GetXaxis()->SetTitle("Anode");
  grawnl->GetYaxis()->SetTitle("Noise (ADC)");
  grawnl->GetYaxis()->SetTitleOffset(1.35);
  gcornl->SetMarkerStyle(7);
  gcornl->SetMarkerColor(2);
  gcornl->Draw("SAMEP");
  t1->Draw();
  t2->Draw();
  c1->cd(2);
  gPad->SetLeftMargin(0.14);
  grawnr->SetMarkerStyle(7);
  grawnr->Draw("AP");
  grawnr->GetXaxis()->SetTitle("Anode");
  grawnr->GetYaxis()->SetTitle("Noise (ADC)");
  grawnr->GetYaxis()->SetTitleOffset(1.35);
  gcornr->SetMarkerStyle(7);
  gcornr->SetMarkerColor(2);
  gcornr->Draw("SAMEP");
  t1->Draw();
  t2->Draw();
 
  TCanvas * c2=new TCanvas("c2","Gain",900,600);
  c2->Divide(2,1);
  c2->cd(1);
  gPad->SetLeftMargin(0.14);
  ggainl->SetMarkerStyle(7);
  ggainl->Draw("AP");
  ggainl->GetXaxis()->SetTitle("Anode");
  ggainl->GetYaxis()->SetTitle("Gain (ADC/DAC)");
  ggainl->GetYaxis()->SetTitleOffset(1.35);
  c2->cd(2);
  gPad->SetLeftMargin(0.14);
  ggainr->SetMarkerStyle(7);
  ggainr->Draw("AP");
  ggainr->GetXaxis()->SetTitle("Anode");
  ggainr->GetYaxis()->SetTitle("Gain (ADC/DAC)");
  ggainr->GetYaxis()->SetTitleOffset(1.35);

  TCanvas * c3=new TCanvas("c3","Anode Status",900,600);
  c3->Divide(2,1);
  c3->cd(1);
  gPad->SetLeftMargin(0.14);
  TLatex* t3=new TLatex(0.6,0.85,"Pedestal");
  t3->SetNDC();
  TLatex* t4=new TLatex(0.6,0.8,"Pulser");
  t4->SetTextColor(4);
  t4->SetNDC();
  gstpdl->SetMarkerStyle(7);
  gstpdl->Draw("AP");
  gstpdl->SetMinimum(-0.001);
  gstpdl->SetMaximum(1.2);
  gstpdl->GetXaxis()->SetTitle("Anode");
  gstpdl->GetYaxis()->SetTitle("Status (1=OK, 0=BAD)");
  gstpdl->GetYaxis()->SetTitleOffset(1.35);
  gstpul->SetMarkerStyle(7);
  gstpul->SetMarkerColor(4);
  gstpul->Draw("SAMEP");
  t3->Draw();
  t4->Draw();
  c3->cd(2);
  gPad->SetLeftMargin(0.14);
  gstpdr->SetMarkerStyle(7);
  gstpdr->Draw("AP");
  gstpdr->SetMinimum(-0.001);
  gstpdr->SetMaximum(1.2);
  gstpdr->GetXaxis()->SetTitle("Anode");
  gstpdr->GetYaxis()->SetTitle("Status (1=OK, 0=BAD)");
  gstpdr->GetYaxis()->SetTitleOffset(1.35);
  gstpur->SetMarkerStyle(7);
  gstpur->SetMarkerColor(4);
  gstpur->Draw("SAMEP");
  t3->Draw();
  t4->Draw();

  TCanvas * c4=new TCanvas("c4","Drift Speed",900,600);
  c4->Divide(2,1);
  c4->cd(1);
  gPad->SetLeftMargin(0.14);
  gdrspl->SetMarkerStyle(7);
  gdrspl->Draw("APL");
  gdrspl->GetXaxis()->SetTitle("Anode");
  gdrspl->GetYaxis()->SetTitle("Drift Speed (#mum/ns)");
  gdrspl->GetYaxis()->SetTitleOffset(1.35);
  c4->cd(2);
  gPad->SetLeftMargin(0.14);
  gdrspr->SetMarkerStyle(7);
  gdrspr->Draw("APL");
  gdrspr->GetXaxis()->SetTitle("Anode");
  gdrspr->GetYaxis()->SetTitle("Drift Speed (#mum/ns)");
  gdrspr->GetYaxis()->SetTitleOffset(1.35);

  return;
}

void CheckCalibInterface::DoSetlabel()
{
   // Slot method connected to the ValueSet(Long_t) signal.
   // It displays the value set in TGNumberEntry widget.
  fNumDDL=fDDL->GetNumberEntry()->GetIntNumber();
  fNumChannel=fChannel->GetNumberEntry()->GetIntNumber();
  fShowOneMod->SetCommand(Form("CheckCalibInterface::ShowSingleModule(%d,%d)",
			       fNumDDL,fNumChannel));
  fShowDDL->SetCommand(Form("CheckCalibInterface::ShowDDL(%d)",
			       fNumDDL));
}

void CheckCalibInterface::ClearAll(){

  gROOT->Clear();
  if(gROOT->FindObject("c0")) delete gROOT->FindObject("c0");
  if(gROOT->FindObject("c1")) delete gROOT->FindObject("c1");
  if(gROOT->FindObject("c2")) delete gROOT->FindObject("c2");
  if(gROOT->FindObject("c3")) delete gROOT->FindObject("c3");
  if(gROOT->FindObject("c4")) delete gROOT->FindObject("c4");
  if(gROOT->FindObject("hbadchan")) delete gROOT->FindObject("hbadchan");
  if(gROOT->FindObject("hrawnoisemod")) delete gROOT->FindObject("hrawnoisemod");
  if(gROOT->FindObject("hrawnoise")) delete gROOT->FindObject("hrawnoise");
  if(gROOT->FindObject("hcornoisemod")) delete gROOT->FindObject("hcornoisemod");
  if(gROOT->FindObject("hcornoise")) delete gROOT->FindObject("hcornoise");
  if(gROOT->FindObject("hbasemod")) delete gROOT->FindObject("hbasemod");
  if(gROOT->FindObject("hbase")) delete gROOT->FindObject("hbase");
  if(gROOT->FindObject("hgainmod")) delete gROOT->FindObject("hgainmod");
  if(gROOT->FindObject("hgain")) delete gROOT->FindObject("hgainnoise");

}

void CheckCalibs()
{
   new CheckCalibInterface(gClient->GetRoot(), 600, 400); 
}
 CheckCalibs.C:1
 CheckCalibs.C:2
 CheckCalibs.C:3
 CheckCalibs.C:4
 CheckCalibs.C:5
 CheckCalibs.C:6
 CheckCalibs.C:7
 CheckCalibs.C:8
 CheckCalibs.C:9
 CheckCalibs.C:10
 CheckCalibs.C:11
 CheckCalibs.C:12
 CheckCalibs.C:13
 CheckCalibs.C:14
 CheckCalibs.C:15
 CheckCalibs.C:16
 CheckCalibs.C:17
 CheckCalibs.C:18
 CheckCalibs.C:19
 CheckCalibs.C:20
 CheckCalibs.C:21
 CheckCalibs.C:22
 CheckCalibs.C:23
 CheckCalibs.C:24
 CheckCalibs.C:25
 CheckCalibs.C:26
 CheckCalibs.C:27
 CheckCalibs.C:28
 CheckCalibs.C:29
 CheckCalibs.C:30
 CheckCalibs.C:31
 CheckCalibs.C:32
 CheckCalibs.C:33
 CheckCalibs.C:34
 CheckCalibs.C:35
 CheckCalibs.C:36
 CheckCalibs.C:37
 CheckCalibs.C:38
 CheckCalibs.C:39
 CheckCalibs.C:40
 CheckCalibs.C:41
 CheckCalibs.C:42
 CheckCalibs.C:43
 CheckCalibs.C:44
 CheckCalibs.C:45
 CheckCalibs.C:46
 CheckCalibs.C:47
 CheckCalibs.C:48
 CheckCalibs.C:49
 CheckCalibs.C:50
 CheckCalibs.C:51
 CheckCalibs.C:52
 CheckCalibs.C:53
 CheckCalibs.C:54
 CheckCalibs.C:55
 CheckCalibs.C:56
 CheckCalibs.C:57
 CheckCalibs.C:58
 CheckCalibs.C:59
 CheckCalibs.C:60
 CheckCalibs.C:61
 CheckCalibs.C:62
 CheckCalibs.C:63
 CheckCalibs.C:64
 CheckCalibs.C:65
 CheckCalibs.C:66
 CheckCalibs.C:67
 CheckCalibs.C:68
 CheckCalibs.C:69
 CheckCalibs.C:70
 CheckCalibs.C:71
 CheckCalibs.C:72
 CheckCalibs.C:73
 CheckCalibs.C:74
 CheckCalibs.C:75
 CheckCalibs.C:76
 CheckCalibs.C:77
 CheckCalibs.C:78
 CheckCalibs.C:79
 CheckCalibs.C:80
 CheckCalibs.C:81
 CheckCalibs.C:82
 CheckCalibs.C:83
 CheckCalibs.C:84
 CheckCalibs.C:85
 CheckCalibs.C:86
 CheckCalibs.C:87
 CheckCalibs.C:88
 CheckCalibs.C:89
 CheckCalibs.C:90
 CheckCalibs.C:91
 CheckCalibs.C:92
 CheckCalibs.C:93
 CheckCalibs.C:94
 CheckCalibs.C:95
 CheckCalibs.C:96
 CheckCalibs.C:97
 CheckCalibs.C:98
 CheckCalibs.C:99
 CheckCalibs.C:100
 CheckCalibs.C:101
 CheckCalibs.C:102
 CheckCalibs.C:103
 CheckCalibs.C:104
 CheckCalibs.C:105
 CheckCalibs.C:106
 CheckCalibs.C:107
 CheckCalibs.C:108
 CheckCalibs.C:109
 CheckCalibs.C:110
 CheckCalibs.C:111
 CheckCalibs.C:112
 CheckCalibs.C:113
 CheckCalibs.C:114
 CheckCalibs.C:115
 CheckCalibs.C:116
 CheckCalibs.C:117
 CheckCalibs.C:118
 CheckCalibs.C:119
 CheckCalibs.C:120
 CheckCalibs.C:121
 CheckCalibs.C:122
 CheckCalibs.C:123
 CheckCalibs.C:124
 CheckCalibs.C:125
 CheckCalibs.C:126
 CheckCalibs.C:127
 CheckCalibs.C:128
 CheckCalibs.C:129
 CheckCalibs.C:130
 CheckCalibs.C:131
 CheckCalibs.C:132
 CheckCalibs.C:133
 CheckCalibs.C:134
 CheckCalibs.C:135
 CheckCalibs.C:136
 CheckCalibs.C:137
 CheckCalibs.C:138
 CheckCalibs.C:139
 CheckCalibs.C:140
 CheckCalibs.C:141
 CheckCalibs.C:142
 CheckCalibs.C:143
 CheckCalibs.C:144
 CheckCalibs.C:145
 CheckCalibs.C:146
 CheckCalibs.C:147
 CheckCalibs.C:148
 CheckCalibs.C:149
 CheckCalibs.C:150
 CheckCalibs.C:151
 CheckCalibs.C:152
 CheckCalibs.C:153
 CheckCalibs.C:154
 CheckCalibs.C:155
 CheckCalibs.C:156
 CheckCalibs.C:157
 CheckCalibs.C:158
 CheckCalibs.C:159
 CheckCalibs.C:160
 CheckCalibs.C:161
 CheckCalibs.C:162
 CheckCalibs.C:163
 CheckCalibs.C:164
 CheckCalibs.C:165
 CheckCalibs.C:166
 CheckCalibs.C:167
 CheckCalibs.C:168
 CheckCalibs.C:169
 CheckCalibs.C:170
 CheckCalibs.C:171
 CheckCalibs.C:172
 CheckCalibs.C:173
 CheckCalibs.C:174
 CheckCalibs.C:175
 CheckCalibs.C:176
 CheckCalibs.C:177
 CheckCalibs.C:178
 CheckCalibs.C:179
 CheckCalibs.C:180
 CheckCalibs.C:181
 CheckCalibs.C:182
 CheckCalibs.C:183
 CheckCalibs.C:184
 CheckCalibs.C:185
 CheckCalibs.C:186
 CheckCalibs.C:187
 CheckCalibs.C:188
 CheckCalibs.C:189
 CheckCalibs.C:190
 CheckCalibs.C:191
 CheckCalibs.C:192
 CheckCalibs.C:193
 CheckCalibs.C:194
 CheckCalibs.C:195
 CheckCalibs.C:196
 CheckCalibs.C:197
 CheckCalibs.C:198
 CheckCalibs.C:199
 CheckCalibs.C:200
 CheckCalibs.C:201
 CheckCalibs.C:202
 CheckCalibs.C:203
 CheckCalibs.C:204
 CheckCalibs.C:205
 CheckCalibs.C:206
 CheckCalibs.C:207
 CheckCalibs.C:208
 CheckCalibs.C:209
 CheckCalibs.C:210
 CheckCalibs.C:211
 CheckCalibs.C:212
 CheckCalibs.C:213
 CheckCalibs.C:214
 CheckCalibs.C:215
 CheckCalibs.C:216
 CheckCalibs.C:217
 CheckCalibs.C:218
 CheckCalibs.C:219
 CheckCalibs.C:220
 CheckCalibs.C:221
 CheckCalibs.C:222
 CheckCalibs.C:223
 CheckCalibs.C:224
 CheckCalibs.C:225
 CheckCalibs.C:226
 CheckCalibs.C:227
 CheckCalibs.C:228
 CheckCalibs.C:229
 CheckCalibs.C:230
 CheckCalibs.C:231
 CheckCalibs.C:232
 CheckCalibs.C:233
 CheckCalibs.C:234
 CheckCalibs.C:235
 CheckCalibs.C:236
 CheckCalibs.C:237
 CheckCalibs.C:238
 CheckCalibs.C:239
 CheckCalibs.C:240
 CheckCalibs.C:241
 CheckCalibs.C:242
 CheckCalibs.C:243
 CheckCalibs.C:244
 CheckCalibs.C:245
 CheckCalibs.C:246
 CheckCalibs.C:247
 CheckCalibs.C:248
 CheckCalibs.C:249
 CheckCalibs.C:250
 CheckCalibs.C:251
 CheckCalibs.C:252
 CheckCalibs.C:253
 CheckCalibs.C:254
 CheckCalibs.C:255
 CheckCalibs.C:256
 CheckCalibs.C:257
 CheckCalibs.C:258
 CheckCalibs.C:259
 CheckCalibs.C:260
 CheckCalibs.C:261
 CheckCalibs.C:262
 CheckCalibs.C:263
 CheckCalibs.C:264
 CheckCalibs.C:265
 CheckCalibs.C:266
 CheckCalibs.C:267
 CheckCalibs.C:268
 CheckCalibs.C:269
 CheckCalibs.C:270
 CheckCalibs.C:271
 CheckCalibs.C:272
 CheckCalibs.C:273
 CheckCalibs.C:274
 CheckCalibs.C:275
 CheckCalibs.C:276
 CheckCalibs.C:277
 CheckCalibs.C:278
 CheckCalibs.C:279
 CheckCalibs.C:280
 CheckCalibs.C:281
 CheckCalibs.C:282
 CheckCalibs.C:283
 CheckCalibs.C:284
 CheckCalibs.C:285
 CheckCalibs.C:286
 CheckCalibs.C:287
 CheckCalibs.C:288
 CheckCalibs.C:289
 CheckCalibs.C:290
 CheckCalibs.C:291
 CheckCalibs.C:292
 CheckCalibs.C:293
 CheckCalibs.C:294
 CheckCalibs.C:295
 CheckCalibs.C:296
 CheckCalibs.C:297
 CheckCalibs.C:298
 CheckCalibs.C:299
 CheckCalibs.C:300
 CheckCalibs.C:301
 CheckCalibs.C:302
 CheckCalibs.C:303
 CheckCalibs.C:304
 CheckCalibs.C:305
 CheckCalibs.C:306
 CheckCalibs.C:307
 CheckCalibs.C:308
 CheckCalibs.C:309
 CheckCalibs.C:310
 CheckCalibs.C:311
 CheckCalibs.C:312
 CheckCalibs.C:313
 CheckCalibs.C:314
 CheckCalibs.C:315
 CheckCalibs.C:316
 CheckCalibs.C:317
 CheckCalibs.C:318
 CheckCalibs.C:319
 CheckCalibs.C:320
 CheckCalibs.C:321
 CheckCalibs.C:322
 CheckCalibs.C:323
 CheckCalibs.C:324
 CheckCalibs.C:325
 CheckCalibs.C:326
 CheckCalibs.C:327
 CheckCalibs.C:328
 CheckCalibs.C:329
 CheckCalibs.C:330
 CheckCalibs.C:331
 CheckCalibs.C:332
 CheckCalibs.C:333
 CheckCalibs.C:334
 CheckCalibs.C:335
 CheckCalibs.C:336
 CheckCalibs.C:337
 CheckCalibs.C:338
 CheckCalibs.C:339
 CheckCalibs.C:340
 CheckCalibs.C:341
 CheckCalibs.C:342
 CheckCalibs.C:343
 CheckCalibs.C:344
 CheckCalibs.C:345
 CheckCalibs.C:346
 CheckCalibs.C:347
 CheckCalibs.C:348
 CheckCalibs.C:349
 CheckCalibs.C:350
 CheckCalibs.C:351
 CheckCalibs.C:352
 CheckCalibs.C:353
 CheckCalibs.C:354
 CheckCalibs.C:355
 CheckCalibs.C:356
 CheckCalibs.C:357
 CheckCalibs.C:358
 CheckCalibs.C:359
 CheckCalibs.C:360
 CheckCalibs.C:361
 CheckCalibs.C:362
 CheckCalibs.C:363
 CheckCalibs.C:364
 CheckCalibs.C:365
 CheckCalibs.C:366
 CheckCalibs.C:367
 CheckCalibs.C:368
 CheckCalibs.C:369
 CheckCalibs.C:370
 CheckCalibs.C:371
 CheckCalibs.C:372
 CheckCalibs.C:373
 CheckCalibs.C:374
 CheckCalibs.C:375
 CheckCalibs.C:376
 CheckCalibs.C:377
 CheckCalibs.C:378
 CheckCalibs.C:379
 CheckCalibs.C:380
 CheckCalibs.C:381
 CheckCalibs.C:382
 CheckCalibs.C:383
 CheckCalibs.C:384
 CheckCalibs.C:385
 CheckCalibs.C:386
 CheckCalibs.C:387
 CheckCalibs.C:388
 CheckCalibs.C:389
 CheckCalibs.C:390
 CheckCalibs.C:391
 CheckCalibs.C:392
 CheckCalibs.C:393
 CheckCalibs.C:394
 CheckCalibs.C:395
 CheckCalibs.C:396
 CheckCalibs.C:397
 CheckCalibs.C:398
 CheckCalibs.C:399
 CheckCalibs.C:400
 CheckCalibs.C:401
 CheckCalibs.C:402
 CheckCalibs.C:403
 CheckCalibs.C:404
 CheckCalibs.C:405
 CheckCalibs.C:406
 CheckCalibs.C:407
 CheckCalibs.C:408
 CheckCalibs.C:409
 CheckCalibs.C:410
 CheckCalibs.C:411
 CheckCalibs.C:412
 CheckCalibs.C:413
 CheckCalibs.C:414
 CheckCalibs.C:415
 CheckCalibs.C:416
 CheckCalibs.C:417
 CheckCalibs.C:418
 CheckCalibs.C:419
 CheckCalibs.C:420
 CheckCalibs.C:421
 CheckCalibs.C:422
 CheckCalibs.C:423
 CheckCalibs.C:424
 CheckCalibs.C:425
 CheckCalibs.C:426
 CheckCalibs.C:427
 CheckCalibs.C:428
 CheckCalibs.C:429
 CheckCalibs.C:430
 CheckCalibs.C:431
 CheckCalibs.C:432
 CheckCalibs.C:433
 CheckCalibs.C:434
 CheckCalibs.C:435
 CheckCalibs.C:436
 CheckCalibs.C:437
 CheckCalibs.C:438
 CheckCalibs.C:439
 CheckCalibs.C:440
 CheckCalibs.C:441
 CheckCalibs.C:442
 CheckCalibs.C:443
 CheckCalibs.C:444
 CheckCalibs.C:445
 CheckCalibs.C:446
 CheckCalibs.C:447
 CheckCalibs.C:448
 CheckCalibs.C:449
 CheckCalibs.C:450
 CheckCalibs.C:451
 CheckCalibs.C:452
 CheckCalibs.C:453
 CheckCalibs.C:454
 CheckCalibs.C:455
 CheckCalibs.C:456
 CheckCalibs.C:457
 CheckCalibs.C:458
 CheckCalibs.C:459
 CheckCalibs.C:460
 CheckCalibs.C:461
 CheckCalibs.C:462
 CheckCalibs.C:463
 CheckCalibs.C:464
 CheckCalibs.C:465
 CheckCalibs.C:466
 CheckCalibs.C:467
 CheckCalibs.C:468
 CheckCalibs.C:469
 CheckCalibs.C:470
 CheckCalibs.C:471
 CheckCalibs.C:472
 CheckCalibs.C:473
 CheckCalibs.C:474
 CheckCalibs.C:475
 CheckCalibs.C:476
 CheckCalibs.C:477
 CheckCalibs.C:478
 CheckCalibs.C:479
 CheckCalibs.C:480
 CheckCalibs.C:481
 CheckCalibs.C:482
 CheckCalibs.C:483
 CheckCalibs.C:484
 CheckCalibs.C:485
 CheckCalibs.C:486
 CheckCalibs.C:487
 CheckCalibs.C:488
 CheckCalibs.C:489
 CheckCalibs.C:490
 CheckCalibs.C:491
 CheckCalibs.C:492
 CheckCalibs.C:493
 CheckCalibs.C:494
 CheckCalibs.C:495
 CheckCalibs.C:496
 CheckCalibs.C:497
 CheckCalibs.C:498
 CheckCalibs.C:499
 CheckCalibs.C:500
 CheckCalibs.C:501
 CheckCalibs.C:502
 CheckCalibs.C:503
 CheckCalibs.C:504
 CheckCalibs.C:505
 CheckCalibs.C:506
 CheckCalibs.C:507
 CheckCalibs.C:508
 CheckCalibs.C:509
 CheckCalibs.C:510
 CheckCalibs.C:511
 CheckCalibs.C:512
 CheckCalibs.C:513
 CheckCalibs.C:514
 CheckCalibs.C:515
 CheckCalibs.C:516
 CheckCalibs.C:517
 CheckCalibs.C:518
 CheckCalibs.C:519
 CheckCalibs.C:520
 CheckCalibs.C:521
 CheckCalibs.C:522
 CheckCalibs.C:523
 CheckCalibs.C:524
 CheckCalibs.C:525
 CheckCalibs.C:526
 CheckCalibs.C:527
 CheckCalibs.C:528
 CheckCalibs.C:529
 CheckCalibs.C:530
 CheckCalibs.C:531
 CheckCalibs.C:532
 CheckCalibs.C:533
 CheckCalibs.C:534
 CheckCalibs.C:535
 CheckCalibs.C:536
 CheckCalibs.C:537
 CheckCalibs.C:538
 CheckCalibs.C:539
 CheckCalibs.C:540
 CheckCalibs.C:541
 CheckCalibs.C:542
 CheckCalibs.C:543
 CheckCalibs.C:544
 CheckCalibs.C:545
 CheckCalibs.C:546
 CheckCalibs.C:547
 CheckCalibs.C:548
 CheckCalibs.C:549
 CheckCalibs.C:550
 CheckCalibs.C:551
 CheckCalibs.C:552
 CheckCalibs.C:553
 CheckCalibs.C:554
 CheckCalibs.C:555
 CheckCalibs.C:556
 CheckCalibs.C:557
 CheckCalibs.C:558
 CheckCalibs.C:559
 CheckCalibs.C:560
 CheckCalibs.C:561
 CheckCalibs.C:562
 CheckCalibs.C:563
 CheckCalibs.C:564
 CheckCalibs.C:565
 CheckCalibs.C:566
 CheckCalibs.C:567
 CheckCalibs.C:568
 CheckCalibs.C:569
 CheckCalibs.C:570
 CheckCalibs.C:571
 CheckCalibs.C:572
 CheckCalibs.C:573
 CheckCalibs.C:574
 CheckCalibs.C:575
 CheckCalibs.C:576
 CheckCalibs.C:577
 CheckCalibs.C:578
 CheckCalibs.C:579
 CheckCalibs.C:580
 CheckCalibs.C:581
 CheckCalibs.C:582
 CheckCalibs.C:583
 CheckCalibs.C:584
 CheckCalibs.C:585
 CheckCalibs.C:586
 CheckCalibs.C:587
 CheckCalibs.C:588
 CheckCalibs.C:589
 CheckCalibs.C:590
 CheckCalibs.C:591
 CheckCalibs.C:592
 CheckCalibs.C:593
 CheckCalibs.C:594
 CheckCalibs.C:595
 CheckCalibs.C:596
 CheckCalibs.C:597
 CheckCalibs.C:598
 CheckCalibs.C:599
 CheckCalibs.C:600
 CheckCalibs.C:601
 CheckCalibs.C:602
 CheckCalibs.C:603
 CheckCalibs.C:604
 CheckCalibs.C:605
 CheckCalibs.C:606
 CheckCalibs.C:607
 CheckCalibs.C:608
 CheckCalibs.C:609
 CheckCalibs.C:610
 CheckCalibs.C:611
 CheckCalibs.C:612
 CheckCalibs.C:613
 CheckCalibs.C:614
 CheckCalibs.C:615
 CheckCalibs.C:616
 CheckCalibs.C:617
 CheckCalibs.C:618
 CheckCalibs.C:619
 CheckCalibs.C:620
 CheckCalibs.C:621
 CheckCalibs.C:622
 CheckCalibs.C:623
 CheckCalibs.C:624
 CheckCalibs.C:625
 CheckCalibs.C:626
 CheckCalibs.C:627
 CheckCalibs.C:628
 CheckCalibs.C:629
 CheckCalibs.C:630
 CheckCalibs.C:631
 CheckCalibs.C:632
 CheckCalibs.C:633
 CheckCalibs.C:634
 CheckCalibs.C:635
 CheckCalibs.C:636
 CheckCalibs.C:637
 CheckCalibs.C:638
 CheckCalibs.C:639
 CheckCalibs.C:640
 CheckCalibs.C:641
 CheckCalibs.C:642
 CheckCalibs.C:643
 CheckCalibs.C:644
 CheckCalibs.C:645
 CheckCalibs.C:646
 CheckCalibs.C:647
 CheckCalibs.C:648
 CheckCalibs.C:649
 CheckCalibs.C:650
 CheckCalibs.C:651
 CheckCalibs.C:652
 CheckCalibs.C:653
 CheckCalibs.C:654
 CheckCalibs.C:655
 CheckCalibs.C:656
 CheckCalibs.C:657
 CheckCalibs.C:658
 CheckCalibs.C:659
 CheckCalibs.C:660
 CheckCalibs.C:661
 CheckCalibs.C:662
 CheckCalibs.C:663
 CheckCalibs.C:664
 CheckCalibs.C:665
 CheckCalibs.C:666
 CheckCalibs.C:667
 CheckCalibs.C:668
 CheckCalibs.C:669
 CheckCalibs.C:670
 CheckCalibs.C:671
 CheckCalibs.C:672
 CheckCalibs.C:673
 CheckCalibs.C:674
 CheckCalibs.C:675
 CheckCalibs.C:676
 CheckCalibs.C:677
 CheckCalibs.C:678
 CheckCalibs.C:679
 CheckCalibs.C:680
 CheckCalibs.C:681
 CheckCalibs.C:682
 CheckCalibs.C:683
 CheckCalibs.C:684
 CheckCalibs.C:685
 CheckCalibs.C:686
 CheckCalibs.C:687
 CheckCalibs.C:688
 CheckCalibs.C:689
 CheckCalibs.C:690
 CheckCalibs.C:691
 CheckCalibs.C:692
 CheckCalibs.C:693
 CheckCalibs.C:694
 CheckCalibs.C:695
 CheckCalibs.C:696
 CheckCalibs.C:697
 CheckCalibs.C:698
 CheckCalibs.C:699
 CheckCalibs.C:700
 CheckCalibs.C:701
 CheckCalibs.C:702
 CheckCalibs.C:703
 CheckCalibs.C:704
 CheckCalibs.C:705
 CheckCalibs.C:706
 CheckCalibs.C:707
 CheckCalibs.C:708
 CheckCalibs.C:709
 CheckCalibs.C:710
 CheckCalibs.C:711
 CheckCalibs.C:712
 CheckCalibs.C:713
 CheckCalibs.C:714
 CheckCalibs.C:715
 CheckCalibs.C:716
 CheckCalibs.C:717
 CheckCalibs.C:718
 CheckCalibs.C:719
 CheckCalibs.C:720
 CheckCalibs.C:721
 CheckCalibs.C:722
 CheckCalibs.C:723
 CheckCalibs.C:724
 CheckCalibs.C:725
 CheckCalibs.C:726
 CheckCalibs.C:727
 CheckCalibs.C:728
 CheckCalibs.C:729
 CheckCalibs.C:730
 CheckCalibs.C:731
 CheckCalibs.C:732
 CheckCalibs.C:733
 CheckCalibs.C:734
 CheckCalibs.C:735
 CheckCalibs.C:736
 CheckCalibs.C:737
 CheckCalibs.C:738
 CheckCalibs.C:739
 CheckCalibs.C:740
 CheckCalibs.C:741
 CheckCalibs.C:742
 CheckCalibs.C:743
 CheckCalibs.C:744
 CheckCalibs.C:745
 CheckCalibs.C:746
 CheckCalibs.C:747
 CheckCalibs.C:748
 CheckCalibs.C:749
 CheckCalibs.C:750
 CheckCalibs.C:751
 CheckCalibs.C:752
 CheckCalibs.C:753
 CheckCalibs.C:754
 CheckCalibs.C:755
 CheckCalibs.C:756
 CheckCalibs.C:757
 CheckCalibs.C:758
 CheckCalibs.C:759
 CheckCalibs.C:760
 CheckCalibs.C:761
 CheckCalibs.C:762
 CheckCalibs.C:763
 CheckCalibs.C:764
 CheckCalibs.C:765
 CheckCalibs.C:766
 CheckCalibs.C:767
 CheckCalibs.C:768
 CheckCalibs.C:769
 CheckCalibs.C:770
 CheckCalibs.C:771
 CheckCalibs.C:772
 CheckCalibs.C:773
 CheckCalibs.C:774
 CheckCalibs.C:775
 CheckCalibs.C:776
 CheckCalibs.C:777
 CheckCalibs.C:778
 CheckCalibs.C:779
 CheckCalibs.C:780
 CheckCalibs.C:781
 CheckCalibs.C:782
 CheckCalibs.C:783
 CheckCalibs.C:784
 CheckCalibs.C:785
 CheckCalibs.C:786
 CheckCalibs.C:787
 CheckCalibs.C:788
 CheckCalibs.C:789
 CheckCalibs.C:790
 CheckCalibs.C:791
 CheckCalibs.C:792
 CheckCalibs.C:793
 CheckCalibs.C:794
 CheckCalibs.C:795
 CheckCalibs.C:796
 CheckCalibs.C:797
 CheckCalibs.C:798
 CheckCalibs.C:799
 CheckCalibs.C:800
 CheckCalibs.C:801
 CheckCalibs.C:802
 CheckCalibs.C:803
 CheckCalibs.C:804
 CheckCalibs.C:805
 CheckCalibs.C:806
 CheckCalibs.C:807
 CheckCalibs.C:808
 CheckCalibs.C:809
 CheckCalibs.C:810
 CheckCalibs.C:811
 CheckCalibs.C:812
 CheckCalibs.C:813
 CheckCalibs.C:814
 CheckCalibs.C:815
 CheckCalibs.C:816
 CheckCalibs.C:817
 CheckCalibs.C:818
 CheckCalibs.C:819
 CheckCalibs.C:820
 CheckCalibs.C:821
 CheckCalibs.C:822
 CheckCalibs.C:823
 CheckCalibs.C:824
 CheckCalibs.C:825
 CheckCalibs.C:826
 CheckCalibs.C:827
 CheckCalibs.C:828
 CheckCalibs.C:829
 CheckCalibs.C:830
 CheckCalibs.C:831
 CheckCalibs.C:832
 CheckCalibs.C:833
 CheckCalibs.C:834
 CheckCalibs.C:835
 CheckCalibs.C:836
 CheckCalibs.C:837
 CheckCalibs.C:838
 CheckCalibs.C:839
 CheckCalibs.C:840
 CheckCalibs.C:841
 CheckCalibs.C:842
 CheckCalibs.C:843
 CheckCalibs.C:844
 CheckCalibs.C:845
 CheckCalibs.C:846
 CheckCalibs.C:847
 CheckCalibs.C:848
 CheckCalibs.C:849
 CheckCalibs.C:850
 CheckCalibs.C:851
 CheckCalibs.C:852
 CheckCalibs.C:853
 CheckCalibs.C:854
 CheckCalibs.C:855
 CheckCalibs.C:856
 CheckCalibs.C:857
 CheckCalibs.C:858
 CheckCalibs.C:859
 CheckCalibs.C:860
 CheckCalibs.C:861
 CheckCalibs.C:862
 CheckCalibs.C:863
 CheckCalibs.C:864
 CheckCalibs.C:865
 CheckCalibs.C:866
 CheckCalibs.C:867
 CheckCalibs.C:868
 CheckCalibs.C:869
 CheckCalibs.C:870
 CheckCalibs.C:871
 CheckCalibs.C:872
 CheckCalibs.C:873
 CheckCalibs.C:874
 CheckCalibs.C:875
 CheckCalibs.C:876
 CheckCalibs.C:877
 CheckCalibs.C:878
 CheckCalibs.C:879
 CheckCalibs.C:880
 CheckCalibs.C:881
 CheckCalibs.C:882
 CheckCalibs.C:883
 CheckCalibs.C:884
 CheckCalibs.C:885
 CheckCalibs.C:886
 CheckCalibs.C:887
 CheckCalibs.C:888
 CheckCalibs.C:889
 CheckCalibs.C:890
 CheckCalibs.C:891
 CheckCalibs.C:892
 CheckCalibs.C:893
 CheckCalibs.C:894
 CheckCalibs.C:895
 CheckCalibs.C:896
 CheckCalibs.C:897
 CheckCalibs.C:898
 CheckCalibs.C:899
 CheckCalibs.C:900
 CheckCalibs.C:901
 CheckCalibs.C:902
 CheckCalibs.C:903
 CheckCalibs.C:904
 CheckCalibs.C:905
 CheckCalibs.C:906
 CheckCalibs.C:907
 CheckCalibs.C:908
 CheckCalibs.C:909
 CheckCalibs.C:910
 CheckCalibs.C:911
 CheckCalibs.C:912
 CheckCalibs.C:913
 CheckCalibs.C:914
 CheckCalibs.C:915
 CheckCalibs.C:916
 CheckCalibs.C:917
 CheckCalibs.C:918
 CheckCalibs.C:919
 CheckCalibs.C:920
 CheckCalibs.C:921
 CheckCalibs.C:922
 CheckCalibs.C:923
 CheckCalibs.C:924
 CheckCalibs.C:925
 CheckCalibs.C:926
 CheckCalibs.C:927
 CheckCalibs.C:928
 CheckCalibs.C:929
 CheckCalibs.C:930
 CheckCalibs.C:931
 CheckCalibs.C:932
 CheckCalibs.C:933
 CheckCalibs.C:934
 CheckCalibs.C:935
 CheckCalibs.C:936
 CheckCalibs.C:937
 CheckCalibs.C:938
 CheckCalibs.C:939
 CheckCalibs.C:940
 CheckCalibs.C:941
 CheckCalibs.C:942
 CheckCalibs.C:943
 CheckCalibs.C:944
 CheckCalibs.C:945
 CheckCalibs.C:946
 CheckCalibs.C:947
 CheckCalibs.C:948
 CheckCalibs.C:949
 CheckCalibs.C:950
 CheckCalibs.C:951
 CheckCalibs.C:952
 CheckCalibs.C:953
 CheckCalibs.C:954
 CheckCalibs.C:955
 CheckCalibs.C:956
 CheckCalibs.C:957
 CheckCalibs.C:958
 CheckCalibs.C:959
 CheckCalibs.C:960
 CheckCalibs.C:961
 CheckCalibs.C:962
 CheckCalibs.C:963
 CheckCalibs.C:964
 CheckCalibs.C:965
 CheckCalibs.C:966
 CheckCalibs.C:967
 CheckCalibs.C:968
 CheckCalibs.C:969
 CheckCalibs.C:970
 CheckCalibs.C:971
 CheckCalibs.C:972
 CheckCalibs.C:973
 CheckCalibs.C:974
 CheckCalibs.C:975
 CheckCalibs.C:976
 CheckCalibs.C:977
 CheckCalibs.C:978
 CheckCalibs.C:979
 CheckCalibs.C:980
 CheckCalibs.C:981
 CheckCalibs.C:982
 CheckCalibs.C:983
 CheckCalibs.C:984
 CheckCalibs.C:985
 CheckCalibs.C:986
 CheckCalibs.C:987
 CheckCalibs.C:988
 CheckCalibs.C:989
 CheckCalibs.C:990
 CheckCalibs.C:991
 CheckCalibs.C:992
 CheckCalibs.C:993
 CheckCalibs.C:994
 CheckCalibs.C:995
 CheckCalibs.C:996
 CheckCalibs.C:997
 CheckCalibs.C:998
 CheckCalibs.C:999
 CheckCalibs.C:1000
 CheckCalibs.C:1001
 CheckCalibs.C:1002
 CheckCalibs.C:1003
 CheckCalibs.C:1004
 CheckCalibs.C:1005
 CheckCalibs.C:1006
 CheckCalibs.C:1007