ROOT logo
/*
  
  .x ~/UliStyle.C
  .x ~/NimStyle.C
  .x ~/rootlogon.C
  TProof::Open("");
  gSystem->Load("libSTAT.so");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libTPCcalib");
  gSystem->Load("libSTAT.so");

  gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");  
  gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");
  AliXRDPROOFtoolkit tool; 
  TChain * chain = tool.MakeChain("cosmic.txt","Track0",0,1000000);
  chain->Lookup();
  chain->SetProof(kTRUE);

  .L $ALICE_ROOT/TPC/CalibMacros/CosmicPerformance.C+
  chainCosmic=chain;
  MakeCuts()
  MakeAlias();
  Make1PtPlot();
  Draw1Pt();
  Draw1PtPull();

  MakeZPlot();
  DrawZ();
  DrawZPull();

  //
  PtResolPt();
  
  
*/

#include "TTree.h"
#include "TChain.h"
#include "TPad.h"
#include "TCanvas.h"
#include "TCut.h"
#include "TH1.h"
#include "TH2F.h"
#include "AliTPCcalibV0.h"
#include "AliExternalTrackParam.h"

TChain * chainCosmic=0;
Int_t kmicolors[10]={1,2,3,4,6,7,8,9,10,11};
Int_t kmimarkers[10]={21,22,23,24,25,26,27,28,29,30};

AliTPCcalibV0 v0;
Bool_t bUseCorrection =kFALSE;
//
// Global  cuts
//
TCut cutDiff[6];  // parameter diff cuts - 5 all
TCut cutPull[6];  // pull diff cuts      - 5 all
TCut cutGeomTPC;  // TPC geometrical cuts 
TCut cutN("cutN","min(Orig0.fTPCncls,Orig1.fTPCncls)>80");
TCut cutN120("cutN120","min(Orig0.fTPCncls,Orig1.fTPCncls)+abs(Tr1.fP[4]*10)>120");
TCut cutN130("cutN120","min(Orig0.fTPCncls,Orig1.fTPCncls)+abs(Tr1.fP[4]*20)>130");
TCut cutS("cutS","!crossI&&!crossO");
TCut cutRun("run<620600");
TCut cutAll;
TCut cutCustom=cutN130+cutS+cutRun;
TCut cut1Pt = "Tr0.fP[1]>0"; // Use only A side for Pt study
//
// Aliases
//
TString dP[5];      // delta of parameters
TString sP[5];      // sigma of parameters
TString pP[5];      // pull  of parameters
TString axisYDP[5];  // axis title
TString axisYPP[5];  // axis title
TString axisYDPm[5];  // axis title
TString axisYPPm[5];  // axis title
//
//
Float_t range[5] = {5,3,10,3,0.05};      // ranges for diff histogram

Float_t scale[5] = {10,10,1000,1000,1};  // scaling factor
//
// Z depend
TH2F * histoDPZ[5]={0,0,0,0,0};
TH2F * histoSPZ[5]={0,0,0,0,0};
TH2F * histoPPZ[5]={0,0,0,0,0};
TH1F * hmDPZ[5];
TH1F * hmSPZ[5];
TH1F * hmPPZ[5];
TH1F * hsDPZ[5];
TH1F * hsSPZ[5];
TH1F * hsPPZ[5];
//
// Pt depend
TH2F * histoDP1Pt[5]={0,0,0,0,0};
TH2F * histoSP1Pt[5]={0,0,0,0,0};
TH2F * histoPP1Pt[5]={0,0,0,0,0};
TH1F * hmDP1Pt[5];
TH1F * hmSP1Pt[5];
TH1F * hmPP1Pt[5];
TH1F * hsDP1Pt[5];
TH1F * hsSP1Pt[5];
TH1F * hsPP1Pt[5];

void MakeCutsParam(){
  //
  // Default selection criteria
  //
  cutDiff[0]="abs(Tr0.fP[0]+Tr1.fP[0])<3";
  cutDiff[1]="abs(Tr0.fP[1]-Tr1.fP[1])<15"; 
  cutDiff[2]="abs(Tr1.fAlpha-Tr0.fAlpha+pi)<0.1";
  cutDiff[3]="abs(Tr0.fP[3]+Tr1.fP[3])<0.1";     
  cutDiff[4]="abs(Tr0.fP[4]+Tr1.fP[4])<0.5";     
  for (Int_t i=0;i<5;i++) cutDiff[5]+=cutDiff[i];
  //
  cutPull[0]="abs(Tr0.fP[0]+Tr1.fP[0])/sqrt(Tr0.fC[0]+Tr1.fC[0])<10";
  cutPull[1]="1"; 
  cutPull[2]="((Tr1.fAlpha-Tr0.fAlpha+pi))/sqrt(Tr0.fC[5]+Tr1.fC[5])<10";
  cutPull[3]="1";     
  cutPull[4]="abs(Tr0.fP[4]+Tr1.fP[4])/sqrt(Tr0.fC[14]+Tr1.fC[14])<10";     
  for (Int_t i=0;i<5;i++) cutPull[5]+=cutPull[i];
}

void MakeGeomCuts(){
//
// Geometrical cut 
//
  TCut cutOx("Op1.fX>240&&Op0.fX>240");
  TCut cutOz("abs(Op1.fP[1])<240&&abs(Op0.fP[1])<240");
  TCut cutIz("abs(Ip1.fP[1])<240&&abs(Ip0.fP[1])<240");
  TCut cutX00("abs(x00)<70");
  TCut cutX10("abs(x10)<70");
  TCut cutT1P2("abs(Ip1.fP[2])<0.8");
  TCut cutT0P2("abs(Ip0.fP[2])<0.8");
  cutGeomTPC = cutOx+cutOz+cutIz+cutX00+cutX10+cutT1P2+cutT0P2;
}

void MakeCuts(){
  // make cuts all 
  MakeGeomCuts();
  MakeCutsParam();
  cutAll = cutDiff[5]+cutPull[5]+cutGeomTPC;
}

