ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TCanvas.h>
#include <TGrid.h>
#include <TFile.h>
#include <TList.h>
#include <TPaveStats.h>
#include <TGraph.h>
#include <TGraphErrors.h>
#include <TH1.h>
#include <TF1.h>
#include <TH2.h>
#include <TLegend.h>
#include <TLegendEntry.h>
#include <TLatex.h>
#include <TStyle.h>
#include <TROOT.h>
#endif

/*  $Id$    */

//-------------------------------------------------------
//
// Macro do plot the output histograms of the QA task for ITS standalone tracks
// dE/dx for ITS pure standalone tracks with parameterization
// dE/dx resolution for ITS pure standalone tracks with parameterization
// d0 resolution and bias with gaussian fit
// d0 resolution and bias with gaussian+tail fit
// Comparison of the two methods for d0 resolution
// Pt resolution (matching ITSèureSA with TPC+ITS tracks)
// General Plots: ratios between ITSsa, ITSpureSA and TPC+ITS tracks 
//                eta phi distributions of tracks
//                number of clusters per track
//
// Authors: Leonardo Milano, Francesco Prino
//
//-------------------------------------------------------

Int_t color[3]={1,2,4};
TString particle[3]={"Pion","Kaon","Proton"};



 void PlotOutputQATaskITSsa(TString filename="LHC11b7Highpt_010Cent_6cls_chi2cut.root",TString foutName="OutputQA_LHC11b7Highpt_010Cent_6cls_chi2cut.root",Bool_t fMC=1){

  gROOT->SetStyle("Plain");
  gStyle->SetPalette(1); 

  if(filename.Contains("alien")) TGrid::Connect("alien:");
  TFile* f=TFile::Open(filename.Data());
  TDirectory *dirFile=(TDirectory*)f->Get("ITSsaTracks");
  TString lname="clistITSsaTracks";
  TList *li = (TList*)dirFile->Get(lname.Data());
  
  TFile *fout=new TFile(foutName.Data(),"recreate");
  fout->Close();
  delete fout;
  
  Bool_t useHybridITSsaParameterization=1; //BetheITSsaHybrid committed in Rev. 59830
  Bool_t PlotPIDBands=0; //Bands used for PID in the spectra analysis
  dedxPlot(li,fMC,foutName,useHybridITSsaParameterization,PlotPIDBands);
  dedxRes(li,foutName);
  ImpParRes(li,foutName);    
  ImpParResGausTail(li,foutName);    
  CompareImpParRes(foutName);
  Bool_t optFromMC=0;
  PlotPtResol(li,foutName,optFromMC);
  PlotITSsa(li,foutName);
}    



//----------------------------------------------------------------------------

void dedxPlot(TList *li,Bool_t fMC,TString foutName,Bool_t useHybridITSsaParameterization,Bool_t PlotPIDBands)    
{
  // Plot the dedx vs momentum from the ITSsaTracks QA output
  // Bethe Bloch parameterization is taken from AliITSPIDResponse
  // If useHybridITSsaParameterization the Hybrid ITS parameterization (Phobos + polinomial at low beta*gamma) is used. This requires AliRoot >  Rev. 59830
  
  TH2F *fHistDEDX=(TH2F*)li->FindObject("hdedxvsP2clsITSpureSA");
  fHistDEDX->Add((TH2F*)li->FindObject("hdedxvsP3clsITSpureSA"));
  fHistDEDX->Add((TH2F*)li->FindObject("hdedxvsP4clsITSpureSA"));
  
  TCanvas *c=new TCanvas("dEdx_vs_p","dEdx_vs_p",1);
  c->SetLogz();
  c->SetLogx();
  fHistDEDX->SetXTitle("#it{p} (GeV/#it{c})");
  fHistDEDX->SetYTitle("d#it{E}/dx (KeV/300#mum)");
  fHistDEDX->GetXaxis()->SetRangeUser(0.08,3);
  fHistDEDX->GetYaxis()->SetRangeUser(0.,700);
  fHistDEDX->GetYaxis()->SetTitleSize(0.05);
  fHistDEDX->GetXaxis()->SetTitleSize(0.05);
  //fHistDEDX->SetMinimum(2000);
  //fHistDEDX->SetMaximum(18000);
  fHistDEDX->DrawClone("col");
  
  Float_t pdgmass[5]={0.13957,0.493677,0.938272,1.875612762,0.00996}; //mass for pi, K, P, d (Gev/c^2)
  Double_t dedxvalue[5];
  Double_t funcvalue[7];
  TGraph *fdedx[7];
  AliITSPIDResponse *pidresp=new AliITSPIDResponse(fMC);
  
  for(Int_t i7=0;i7<7;i7++){
    fdedx[i7]=new TGraph();
    fdedx[i7]->SetName(Form("%d",i7));
    fdedx[i7]->SetTitle(Form("%d",i7));
    fdedx[i7]->SetLineWidth(2);
    fdedx[i7]->SetLineColor(1);
  }
  
  Float_t mom=0.07.;//low pt range
  Float_t step=(3-mom)/100;
  Double_t lr[7]={0.09,0.09,0.09,0.1,0.2,.25,.3};
  
  for(Int_t i=0;i<100;i++){
    if(useHybridITSsaParameterization)for(Int_t i2=0;i2<5;i2++)dedxvalue[i2]=pidresp->BetheITSsaHybrid(mom,pdgmass[i2]);
    else for(Int_t i2=0;i2<5;i2++)dedxvalue[i2]=pidresp->Bethe(mom,pdgmass[i2],1);
    funcvalue[0]=dedxvalue[0]-0.2*dedxvalue[0];
    funcvalue[1]=dedxvalue[0];
    funcvalue[2]=0.5*(dedxvalue[0]+dedxvalue[1]);
    funcvalue[3]=dedxvalue[1];
    funcvalue[4]=0.5*(dedxvalue[2]+dedxvalue[1]);
    funcvalue[5]=dedxvalue[2];
    funcvalue[6]=0.5*(dedxvalue[2]+dedxvalue[3]);
    
    for(Int_t i2=0;i2<7;i2++){
      fdedx[i2]->SetPoint(i,mom,funcvalue[i2]);
    }
    mom+=step;
  }
  fdedx[0]->SetLineStyle(2);
  fdedx[2]->SetLineStyle(2);
  fdedx[4]->SetLineStyle(2);
  fdedx[6]->SetLineStyle(2);
  for(Int_t i2=0;i2<7;i2++){
    fdedx[i2]->RemovePoint(0);
    fdedx[i2]->GetXaxis()->SetRangeUser(lr[i2],3);
    if(!PlotPIDBands)if(i2==0 || i2==2 || i2==4 || i2==6)continue;
    fdedx[i2]->DrawClone("Lsame");
  }
  TLatex *tex=new TLatex(0.55,630,"ITS standalone tracking");
  tex->SetTextSize(0.04);
  tex->DrawClone();
  
  TLatex *pi=new TLatex(0.1223724,176.0205,"#pi");
  TLatex *k=new TLatex(0.263512,291.1394,"K");
  TLatex *p=new TLatex(0.517675,296.7096,"p");
  TLatex *e=new TLatex(0.09856606,101.7502,"e");
  pi->DrawClone();
  k->DrawClone();
  p->DrawClone();
  e->DrawClone();
  
  //add electron line
  Float_t mom=0.09.;//low pt range
  Float_t step=(0.16-mom)/10;
  TGraph* fElectr=new TGraph();
  fElectr->SetName("fElectr");
  fElectr->SetTitle("fElectr");
  AliITSPIDResponse *pidresp=new AliITSPIDResponse(0);
  for(Int_t i=0;i<10;i++){
    if(useHybridITSsaParameterization)fElectr->SetPoint(i,mom,pidresp->BetheITSsaHybrid(mom,0.00051));
    else  fElectr->SetPoint(i,mom,pidresp->Bethe(mom,0.00051,1));
    mom+=step;
  }
  fElectr->SetLineWidth(2);
  fElectr->SetLineColor(1);
  fElectr->DrawClone("Lsame");
  
  TFile *fout=new TFile(foutName.Data(),"update");
  c->Write();
  fout->Close();
  delete fout;
  }

