ROOT logo
/*
  fbellini@cern.ch - last update on 27/02/2014
  Macro to draw the TOF QA trending plots by accessing the std tree.
  To be mainly used with the automatic scripts to fill the QA repository.
  Launch with 
  aliroot -x -b -q "DrawTrendingTOFQA.C" 
  The macro produces one png file for each trending variables
  and a .root file with the histograms
*/
Int_t DrawTrendingTOFQA(TString mergedTrendFile = "trending.root", // trending tree file 
			Bool_t displayAll = kFALSE) //set to kTRUE to display trending for expert plots
{
  //
  //reads merged trending.root file and draws trending plots from tree
  //
  if (!mergedTrendFile) {
    Printf("Cannot open merged trend file with TOF QA");
    return 1;
  }
  
  char  outfilename[200]= "ProductionQA.hist.root";
  TString plotDir(".");
  // TString plotDir(Form("PlotsTrending"));
  // gSystem->Exec(Form("mkdir %s",plotDir.Data()));

  Int_t runNumber=0;
  Double_t avTime=0., peakTime=0., spreadTime=0., peakTimeErr=0., spreadTimeErr=0.,negTimeRatio=0.,
    avRawTime=0., peakRawTime=0., spreadRawTime=0., peakRawTimeErr=0., spreadRawTimeErr=0., 
    avTot=0., peakTot=0.,spreadTot=0.,  peakTotErr=0.,spreadTotErr=0.,
    orphansRatio=0., avL=0., negLratio=0.,
    effPt1=0., effPt2=0., matchEffLinFit1Gev=0.,matchEffLinFit1GevErr=0.;
  Double_t avDiffTime=0.,peakDiffTime=0., spreadDiffTime=0.,peakDiffTimeErr=0., spreadDiffTimeErr=0.,avT0fillRes=0.;
   
  Double_t avT0A=0.,peakT0A=0., spreadT0A=0.,peakT0AErr=0., spreadT0AErr=0.;
  Double_t avT0C=0.,peakT0C=0., spreadT0C=0.,peakT0CErr=0., spreadT0CErr=0.;
  Double_t avT0AC=0.,peakT0AC=0., spreadT0AC=0.,peakT0ACErr=0., spreadT0ACErr=0.;
  Double_t avT0res=0.,peakT0res=0., spreadT0res=0.,peakT0resErr=0., spreadT0resErr=0.;
  Float_t avMulti=0;
  Float_t fractionEventsWHits=0.0;
  Double_t goodChannelRatio=0.0;
  Double_t goodChannelRatioInAcc=0.0;

  
  TFile * fin = TFile::Open(mergedTrendFile.Data());
  TTree * ttree = (TTree*) fin->Get("trending");
  if (!ttree){
    Printf("Invalid trending tree.");
    return 2;
  }
  ttree->SetBranchAddress("run",&runNumber);
  ttree->SetBranchAddress("avMulti",&avMulti);
  ttree->SetBranchAddress("goodChannelsRatio",&goodChannelRatio);   
  ttree->SetBranchAddress("goodChannelsRatioInAcc",&goodChannelRatioInAcc);   
  ttree->SetBranchAddress("avTime",&avTime); //mean time
  ttree->SetBranchAddress("peakTime",&peakTime); //main peak time after fit
  ttree->SetBranchAddress("spreadTime",&spreadTime); //spread of main peak of time after fit
  ttree->SetBranchAddress("peakTimeErr",&peakTimeErr); //main peak time after fit error
  ttree->SetBranchAddress("spreadTimeErr",&spreadTimeErr); //spread of main peak of time after fit error
  ttree->SetBranchAddress("negTimeRatio",&negTimeRatio); //negative time ratio
  ttree->SetBranchAddress("avRawTime",&avRawTime); //mean raw time
  ttree->SetBranchAddress("peakRawTime",&peakRawTime); //mean peak of raw time after fit
  ttree->SetBranchAddress("spreadRawTime",&spreadRawTime); //spread of main peak of raw time after fit
  ttree->SetBranchAddress("peakRawTimeErr",&peakRawTimeErr); //main peak raw  time after fit error
  ttree->SetBranchAddress("spreadRawTimeErr",&spreadRawTimeErr); //spread of  raw main peak of time after fit error
  ttree->SetBranchAddress("avTot",&avTot); //main peak tot
  ttree->SetBranchAddress("peakTot",&peakTot); // main peak of tot after fit
  ttree->SetBranchAddress("spreadTot",&spreadTot); //spread of main peak of tot after fit
  ttree->SetBranchAddress("peakTotErr",&peakTotErr); // main peak of tot after fit
  ttree->SetBranchAddress("spreadTotErr",&spreadTotErr); //spread of main peak of tot after fit
  ttree->SetBranchAddress("orphansRatio",&orphansRatio); //orphans ratio
  ttree->SetBranchAddress("avL",&avL); //mean track length
  ttree->SetBranchAddress("negLratio",&negLratio);//ratio of tracks with track length <350 cm
  ttree->SetBranchAddress("effPt1",&effPt1);//matching eff at 1 GeV/c
  ttree->SetBranchAddress("effPt2",&effPt2); //matching eff at 2 GeV/c
  ttree->SetBranchAddress("matchEffLinFit1Gev",&matchEffLinFit1Gev);//matching eff fit param 
  ttree->SetBranchAddress("matchEffLinFit1GevErr",&matchEffLinFit1GevErr);////matching eff fit param error
  ttree->SetBranchAddress("avPiDiffTime",&avDiffTime); //mean t-texp
  ttree->SetBranchAddress("peakPiDiffTime",&peakDiffTime); //main peak t-texp after fit
  ttree->SetBranchAddress("spreadPiDiffTime",&spreadDiffTime); //spread of main peak t-texp after fit
  ttree->SetBranchAddress("peakPiDiffTimeErr",&peakDiffTimeErr); //main peak t-texp after fit error
  ttree->SetBranchAddress("spreadPiDiffTimeErr",&spreadDiffTimeErr); //spread of main peak of t-texp after fit error
  ttree->SetBranchAddress("avT0A",&avT0A); //main peak t0A
  ttree->SetBranchAddress("peakT0A",&peakT0A); // main peak of t0A after fit
  ttree->SetBranchAddress("spreadT0A",&spreadT0A); //spread of main peak of t0A after fit
  ttree->SetBranchAddress("peakT0AErr",&peakT0AErr); // main peak of t0A after fit
  ttree->SetBranchAddress("spreadT0AErr",&spreadT0AErr); //spread of main peak of t0A after fit
  ttree->SetBranchAddress("avT0C",&avT0C); //main peak t0C
  ttree->SetBranchAddress("peakT0C",&peakT0C); // main peak of t0C after fit
  ttree->SetBranchAddress("spreadT0C",&spreadT0C); //spread of main peak of t0C after fit
  ttree->SetBranchAddress("peakT0CErr",&peakT0CErr); // main peak of t0C after fit
  ttree->SetBranchAddress("spreadT0CErr",&spreadT0CErr); //spread of main peak of t0C after fit
  ttree->SetBranchAddress("avT0AC",&avT0AC); //main peak t0AC
  ttree->SetBranchAddress("peakT0AC",&peakT0AC); // main peak of t0AC after fit
  ttree->SetBranchAddress("spreadT0AC",&spreadT0AC); //spread of main peak of t0AC after fit
  ttree->SetBranchAddress("peakT0ACErr",&peakT0ACErr); // main peak of t0AC after fit
  ttree->SetBranchAddress("spreadT0ACErr",&spreadT0ACErr); //spread of main peak of t0AC after fit
  ttree->SetBranchAddress("avT0res",&avT0res); //main peak t0AC
  ttree->SetBranchAddress("peakT0res",&peakT0res); // main peak of t0AC after fit
  ttree->SetBranchAddress("spreadT0res",&spreadT0res); //spread of main peak of t0AC after fit
  ttree->SetBranchAddress("peakT0resErr",&peakT0resErr); // main peak of t0AC after fit
  ttree->SetBranchAddress("spreadT0resErr",&spreadT0resErr); //spread of main peak of t0AC after fit
  ttree->SetBranchAddress("avT0fillRes",&avT0fillRes); //t0 fill res

  Int_t nRuns=ttree->GetEntries();
  TList lista;
   
  TH1F * hAvMulti=new TH1F("hAvMulti","Average multiplicity of matched tracks <N_{TOF}>;; <N_{TOF}>", nRuns,0., nRuns);//, 600, 0. , 600.);
  hAvMulti->SetDrawOption("E1");
  hAvMulti->SetMarkerStyle(20);
  hAvMulti->SetMarkerColor(kBlue);
	
  TH1F * hAvDiffTimeVsRun=new TH1F("hAvDiffTimeVsRun","Mean t-t_{exp} (no fit);run;<t^{TOF}-t_{exp,#pi}> (ps)",nRuns,0., nRuns);//, 600, 0. , 600.);
  hAvDiffTimeVsRun->SetDrawOption("E1");
  hAvDiffTimeVsRun->SetMarkerStyle(20);
  hAvDiffTimeVsRun->SetMarkerColor(kBlue);
  //   hAvTimeVsRun->GetYaxis()->SetRangeUser(0.0, 50.0);

  TH1F * hPeakDiffTimeVsRun=new TH1F("hPeakDiffTimeVsRun","t-t_{exp} (gaussian fit) ;; <t^{TOF}-t_{exp,#pi}> (ps)",nRuns,0., nRuns);//,600, 0. , 600. );
  hPeakDiffTimeVsRun->SetDrawOption("E1");
  hPeakDiffTimeVsRun->SetMarkerStyle(20);
  hPeakDiffTimeVsRun->SetMarkerColor(kBlue);
   
  TH1F * hSpreadDiffTimeVsRun=new TH1F("hSpreadDiffTimeVsRun","#sigma(t-t_{exp}) (gaussian fit);; #sigma(t^{TOF}-t_{exp,#pi}) (ns)",nRuns,0., nRuns);//, 100, 0. , 100.);
  hSpreadDiffTimeVsRun->SetDrawOption("E1");
  hSpreadDiffTimeVsRun->SetMarkerStyle(20);
  hSpreadDiffTimeVsRun->SetMarkerColor(kBlue);

  TH1F * hAvTimeVsRun=new TH1F("hAvTimeVsRun","<t^{TOF}>;;<t^{TOF}> (ns)",nRuns,0., nRuns);//, 600, 0. , 600.);
  hAvTimeVsRun->SetDrawOption("E1");
  hAvTimeVsRun->SetMarkerStyle(20);
  hAvTimeVsRun->SetMarkerColor(kBlue);
  //   hAvTimeVsRun->GetYaxis()->SetRangeUser(0.0, 50.0);

  TH1F * hPeakTimeVsRun=new TH1F("hPeakTimeVsRun","Peak value of t^{TOF} (landau fit);;t_{peak}^{TOF} (ns)",nRuns,0., nRuns);//,600, 0. , 600. );
  hPeakTimeVsRun->SetDrawOption("E1");
  hPeakTimeVsRun->SetMarkerStyle(20);
  hPeakTimeVsRun->SetMarkerColor(kBlue);
   
  TH1F * hSpreadTimeVsRun=new TH1F("hSpreadTimeVsRun","Spread of t^{TOF} (landau fit);; #sigma(t^{TOF}) (ns)",nRuns,0., nRuns);//, 100, 0. , 100.);
  hSpreadTimeVsRun->SetDrawOption("E1");
  hSpreadTimeVsRun->SetMarkerStyle(20);
  hSpreadTimeVsRun->SetMarkerColor(kBlue);
  
  TH1F * hAvRawTimeVsRun=new TH1F("hAvRawTimeVsRun","Peak value of raw t^{TOF};;<t_{raw}^{TOF}> (ns)",nRuns,0., nRuns);//, 600, 0. , 600.);
  hAvRawTimeVsRun->SetDrawOption("E1");
  hAvRawTimeVsRun->SetMarkerStyle(21);
  hAvRawTimeVsRun->SetMarkerColor(kGreen);

  TH1F * hPeakRawTimeVsRun=new TH1F("hPeakRawTimeVsRun","Peak value of raw t^{TOF} (landau fit);;t_{peak,raw}^{TOF} (ns)",nRuns,0., nRuns);//, 600, 0. , 600.);
  hPeakRawTimeVsRun->SetDrawOption("E1");
  hPeakRawTimeVsRun->SetMarkerStyle(21);
  hPeakRawTimeVsRun->SetMarkerColor(kGreen);

  TH1F * hSpreadRawTimeVsRun=new TH1F("hSpreadRawTimeVsRun","Spread of raw t^{TOF} (landau fit);;#sigma(t_{raw}^{TOF}) (ns)",nRuns,0., nRuns);//, 100, 0. , 100.);
  hSpreadRawTimeVsRun->SetDrawOption("E1");
  hSpreadRawTimeVsRun->SetMarkerStyle(21);
  hSpreadRawTimeVsRun->SetMarkerColor(kGreen);
   
  TH1F * hAvTotVsRun=new TH1F("hAvTotVsRun","<ToT> (no fit);run;<ToT> (ns)",nRuns,0., nRuns);//, 50, 0. , 50.);
  hAvTotVsRun->SetDrawOption("E1");
  hAvTotVsRun->SetMarkerStyle(22);
   
  TH1F * hPeakTotVsRun=new TH1F("hPeakTotVsRun","<ToT> (gaussian fit);;ToT_{peak} (ns)",nRuns,0., nRuns);//, 50, 0. , 50.);
  hPeakTotVsRun->SetDrawOption("E1");
  hPeakTotVsRun->SetMarkerStyle(22);
   
  TH1F * hSpreadTotVsRun=new TH1F("hSpreadTotVsRun","#sigma(ToT) (gaussian fit);#sigma(ToT) (ns)",nRuns,0., nRuns);//, 50, 0. , 50.);
  hSpreadTotVsRun->SetDrawOption("E1");
  hSpreadTotVsRun->SetMarkerStyle(22);
   
  TH1F * hNegTimeRatioVsRun=new TH1F("hNegTimeRatioVsRun","Ratio of tracks with t^{TOF}<12.5 ns; ; ratio of tracks with t^{TOF}<12.5 ns (%)",nRuns, 0., nRuns);//, 100, 0. , 100.);
  hNegTimeRatioVsRun->SetDrawOption("E");

  TH1F * hOrphansRatioVsRun=new TH1F("hOrphansRatioVsRun","Ratio of orphans (hits with ToT=0); ; ratio of orphans (%)",nRuns, 0., nRuns);//, 1000, 0. , 100.);
  hOrphansRatioVsRun->SetDrawOption("E");

  TH1F * hMeanLVsRun=new TH1F("hMeanLVsRun","Average track length;; <L> (cm)",nRuns, 0., nRuns);//, 350, 350. , 700.);
  hMeanLVsRun->SetDrawOption("E");
  TH1F * hNegLRatioVsRun=new TH1F("hNegLRatioVsRun","Ratio of tracks with L<350 cm;; ratio of tracks with L<350 cm (%)",nRuns, 0., nRuns);//, 1000, 0. , 100.);
  hNegLRatioVsRun->SetDrawOption("E");
  TH1F * hMatchEffVsRun=new TH1F("hMatchEffVsRun","#epsilon_{match} (linear fit for p_{T}>1.0 GeV/c);;#epsilon_{match} (p_{T}>1.0 GeV/c)",nRuns, 0., nRuns);//, 100, 0. , 1.);
  hMatchEffVsRun->SetDrawOption("E");
  TH1F * hMatchEffVsRunNormToGoodCh=new TH1F("hMatchEffVsRunNormToGoodCh","#epsilon_{match} normalized to percentage of TOF good channels;;#epsilon_{match}(p_{T}>1.0 GeV/c,|#eta|<0.8)/f_{all good}",nRuns, 0., nRuns);//, 100, 0. , 1.);
  hMatchEffVsRunNormToGoodCh->SetDrawOption("E");
	
  TH1F * hMatchEffVsRunNormToGoodChInAcc=new TH1F("hMatchEffVsRunNormToGoodChInAcc","#epsilon_{match} normalized to TOF good channels in |#eta|<0.8;;#epsilon_{match}(p_{T}>1.0 GeV/c,|#eta|<0.8/f_{good}(|#eta|<0.8)",nRuns, 0., nRuns);//, 100, 0. , 1.);
  hMatchEffVsRunNormToGoodChInAcc->SetDrawOption("E");

  TH1F * hMatchEffVsRun1=new TH1F("hMatchEffVsRun1","#epsilon_{match}(p_{T}=1.0 GeV/c);;#epsilon_{match} (p_{T}=1.0 GeV/c)",nRuns, 0., nRuns);
  hMatchEffVsRun1->SetDrawOption("E");
  TH1F * hPeakT0AVsRun=new TH1F("hPeakT0AVsRun","Peak value of T0A (gaussian fit);;t0A (ps)",nRuns,0., nRuns);
  TH1F * hPeakT0CVsRun=new TH1F("hPeakT0CVsRun","Peak value of T0C (gaussian fit);;t0AC (ps)",nRuns,0., nRuns);
  TH1F * hPeakT0ACVsRun=new TH1F("hPeakT0ACVsRun","Peak value of T0AC (gaussian fit);;t0AC (ps)",nRuns,0., nRuns);
  TH1F * hT0fillResVsRun=new TH1F("hT0fillResVsRun","t0_fill spread;;t0_spread (ps)",nRuns,0., nRuns);
	
  TH1F * hGoodChannelsRatio=new TH1F("hGoodChannelsRatio","Fraction of TOF good channels;;fraction of good channels",nRuns, 0., nRuns);//, 100, 0. , 1.);
  hGoodChannelsRatio->SetDrawOption("E");

  TH1F * hGoodChannelsRatioInAcc=new TH1F("hGoodChannelsRatioInAcc","Fraction of TOF good channels in |#eta|<0.8;;fraction of good channels in |#eta|<0.8",nRuns, 0., nRuns);//, 100, 0. , 1.);
  hGoodChannelsRatioInAcc->SetDrawOption("E");
	
  lista.Add(hAvMulti);
  lista.Add(hAvDiffTimeVsRun);
  lista.Add(hPeakDiffTimeVsRun);
  lista.Add(hSpreadDiffTimeVsRun);
  lista.Add(hAvTimeVsRun);
  lista.Add(hPeakTimeVsRun);
  lista.Add(hSpreadTimeVsRun);
  lista.Add(  hAvRawTimeVsRun);
  lista.Add(  hPeakRawTimeVsRun);
  lista.Add(  hSpreadRawTimeVsRun); 
  lista.Add(  hAvTotVsRun);
  lista.Add(  hPeakTotVsRun);
  lista.Add(  hSpreadTotVsRun);
  lista.Add(  hNegTimeRatioVsRun);
  lista.Add(  hOrphansRatioVsRun);
  lista.Add( hMeanLVsRun);
  lista.Add(  hNegLRatioVsRun);
  lista.Add(  hMatchEffVsRun);
  lista.Add(hMatchEffVsRunNormToGoodCh);
  lista.Add(hMatchEffVsRunNormToGoodChInAcc);
  lista.Add(hPeakT0AVsRun);
  lista.Add(hPeakT0CVsRun);
  lista.Add(hPeakT0ACVsRun);
  lista.Add(hT0fillResVsRun);
  lista.Add(hGoodChannelsRatio);
  lista.Add(hGoodChannelsRatioInAcc);

  char runlabel[6];
   
  for (Int_t irun=0;irun<nRuns;irun++){
    ttree->GetEntry(irun);
    
    sprintf(runlabel,"%i",runNumber);
    
    hAvMulti->SetBinContent(irun+1, avMulti);
    hAvMulti->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hAvDiffTimeVsRun->SetBinContent(irun+1, avDiffTime);
    hAvDiffTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hPeakDiffTimeVsRun->SetBinContent(irun+1,peakDiffTime);
    hPeakDiffTimeVsRun->SetBinError(irun+1,peakDiffTimeErr);
    hPeakDiffTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hSpreadDiffTimeVsRun->SetBinContent(irun+1,spreadDiffTime);
    hSpreadDiffTimeVsRun->SetBinError(irun+1,spreadDiffTimeErr);
    hSpreadDiffTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hAvTimeVsRun->SetBinContent(irun+1, avTime);
    hAvTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hPeakTimeVsRun->SetBinContent(irun+1,peakTime);
    hPeakTimeVsRun->SetBinError(irun+1,peakTimeErr);
    hPeakTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hSpreadTimeVsRun->SetBinContent(irun+1,spreadTime);
    hSpreadTimeVsRun->SetBinError(irun+1,spreadTimeErr);
    hSpreadTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hAvRawTimeVsRun->SetBinContent(irun+1, avRawTime);
    hAvRawTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    
    hPeakRawTimeVsRun->SetBinContent(irun+1,peakRawTime);
    hPeakRawTimeVsRun->SetBinError(irun+1,peakRawTimeErr);
    hPeakRawTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hSpreadRawTimeVsRun->SetBinContent(irun+1,spreadRawTime);
    hSpreadRawTimeVsRun->SetBinError(irun+1,spreadRawTimeErr);
    hSpreadRawTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hAvTotVsRun->SetBinContent(irun+1,avTot);
    hAvTotVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hPeakTotVsRun->SetBinContent(irun+1,peakTot);
    hPeakTotVsRun->SetBinError(irun+1,peakTotErr);
    hPeakTotVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hSpreadTotVsRun->SetBinContent(irun+1,spreadTot);
    hSpreadTotVsRun->SetBinError(irun+1,spreadTotErr);
    hSpreadTotVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    
    hNegTimeRatioVsRun->SetBinContent(irun+1,negTimeRatio);
    hNegTimeRatioVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    
    hOrphansRatioVsRun->SetBinContent(irun+1,orphansRatio);
    hOrphansRatioVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    
    hMeanLVsRun->SetBinContent(irun+1,avL);
    hMeanLVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    
    hNegLRatioVsRun->SetBinContent(irun+1,negLratio);
    hNegLRatioVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hMatchEffVsRun->SetBinContent(irun+1,matchEffLinFit1Gev);
    hMatchEffVsRun->SetBinError(irun+1,matchEffLinFit1GevErr);
    hMatchEffVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    hMatchEffVsRun->SetLineColor(kRed);
    hMatchEffVsRun->SetLineWidth(2);

    if (goodChannelRatio>0)
      hMatchEffVsRunNormToGoodCh->SetBinContent(irun+1,matchEffLinFit1Gev/goodChannelRatio);
    else 
      hMatchEffVsRunNormToGoodCh->SetBinContent(irun+1, 0.0);
    hMatchEffVsRunNormToGoodCh->SetBinError(irun+1,matchEffLinFit1GevErr);
    hMatchEffVsRunNormToGoodCh->GetXaxis()->SetBinLabel(irun+1,runlabel);
    hMatchEffVsRunNormToGoodCh->SetLineColor(kCyan+2);
    hMatchEffVsRunNormToGoodCh->SetLineWidth(2);
     
    hGoodChannelsRatio->SetBinContent(irun+1, goodChannelRatio);
    hGoodChannelsRatio->SetLineColor(kCyan-1);
    hGoodChannelsRatio->SetLineWidth(2);
    hGoodChannelsRatio->GetXaxis()->SetBinLabel(irun+1,runlabel);

    if (goodChannelRatioInAcc>0)
      hMatchEffVsRunNormToGoodChInAcc->SetBinContent(irun+1,matchEffLinFit1Gev/goodChannelRatioInAcc);
    else 
      hMatchEffVsRunNormToGoodChInAcc->SetBinContent(irun+1, 0.0);
    hMatchEffVsRunNormToGoodChInAcc->SetBinError(irun+1,matchEffLinFit1GevErr);
    hMatchEffVsRunNormToGoodChInAcc->GetXaxis()->SetBinLabel(irun+1,runlabel);
    hMatchEffVsRunNormToGoodChInAcc->SetLineColor(kBlue);
    hMatchEffVsRunNormToGoodChInAcc->SetLineWidth(2);

    hGoodChannelsRatioInAcc->SetBinContent(irun+1, goodChannelRatioInAcc);
    hGoodChannelsRatioInAcc->SetLineColor(kBlue+2);
    hGoodChannelsRatioInAcc->SetLineWidth(2);
    hGoodChannelsRatioInAcc->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hPeakT0AVsRun->SetBinContent(irun+1,peakT0A);
    hPeakT0AVsRun->SetBinError(irun+1,spreadT0A);
    hPeakT0AVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hPeakT0CVsRun->SetBinContent(irun+1,peakT0C);
    hPeakT0CVsRun->SetBinError(irun+1,spreadT0C);
    hPeakT0CVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
    
    hPeakT0ACVsRun->SetBinContent(irun+1,peakT0AC);
    hPeakT0ACVsRun->SetBinError(irun+1,spreadT0AC);
    hPeakT0ACVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);

    hT0fillResVsRun->SetBinContent(irun+1,avT0fillRes);
    hT0fillResVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
  }
  
  TFile * fout=new TFile(outfilename,"recreate");
  fout->cd();
  lista.Write();
  fout->Close();
    
  gStyle->SetOptStat(10);

  TCanvas* cPeakDiffTimeVsRun = new TCanvas("cPeakDiffTimeVsRun","cPeakDiffTimeVsRun", 50,50,1050, 550);
  hPeakDiffTimeVsRun->GetYaxis()->SetRangeUser(-50.,50.);
  hPeakDiffTimeVsRun->Draw();
  cPeakDiffTimeVsRun->Print(Form("%s/cPeakDiffTimeVsRun.png",plotDir.Data()));
	
  TCanvas* cSpreadDiffTimeVsRun = new TCanvas("cSpreadDiffTimeVsRun","cSpreadDiffTimeVsRun", 50,50,1050, 550);
  hSpreadDiffTimeVsRun->GetYaxis()->SetRangeUser(200.,400.);
  hSpreadDiffTimeVsRun->Draw();
  cSpreadDiffTimeVsRun->Print(Form("%s/cSpreadDiffTimeVsRun.png",plotDir.Data()));
  
  TCanvas* cMatchEffVsRun = new TCanvas("cMatchEffVsRun","cMatchEffVsRun",50, 50, 1050, 550);
  hMatchEffVsRun->GetYaxis()->SetRangeUser(0.,1.);
  hMatchEffVsRun->Draw();
  cMatchEffVsRun->Print(Form("%s/cMatchEffVsRun.png",plotDir.Data()));
  		
  TCanvas* cMatchEffNormToGoodChInAcc = new TCanvas("cMatchEffNormToGoodChInAcc","cMatchEffNormToGoodChInAcc",50, 50,1050, 550);
  hMatchEffVsRunNormToGoodChInAcc->GetYaxis()->SetRangeUser(0.,1.);
  hMatchEffVsRunNormToGoodChInAcc->Draw();
  cMatchEffNormToGoodChInAcc->Print(Form("%s/cMatchEffNormToGoodChInAcc.png",plotDir.Data()));

  TCanvas* cMatchEffNormToGoodCh = new TCanvas("cMatchEffNormToGoodCh","cMatchEffNormToGoodCh",50, 50,1050, 550);
  hMatchEffVsRunNormToGoodCh->GetYaxis()->SetRangeUser(0.,1.);
  hMatchEffVsRunNormToGoodCh->Draw();
  cMatchEffNormToGoodCh->Print(Form("%s/cMatchEffNormToGoodCh.png",plotDir.Data()));

  TCanvas* cGoodCh = new TCanvas("cGoodCh","cGoodCh",50, 50,1050, 550);
  hGoodChannelsRatio->GetYaxis()->SetRangeUser(0.75,1.);
  hGoodChannelsRatio->Draw();
  cGoodCh->Print(Form("%s/cGoodCh.png",plotDir.Data()));

  TCanvas* cGoodChInAcc = new TCanvas("cGoodChInAcc","cGoodChInAcc",50, 50,1050, 550);
  hGoodChannelsRatioInAcc->GetYaxis()->SetRangeUser(0.75,1.);
  hGoodChannelsRatioInAcc->Draw();
  cGoodChInAcc->Print(Form("%s/cGoodChInAcc.png",plotDir.Data()));

  if (displayAll) {	
    TCanvas* cPeakT0AVsRun = new TCanvas("cPeakT0AVsRun","cPeakT0AVsRun", 50,50,1050, 550);
    hPeakT0AVsRun->Draw();
    cPeakT0AVsRun->Print(Form("%s/cPeakT0AVsRun.png",plotDir.Data()));
  
    TCanvas* cPeakT0CVsRun = new TCanvas("cPeakT0CVsRun","cPeakT0CVsRun", 50,50,1050, 550);
    hPeakT0CVsRun->Draw();
    cPeakT0CVsRun->Print(Form("%s/cPeakT0CVsRun.png",plotDir.Data()));
  
    TCanvas* cPeakT0ACVsRun = new TCanvas("cPeakT0ACVsRun","cPeakT0ACVsRun", 50,50,1050, 550);
    hPeakT0ACVsRun->Draw();
    cPeakT0ACVsRun->Print(Form("%s/cPeakT0ACVsRun.png",plotDir.Data()));
  
    TCanvas* cT0fillResVsRun = new TCanvas("cT0fillResVsRun","cT0fillResVsRun", 50,50,1050, 550);
    hT0fillResVsRun->Draw();
    cT0fillResVsRun->Print(Form("%s/cT0fillResVsRun.png",plotDir.Data()));

    TCanvas* cAvDiffTimeVsRun = new TCanvas("cAvDiffTimeVsRun","cAvDiffTimeVsRun",50,50,1050, 550);
    gPad->SetGridx();
    gPad->SetGridy();
    hAvDiffTimeVsRun->Draw();
    cAvDiffTimeVsRun->Print(Form("%s/cAvDiffTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cAvTimeVsRun = new TCanvas("cAvTimeVsRun","cAvTimeVsRun", 50,50,1050, 550);
    hAvTimeVsRun->Draw();
    cAvTimeVsRun->Print(Form("%s/cAvTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cPeakTimeVsRun = new TCanvas("cPeakTimeVsRun","cPeakTimeVsRun", 50,50,1050, 550);
    hPeakTimeVsRun->Draw();
    cPeakTimeVsRun->Print(Form("%s/cPeakTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cSpreadTimeVsRun = new TCanvas("cSpreadTimeVsRun","cSpreadTimeVsRun", 50,50,1050, 550);
    hSpreadTimeVsRun->Draw();
    cSpreadTimeVsRun->Print(Form("%s/cSpreadTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cAvRawTimeVsRun = new TCanvas("cAvRawTimeVsRun","cAvRawTimeVsRun", 50,50,1050, 550);
    hAvRawTimeVsRun->Draw();
    cAvRawTimeVsRun->Print(Form("%s/cAvRawTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cPeakRawTimeVsRun = new TCanvas("cPeakRawTimeVsRun","cPeakRawTimeVsRun", 50,50,1050, 550);
    hPeakRawTimeVsRun->Draw();
    cPeakRawTimeVsRun->Print(Form("%s/cPeakRawTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cSpreadRawTimeVsRun = new TCanvas("cSpreadRawTimeVsRun","cSpreadRawTimeVsRun", 50,50,1050, 550);
    hSpreadRawTimeVsRun->Draw();
    cSpreadRawTimeVsRun->Print(Form("%s/cSpreadRawTimeVsRun.png",plotDir.Data()));
	  
    TCanvas* cAvTotVsRun = new TCanvas("cAvTotVsRun","cAvTotVsRun", 50,50,1050, 550);
    hAvTotVsRun->Draw();
    cAvTotVsRun->Print(Form("%s/cAvTotVsRun.png",plotDir.Data()));
	  
    TCanvas* cPeakTotVsRun = new TCanvas("cPeakTotVsRun","cPeakTotVsRun", 50,50,1050, 550);
    hPeakTotVsRun->Draw();
    cPeakTotVsRun->Print(Form("%s/cPeakTotVsRun.png",plotDir.Data()));
	  
    TCanvas* cSpreadTotVsRun = new TCanvas("cSpreadTotVsRun","cSpreadTotVsRun", 50,50,1050, 550);
    hSpreadTotVsRun->Draw();
    cSpreadTotVsRun->Print(Form("%s/cSpreadTotVsRun.png",plotDir.Data()));
	  
    TCanvas* cNegTimeRatioVsRun = new TCanvas("cNegTimeRatioVsRun","cNegTimeRatioVsRun", 50,50,1050, 550);
    hNegTimeRatioVsRun->Draw();
    cNegTimeRatioVsRun->Print(Form("%s/cNegTimeRatioVsRun.png",plotDir.Data()));
	  
    TCanvas* cOrphansRatioVsRun = new TCanvas("cOrphansRatioVsRun","cOrphansRatioVsRun", 50,50,1050, 550);
    hOrphansRatioVsRun->Draw();
    cOrphansRatioVsRun->Print(Form("%s/cOrphansRatioVsRun.png",plotDir.Data()));
	  
    TCanvas* cMeanLVsRun = new TCanvas("cMeanLVsRun","cMeanLVsRun", 50,50,1050, 550);
    hMeanLVsRun->Draw();
    cMeanLVsRun->Print(Form("%s/cMeanLVsRun.png",plotDir.Data()));
	  
    TCanvas* cNegLRatioVsRun = new TCanvas("cNegLRatioVsRun","cNegLRatioVsRun", 50,50,1050, 550);
    hNegLRatioVsRun->Draw();
    cNegLRatioVsRun->Print(Form("%s/cNegLRatioVsRun.png",plotDir.Data()));
  }
	
  return 0;
}
 DrawTrendingTOFQA.C:1
 DrawTrendingTOFQA.C:2
 DrawTrendingTOFQA.C:3
 DrawTrendingTOFQA.C:4
 DrawTrendingTOFQA.C:5
 DrawTrendingTOFQA.C:6
 DrawTrendingTOFQA.C:7
 DrawTrendingTOFQA.C:8
 DrawTrendingTOFQA.C:9
 DrawTrendingTOFQA.C:10
 DrawTrendingTOFQA.C:11
 DrawTrendingTOFQA.C:12
 DrawTrendingTOFQA.C:13
 DrawTrendingTOFQA.C:14
 DrawTrendingTOFQA.C:15
 DrawTrendingTOFQA.C:16
 DrawTrendingTOFQA.C:17
 DrawTrendingTOFQA.C:18
 DrawTrendingTOFQA.C:19
 DrawTrendingTOFQA.C:20
 DrawTrendingTOFQA.C:21
 DrawTrendingTOFQA.C:22
 DrawTrendingTOFQA.C:23
 DrawTrendingTOFQA.C:24
 DrawTrendingTOFQA.C:25
 DrawTrendingTOFQA.C:26
 DrawTrendingTOFQA.C:27
 DrawTrendingTOFQA.C:28
 DrawTrendingTOFQA.C:29
 DrawTrendingTOFQA.C:30
 DrawTrendingTOFQA.C:31
 DrawTrendingTOFQA.C:32
 DrawTrendingTOFQA.C:33
 DrawTrendingTOFQA.C:34
 DrawTrendingTOFQA.C:35
 DrawTrendingTOFQA.C:36
 DrawTrendingTOFQA.C:37
 DrawTrendingTOFQA.C:38
 DrawTrendingTOFQA.C:39
 DrawTrendingTOFQA.C:40
 DrawTrendingTOFQA.C:41
 DrawTrendingTOFQA.C:42
 DrawTrendingTOFQA.C:43
 DrawTrendingTOFQA.C:44
 DrawTrendingTOFQA.C:45
 DrawTrendingTOFQA.C:46
 DrawTrendingTOFQA.C:47
 DrawTrendingTOFQA.C:48
 DrawTrendingTOFQA.C:49
 DrawTrendingTOFQA.C:50
 DrawTrendingTOFQA.C:51
 DrawTrendingTOFQA.C:52
 DrawTrendingTOFQA.C:53
 DrawTrendingTOFQA.C:54
 DrawTrendingTOFQA.C:55
 DrawTrendingTOFQA.C:56
 DrawTrendingTOFQA.C:57
 DrawTrendingTOFQA.C:58
 DrawTrendingTOFQA.C:59
 DrawTrendingTOFQA.C:60
 DrawTrendingTOFQA.C:61
 DrawTrendingTOFQA.C:62
 DrawTrendingTOFQA.C:63
 DrawTrendingTOFQA.C:64
 DrawTrendingTOFQA.C:65
 DrawTrendingTOFQA.C:66
 DrawTrendingTOFQA.C:67
 DrawTrendingTOFQA.C:68
 DrawTrendingTOFQA.C:69
 DrawTrendingTOFQA.C:70
 DrawTrendingTOFQA.C:71
 DrawTrendingTOFQA.C:72
 DrawTrendingTOFQA.C:73
 DrawTrendingTOFQA.C:74
 DrawTrendingTOFQA.C:75
 DrawTrendingTOFQA.C:76
 DrawTrendingTOFQA.C:77
 DrawTrendingTOFQA.C:78
 DrawTrendingTOFQA.C:79
 DrawTrendingTOFQA.C:80
 DrawTrendingTOFQA.C:81
 DrawTrendingTOFQA.C:82
 DrawTrendingTOFQA.C:83
 DrawTrendingTOFQA.C:84
 DrawTrendingTOFQA.C:85
 DrawTrendingTOFQA.C:86
 DrawTrendingTOFQA.C:87
 DrawTrendingTOFQA.C:88
 DrawTrendingTOFQA.C:89
 DrawTrendingTOFQA.C:90
 DrawTrendingTOFQA.C:91
 DrawTrendingTOFQA.C:92
 DrawTrendingTOFQA.C:93
 DrawTrendingTOFQA.C:94
 DrawTrendingTOFQA.C:95
 DrawTrendingTOFQA.C:96
 DrawTrendingTOFQA.C:97
 DrawTrendingTOFQA.C:98
 DrawTrendingTOFQA.C:99
 DrawTrendingTOFQA.C:100
 DrawTrendingTOFQA.C:101
 DrawTrendingTOFQA.C:102
 DrawTrendingTOFQA.C:103
 DrawTrendingTOFQA.C:104
 DrawTrendingTOFQA.C:105
 DrawTrendingTOFQA.C:106
 DrawTrendingTOFQA.C:107
 DrawTrendingTOFQA.C:108
 DrawTrendingTOFQA.C:109
 DrawTrendingTOFQA.C:110
 DrawTrendingTOFQA.C:111
 DrawTrendingTOFQA.C:112
 DrawTrendingTOFQA.C:113
 DrawTrendingTOFQA.C:114
 DrawTrendingTOFQA.C:115
 DrawTrendingTOFQA.C:116
 DrawTrendingTOFQA.C:117
 DrawTrendingTOFQA.C:118
 DrawTrendingTOFQA.C:119
 DrawTrendingTOFQA.C:120
 DrawTrendingTOFQA.C:121
 DrawTrendingTOFQA.C:122
 DrawTrendingTOFQA.C:123
 DrawTrendingTOFQA.C:124
 DrawTrendingTOFQA.C:125
 DrawTrendingTOFQA.C:126
 DrawTrendingTOFQA.C:127
 DrawTrendingTOFQA.C:128
 DrawTrendingTOFQA.C:129
 DrawTrendingTOFQA.C:130
 DrawTrendingTOFQA.C:131
 DrawTrendingTOFQA.C:132
 DrawTrendingTOFQA.C:133
 DrawTrendingTOFQA.C:134
 DrawTrendingTOFQA.C:135
 DrawTrendingTOFQA.C:136
 DrawTrendingTOFQA.C:137
 DrawTrendingTOFQA.C:138
 DrawTrendingTOFQA.C:139
 DrawTrendingTOFQA.C:140
 DrawTrendingTOFQA.C:141
 DrawTrendingTOFQA.C:142
 DrawTrendingTOFQA.C:143
 DrawTrendingTOFQA.C:144
 DrawTrendingTOFQA.C:145
 DrawTrendingTOFQA.C:146
 DrawTrendingTOFQA.C:147
 DrawTrendingTOFQA.C:148
 DrawTrendingTOFQA.C:149
 DrawTrendingTOFQA.C:150
 DrawTrendingTOFQA.C:151
 DrawTrendingTOFQA.C:152
 DrawTrendingTOFQA.C:153
 DrawTrendingTOFQA.C:154
 DrawTrendingTOFQA.C:155
 DrawTrendingTOFQA.C:156
 DrawTrendingTOFQA.C:157
 DrawTrendingTOFQA.C:158
 DrawTrendingTOFQA.C:159
 DrawTrendingTOFQA.C:160
 DrawTrendingTOFQA.C:161
 DrawTrendingTOFQA.C:162
 DrawTrendingTOFQA.C:163
 DrawTrendingTOFQA.C:164
 DrawTrendingTOFQA.C:165
 DrawTrendingTOFQA.C:166
 DrawTrendingTOFQA.C:167
 DrawTrendingTOFQA.C:168
 DrawTrendingTOFQA.C:169
 DrawTrendingTOFQA.C:170
 DrawTrendingTOFQA.C:171
 DrawTrendingTOFQA.C:172
 DrawTrendingTOFQA.C:173
 DrawTrendingTOFQA.C:174
 DrawTrendingTOFQA.C:175
 DrawTrendingTOFQA.C:176
 DrawTrendingTOFQA.C:177
 DrawTrendingTOFQA.C:178
 DrawTrendingTOFQA.C:179
 DrawTrendingTOFQA.C:180
 DrawTrendingTOFQA.C:181
 DrawTrendingTOFQA.C:182
 DrawTrendingTOFQA.C:183
 DrawTrendingTOFQA.C:184
 DrawTrendingTOFQA.C:185
 DrawTrendingTOFQA.C:186
 DrawTrendingTOFQA.C:187
 DrawTrendingTOFQA.C:188
 DrawTrendingTOFQA.C:189
 DrawTrendingTOFQA.C:190
 DrawTrendingTOFQA.C:191
 DrawTrendingTOFQA.C:192
 DrawTrendingTOFQA.C:193
 DrawTrendingTOFQA.C:194
 DrawTrendingTOFQA.C:195
 DrawTrendingTOFQA.C:196
 DrawTrendingTOFQA.C:197
 DrawTrendingTOFQA.C:198
 DrawTrendingTOFQA.C:199
 DrawTrendingTOFQA.C:200
 DrawTrendingTOFQA.C:201
 DrawTrendingTOFQA.C:202
 DrawTrendingTOFQA.C:203
 DrawTrendingTOFQA.C:204
 DrawTrendingTOFQA.C:205
 DrawTrendingTOFQA.C:206
 DrawTrendingTOFQA.C:207
 DrawTrendingTOFQA.C:208
 DrawTrendingTOFQA.C:209
 DrawTrendingTOFQA.C:210
 DrawTrendingTOFQA.C:211
 DrawTrendingTOFQA.C:212
 DrawTrendingTOFQA.C:213
 DrawTrendingTOFQA.C:214
 DrawTrendingTOFQA.C:215
 DrawTrendingTOFQA.C:216
 DrawTrendingTOFQA.C:217
 DrawTrendingTOFQA.C:218
 DrawTrendingTOFQA.C:219
 DrawTrendingTOFQA.C:220
 DrawTrendingTOFQA.C:221
 DrawTrendingTOFQA.C:222
 DrawTrendingTOFQA.C:223
 DrawTrendingTOFQA.C:224
 DrawTrendingTOFQA.C:225
 DrawTrendingTOFQA.C:226
 DrawTrendingTOFQA.C:227
 DrawTrendingTOFQA.C:228
 DrawTrendingTOFQA.C:229
 DrawTrendingTOFQA.C:230
 DrawTrendingTOFQA.C:231
 DrawTrendingTOFQA.C:232
 DrawTrendingTOFQA.C:233
 DrawTrendingTOFQA.C:234
 DrawTrendingTOFQA.C:235
 DrawTrendingTOFQA.C:236
 DrawTrendingTOFQA.C:237
 DrawTrendingTOFQA.C:238
 DrawTrendingTOFQA.C:239
 DrawTrendingTOFQA.C:240
 DrawTrendingTOFQA.C:241
 DrawTrendingTOFQA.C:242
 DrawTrendingTOFQA.C:243
 DrawTrendingTOFQA.C:244
 DrawTrendingTOFQA.C:245
 DrawTrendingTOFQA.C:246
 DrawTrendingTOFQA.C:247
 DrawTrendingTOFQA.C:248
 DrawTrendingTOFQA.C:249
 DrawTrendingTOFQA.C:250
 DrawTrendingTOFQA.C:251
 DrawTrendingTOFQA.C:252
 DrawTrendingTOFQA.C:253
 DrawTrendingTOFQA.C:254
 DrawTrendingTOFQA.C:255
 DrawTrendingTOFQA.C:256
 DrawTrendingTOFQA.C:257
 DrawTrendingTOFQA.C:258
 DrawTrendingTOFQA.C:259
 DrawTrendingTOFQA.C:260
 DrawTrendingTOFQA.C:261
 DrawTrendingTOFQA.C:262
 DrawTrendingTOFQA.C:263
 DrawTrendingTOFQA.C:264
 DrawTrendingTOFQA.C:265
 DrawTrendingTOFQA.C:266
 DrawTrendingTOFQA.C:267
 DrawTrendingTOFQA.C:268
 DrawTrendingTOFQA.C:269
 DrawTrendingTOFQA.C:270
 DrawTrendingTOFQA.C:271
 DrawTrendingTOFQA.C:272
 DrawTrendingTOFQA.C:273
 DrawTrendingTOFQA.C:274
 DrawTrendingTOFQA.C:275
 DrawTrendingTOFQA.C:276
 DrawTrendingTOFQA.C:277
 DrawTrendingTOFQA.C:278
 DrawTrendingTOFQA.C:279
 DrawTrendingTOFQA.C:280
 DrawTrendingTOFQA.C:281
 DrawTrendingTOFQA.C:282
 DrawTrendingTOFQA.C:283
 DrawTrendingTOFQA.C:284
 DrawTrendingTOFQA.C:285
 DrawTrendingTOFQA.C:286
 DrawTrendingTOFQA.C:287
 DrawTrendingTOFQA.C:288
 DrawTrendingTOFQA.C:289
 DrawTrendingTOFQA.C:290
 DrawTrendingTOFQA.C:291
 DrawTrendingTOFQA.C:292
 DrawTrendingTOFQA.C:293
 DrawTrendingTOFQA.C:294
 DrawTrendingTOFQA.C:295
 DrawTrendingTOFQA.C:296
 DrawTrendingTOFQA.C:297
 DrawTrendingTOFQA.C:298
 DrawTrendingTOFQA.C:299
 DrawTrendingTOFQA.C:300
 DrawTrendingTOFQA.C:301
 DrawTrendingTOFQA.C:302
 DrawTrendingTOFQA.C:303
 DrawTrendingTOFQA.C:304
 DrawTrendingTOFQA.C:305
 DrawTrendingTOFQA.C:306
 DrawTrendingTOFQA.C:307
 DrawTrendingTOFQA.C:308
 DrawTrendingTOFQA.C:309
 DrawTrendingTOFQA.C:310
 DrawTrendingTOFQA.C:311
 DrawTrendingTOFQA.C:312
 DrawTrendingTOFQA.C:313
 DrawTrendingTOFQA.C:314
 DrawTrendingTOFQA.C:315
 DrawTrendingTOFQA.C:316
 DrawTrendingTOFQA.C:317
 DrawTrendingTOFQA.C:318
 DrawTrendingTOFQA.C:319
 DrawTrendingTOFQA.C:320
 DrawTrendingTOFQA.C:321
 DrawTrendingTOFQA.C:322
 DrawTrendingTOFQA.C:323
 DrawTrendingTOFQA.C:324
 DrawTrendingTOFQA.C:325
 DrawTrendingTOFQA.C:326
 DrawTrendingTOFQA.C:327
 DrawTrendingTOFQA.C:328
 DrawTrendingTOFQA.C:329
 DrawTrendingTOFQA.C:330
 DrawTrendingTOFQA.C:331
 DrawTrendingTOFQA.C:332
 DrawTrendingTOFQA.C:333
 DrawTrendingTOFQA.C:334
 DrawTrendingTOFQA.C:335
 DrawTrendingTOFQA.C:336
 DrawTrendingTOFQA.C:337
 DrawTrendingTOFQA.C:338
 DrawTrendingTOFQA.C:339
 DrawTrendingTOFQA.C:340
 DrawTrendingTOFQA.C:341
 DrawTrendingTOFQA.C:342
 DrawTrendingTOFQA.C:343
 DrawTrendingTOFQA.C:344
 DrawTrendingTOFQA.C:345
 DrawTrendingTOFQA.C:346
 DrawTrendingTOFQA.C:347
 DrawTrendingTOFQA.C:348
 DrawTrendingTOFQA.C:349
 DrawTrendingTOFQA.C:350
 DrawTrendingTOFQA.C:351
 DrawTrendingTOFQA.C:352
 DrawTrendingTOFQA.C:353
 DrawTrendingTOFQA.C:354
 DrawTrendingTOFQA.C:355
 DrawTrendingTOFQA.C:356
 DrawTrendingTOFQA.C:357
 DrawTrendingTOFQA.C:358
 DrawTrendingTOFQA.C:359
 DrawTrendingTOFQA.C:360
 DrawTrendingTOFQA.C:361
 DrawTrendingTOFQA.C:362
 DrawTrendingTOFQA.C:363
 DrawTrendingTOFQA.C:364
 DrawTrendingTOFQA.C:365
 DrawTrendingTOFQA.C:366
 DrawTrendingTOFQA.C:367
 DrawTrendingTOFQA.C:368
 DrawTrendingTOFQA.C:369
 DrawTrendingTOFQA.C:370
 DrawTrendingTOFQA.C:371
 DrawTrendingTOFQA.C:372
 DrawTrendingTOFQA.C:373
 DrawTrendingTOFQA.C:374
 DrawTrendingTOFQA.C:375
 DrawTrendingTOFQA.C:376
 DrawTrendingTOFQA.C:377
 DrawTrendingTOFQA.C:378
 DrawTrendingTOFQA.C:379
 DrawTrendingTOFQA.C:380
 DrawTrendingTOFQA.C:381
 DrawTrendingTOFQA.C:382
 DrawTrendingTOFQA.C:383
 DrawTrendingTOFQA.C:384
 DrawTrendingTOFQA.C:385
 DrawTrendingTOFQA.C:386
 DrawTrendingTOFQA.C:387
 DrawTrendingTOFQA.C:388
 DrawTrendingTOFQA.C:389
 DrawTrendingTOFQA.C:390
 DrawTrendingTOFQA.C:391
 DrawTrendingTOFQA.C:392
 DrawTrendingTOFQA.C:393
 DrawTrendingTOFQA.C:394
 DrawTrendingTOFQA.C:395
 DrawTrendingTOFQA.C:396
 DrawTrendingTOFQA.C:397
 DrawTrendingTOFQA.C:398
 DrawTrendingTOFQA.C:399
 DrawTrendingTOFQA.C:400
 DrawTrendingTOFQA.C:401
 DrawTrendingTOFQA.C:402
 DrawTrendingTOFQA.C:403
 DrawTrendingTOFQA.C:404
 DrawTrendingTOFQA.C:405
 DrawTrendingTOFQA.C:406
 DrawTrendingTOFQA.C:407
 DrawTrendingTOFQA.C:408
 DrawTrendingTOFQA.C:409
 DrawTrendingTOFQA.C:410
 DrawTrendingTOFQA.C:411
 DrawTrendingTOFQA.C:412
 DrawTrendingTOFQA.C:413
 DrawTrendingTOFQA.C:414
 DrawTrendingTOFQA.C:415
 DrawTrendingTOFQA.C:416
 DrawTrendingTOFQA.C:417
 DrawTrendingTOFQA.C:418
 DrawTrendingTOFQA.C:419
 DrawTrendingTOFQA.C:420
 DrawTrendingTOFQA.C:421
 DrawTrendingTOFQA.C:422
 DrawTrendingTOFQA.C:423
 DrawTrendingTOFQA.C:424
 DrawTrendingTOFQA.C:425
 DrawTrendingTOFQA.C:426
 DrawTrendingTOFQA.C:427
 DrawTrendingTOFQA.C:428
 DrawTrendingTOFQA.C:429
 DrawTrendingTOFQA.C:430
 DrawTrendingTOFQA.C:431
 DrawTrendingTOFQA.C:432
 DrawTrendingTOFQA.C:433
 DrawTrendingTOFQA.C:434
 DrawTrendingTOFQA.C:435
 DrawTrendingTOFQA.C:436
 DrawTrendingTOFQA.C:437
 DrawTrendingTOFQA.C:438
 DrawTrendingTOFQA.C:439
 DrawTrendingTOFQA.C:440
 DrawTrendingTOFQA.C:441
 DrawTrendingTOFQA.C:442
 DrawTrendingTOFQA.C:443
 DrawTrendingTOFQA.C:444
 DrawTrendingTOFQA.C:445
 DrawTrendingTOFQA.C:446
 DrawTrendingTOFQA.C:447
 DrawTrendingTOFQA.C:448
 DrawTrendingTOFQA.C:449
 DrawTrendingTOFQA.C:450
 DrawTrendingTOFQA.C:451
 DrawTrendingTOFQA.C:452
 DrawTrendingTOFQA.C:453
 DrawTrendingTOFQA.C:454
 DrawTrendingTOFQA.C:455
 DrawTrendingTOFQA.C:456
 DrawTrendingTOFQA.C:457
 DrawTrendingTOFQA.C:458
 DrawTrendingTOFQA.C:459
 DrawTrendingTOFQA.C:460
 DrawTrendingTOFQA.C:461
 DrawTrendingTOFQA.C:462
 DrawTrendingTOFQA.C:463
 DrawTrendingTOFQA.C:464
 DrawTrendingTOFQA.C:465