void MakeAlias(){
  AliExternalTrackParam p;
  dP[0]="(Tr0.fP[0]+Tr1.fP[0])";
  dP[1]="(Tr0.fP[1]-Tr1.fP[1])"; 
  dP[2]="(Tr1.fAlpha-Tr0.fAlpha+pi)";
  dP[3]="(Tr0.fP[3]+Tr1.fP[3])";     
  dP[4]="(Tr0.fP[4]+Tr1.fP[4])";     
  for (Int_t i=0;i<5;i++){
    sP[i]=Form("%f*sqrt(Tr0.fC[%d]+Tr1.fC[%d])",scale[i],p.GetIndex(i,i),p.GetIndex(i,i));
    pP[i]=Form("%s/sqrt(Tr0.fC[%d]+Tr1.fC[%d])",dP[i].Data(),scale[i],p.GetIndex(i,i),p.GetIndex(i,i));
    dP[i]+=Form("*%f",scale[i]);
  }
 
  axisYDP[0]="#sigma_{r#phi} (mm)";
  axisYDP[1]="#sigma_{z} (mm)";
  axisYDP[2]="#sigma_{#phi} (mrad)";
  axisYDP[3]="#sigma_{#theta} (mrad)";
  axisYDP[4]="#sigma_{1/pt} (1/GeV))";
  //
  axisYPP[0]="#sigma_{r#phi} (Unit)";
  axisYPP[1]="#sigma_{z} (Unit)";
  axisYPP[2]="#sigma_{#phi} (Unit)";
  axisYPP[3]="#sigma_{#theta} (Unit)";
  axisYPP[4]="#sigma_{1/pt} (Unit))";
  //
  axisYDPm[0]="#Delta_{r#phi} (mm)";
  axisYDPm[1]="#Delta_{z} (mm)";
  axisYDPm[2]="#Delta_{#phi} (mrad)";
  axisYDPm[3]="#Delta_{#theta} (mrad)";
  axisYDPm[4]="#Delta_{1/pt} (1/GeV))";
  //
  axisYPPm[0]="#Delta_{r#phi} (Unit)";
  axisYPPm[1]="#Delta_{z} (Unit)";
  axisYPPm[2]="#Delta_{#phi} (Unit)";
  axisYPPm[3]="#Delta_{#theta} (Unit)";
  axisYPPm[4]="#Delta_{1/pt} (Unit))";
}

void MakeZPlot(){
  
  for (Int_t i=0;i<5;i++){
    char hname[100];
    sprintf(hname,"dP%ivZ",i);
    //
    if ( histoDPZ[i]==0){
      histoDPZ[i]= new TH2F(hname, hname,10,-240,240,100,-range[i],range[i]);
      sprintf(hname,"sP%ivZ",i);
      histoSPZ[i]= new TH2F(hname, hname,10,-240,240,100,0,range[i]/3);
      sprintf(hname,"pP%ivZ",i);
      histoPPZ[i]= new TH2F(hname, hname,10,-240,240,100,-6,6);
    }
    //
    histoDPZ[i]->SetXTitle("z (cm)");
    histoSPZ[i]->SetXTitle("z (cm)");
    histoPPZ[i]->SetXTitle("z (cm)");
    histoDPZ[i]->SetYTitle(axisYDP[i]);
    histoSPZ[i]->SetYTitle(axisYDP[i]);
    histoPPZ[i]->SetYTitle(axisYPP[i]);
    chainCosmic->Draw((dP[i]+"/sqrt(2.):Tr0.fP[1]>>"+histoDPZ[i]->GetName()),cutAll+cutCustom+cutS);
    chainCosmic->Draw((sP[i]+"/sqrt(2.):Tr0.fP[1]>>"+histoSPZ[i]->GetName()),cutAll+cutCustom+cutS); 
    chainCosmic->Draw((pP[i]+":Tr0.fP[1]>>"+histoPPZ[i]->GetName()),cutAll+cutCustom+cutS); 
  }
  
  TObjArray array(3);
  {
    for (Int_t i=0;i<5;i++){
      histoDPZ[i]->FitSlicesY(0,0,-1,0,"QNR",&array);
      hmDPZ[i] = (TH1F*)((array.At(1))->Clone());
      hsDPZ[i] = (TH1F*)((array.At(2))->Clone());
      histoSPZ[i]->FitSlicesY(0,0,-1,0,"QNR",&array);
      hmSPZ[i] = (TH1F*)((array.At(1))->Clone());
      hsSPZ[i] = (TH1F*)((array.At(2))->Clone());
      histoPPZ[i]->FitSlicesY(0,0,-1,0,"QNR",&array);
      hmPPZ[i] = (TH1F*)((array.At(1))->Clone());
      hsPPZ[i] = (TH1F*)((array.At(2))->Clone());
      //
      hmDPZ[i]->SetYTitle(axisYDPm[i]);
      hmSPZ[i]->SetYTitle(axisYDPm[i]);
      hmPPZ[i]->SetYTitle(axisYPPm[i]);
      hsDPZ[i]->SetMinimum(0);
      hsDPZ[i]->SetYTitle(axisYDP[i]);
      hsSPZ[i]->SetYTitle(axisYDP[i]);
      hsPPZ[i]->SetYTitle(axisYPP[i]);
      //
      hmDPZ[i]->SetMarkerColor(kmicolors[1]);
      hmDPZ[i]->SetMarkerStyle(kmimarkers[1]);
      hsDPZ[i]->SetMarkerColor(kmicolors[2]);
      hsDPZ[i]->SetMarkerStyle(kmimarkers[2]);
      hmPPZ[i]->SetMarkerColor(kmicolors[1]);
      hmPPZ[i]->SetMarkerStyle(kmimarkers[1]);
      hsPPZ[i]->SetMarkerColor(kmicolors[2]);
      hsPPZ[i]->SetMarkerStyle(kmimarkers[2]);
    }
  }
}