//----------------------------------------------------------------------------

void dedxRes(TList *li,TString foutName)    
{
  // plot the dedx resolution as a function of momuntum from the ITSsaTracks QA
  // Resolution is calculated from Gaussian fit to the pion peak for tracks with 2, 3 and 4 clusters in the ITS
  
  TCanvas *cdedxRes=new TCanvas("dedxRes_vs_p","dedxRes_vs_p",1000,800);
  cdedxRes->SetGridx();
  cdedxRes->SetLogx();
  
  for(Int_t ncls=2;ncls<5;ncls++){
    TH2F *hdedxvsPITSpureSA=(TH2F*)li->FindObject(Form("hdedxvsP%iclsITSpureSA",ncls));
    //binning
    const Int_t nbins = 29;
    Double_t xbins[nbins+1]={0.06,0.08,0.10,0.12,0.14,0.16,0.18,0.20,0.25,0.30,
			     0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,
			     0.85,0.90,0.95,1.00,1.20,1.40,1.60,1.80,1.90,2.00};
    TH1F *fHistdedxRes = new TH1F(Form("fHistdedxRes%icls",ncls),Form("fHistdedxRes%icls",ncls),nbins,xbins);
    fHistdedxRes->GetXaxis()->SetTitle("#font[52]{p} (GeV/#font[52]{c})");
    fHistdedxRes->GetYaxis()->SetTitle("de/dx relative resolution");
    fHistdedxRes->GetYaxis()->SetTitleOffset(1.5);
    TH1F *fHistDCA[nbins];
    TF1 *fPar = new TF1("fPar","gaus",0,1000);
    for(Int_t m=0;m<nbins;m++){
      fHistDCA[m]= (TH1F*)hdedxvsPITSpureSA->ProjectionY(Form("%i",m),hdedxvsPITSpureSA->GetXaxis()->FindBin(xbins[m]+0.0000001),hdedxvsPITSpureSA->GetXaxis()->FindBin(xbins[m+1]-0.0000001));
    }
    TCanvas *cgaus=new TCanvas(Form("cgausFitdEdxRes_%icls",ncls),Form("cgausFitdEdxRes_%icls",ncls),1000,800);
    cgaus->Divide(8,4,0.001,0.001);
    for(Int_t i=0; i<nbins; i++){
      cgaus->cd(i+1);
      fHistDCA[i]->SetFillColor(16);
      Float_t MaxPosition=fHistDCA[i]->GetBinCenter(fHistDCA[i]->GetMaximumBin());
      Float_t minFit=MaxPosition-0.1*MaxPosition;
      Float_t maxFit=MaxPosition+0.1*MaxPosition;
      fPar->SetParameter(1,MaxPosition);
      fHistDCA[i]->Fit(fPar,"NM","",minFit,maxFit);
      fHistDCA[i]->GetXaxis()->SetRangeUser(minFit-50,maxFit+50);
      fPar->SetLineColor(1);
      fHistDCA[i]->DrawClone();
      fPar->DrawClone("same");
      fHistdedxRes->Fill((xbins[i]+xbins[i+1])/2,fPar->GetParameter(2)/fPar->GetParameter(1));
      fHistdedxRes->SetBinError(fHistdedxRes->FindBin((xbins[i]+xbins[i+1])/2),fPar->GetParError(2)/fPar->GetParameter(1));
    }
    cdedxRes->cd();
    setDrawAtt(20,ncls,1,ncls,1,fHistdedxRes);
    fHistdedxRes->SetMinimum(0.0);
    fHistdedxRes->SetMaximum(0.2);
    fHistdedxRes->GetXaxis()->SetRangeUser(0.2,2);  
    if(ncls==2)fHistdedxRes->DrawCopy("p");
    else fHistdedxRes->DrawCopy("psame");
    
    TF1 *fFit = new TF1(Form("fFitdEdxRes_%d",ncls),"pol0",0.6,2);
    fFit->SetLineColor(ncls);
    fHistdedxRes->Fit(fFit,"NM","",0.6,2);
    fFit->DrawCopy("same");
    TPaveText *tpave1=new TPaveText(0.3,0.2-0.15*ncls,0.7,0.89,"brNDC");
    tpave1->SetBorderSize(0);
    tpave1->SetFillStyle(0);
    tpave1->SetFillColor(0);
    tpave1->SetTextColor(ncls);
    TText *txt2=tpave1->AddText(Form("pol 0: %.3f",fFit->GetParameter(0)));
    txt2->SetTextFont(62);
    tpave1->DrawClone();
    
    TFile *fout=new TFile(foutName.Data(),"update");
    fHistdedxRes->Write();
    fFit->Write();
    fout->Close();
    delete fout;
  }
  
  cdedxRes->BuildLegend()->SetFillColor(0);
  TPaveText *tpave=new TPaveText(0.5,0.9,0.8,0.99,"brNDC");
  tpave->SetBorderSize(0);
  tpave->SetFillStyle(0);
  tpave->SetFillColor(0);
  tpave->SetTextColor(2);
  TText *txt1=tpave->AddText("ITS standalone");
  txt1->SetTextFont(62);
  tpave->DrawClone();
  
  TFile *fout=new TFile(foutName.Data(),"update");
  cdedxRes->Write();
  fout->Close();
  delete fout;
}

//----------------------------------------------------------------------------

void ImpParRes(TList *li,TString foutName)    
{
  //Plot the resolution on the tranverse component of impact parmeter from the ITSsaTracks QA output as a function of pt
  // Gaussian fit is used

  TH2F *hd0rphiITSpureSA[3];
  //binning
  const Int_t nbins = 35;
  Double_t xbins[nbins+1]={0.06,0.08,0.10,0.12,0.14,0.16,0.18,0.20,0.25,0.30,
			   0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,
			   0.85,0.90,0.95,1.00,1.20,1.40,1.60,1.80,1.90,2.00,
			   3,4,5,10,20,30};
  
  Int_t maxbin=28;
  Int_t MinBin[3]={2,7,9};
  
  TH1F *fHistDCA[nbins];  
  TString particle[3]={"Pion","Kaon","Proton"};
  
  TCanvas *cImpPar=new TCanvas("ImpParRes_vs_pt_Gaus","ImpParRes_vs_pt_Gaus",1000,800);
  cImpPar->SetGridx();
  cImpPar->SetLogx();
  TCanvas *cImpParMean=new TCanvas("ImpParMean_vs_pt_Gaus","ImpParMean_vs_pt_Gaus",1000,800);
  cImpParMean->SetGridx();
  cImpParMean->SetLogx();
  for(Int_t iparticle=0;iparticle<3;iparticle++)hd0rphiITSpureSA[iparticle]=(TH2F*)li->FindObject(Form("hd0rphiITSpureSA%s",particle[iparticle].Data()));
  for(Int_t iparticle=0;iparticle<3;iparticle++){
    TH1F *fHistImpParRes = new TH1F(Form("fHistImpParResGaus%s",particle[iparticle].Data()),Form("%s",particle[iparticle].Data()),nbins,xbins);
    fHistImpParRes->GetXaxis()->SetTitle("#font[52]{p}_{T} (GeV/#font[52]{c})");
    fHistImpParRes->GetYaxis()->SetTitle("d0 r#phi resolution [#mum]");
    fHistImpParRes->GetYaxis()->SetTitleOffset(1.5);
    TH1F *fHistImpParMean = new TH1F(Form("fHistImpParMeanGaus%s",particle[iparticle].Data()),Form("%s",particle[iparticle].Data()),nbins,xbins);
    fHistImpParMean->GetXaxis()->SetTitle("#font[52]{p}_{T} (GeV/#font[52]{c})");
    fHistImpParMean->GetYaxis()->SetTitle("d0 r#phi mean [#mum]");
    fHistImpParMean->GetYaxis()->SetTitleOffset(1.5);
    
    TF1 *fPar = new TF1("fPar","gaus",-1,1);
    
    for(Int_t m=0;m<nbins;m++){
      fHistDCA[m]= (TH1F*)hd0rphiITSpureSA[iparticle]->ProjectionY(Form("%s%i",particle[iparticle].Data(),m),hd0rphiITSpureSA[iparticle]->GetXaxis()->FindBin(xbins[m]+0.000001),hd0rphiITSpureSA[iparticle]->GetXaxis()->FindBin(xbins[m+1]-0.000001));
      //for pt>2 sum kaons and prtons to pions
      if(iparticle==0 && m>maxbin){
	fHistDCA[m]->Add((TH1F*)hd0rphiITSpureSA[iparticle+1]->ProjectionY(Form("%s%i",particle[iparticle+1].Data(),m),hd0rphiITSpureSA[iparticle+1]->GetXaxis()->FindBin(xbins[m]+0.000001),hd0rphiITSpureSA[iparticle+1]->GetXaxis()->FindBin(xbins[m+1]-0.000001)));
      	fHistDCA[m]->Add((TH1F*)hd0rphiITSpureSA[iparticle+2]->ProjectionY(Form("%s%i",particle[iparticle+2].Data(),m),hd0rphiITSpureSA[iparticle+2]->GetXaxis()->FindBin(xbins[m]+0.000001),hd0rphiITSpureSA[iparticle+2]->GetXaxis()->FindBin(xbins[m+1]-0.000001)));
      }    
    }
    
    TCanvas *cgaus=new TCanvas(Form("cgausFit_ImpParRes_vs_pt_%s",particle[iparticle].Data()),Form("cgausFit_ImpParRes_vs_pt_%s",particle[iparticle].Data()),1000,800);
    if(iparticle==0)cgaus->Divide(8,5,0.001,0.001);
    else cgaus->Divide(8,4,0.001,0.001);
    Float_t sigma=0;
    
    for(Int_t i=0; i<nbins; i++){
      if(i<MinBin[iparticle])continue;
      if(iparticle!=0 && i>maxbin)continue; //skip kaons and protons for pt aove 2 GeV (added to pions spectrum)
      
      cgaus->cd(i+1);
      gPad->SetLogy();
      fHistDCA[i]->SetLineColor(color[iparticle]);
      fHistDCA[i]->SetMarkerColor(color[iparticle]);
      fPar->SetLineColor(color[iparticle]);
      fHistDCA[i]->SetFillColor(16);
      Printf("first fit step [-1,1]");
      fHistDCA[i]->Fit(fPar,"NM","",-1,1);
      Printf("second fit step [-2sigma,2sigma]");
      Float_t nsigmas=2.;
      sigma=fPar->GetParameter(2);
      fHistDCA[i]->Fit(fPar,"NM","",fPar->GetParameter(1)-nsigmas*sigma,fPar->GetParameter(1)+nsigmas*sigma);
      Printf("Third fit step [-1 sigma,1 sigma]");
      nsigmas=1.; // narrow range, just want to fit the primaries
      fHistDCA[i]->Fit(fPar,"NM","",fPar->GetParameter(1)-nsigmas*sigma,fPar->GetParameter(1)+nsigmas*sigma);
      //set range to 3 sigmas (for the plot)
      sigma=fPar->GetParameter(2);
      fHistDCA[i]->GetXaxis()->SetRangeUser(fPar->GetParameter(1)-3*sigma,fPar->GetParameter(1)+3*sigma);
      fHistDCA[i]->DrawClone();
      fPar->DrawClone("same");
      fHistImpParRes->Fill((xbins[i]+xbins[i+1])/2,10000*fPar->GetParameter(2));
      fHistImpParRes->SetBinError(fHistImpParRes->FindBin((xbins[i]+xbins[i+1])/2),10000*fPar->GetParError(2));
      fHistImpParMean->Fill((xbins[i]+xbins[i+1])/2,10000*fPar->GetParameter(1));
      fHistImpParMean->SetBinError(fHistImpParMean->FindBin((xbins[i]+xbins[i+1])/2),10000*fPar->GetParError(1));
    }
    
    fHistImpParRes->SetMaximum(1000);
    fHistImpParRes->SetMinimum(0);
    fHistImpParMean->SetMaximum(80);
    fHistImpParMean->SetMinimum(-80);
    
    setDrawAtt(iparticle+20,color[iparticle],1,color[iparticle],1,fHistImpParRes);
    fHistImpParRes->SetTitle(Form("%s - Gaus Fit",particle[iparticle].Data()));
    setDrawAtt(iparticle+20,color[iparticle],1,color[iparticle],1,fHistImpParMean);
    fHistImpParMean->SetTitle(Form("%s - Gaus Fit",particle[iparticle].Data()));
    
    cImpPar->cd();
    if(iparticle==0)fHistImpParRes->DrawCopy("p");
    else fHistImpParRes->DrawCopy("psame");
    
    cImpParMean->cd();
    if(iparticle==0)fHistImpParMean->DrawCopy("p");
    else fHistImpParMean->DrawCopy("psame");
    
    TFile *fout=new TFile(foutName.Data(),"update");
    cgaus->Write();
    fHistImpParRes->Write();
    fHistImpParMean->Write();
    fout->Close();
    delete fout;
  }
  
  cImpPar->BuildLegend()->SetFillColor(0);
  cImpParMean->BuildLegend()->SetFillColor(0);
  TFile *fout=new TFile(foutName.Data(),"update");
  cImpPar->Write();
  cImpParMean->Write();
  fout->Close();
  delete fout;
  
}