void Make1PtPlot(){
  
  for (Int_t i=0;i<5;i++){
    char hname[100];
    sprintf(hname,"dP%iv1Pt",i);
    //
    if ( histoDP1Pt[i]==0){
      histoDP1Pt[i]= new TH2F(hname, hname,6,0.02,0.75,100,-range[i],range[i]);
      sprintf(hname,"sP%ivZ",i);
      histoSP1Pt[i]= new TH2F(hname, hname,6,0.02,0.75,100,0,range[i]/3);
      sprintf(hname,"pP%ivZ",i);
      histoPP1Pt[i]= new TH2F(hname, hname,6,0.02,0.75,100,-6,6);
    }
    //
    histoDP1Pt[i]->SetXTitle("#sqrt{1/p_{t} (GeV)}");
    histoSP1Pt[i]->SetXTitle("#sqrt{1/p_{t} (GeV)}");
    histoPP1Pt[i]->SetXTitle("#sqrt{1/p_{t} (GeV)}");
    histoDP1Pt[i]->SetYTitle(axisYDP[i]);
    histoSP1Pt[i]->SetYTitle(axisYDP[i]);
    histoPP1Pt[i]->SetYTitle(axisYPP[i]);
    chainCosmic->Draw((dP[i]+"/sqrt(2.):sqrt(0.5*abs(Tr0.fP[4]-Tr1.fP[4]))>>"+histoDP1Pt[i]->GetName()),cutAll+cutCustom+cutS+cut1Pt);
    chainCosmic->Draw((sP[i]+"/sqrt(2.):sqrt(0.5*abs(Tr0.fP[4]-Tr1.fP[4]))>>"+histoSP1Pt[i]->GetName()),cutAll+cutCustom+cutS+cut1Pt);
    chainCosmic->Draw((pP[i]+":sqrt(0.5*abs(Tr0.fP[4]-Tr1.fP[4]))>>"+histoPP1Pt[i]->GetName()),cutAll+cutCustom+cutS+cut1Pt);    
  }
  
  TObjArray array(3);
  {
    for (Int_t i=0;i<5;i++){
      histoDP1Pt[i]->FitSlicesY(0,0,-1,0,"QNR",&array);
      hmDP1Pt[i] = (TH1F*)((array.At(1))->Clone());
      hsDP1Pt[i] = (TH1F*)((array.At(2))->Clone());
      histoSP1Pt[i]->FitSlicesY(0,0,-1,0,"QNR",&array);
      hmSP1Pt[i] = (TH1F*)((array.At(1))->Clone());
      hsSP1Pt[i] = (TH1F*)((array.At(2))->Clone());
      histoPP1Pt[i]->FitSlicesY(0,0,-1,0,"QNR",&array);
      hmPP1Pt[i] = (TH1F*)((array.At(1))->Clone());
      hsPP1Pt[i] = (TH1F*)((array.At(2))->Clone());
      hmDP1Pt[i]->SetYTitle(axisYDPm[i]);
      hmSP1Pt[i]->SetYTitle(axisYDPm[i]);
      hmPP1Pt[i]->SetYTitle(axisYPPm[i]);
      hsDP1Pt[i]->SetMinimum(0);
      hsDP1Pt[i]->SetYTitle(axisYDP[i]);
      hsSP1Pt[i]->SetYTitle(axisYDP[i]);
      hsPP1Pt[i]->SetYTitle(axisYPP[i]);
      //
      hmDP1Pt[i]->SetMarkerColor(kmicolors[1]);
      hmDP1Pt[i]->SetMarkerStyle(kmimarkers[1]);
      hsDP1Pt[i]->SetMarkerColor(kmicolors[2]);
      hsDP1Pt[i]->SetMarkerStyle(kmimarkers[2]);
      hmPP1Pt[i]->SetMarkerColor(kmicolors[1]);
      hmPP1Pt[i]->SetMarkerStyle(kmimarkers[1]);
      hsPP1Pt[i]->SetMarkerColor(kmicolors[2]);
      hsPP1Pt[i]->SetMarkerStyle(kmimarkers[2]);


    }
  }
}

void DrawZ(){
  TCanvas *czd = new TCanvas("Z depend (abs)","Z depend (abs)",700,900);
  czd->Divide(2,5);
  for (Int_t i=0;i<5;i++){
    czd->cd(2*i+1);
    hmDPZ[i]->Draw("");
    czd->cd(2*i+2);
    hsDPZ[i]->Draw("");
  }
  czd->SaveAs("picResol/deltaPxZ.eps");
  czd->SaveAs("picResol/deltaPxZ.gif");
  czd->SaveAs("picResol/deltaPxZ.root");
}

void DrawZPull(){
  TCanvas *czp = new TCanvas("Z depend (Pull)","Z depend (Pull)",700,900);
  czp->Divide(2,5);
  for (Int_t i=0;i<5;i++){
    czp->cd(2*i+1);
    hmPPZ[i]->Draw("");
    czp->cd(2*i+2);
    hsPPZ[i]->Draw("");
  }
  czp->SaveAs("picResol/pullPxZ.eps");
  czp->SaveAs("picResol/pullPxZ.gif");
  czp->SaveAs("picResol/pullPxZ.root");

}


void Draw1Pt(){
  TCanvas *cpd = new TCanvas("1/Pt depend","1/Pt depend",700,900);
  cpd->Divide(2,5);
  for (Int_t i=0;i<5;i++){
    cpd->cd(2*i+1);
    hmDP1Pt[i]->Draw("");
    cpd->cd(2*i+2);
    hsDP1Pt[i]->Draw("");
  }
  cpd->SaveAs("picResol/deltaPx1Pt.eps");
  cpd->SaveAs("picResol/deltaPx1Pt.gif");
  cpd->SaveAs("picResol/deltaPx1Pt.root");
}
void Draw1PtPull(){
  TCanvas *cpp = new TCanvas("Pull 1/Pt","Pull 1/Pt",700,900);
  cpp->Divide(2,5);
  for (Int_t i=0;i<5;i++){
    cpp->cd(2*i+1);
    hmPP1Pt[i]->Draw("");
    cpp->cd(2*i+2);
    hsPP1Pt[i]->Draw("");
  }
  cpp->SaveAs("picResol/pullPx1Pt.eps");
  cpp->SaveAs("picResol/pullPx1Pt.gif");
  cpp->SaveAs("picResol/pullPx1Pt.root");
}