//----------------------------------------------------------------------------

void ImpParResGausTail(TList *li,TString foutName)    
{
  //Plot the resolution on the tranverse component of impact parmeter from the ITSsaTracks QA output as a function of pt
  // Gaussian + tail fit is used
 
  TH2F *hd0rphiITSpureSA[3];
  //binning
  const Int_t nbins = 29;
  const Int_t nbins = 35;
  Double_t xbins[nbins+1]={0.06,0.08,0.10,0.12,0.14,0.16,0.18,0.20,0.25,0.30,
			   0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,
			   0.85,0.90,0.95,1.00,1.20,1.40,1.60,1.80,1.90,2.00,
			   3,4,5,10,20,30};
  Int_t maxbin=28;
  Int_t MinBin[3]={2,7,9};
  
  TH1F *d0AllpointrphiSkip1_[nbins];  
  
  TCanvas *cImpPar=new TCanvas("ImpParResGausTail_vs_pt","ImpParResGausTail_vs_pt",1000,800);
  cImpPar->SetGridx();
  cImpPar->SetLogx();
  TCanvas *cImpParMean=new TCanvas("ImpParMeanGausTail_vs_pt","ImpParMeanGausTail_vs_pt",1000,800);
  cImpParMean->SetGridx();
  cImpParMean->SetLogx();
  
  
  //define the histgram
  TH1F **d0AllpointrphiSkipTail1_=new TH1F*[nbins]; 
  TH1F **d0AllpointrphiSkipGaus1_=new TH1F*[nbins];  
  TH1F **d0Pt_=new TH1F*[nbins];
  Float_t sigma=0;
  Double_t j =3.;  
  
  for(Int_t iparticle=0;iparticle<3;iparticle++)hd0rphiITSpureSA[iparticle]=(TH2F*)li->FindObject(Form("hd0rphiITSpureSA%s",particle[iparticle].Data()));
  for(Int_t iparticle=0;iparticle<3;iparticle++){   
    TH1F *fHistImpParRes = new TH1F(Form("fHistImpParResGausTail%s",particle[iparticle].Data()),Form("%s",particle[iparticle].Data()),nbins,xbins);
    fHistImpParRes->GetXaxis()->SetTitle("#font[52]{p}_{T} (GeV/#font[52]{c})");
    fHistImpParRes->GetYaxis()->SetTitle("d0 r#phi resolution [#mum]");
    fHistImpParRes->GetYaxis()->SetTitleOffset(1.5);
    TH1F *fHistImpParMean = new TH1F(Form("fHistImpParMeanGausTail%s",particle[iparticle].Data()),Form("%s",particle[iparticle].Data()),nbins,xbins);
    fHistImpParMean->GetXaxis()->SetTitle("#font[52]{p}_{T} (GeV/#font[52]{c})");
    fHistImpParMean->GetYaxis()->SetTitle("d0 r#phi mean [#mum]");
    fHistImpParMean->GetYaxis()->SetTitleOffset(1.5);
    
    for(Int_t m=0;m<nbins;m++){
      d0AllpointrphiSkip1_[m]= (TH1F*)hd0rphiITSpureSA[iparticle]->ProjectionY(Form("%s%i",particle[iparticle].Data(),m),hd0rphiITSpureSA[iparticle]->GetXaxis()->FindBin(xbins[m]+0.000001),hd0rphiITSpureSA[iparticle]->GetXaxis()->FindBin(xbins[m+1]-0.000001));
      //for pt>2 sum kaons and prtons to pions
      if(iparticle==0 && m>maxbin){
	d0AllpointrphiSkip1_[m]->Add((TH1F*)hd0rphiITSpureSA[iparticle+1]->ProjectionY(Form("%s%i",particle[iparticle+1].Data(),m),hd0rphiITSpureSA[iparticle+1]->GetXaxis()->FindBin(xbins[m]+0.000001),hd0rphiITSpureSA[iparticle+1]->GetXaxis()->FindBin(xbins[m+1]-0.000001)));
	d0AllpointrphiSkip1_[m]->Add((TH1F*)hd0rphiITSpureSA[iparticle+2]->ProjectionY(Form("%s%i",particle[iparticle+2].Data(),m),hd0rphiITSpureSA[iparticle+2]->GetXaxis()->FindBin(xbins[m]+0.000001),hd0rphiITSpureSA[iparticle+2]->GetXaxis()->FindBin(xbins[m+1]-0.000001)));
      }
      
    }
    
    TCanvas *cgaus=new TCanvas(Form("cgausTailFit_ImpParRes_vs_pt_%s",particle[iparticle].Data()),Form("cgausTailFit_ImpParRes_vs_pt_%s",particle[iparticle].Data()),1000,800);
    if(iparticle==0)cgaus->Divide(8,5,0.001,0.001);
    else cgaus->Divide(8,4,0.001,0.001);   
    
    for(Int_t i=0; i<nbins; i++){
      if(i<MinBin[iparticle])continue;
      if(iparticle!=0 && i>maxbin)continue; //skip kaons and protons for pt aove 2 GeV (added to pions spectrum)
      
      cgaus->cd(i+1);
      gPad->SetLogy();
      d0AllpointrphiSkip1_[i]->SetLineColor(1);
      d0AllpointrphiSkip1_[i]->SetMarkerColor(1);
      TF1 *h = new TF1("h","gaus",-1,1);
      d0AllpointrphiSkip1_[i]->Fit(h,"NM","",-1,1);
      Double_t d0rphirange_allpointSkip1 = h->GetParameter(2);   
      Double_t d0rphiMean_allpointSkip1 = h->GetParameter(1);   
      Double_t cutleft1= -j*(d0rphirange_allpointSkip1);
      Double_t cutright1 =j*d0rphirange_allpointSkip1;
      
      //fitting
      d0AllpointrphiSkipTail1_[i] = new TH1F(*d0AllpointrphiSkip1_[i]); 
      d0AllpointrphiSkipGaus1_[i] = new TH1F(*d0AllpointrphiSkip1_[i]); 
      d0AllpointrphiSkipTail1_[i]->Reset(0);
      d0AllpointrphiSkipGaus1_[i]->Reset(0);
      
      //Filling only with tail and Gaus
      for (Int_t bin=1;bin<d0AllpointrphiSkip1_[i]->GetNbinsX();bin++){
      	Float_t bincenter = d0AllpointrphiSkip1_[i]->GetBinCenter(bin);
	if(bincenter<cutleft1 || bincenter>cutright1) {
      	  d0AllpointrphiSkipTail1_[i]->SetBinContent(bin,d0AllpointrphiSkip1_[i]->GetBinContent(bin));
      	  d0AllpointrphiSkipTail1_[i]->SetBinError(bin,d0AllpointrphiSkip1_[i]->GetBinError(bin));
      	  d0AllpointrphiSkipGaus1_[i]->SetBinContent(bin,0.);  
      	  //This sentence is very important,otherwise we will get the information the data is empty when we fit it .
      	}
      	else if(bincenter>=cutleft1 && bincenter<=cutright1){
      	  d0AllpointrphiSkipTail1_[i]->SetBinContent(bin,0);
      	  d0AllpointrphiSkipGaus1_[i]->SetBinContent(bin,d0AllpointrphiSkip1_[i]->GetBinContent(bin));
      	  d0AllpointrphiSkipGaus1_[i]->SetBinError(bin,d0AllpointrphiSkip1_[i]->GetBinError(bin));  
      	}
      }
      d0AllpointrphiSkipGaus1_[i]->SetLineColor(2);
      d0AllpointrphiSkipGaus1_[i]->SetMarkerColor(2);
      d0AllpointrphiSkipTail1_[i]->SetLineColor(4);
      d0AllpointrphiSkipTail1_[i]->SetMarkerColor(4);
      
      TF1 *hh;
      hh =CreateFuncTail(d0AllpointrphiSkipTail1_[i],"hh");
      hh->SetLineColor(d0AllpointrphiSkipTail1_[i]->GetLineColor());
      d0AllpointrphiSkipTail1_[i]->Fit(hh,"NM","",-1,1);  
      Double_t Sigmatail_allpointSkip1 = hh->GetParameter(2);
      d0AllpointrphiSkipGaus1_[i]->Fit(h,"NM","",d0rphiMean_allpointSkip1-d0rphirange_allpointSkip1,d0rphiMean_allpointSkip1+d0rphirange_allpointSkip1);//narrow around the peak (1 sigma)
      //d0AllpointrphiSkipGaus1_[i]->Fit(h,"NM","",-1,1);
      h->SetLineColor(d0AllpointrphiSkipGaus1_[i]->GetLineColor());
      Double_t Sigmagaus_allpointSkip1 = h->GetParameter(2);
      Double_t Meangaus_allpointSkip1 = h->GetParameter(1);
      Double_t Constgaus_allpointSkip1 = h->GetParameter(0);
      d0AllpointrphiSkipGaus1_[i]->DrawClone("");
      d0AllpointrphiSkipTail1_[i]->DrawClone("same");
      hh->DrawClone("same");
      h->DrawClone("same");
      
      TF1 * fPar=CreateFuncGaussTail(d0AllpointrphiSkip1_[i],"allpointSkip1",Constgaus_allpointSkip1,Meangaus_allpointSkip1,Sigmagaus_allpointSkip1,Sigmatail_allpointSkip1);
      d0AllpointrphiSkip1_[i]->Fit(fPar,"NM","",-1,1);
      fPar->SetLineColor(d0AllpointrphiSkip1_[i]->GetLineColor());
      fPar->DrawClone("same");
      
      sigma=fPar->GetParameter(2);
      fHistImpParRes->Fill((xbins[i]+xbins[i+1])/2,10000*fPar->GetParameter(2));
      fHistImpParRes->SetBinError(fHistImpParRes->FindBin((xbins[i]+xbins[i+1])/2),10000*fPar->GetParError(2));
      fHistImpParMean->Fill((xbins[i]+xbins[i+1])/2,10000*fPar->GetParameter(1));
      fHistImpParMean->SetBinError(fHistImpParMean->FindBin((xbins[i]+xbins[i+1])/2),10000*fPar->GetParError(1));
    }
    
    fHistImpParRes->SetMaximum(1000);
    fHistImpParRes->SetMinimum(0);
    fHistImpParMean->SetMaximum(80);
    fHistImpParMean->SetMinimum(-80);
    
    setDrawAtt(iparticle+20,color[iparticle],1,color[iparticle],1,fHistImpParRes);
    fHistImpParRes->SetTitle(Form("%s - GausTail Fit",particle[iparticle].Data()));
    setDrawAtt(iparticle+20,color[iparticle],1,color[iparticle],1,fHistImpParMean);
    fHistImpParMean->SetTitle(Form("%s - GausTail Fit",particle[iparticle].Data()));
    
    cImpPar->cd();
    if(iparticle==0)fHistImpParRes->DrawCopy("p");
    else fHistImpParRes->DrawCopy("psame");
    
    cImpParMean->cd();
    if(iparticle==0)fHistImpParMean->DrawCopy("p");
    else fHistImpParMean->DrawCopy("psame");
    
    
    TFile *fout=new TFile(foutName.Data(),"update");
    cgaus->Write();
    fHistImpParRes->Write();
    fHistImpParMean->Write();
    fout->Close();
    delete fout;
  }
  
  cImpPar->BuildLegend()->SetFillColor(0);
  cImpParMean->BuildLegend()->SetFillColor(0);
  TFile *fout=new TFile(foutName.Data(),"update");
  cImpPar->Write();
  cImpParMean->Write();
  fout->Close();
  delete fout;
  
}
//----------------------------------------------------------------------------

TF1 *CreateFuncTail(TH1F *hh,TString funcname,Double_t wholeRangeInt=-1.)
{
  TF1 *tail=new TF1(funcname.Data(),"[0]*(1./(2.*[2])*TMath::Exp(-TMath::Abs(x-[1])/[2]))",-1,1);
  Double_t binwidth=hh->GetBinWidth(10);
  Double_t integral=hh->Integral();
  if(wholeRangeInt!=-1.)tail->SetParLimits(0,(0.2)*wholeRangeInt*binwidth,(0.5)*wholeRangeInt*binwidth);
  Double_t RMS1=TMath::Abs(hh->GetRMS());
  Double_t firstvalue1=binwidth*integral;
  tail->SetParameters(1.,0,100.);//Set the initial value of parameter
  return tail;

} 
//----------------------------------------------------------------------------
TF1 *CreateFuncGaussTail(TH1F *h,TString funcname,Double_t Norm,Double_t parzero,Double_t parone,Double_t partwo)
{
  TF1 *gaustail=new TF1(funcname.Data(),"[0]*([4]/(TMath::Sqrt(2.*TMath::Pi())*[2])*TMath::Exp(-1.*(x-[1])*(x-[1])/(2.*[2]*[2]))+(1.-[4])/(2.*[3])*TMath::Exp(-TMath::Abs(x-[1])/[3]))",-1,1);
  gaustail->SetParameters(Norm,parzero,parone,partwo,0.82);//Set the initial value of parameter
  return gaustail;

} 