/*
//
//
//


void DrawPtSpectra(){
  TH1F * hisPt0 = new TH1F("hisPt0","hisPt0",50,0,100);
  TH1F * hisPtC = new TH1F("hisPtC","hisPtC",50,0,100);
  chainCosmic->Draw("Tr0.Pt()>>hisPt0",cutAll+cutCustom);
  chainCosmic->Draw("Tr0.Pt()>>hisPtC","abs(Tr0.fP[4])>3*sqrt(Tr0.fC[14])"+cutAll+cutCustom);
  //
  hisPt0->SetXTitle("p_{t} (GeV)");
  hisPt0->SetLineColor(kmicolors[1]);
  hisPtC->SetLineColor(kmicolors[2]);
  //
  hisPtC->Fit("exp");
  hisPt0->Draw("");
  hisPtC->Draw("same"); 
  TLegend * legend = new TLegend(.4,.7, .99, .99,"Cosmic p_{t} spectra");
  legend->AddEntry(hisPt0,"Raw spectra");
  legend->AddEntry(hisPtC,"Selection abs(p_{t})<3#sigma_{p_{t}}");
  legend->Draw();
  gPad->SaveAs("picSpectra/ptSpectra.eps");
  gPad->SaveAs("picSpectra/ptSpectra.gif");
  gPad->SaveAs("picSpectra/ptSpectra.root");
}



void InitCuts(){
  //
  // Init cuts
  //
  chainCosmic->Draw(">>listELP",cutAll,"entryList");
  TEntryList *elist = (TEntryList*)gDirectory->Get("listELP");
  chainCosmic->SetEntryList(elist);
  //
  chainCosmic->Draw(">>listELFit",cutAll+cuthpt+cutS+cutRun,"entryList");
  TEntryList *elistFit = (TEntryList*)gDirectory->Get("listELFit");
  chainCosmic->SetEntryList(elistFit);
}

void SetAlias(){
  //
  // Set aliases
  //
  chainCosmic->SetAlias("dP0","(Tr0.fP[0]+Tr1.fP[0])");
  chainCosmic->SetAlias("dP1","(Tr0.fP[1]-Tr1.fP[1])");
  chainCosmic->SetAlias("dP2","(Tr1.fAlpha-Tr0.fAlpha+pi)");
  chainCosmic->SetAlias("dP3","(Tr0.fP[3]+Tr1.fP[3])");
  chainCosmic->SetAlias("dP4","(Tr0.fP[4]+Tr1.fP[4])");
  //
  chainCosmic->SetAlias("sP0","sqrt(Tr0.fC[0]+Tr1.fC[0])");
  chainCosmic->SetAlias("sP1","sqrt(Tr0.fC[2]+Tr1.fC[2])");
  chainCosmic->SetAlias("sP2","sqrt(Tr0.fC[5]+Tr0.fC[5])");
  chainCosmic->SetAlias("sP3","sqrt(Tr0.fC[9]+Tr1.fC[9])");
  chainCosmic->SetAlias("sP4","sqrt(Tr0.fC[14]+Tr1.fC[14])");
  //
  chainCosmic->SetAlias("corrP0","0");
  chainCosmic->SetAlias("corrP1","0");
  chainCosmic->SetAlias("corrP2","0");
  chainCosmic->SetAlias("corrP3","0");
  chainCosmic->SetAlias("corrP4","0");
  //
  chainCosmic->SetAlias("dR","(1-abs(Tr0.fP[1]/250))");
  chainCosmic->SetAlias("side","(-1+(Tr0.fP[1]>0)*2)");
  chainCosmic->SetAlias("meanPt","((Tr0.Pt()+Tr1.Pt())/2.)");

}

void Correction(){
  //
  // Fit corrections
  //
  TStatToolkit toolkit;
  Double_t chi2=0;
  Int_t    npoints=0;
  TVectorD fitParam;
  TMatrixD covMatrix;
  //
  TString fstring="";
  fstring+="side++";
  //
  fstring+="dR++";
  fstring+="dR*dR++";
  fstring+="Tr0.fP[3]++";
  //
  fstring+="dR*side++";
  fstring+="dR*dR*side++";
  fstring+="Tr0.fP[3]*side++";
  //
  TString * strP0 = TStatToolkit::FitPlane(chainCosmic,"dP0", fstring.Data(),"1", chi2,npoints,fitParam,covMatrix);
  chainCosmic->SetAlias("corrP0",strP0->Data());

  TString * strP1 = TStatToolkit::FitPlane(chainCosmic,"dP1", fstring.Data(),"!crossI&&!crossO", chi2,npoints,fitParam,covMatrix);
  chainCosmic->SetAlias("corrP1",strP1->Data());

  TString * strP2 = TStatToolkit::FitPlane(chainCosmic,"dP2", fstring.Data(),"1", chi2,npoints,fitParam,covMatrix);
  chainCosmic->SetAlias("corrP2",strP2->Data());

  TString * strP3 = TStatToolkit::FitPlane(chainCosmic,"dP3", fstring.Data(),"!crossI&&!crossO", chi2,npoints,fitParam,covMatrix);
  chainCosmic->SetAlias("corrP3",strP3->Data());

  TString * strP4 = TStatToolkit::FitPlane(chainCosmic,"dP4", fstring.Data(),"1", chi2,npoints,fitParam,covMatrix);
  chainCosmic->SetAlias("corrP4",strP4->Data());
  bUseCorrection = kTRUE;
}



void DrawNClusterGeom(){
  //
  //
  //
  TH2F * hNd("hNd","hNd",50,0,190,100,10,160);
  chainCosmic->Draw("Orig0.fTPCncls:sqrt(x00^2+x01^2)>>hNd",cutOx+cutOz+cutIx+cutIz);
  hNd->FitSlicesY();
  hNd_1->SetXTitle("DCA_{r} (cm)");
  hNd_1->SetYTitle("Mean number of clusters");
  gPad->SaveAs("pic/NCl_Radius.eps");
  gPad->SaveAs("pic/NCl_Radius.gif");
  gPad->SaveAs("pic/NCl_Radius.root");


}


void PtResolPt(){

  TH2F * hdPtPt = new TH2F("hdPtPt","hdPtPt",20,0.5,30,100,-60,60);
  TH2F * hsPtPt = new TH2F("hsPtPt","hsPtPt",20,0.5,30,200,-0,30);
  TH2F * hdPtPtNoCor = new TH2F("hdPtPtNoCor","hdPtPtNoCor",20,0.5,30,100,-60,60);
  TH2F * hdPtPtCor = new TH2F("hdPtPtCor","hdPtPtCor",20,0.5,30,200,-60,60);
  //
  v0.BinLogX(hdPtPt);
  v0.BinLogX(hsPtPt);
  v0.BinLogX(hdPtPtNoCor);
  v0.BinLogX(hdPtPtCor);

  chainCosmic->Draw("100*((Tr0.Pt()-Tr1.Pt())/meanPt)/sqrt(2.):meanPt>>hdPtPt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("100*(sP4*meanPt)/sqrt(2.):meanPt>>hsPtPt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  if (bUseCorrection) chainCosmic->Draw("100*((dP4-corrP4)*meanPt)/sqrt(2.):meanPt>>hdPtPtCorr","side>0"+cutAll+cutRun+cutS+cutN120,"");
  if (bUseCorrection) chainCosmic->Draw("100*(dP4*meanPt)/sqrt(2.):meanPt>>hdPtPtNoCorr","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hdPtPt->FitSlicesY();
  hsPtPt->FitSlicesY();
  hdPtPt_2->Fit("pol1");
  {if (bUseCorrection){
     hdPtPtNoCor->FitSlicesY();
     hdPtPtCor->FitSlicesY();
  }}

  hdPtPt_2->SetXTitle("p_{t} (GeV)");
  hdPtPt_2->SetYTitle("#sigma_{p_{t}}/p_{t} (%)");
  hdPtPt_2->SetMinimum(0.5);
  hsPtPt_1->SetMinimum(0.5);
  hdPtPt_2->SetLineColor(kmicolors[1]);
  hdPtPt_2->SetMarkerStyle(kmimarkers[1]);

  hdPtPt_2->Draw();
  {if (bUseCorrection){
     hdPtPtNoCor_2->Draw("same");
     hdPtPtCor_2->Draw("same");
  }}
  gPad->SaveAs("picPerformance/SigmaPt_pt.gif");
  gPad->SaveAs("picPerformance/SigmaPt_pt.eps");
  gPad->SaveAs("picPerformance/SigmaPt_pt.root");
  hsPtPt_1->SetLineColor(kmicolors[2]);
  hsPtPt_1->SetMarkerStyle(kmimarkers[2]);
  hsPtPt_1->Draw("same");
  gPad->SaveAs("picPerformance/SigmaPt_ptLimit.gif");
  gPad->SaveAs("picPerformance/SigmaPt_ptLimit.eps");
  gPad->SaveAs("picPerformance/SigmaPt_ptLimit.root");

}





void PtResolN(){
  //
  //
  //
  TH2F * hdP4Ncl= new TH2F("hdp4Ncl","hdp4Ncl",5,80,160,100,-0.1,0.1);
  chainCosmic->Draw("(dP4-corrP4)/sqrt(2.):min(Orig0.fTPCncls,Orig1.fTPCncls)>>hdp4Ncl","side>0"+cuthpt+cutRun+cutS,"");
  hdp4Ncl->FitSlicesY();
  hdp4Ncl_2->SetXTitle("Number of clusters");
  hdp4Ncl_2->SetYTitle("#sigma 1/p_{t} (1/GeV)");
  hdp4Ncl_2->Draw();
  gPad->SaveAs("pic/SigmaP4_N.gif");
  gPad->SaveAs("pic/SigmaP4_N.eps");
  gPad->SaveAs("pic/SigmaP4_N.root");

  //
  //
  TH2F * hdP4PullNcl = new TH2F("hdP4PullNcl","hdP4PullNcl",5,80,160,100,-6.1,6.1);
  chainCosmic->Draw("(Tr1.fP[4]+Tr0.fP[4])/sqrt(Tr1.fC[14]+Tr0.fC[14]):min(Orig0.fTPCncls,Orig1.fTPCncls)>>hdP4PullNcl","side>0"+cuthpt+cutRun+cutS,"");
  hdP4PullNcl->FitSlicesY();
  hdP4PullNcl_2->SetXTitle("Number of clusters");
  hdP4PullNcl_2->SetYTitle("#sigma 1/p_{t} (Unit)");
  hdP4PullNcl_2->Draw();
  gPad->SaveAs("pic/PullP4_N.gif");
  gPad->SaveAs("pic/PullP4_N.eps");
  gPad->SaveAs("pic/PullP4_N.root");

}



void dEdxRatio(){
  TH2F hratioPt("hratioPt","hratioPt",10,0,10,100,0.6,1.4);
  chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)/(0.3091*Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)):sqrt(Tr0.P())>>hratioPt","min(Orig0.fTPCncls,Orig1.fTPCncls)>60&&abs(mag)>0.1&&abs(Tr0.fP[3])>0.03","",10000000);
  //
  //
  //
  hratioPt->FitSlicesY();
  TH2F hratioP3("hratioP3","hratioP3",10,0.0,0.6,100,0.6,1.4);
  chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)/(0.3091*Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)):abs(Tr0.fP[3])>>hratioP3","min(Orig0.fTPCncls,Orig1.fTPCncls)>60&&abs(mag)>0.1&&abs(Tr0.fP[3])>0.03","",10000000);
}




///////////////////////////////////////////////////////////////////////////
//
//
//
// RESOLUTION  as function of 1/pt
//
//
//
///////////////////////////////////////////////////////////////////////////

void P0resol1Pt(){
  //
  // P0 - Y -DCA resolution as function of the 1/pt
  //
  TH2F * hdP01Pt = new TH2F("hdP01Pt","hdP01Pt",6,0,1.0,100,-1.05,1.05);
  TH2F * hdP01PtNoCor = new TH2F("hdP01PtNoCor","hdP01PtNoCor",6,0,1.0,100,-1.05,1.05);
  chainCosmic->Draw("(dP0-corrP0)/sqrt(2.):sqrt(1/meanPt)>>hdP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP0-0)/sqrt(2.):sqrt(1/meanPt)>>hdP01PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hdP01Pt->FitSlicesY();
  hdP01PtNoCor->FitSlicesY();
  TH2F * hsP01Pt = new TH2F("hsP01Pt","hsP01Pt",6,0,1.0,100,-0.05,0.5);
  chainCosmic->Draw("(sP0)/sqrt(2.):sqrt(1/meanPt)>>hsP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  TH1 *hsP01Pt_2 = hsP01Pt->ProfileX();

  hdP01Pt_2->SetMinimum(0);
  hdP01Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hdP01Pt_2->SetYTitle("#sigma_{y} (cm)");
  hdP01Pt_2->SetMarkerStyle(kmimarkers[0]);  
  hsP01Pt_2->SetMarkerStyle(kmimarkers[2]);  
  hdP01PtNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP01Pt_2->Draw();  
  hsP01Pt_2->Draw("same");  
  hdP01PtNoCor_2->Draw("same");

  gPad->SaveAs("picPerformance/SigmaP0_1pt.gif");
  gPad->SaveAs("picPerformance/SigmaP0_1pt.eps");
  gPad->SaveAs("picPerformance/SigmaP0_1pt.root");
  //
  TH2F * hPullP01Pt = new TH2F("hhPullP01Pt","hhPullP01Pt",6,0,1,50,-5.05,5.05);
  TH2F * hncPullP01Pt = new TH2F("hhncPullP01Pt","hhncPullP01Pt",6,0,1,50,-5.05,5.05);
  chainCosmic->Draw("(dP0-corrP0)/sP0:sqrt(1/meanPt)>>hhPullP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP0-0)/sP0:sqrt(1/meanPt)>>hhncPullP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hPullP01Pt->FitSlicesY();
  hncPullP01Pt->FitSlicesY();
  hhPullP01Pt_2->SetMarkerStyle(kmimarkers[0]);
  hhncPullP01Pt_2->SetMarkerStyle(kmimarkers[1]);
  hhPullP01Pt_2->SetMinimum(0);
  hhPullP01Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hhPullP01Pt_2->SetYTitle("#sigma_{y}(Unit) ");
  hhPullP01Pt_2->Draw();
  //hhncPullP01Pt_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP0_1pt.gif");
  gPad->SaveAs("picPerformance/PullP0_1pt.eps");
  gPad->SaveAs("picPerformance/PullP0_1pt.root");
}



void P1resol1Pt(){
  //
  // P1 - Z -DCA resolution as function of the 1/pt
  //
  TH2F * hdP11Pt = new TH2F("hdP11Pt","hdP11Pt",6,0,1.0,100,-1.05,1.05);
  TH2F * hdP11PtNoCor = new TH2F("hdP11PtNoCor","hdP11PtNoCor",6,0,1.0,100,-1.05,1.05);
  chainCosmic->Draw("(dP1-corrP1)/sqrt(2.):sqrt(1/meanPt)>>hdP11Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP1-0)/sqrt(2.):sqrt(1/meanPt)>>hdP11PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hdP11Pt->FitSlicesY();
  hdP11PtNoCor->FitSlicesY();
  hdP11Pt_2->SetMinimum(0);
  hdP11Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hdP11Pt_2->SetYTitle("#sigma_{z} (cm)");
  hdP11Pt_2->SetMarkerStyle(kmimarkers[0]);  
  hdP11PtNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP11Pt_2NoCor->Draw();  
  //  hdP11PtNoCor_2->Draw("same");
  gPad->SaveAs("picPerformance/SigmaP1_1pt.gif");
  gPad->SaveAs("picPerformance/SigmaP1_1pt.eps");
  gPad->SaveAs("picPerformance/SigmaP1_1pt.root");

  //
  TH2F * hPullP11Pt = new TH2F("hhPullP11Pt","hhPullP11Pt",6,0,1,50,-5.05,5.05);
  TH2F * hncPullP11Pt = new TH2F("hhncPullP11Pt","hhncPullP11Pt",6,0,1,50,-5.05,5.05);
  chainCosmic->Draw("(dP1-corrP1)/sP1:sqrt(1/meanPt)>>hhPullP11Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP1-0)/sP1:sqrt(1/meanPt)>>hhncPullP11Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hPullP11Pt->FitSlicesY();
  hncPullP11Pt->FitSlicesY();
  hhPullP11Pt_2->SetMarkerStyle(kmimarkers[0]);
  hhncPullP11Pt_2->SetMarkerStyle(kmimarkers[1]);
  hhPullP11Pt_2->SetMinimum(0);
  hhPullP11Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hhPullP11Pt_2->SetYTitle("#sigma_{z}(Unit) ");
  hhPullP11Pt_2NoCor->Draw();
  //hhncPullP11Pt_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP1_1pt.gif");
  gPad->SaveAs("picPerformance/PullP1_1pt.eps");
  gPad->SaveAs("picPerformance/PullP1_1pt.root");
}

void P2resol1Pt(){
  //
  // P2 - Z -DCA resolution as function of the 1/pt
  //
  TH2F * hdP21Pt = new TH2F("hdP21Pt","hdP21Pt",6,0,1.0,100,-20.05,20.05);
  TH2F * hdP21PtNoCor = new TH2F("hdP21PtNoCor","hdP21PtNoCor",6,0,1.0,100,-20.05,20.05);
  chainCosmic->Draw("1000*(dP2-corrP2)/sqrt(2.):sqrt(1/meanPt)>>hdP21Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("1000*(dP2-0)/sqrt(2.):sqrt(1/meanPt)>>hdP21PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hdP21Pt->FitSlicesY();
  hdP21PtNoCor->FitSlicesY();
  hdP21Pt_2->SetMinimum(0);
  hdP21Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hdP21Pt_2->SetYTitle("#sigma_{#Phi} (mrad)");
  hdP21Pt_2->SetMarkerStyle(kmimarkers[0]);  
  hdP21PtNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP21Pt_2NoCor->Draw();  
  //  hdP21PtNoCor_2->Draw("same");
  gPad->SaveAs("picPerformance/SigmaP2_1pt.gif");
  gPad->SaveAs("picPerformance/SigmaP2_1pt.eps");
  gPad->SaveAs("picPerformance/SigmaP2_1pt.root");

  //
  TH2F * hPullP21Pt = new TH2F("hhPullP21Pt","hhPullP21Pt",6,0,1,50,-5.05,5.05);
  TH2F * hncPullP21Pt = new TH2F("hhncPullP21Pt","hhncPullP21Pt",6,0,1,50,-5.05,5.05);
  chainCosmic->Draw("(dP2-corrP2)/sP2:sqrt(1/meanPt)>>hhPullP21Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP2-0)/sP2:sqrt(1/meanPt)>>hhncPullP21Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hPullP21Pt->FitSlicesY();
  hncPullP21Pt->FitSlicesY();
  hhPullP21Pt_2->SetMarkerStyle(kmimarkers[0]);
  hhncPullP21Pt_2->SetMarkerStyle(kmimarkers[1]);
  hhPullP21Pt_2->SetMinimum(0);
  hhPullP21Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hhPullP21Pt_2->SetYTitle("#sigma_{#Phi}(Unit) ");
  hhPullP21Pt_2NoCor->Draw();
  //hhncPullP21Pt_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP2_1pt.gif");
  gPad->SaveAs("picPerformance/PullP2_1pt.eps");
  gPad->SaveAs("picPerformance/PullP2_1pt.root");
}

void P3resol1Pt(){
  //
  // P3 - Z -DCA resolution as function of the 1/pt
  //
  TH2F * hdP31Pt = new TH2F("hdP31Pt","hdP31Pt",6,0,1.0,100,-5.05,5.05);
  TH2F * hdP31PtNoCor = new TH2F("hdP31PtNoCor","hdP31PtNoCor",6,0,1.0,100,-5.05,5.05);
  chainCosmic->Draw("1000*(dP3-corrP3)/sqrt(2.):sqrt(1/meanPt)>>hdP31Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("1000*(dP3-0)/sqrt(2.):sqrt(1/meanPt)>>hdP31PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hdP31Pt->FitSlicesY();
  hdP31PtNoCor->FitSlicesY();
  hdP31Pt_2->SetMinimum(0);
  hdP31Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hdP31Pt_2->SetYTitle("#sigma_{#Theta} (mrad)");
  hdP31Pt_2->SetMarkerStyle(kmimarkers[0]);  
  hdP31PtNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP31Pt_2NoCor->Draw();  
  //  hdP31PtNoCor_2->Draw("same");
  gPad->SaveAs("picPerformance/SigmaP3_1pt.gif");
  gPad->SaveAs("picPerformance/SigmaP3_1pt.eps");
  gPad->SaveAs("picPerformance/SigmaP3_1pt.root");

  //
  TH2F * hPullP31Pt = new TH2F("hhPullP31Pt","hhPullP31Pt",6,0,1,50,-5.05,5.05);
  TH2F * hncPullP31Pt = new TH2F("hhncPullP31Pt","hhncPullP31Pt",6,0,1,50,-5.05,5.05);
  chainCosmic->Draw("(dP3-corrP3)/sP3:sqrt(1/meanPt)>>hhPullP31Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP3-0)/sP3:sqrt(1/meanPt)>>hhncPullP31Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hPullP31Pt->FitSlicesY();
  hncPullP31Pt->FitSlicesY();
  hhPullP31Pt_2->SetMarkerStyle(kmimarkers[0]);
  hhncPullP31Pt_2->SetMarkerStyle(kmimarkers[1]);
  hhPullP31Pt_2->SetMinimum(0);
  hhPullP31Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hhPullP31Pt_2->SetYTitle("#sigma_{#Theta}(Unit) ");
  hhPullP31Pt_2NoCor->Draw();
  //hhncPullP31Pt_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP3_1pt.gif");
  gPad->SaveAs("picPerformance/PullP3_1pt.eps");
  gPad->SaveAs("picPerformance/PullP3_1pt.root");
}






void P4resol1Pt(){
  //
  // P4 - 1/Pt resolution as function of the 1/pt
  //
  TH2F * hdP41Pt = new TH2F("hdP41Pt","hdP41Pt",6,0,1.0,100,-0.05,0.05);
  TH2F * hdP41PtNoCor = new TH2F("hdP41PtNoCor","hdP41PtNoCor",6,0,1.0,100,-0.05,0.05);
  chainCosmic->Draw("(dP4-corrP4)/sqrt(2.):sqrt(1/meanPt)>>hdP41Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP4-0)/sqrt(2.):sqrt(1/meanPt)>>hdP41PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hdP41Pt->FitSlicesY();
  hdP41PtNoCor->FitSlicesY();
  hdP41Pt_2->SetMinimum(0);
  hdP41Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}");
  hdP41Pt_2->SetYTitle("#sigma_{1/pt} (1/GeV)");
  hdP41Pt_2->SetMarkerStyle(kmimarkers[0]);  
  hdP41PtNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP41Pt_2NoCor->Draw();  
  //hdP41PtNoCor_2->Draw("same");
  gPad->SaveAs("picPerformance/SigmaP4_1pt.gif");
  gPad->SaveAs("picPerformance/SigmaP4_1pt.eps");
  gPad->SaveAs("picPerformance/SigmaP4_1pt.root");

  //
  TH2F * hPullP41Pt = new TH2F("hhPullP41Pt","hhPullP41Pt",6,0,1,50,-5.05,5.05);
  TH2F * hncPullP41Pt = new TH2F("hhncPullP41Pt","hhncPullP41Pt",6,0,1,50,-5.05,5.05);
  chainCosmic->Draw("(dP4-corrP4)/sP4:sqrt(1/meanPt)>>hhPullP41Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP4-0)/sP4:sqrt(1/meanPt)>>hhncPullP41Pt","side>0"+cutAll+cutRun+cutS+cutN120,"");
  hPullP41Pt->FitSlicesY();
  hncPullP41Pt->FitSlicesY();
  hhPullP41Pt_2->SetMarkerStyle(kmimarkers[0]);
  hhncPullP41Pt_2->SetMarkerStyle(kmimarkers[1]);
  hhPullP41Pt_2->SetMinimum(0);
  hhPullP41Pt_2->SetXTitle("#sqrt{1/p_{t}} (1/GeV)}");
  hhPullP41Pt_2->SetYTitle("#sigma_{1/pt} (Unit) ");
  hhPullP41Pt_2NoCor->Draw();
  //hhncPullP41Pt_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP4_1pt.gif");
  gPad->SaveAs("picPerformance/PullP4_1pt.eps");
  gPad->SaveAs("picPerformance/PullP4_1pt.root");
}

//////////////////////////////////////////////////////
//
//
// RESOLUTION as function of Z
//
//
//////////////////////////////////////////////////////

void P0resolZ(){
  //
  //
  //
  TH2F * hdP0Z = new TH2F("hdP0Z","hdP0Z",10,-250,250,100,-3.05,3.05);
  TH2F * hdP0ZNoCor = new TH2F("hdP0ZNoCor","hdP0ZNoCor",10,-250,250,100,-3.05,3.05);
  chainCosmic->Draw("(dP0-corrP0)/sqrt(2.):x02>>hdP0Z",cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP0-0)/sqrt(2.):x02>>hdP0ZNoCor",cutAll+cutRun+cutS+cutN120,"");
  hdP0Z->FitSlicesY();
  hdP0ZNoCor->FitSlicesY();
  //
  TH2F * hsP0Z = new TH2F("hsP0Z","hsP0Z",10,-250,250,200,0.0,2);
  chainCosmic->Draw("(sP0)/sqrt(2.):x02>>hsP0Z",cutAll+cutRun+cutS+cutN120,"");  
  TH1 * hsP0Z_2 = hsP0Z->ProfileX();

  //
  hdP0Z_2->SetMinimum(0);
  hdP0Z_2->SetXTitle("Z position (cm)");
  hdP0Z_2->SetYTitle("#sigma_{y} (cm)");
  hdP0Z_2->SetMarkerStyle(kmimarkers[0]);  
  hdP0ZNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP0Z_2->Draw();  
  hsP0Z_2->Draw("same");  
  hdP0ZNoCor_2->Draw("same");

  gPad->SaveAs("picPerformance/SigmaP0_z.gif");
  gPad->SaveAs("picPerformance/SigmaP0_z.eps");
  gPad->SaveAs("picPerformance/SigmaP0_z.root");
  //
  TH2F * hdPP0Z = new TH2F("hdPP0Z","hdPP0Z",8,-200,200,50,-5.05,5.05);
  TH2F * hncdPP0Z = new TH2F("hncdPP0Z","hncdPP0Z",8,-200,200,50,-5.05,5.05);
  chainCosmic->Draw("(dP0-corrP0)/sP0:x02>>hdPP0Z",cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP0-0)/sP0:x02>>hncdPP0Z",cutAll+cutRun+cutS+cutN120,"");
  hdPP0Z->FitSlicesY();
  hncdPP0Z->FitSlicesY();
  hdPP0Z_2->SetMarkerStyle(kmimarkers[0]);
  hncdPP0Z_2->SetMarkerStyle(kmimarkers[1]);
  hdPP0Z_2->SetMinimum(0);
  hdPP0Z_2->SetXTitle("Z position (cm)");
  hdPP0Z_2->SetYTitle("#sigma_{y}(Unit) ");
  hdPP0Z_2->Draw();
  hncdPP0Z_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP0_z.gif");
  gPad->SaveAs("picPerformance/PullP0_z.eps");
  gPad->SaveAs("picPerformance/PullP0_z.root");
}

void P1resolZ(){
  //
  //
  //
  TH2F *hdP1Z = new TH2F("hdP1Z","hdP1Z",10,-250,250,100,-1.05,1.05);
  TH2F *hdP1ZNoCor=new TH2F("hdP1ZNoCor","hdP1ZNoCor",10,-250,250,100,-1.05,1.05);
  chainCosmic->Draw("(dP1-corrP1)/sqrt(2.):x02>>hdP1Z",cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP1-0)/sqrt(2.):x02>>hdP1ZNoCor",cutAll+cutRun+cutS+cutN120,"");
  TH2F * hsP1Z = new TH2F("hsP1Z","hsP1Z",10,-250,250,200,0.0,1);
  chainCosmic->Draw("(sP1)/sqrt(2.):x02>>hsP1Z",cutAll+cutRun+cutS+cutN120,"");  
  TH1 * hsP1Z_2 = hsP1Z->ProfileX();

  hdP1Z->FitSlicesY();
  hdP1ZNoCor->FitSlicesY();
  hdP1Z_2->SetMinimum(0);
  hdP1Z_2->SetXTitle("Z position (cm)");
  hdP1Z_2->SetYTitle("#sigma_{z} (cm)");
  hdP1Z_2->SetMarkerStyle(kmimarkers[0]);  
  hsP1Z_2->SetMarkerStyle(kmimarkers[2]);  
  hdP1ZNoCor_2->SetMarkerStyle(kmimarkers[1]);

  hdP1ZNoCor_2->SetMinimum(0);
  hdP1Z_2->Draw("");
  hdP1ZNoCor_2->Draw("same");
  hsP1Z_2->Draw("same");

  gPad->SaveAs("picPerformance/SigmaP1_z.gif");
  gPad->SaveAs("picPerformance/SigmaP1_z.eps");
  gPad->SaveAs("picPerformance/SigmaP1_z.root");
  //
  TH2F * hdPP1Z = new TH2F("hdPP1Z","hdPP1Z",8,-200,200,50,-5.05,5.05);
  TH2F * hncdPP1Z = new TH2F("hncdPP1Z","hncdPP1Z",8,-200,200,50,-5.05,5.05);
  chainCosmic->Draw("(dP1-corrP1)/sP1:x02>>hdPP1Z",cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP1-0)/sP1:x02>>hncdPP1Z",cutAll+cutRun+cutS+cutN120,"");
  hdPP1Z->FitSlicesY();
  hncdPP1Z->FitSlicesY();
  hdPP1Z_2->SetMarkerStyle(kmimarkers[0]);
  hncdPP1Z_2->SetMarkerStyle(kmimarkers[1]);
  hdPP1Z_2->SetMinimum(0);
  hncdPP1Z_2->SetMinimum(0);
  hncdPP1Z_2->SetXTitle("Z position (cm)");
  hncdPP1Z_2->SetYTitle("#sigma_{z} (Unit) ");
  hncdPP1Z_2->Draw("");
  hdPP1Z_2->Draw();
  gPad->SaveAs("picPerformance/PullP1_z.gif");
  gPad->SaveAs("picPerformance/PullP1_z.eps");
  gPad->SaveAs("picPerformance/PullP1_z.root");
}


void P2resolZ(){
  //
  //
  //
  TH2F * hdP2Z = new TH2F("hdP2Z","hdP2Z",10,-250,250,50,-20.0,20.0);
  chainCosmic->Draw("1000*(dP2-corrP2)/sqrt(2.):x02>>hdP2Z",cutAll+cutRun+cutS+cutN120,"");
  hdP2Z->FitSlicesY();
  hdP2Z_2->SetXTitle("Z position (cm)");
  hdP2Z_2->SetYTitle("#sigma_{#phi} (mrad)");
  hdP2Z_2->Draw();
  gPad->SaveAs("picPerformance/SigmaP2_z.gif");
  gPad->SaveAs("picPerformance/SigmaP2_z.eps");
  gPad->SaveAs("picPerformance/SigmaP2_z.root");

  //
  TH2F * hdPP2Z = new TH2F("hdPP2Z","hdPP2Z",8,-200,200,50,-5.05,5.05);
  chainCosmic->Draw("(dP2-corrP2)/sP2:x02>>hdPP2Z",cutAll+cutRun+cutS+cutN120,"");
  hdPP2Z->FitSlicesY();
  hdPP2Z_2->SetXTitle("Z position (cm)");
  hdPP2Z_2->SetYTitle("#sigma_{#Phi} (Unit) ");
  hdPP2Z_2->Draw();
  gPad->SaveAs("picPerformance/PullP2_z.gif");
  gPad->SaveAs("picPerformance/PullP2_z.eps");
  gPad->SaveAs("picPerformance/PullP2_z.root");

}

void P3resolZ(){
  //
  //
  //
  TH2F * hdP3Z= new TH2F("hdP3Z","hdP3Z",10,-250,250,50,-5,5);
  chainCosmic->Draw("1000*(dP3-corrP3)/sqrt(2.):x02>>hdP3Z",cutAll+cutRun+cutS+cutN120,"");
  hdP3Z->FitSlicesY();
  hdP3Z_2->SetMinimum(0);
  hdP3Z_2->SetXTitle("Z position (cm)");
  hdP3Z_2->SetYTitle("#sigma_{#Theta}  (mrad)");
  hdP3Z_2->Draw();
  gPad->SaveAs("picPerformance/SigmaP3_z.gif");
  gPad->SaveAs("picPerformance/SigmaP3_z.eps");
  gPad->SaveAs("picPerformance/SigmaP3_z.root");
  //
  TH2F * hdPP3Z=  new TH2F("hdPP3Z","hdPP3Z",8,-200,200,50,-5.05,5.05);
  chainCosmic->Draw("(dP3-corrP3)/sP3:x02>>hdPP3Z",cutAll+cutRun+cutS+cutN120,"");
  hdPP3Z->FitSlicesY();
  hdPP3Z->SetMinimum(0);
  hdPP3Z_2->SetXTitle("Z position (cm)");
  hdPP3Z_2->SetYTitle("#sigma_{#Theta} (Unit) ");
  hdPP3Z_2->Draw();
  //
  gPad->SaveAs("picPerformance/PullP3_z.gif");
  gPad->SaveAs("picPerformance/PullP3_z.eps");
  gPad->SaveAs("picPerformance/PullP3_z.root");
}



void P4resolZ(){
  //
  //
  //
  TH2F *hdP4Z = new TH2F("hdP4Z","hdP4Z",10,-250,250,100,-0.05,0.05);
  TH2F *hdP4ZNoCor=new TH2F("hdP4ZNoCor","hdP4ZNoCor",10,-250,250,100,-0.05,0.05);
  chainCosmic->Draw("(dP4-corrP4)/sqrt(2.):x02>>hdP4Z",cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP4-0)/sqrt(2.):x02>>hdP4ZNoCor",cutAll+cutRun+cutS+cutN120,"");
  hdP4Z->FitSlicesY();
  hdP4ZNoCor->FitSlicesY();
  hdP4Z_2->SetMinimum(0);
  hdP4Z_2->SetXTitle("Z position (cm)");
  hdP4Z_2->SetYTitle("#sigma_{1/pt} (1/GeV)");
  hdP4Z_2->SetMarkerStyle(kmimarkers[0]);  
  hdP4ZNoCor_2->SetMarkerStyle(kmimarkers[1]);
  hdP4Z_2->Draw();  
  //hdP4ZNoCor_2->Draw("same");
  gPad->SaveAs("picPerformance/SigmaP4_z.gif");
  gPad->SaveAs("picPerformance/SigmaP4_z.eps");
  gPad->SaveAs("picPerformance/SigmaP4_z.root");
  //
  TH2F * hdPP4Z = new TH2F("hdPP4Z","hdPP4Z",8,-200,200,50,-5.05,5.05);
  TH2F * hncdPP4Z = new TH2F("hncdPP4Z","hncdPP4Z",8,-200,200,50,-5.05,5.05);
  chainCosmic->Draw("(dP4-corrP4)/sP4:x02>>hdPP4Z",cutAll+cutRun+cutS+cutN120,"");
  chainCosmic->Draw("(dP4-0)/sP4:x02>>hncdPP4Z",cutAll+cutRun+cutS+cutN120,"");
  hdPP4Z->FitSlicesY();
  hncdPP4Z->FitSlicesY();
  hdPP4Z_2->SetMarkerStyle(kmimarkers[0]);
  hncdPP4Z_2->SetMarkerStyle(kmimarkers[1]);
  hdPP4Z_2->SetMinimum(0);
  hdPP4Z_2->SetXTitle("Z position (cm)");
  hdPP4Z_2->SetYTitle("#sigma_{1/pt} (Unit) ");
  hdPP4Z_2->Draw();
  //hncdPP4Z_2->Draw("same");
  gPad->SaveAs("picPerformance/PullP4_z.gif");
  gPad->SaveAs("picPerformance/PullP4_z.eps");
  gPad->SaveAs("picPerformance/PullP4_z.root");

}

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