//----------------------------------------------------------------------------

void CompareImpParRes(TString foutName){
  //Copare the resolution obtained from Gaus and GausTail fit!
  // BE CAREFUL!! look at the fits "by eye", GausTail sometimes fail, especially pions at low pt
  
  TFile *fout=new TFile(foutName.Data(),"read");
  
  TCanvas *c=new TCanvas("CompareImpParRes","CompareImpParRes",1);
  c->SetLogx();
  
  for(Int_t iparticle=0;iparticle<3;iparticle++){
    TH1F *fHistImpParResGaus = (TH1F*)fout->Get(Form("fHistImpParResGaus%s",particle[iparticle].Data()));
    TH1F *fHistImpParResGausTail = (TH1F*)fout->Get(Form("fHistImpParResGausTail%s",particle[iparticle].Data()));
    setDrawAtt(iparticle+24,color[iparticle],1,color[iparticle],1,fHistImpParResGaus);
    if(iparticle==0)fHistImpParResGaus->DrawClone();
    else fHistImpParResGaus->DrawClone("same");
    fHistImpParResGausTail->DrawClone("same");
  }
  gPad->BuildLegend()->SetFillColor(0);
  
  TFile *fout=new TFile(foutName.Data(),"update");
  c->Write();
  fout->Close();
  delete fout;
  
}


//-----------------------------------------------------

void PlotPtResol(TList* l,TString foutName, Bool_t optFromMC){
  TString hNameR,hNameA;
  TString partName[3]={"Pion","Kaon","Proton"};
  TString prefix;
  if(optFromMC) prefix="hMC";
  else prefix="h";
  
  TCanvas* c2d[3];
  TCanvas* c1dA[3];
  TCanvas* c1dR[3];
  
  TH2F* h2DA[3];
  TH2F* h2DR[3];
  TH1F* hptres[3][40];
  TH1F* h1ptrelres[3][40];
  TH1F* hptreco[3][40];
  
  TGraphErrors* gbias[3];
  TGraphErrors* grelresol[3];
  
  gStyle->SetPalette(1);
  
  for(Int_t iSpec=0; iSpec<3; iSpec++){
    hNameA=Form("%sPtResid%s",prefix.Data(),partName[iSpec].Data());
    hNameR=Form("%sInvPtRelResid%s",prefix.Data(),partName[iSpec].Data());
    printf("%s %s\n",hNameA.Data(),hNameR.Data());
    h2DA[iSpec]=(TH2F*)l->FindObject(hNameA.Data());
    h2DR[iSpec]=(TH2F*)l->FindObject(hNameR.Data());
    c2d[iSpec]=new TCanvas(Form("c2d%s",partName[iSpec].Data()),Form("c2d%s",partName[iSpec].Data()));
    c2d[iSpec]->Divide(2,1);
    c2d[iSpec]->cd(1);
    h2DA[iSpec]->Draw("colz"); 
    c2d[iSpec]->cd(2);
    h2DR[iSpec]->Draw("colz");

    Int_t nptbins=h2DR[iSpec]->GetNbinsX();

    Int_t nybinsA=h2DA[iSpec]->GetNbinsY();
    Float_t minyA=h2DA[iSpec]->GetYaxis()->GetBinLowEdge(1);
    Float_t maxyA=h2DA[iSpec]->GetYaxis()->GetBinUpEdge(nybinsA);

    Int_t nybinsR=h2DR[iSpec]->GetNbinsY();
    Float_t minyR=h2DR[iSpec]->GetYaxis()->GetBinLowEdge(1);
    Float_t maxyR=h2DR[iSpec]->GetYaxis()->GetBinUpEdge(nybinsR);
    printf("%d   %d %f %f   %d %f %f\n",nptbins,nybinsA,minyA,maxyA,nybinsR,minyR,maxyR);

    c1dA[iSpec]=new TCanvas(Form("c1dA%s",partName[iSpec].Data()),Form("c1dA%s",partName[iSpec].Data()));
    c1dA[iSpec]->Divide(6,5);
    c1dR[iSpec]=new TCanvas(Form("c1dR%s",partName[iSpec].Data()),Form("c1dR%s",partName[iSpec].Data()));
    c1dR[iSpec]->Divide(6,5);


    gbias[iSpec]=new TGraphErrors(0);
    grelresol[iSpec]=new TGraphErrors(0);
    gbias[iSpec]->SetTitle("");
    grelresol[iSpec]->SetTitle("");

    for(Int_t iptbin=0; iptbin<nptbins;iptbin++){
      Float_t avept=h2DA[iSpec]->GetXaxis()->GetBinCenter(iptbin+1);
      Float_t widpt=0.5*h2DA[iSpec]->GetXaxis()->GetBinWidth(iptbin+1);
      Int_t minptbinmev=(Int_t)(h2DA[iSpec]->GetXaxis()->GetBinLowEdge(iptbin+1)*1000.+0.5);

      hptres[iSpec][iptbin]=new TH1F(Form("hptres%s_%d",partName[iSpec].Data(),minptbinmev),
				     Form("hptres%s_%d",partName[iSpec].Data(),minptbinmev),
				     nybinsA,minyA,maxyA);
      h1ptrelres[iSpec][iptbin]=new TH1F(Form("h1ptrelres%s_%d",partName[iSpec].Data(),minptbinmev),
					 Form("h1ptrelres%s_%d",partName[iSpec].Data(),minptbinmev),
					 nybinsR,minyR,maxyR);
      hptreco[iSpec][iptbin]=new TH1F(Form("hptreco%s_%d",partName[iSpec].Data(),minptbinmev),
				      Form("hptreco%s_%d",partName[iSpec].Data(),minptbinmev),
				      400,0.,2.);
      for(Int_t iBin=1; iBin<=nybinsA; iBin++){
	hptres[iSpec][iptbin]->SetBinContent(iBin,h2DA[iSpec]->GetBinContent(iptbin+1,iBin));
	hptres[iSpec][iptbin]->SetBinError(iBin,h2DA[iSpec]->GetBinError(iptbin+1,iBin));
      }
      for(Int_t iBin=1; iBin<=nybinsR; iBin++){
	h1ptrelres[iSpec][iptbin]->SetBinContent(iBin,h2DR[iSpec]->GetBinContent(iptbin+1,iBin));
	h1ptrelres[iSpec][iptbin]->SetBinError(iBin,h2DR[iSpec]->GetBinError(iptbin+1,iBin));
      }

      c1dA[iSpec]->cd(iptbin+1);
      hptres[iSpec][iptbin]->Draw();
      if(hptres[iSpec][iptbin]->Integral()>50){
	hptres[iSpec][iptbin]->Fit("gaus");
	hptres[iSpec][iptbin]->GetXaxis()->SetTitle("Pt residuals (GeV/c)");
	hptres[iSpec][iptbin]->GetXaxis()->CenterTitle();
	TF1* fgaus= (TF1*)hptres[iSpec][iptbin]->GetListOfFunctions()->FindObject("gaus");
	Int_t nPoint=gbias[iSpec]->GetN();
	gbias[iSpec]->SetPoint(nPoint, avept, fgaus->GetParameter(1));//hptres[iSpec][iptbin]->GetMean());
	gbias[iSpec]->SetPointError(nPoint, widpt, fgaus->GetParError(1)); //hptres[iSpec][iptbin]->GetMeanError());
      }
      c1dR[iSpec]->cd(iptbin+1);
      h1ptrelres[iSpec][iptbin]->Draw();
      if(h1ptrelres[iSpec][iptbin]->Integral()>50){
	h1ptrelres[iSpec][iptbin]->Fit("gaus","","",-0.1,0.1);//,"L");
	h1ptrelres[iSpec][iptbin]->GetXaxis()->SetTitle("1/Pt relative residuals");
	h1ptrelres[iSpec][iptbin]->GetXaxis()->CenterTitle();
	TF1* fgaus= (TF1*)h1ptrelres[iSpec][iptbin]->GetListOfFunctions()->FindObject("gaus");    
	Int_t nPoint=grelresol[iSpec]->GetN();
	grelresol[iSpec]->SetPoint(nPoint, avept, fgaus->GetParameter(2));
	grelresol[iSpec]->SetPointError(nPoint, widpt, fgaus->GetParError(2));    
      }

    }
  }
  

  TCanvas* cb=new TCanvas("cb","Bias");
  gbias[2]->SetMarkerStyle(22);
  gbias[2]->SetMarkerColor(4);
  gbias[2]->SetLineColor(4);
  gbias[2]->Draw("PA");
  gbias[0]->SetMarkerStyle(20);
  gbias[0]->SetMarkerColor(1);
  gbias[0]->SetLineColor(1);
  gbias[0]->Draw("PSAME");
  gbias[1]->SetMarkerStyle(25);
  gbias[1]->SetMarkerColor(2);
  gbias[1]->SetLineColor(2);
  gbias[1]->Draw("PSAME");
  gbias[2]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  if(optFromMC) gbias[2]->GetYaxis()->SetTitle("<p_{T}(ITSsa)-p_{T}(MC)> (GeV/c)");
  else gbias[2]->GetYaxis()->SetTitle("<p_{T}(ITSsa)-p_{T}(TPCITS)> (GeV/c)");
  gbias[2]->GetYaxis()->SetTitleOffset(1.2);
  cb->Update();

  TCanvas* cr=new TCanvas("cr","Resol");
  grelresol[2]->SetMinimum(0.);
  grelresol[2]->SetMaximum(0.2);
  grelresol[2]->SetMarkerStyle(22);
  grelresol[2]->SetMarkerColor(4);
  grelresol[2]->SetLineColor(4);
  grelresol[2]->Draw("PA");
  grelresol[0]->SetMarkerStyle(20);
  grelresol[0]->SetMarkerColor(1);
  grelresol[0]->SetLineColor(1);
  grelresol[0]->Draw("PSAME");
  grelresol[1]->SetMarkerStyle(25);
  grelresol[1]->SetMarkerColor(2);
  grelresol[1]->SetLineColor(2);
  grelresol[1]->Draw("PSAME");
  grelresol[2]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  grelresol[2]->GetYaxis()->SetTitle("1/Pt relative resolution (%)");
  grelresol[2]->GetYaxis()->SetTitleOffset(1.2);
  cr->Update();
 
  TFile *fout=new TFile(foutName.Data(),"update");
  for(Int_t iSpec=0; iSpec<3; iSpec++){
    c2d[iSpec]->Write();
    c1dA[iSpec]->Write();
    c1dR[iSpec]->Write();
  }
  cb->Write();
  cr->Write();
  fout->Close();
  delete fout;
}
//----------------------------------------------------------------------------

void PlotITSsa(TList* li,TString foutName){

  TH1F* hPtTPCITS=(TH1F*)li->FindObject("hPtTPCITS");
  TH1F* hPtITSsa=(TH1F*)li->FindObject("hPtITSsa");
  TH1F* hPtITSpureSA=(TH1F*)li->FindObject("hPtITSpureSA");

  TH2F* hEtaPhiTPCITS=(TH2F*)li->FindObject("hEtaPhiTPCITS");
  TH2F* hEtaPhiITSsa=(TH2F*)li->FindObject("hEtaPhiITSsa");
  TH2F* hEtaPhiITSpureSA=(TH2F*)li->FindObject("hEtaPhiITSpureSA");

  TH1F* hChi2TPCITS=(TH1F*)li->FindObject("hChi2TPCITS");
  TH1F* hChi2ITSsa=(TH1F*)li->FindObject("hChi2ITSsa");
  TH1F* hChi2ITSpureSA=(TH1F*)li->FindObject("hChi2ITSpureSA");

  TH1F* hNcluTPCITS=(TH1F*)li->FindObject("hNcluTPCITS");
  TH1F* hNcluITSsa=(TH1F*)li->FindObject("hNcluITSsa");
  TH1F* hNcluITSpureSA=(TH1F*)li->FindObject("hNcluITSpureSA");


  TH1F* hRatio=(TH1F*)hPtTPCITS->Clone("hRatio");
  hRatio->Add(hPtITSsa);
  hRatio->Divide(hPtITSpureSA);
  hRatio->SetStats(0);

  TCanvas* c1=new TCanvas("c1","Pt",800,1000);
  c1->Divide(1,2);
  c1->cd(1);
  hPtITSpureSA->Draw();
  hPtITSpureSA->GetXaxis()->SetTitle("Pt (GeV/c)");
  gPad->Update();
  TPaveStats *st1=(TPaveStats*)hPtITSpureSA->GetListOfFunctions()->FindObject("stats");
  st1->SetY1NDC(0.71);
  st1->SetY2NDC(0.9);
  hPtTPCITS->SetLineColor(2);
  hPtTPCITS->Draw("sames");
  gPad->Update();
  TPaveStats *st2=(TPaveStats*)hPtTPCITS->GetListOfFunctions()->FindObject("stats");
  st2->SetY1NDC(0.51);
  st2->SetY2NDC(0.7);
  st2->SetTextColor(2);

  hPtITSsa->SetLineColor(4);
  hPtITSsa->Draw("sames");
  gPad->Update();
  TPaveStats *st3=(TPaveStats*)hPtITSsa->GetListOfFunctions()->FindObject("stats");
  st3->SetY1NDC(0.31);
  st3->SetY2NDC(0.5);
  st3->SetTextColor(4);
  TLegend* leg=new TLegend(0.5,0.5,0.69,0.69);
  leg->SetFillColor(0);
  TLegendEntry* ent=leg->AddEntry(hPtITSpureSA,"ITS pureSA","L");
  ent->SetTextColor(hPtITSpureSA->GetLineColor());
  ent=leg->AddEntry(hPtTPCITS,"TPC+ITS","L");
  ent->SetTextColor(hPtTPCITS->GetLineColor());
  ent=leg->AddEntry(hPtITSsa,"ITSsa","L");
  ent->SetTextColor(hPtITSsa->GetLineColor());
  leg->Draw();
  c1->cd(2);
  gPad->SetGridx();
  gPad->SetGridy();
  hRatio->Draw();
  hRatio->GetXaxis()->SetTitle("Pt (GeV/c)");
  hRatio->GetYaxis()->SetTitle("(TPCITS+ITSsa)/ITSpureSA");

  hChi2ITSpureSA->Scale(1./hChi2ITSpureSA->GetEntries());
  hChi2ITSsa->Scale(1./hChi2ITSsa->GetEntries());
  hChi2TPCITS->Scale(1./hChi2TPCITS->GetEntries());

  TCanvas* c2=new TCanvas("c2","Chi2");
  hChi2ITSpureSA->Draw();
  hChi2ITSpureSA->GetXaxis()->SetTitle("Chi2");
  gPad->Update();
  TPaveStats *stc1=(TPaveStats*)hChi2ITSpureSA->GetListOfFunctions()->FindObject("stats");
  stc1->SetY1NDC(0.71);
  stc1->SetY2NDC(0.9);
  hChi2TPCITS->SetLineColor(2);
  hChi2TPCITS->Draw("sames");
  gPad->Update();
  TPaveStats *stc2=(TPaveStats*)hChi2TPCITS->GetListOfFunctions()->FindObject("stats");
  stc2->SetY1NDC(0.51);
  stc2->SetY2NDC(0.7);
  stc2->SetTextColor(2);
  c2->Update();
  hChi2ITSsa->SetLineColor(4);
  hChi2ITSsa->Draw("sames");
  gPad->Update();
  TPaveStats *stc3=(TPaveStats*)hChi2ITSsa->GetListOfFunctions()->FindObject("stats");
  stc3->SetY1NDC(0.31);
  stc3->SetY2NDC(0.5);
  stc3->SetTextColor(4);
  leg->Draw();

  hNcluITSpureSA->Scale(1./hNcluITSpureSA->GetEntries());
  hNcluITSsa->Scale(1./hNcluITSsa->GetEntries());
  hNcluTPCITS->Scale(1./hNcluTPCITS->GetEntries());

  TCanvas* c3=new TCanvas("c3","Nclu");
  c3->SetRightMargin(0.22);
  hNcluITSpureSA->Draw();
  hNcluITSpureSA->GetXaxis()->SetTitle("n. ITS clusters");
  gPad->Update();
  TPaveStats *stn1=(TPaveStats*)hNcluITSpureSA->GetListOfFunctions()->FindObject("stats");
  stn1->SetY1NDC(0.71);
  stn1->SetY2NDC(0.9);
  hNcluTPCITS->SetLineColor(2);
  hNcluTPCITS->Draw("sames");
  gPad->Update();
  TPaveStats *stn2=(TPaveStats*)hNcluTPCITS->GetListOfFunctions()->FindObject("stats");
  stn2->SetY1NDC(0.51);
  stn2->SetY2NDC(0.7);
  stn2->SetTextColor(2);

  hNcluITSsa->SetLineColor(4);
  hNcluITSsa->Draw("sames");
  gPad->Update();
  TPaveStats *stn3=(TPaveStats*)hNcluITSsa->GetListOfFunctions()->FindObject("stats");
  stn3->SetY1NDC(0.31);
  stn3->SetY2NDC(0.5);
  stn3->SetTextColor(4);
  leg->Draw();

  gStyle->SetPalette(1);
  hEtaPhiITSpureSA->SetStats(0);
  hEtaPhiITSpureSA->SetTitle("ITS pureSA");
  hEtaPhiITSsa->SetStats(0);
  hEtaPhiITSsa->SetTitle("ITSsa");
  hEtaPhiTPCITS->SetStats(0);
  hEtaPhiTPCITS->SetTitle("TPC+ITS");
  TCanvas* c4=new TCanvas("c4","EtaPhi",1000,700);
  c4->Divide(3,1);
  c4->cd(1);
  hEtaPhiITSpureSA->Draw("colz");
  hEtaPhiITSpureSA->GetXaxis()->SetTitle("Eta");
  hEtaPhiITSpureSA->GetYaxis()->SetTitle("Phi");
  c4->cd(2);
  hEtaPhiITSsa->Draw("colz");
  hEtaPhiITSsa->GetXaxis()->SetTitle("Eta");
  hEtaPhiITSsa->GetYaxis()->SetTitle("Phi");
  c4->cd(3);
  hEtaPhiTPCITS->Draw("colz");
  hEtaPhiTPCITS->GetXaxis()->SetTitle("Eta");
  hEtaPhiTPCITS->GetYaxis()->SetTitle("Phi");
  
  TFile *fout=new TFile(foutName.Data(),"update");
  c1->Write();
  c2->Write();
  c3->Write();
  c4->Write();
  fout->Close();
  delete fout;
 
}


//----------------------------------------------------------------------------

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