ROOT logo
/*
 .L AliGenInfo.C+
 .L TestAnalisys.C+
 AddChains(868);    // AddChains(runNumber);
  Select();          // make default selection of data
  MakePictures("pic868");
*/

#include "TFile.h"
#include "TTree.h"
#include "TChain.h"
#include "TString.h"
#include "TLegend.h"
#include "TStyle.h"
#include "TCut.h"
#include "TF1.h"
#include "TProfile.h"
#include "TProfile2D.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TPad.h"
#include "TCanvas.h"
#include "TSystem.h"
#include "TParticle.h"
#include "TRandom.h"
#include "TEventList.h"

#include "AliTrackReference.h"
#include "AliTPCParam.h"
#include "AliDetector.h"
#include "AliStack.h" 
#include "AliGenInfo.h"






void Select();                // make default selection 
void SelectLaser();           // make default selection  for laser tracks

void AddChains(Int_t run);    // add all the trees with selected run number to the chain
void MakePictures(char *dirname);           // make default pictures

void PRFYZ(TCut cut0, TCut cut1,  char * description);  
void PRFZZ(TCut cut0, TCut cut1,  char * description);  
void P5Z(TCut cut0, TCut cut1,  char * description);  
void P3Z(TCut cut0, TCut cut1,  char * description);  
void ResYZ(TCut cut0, TCut cut1,  char * description);
void SysYX(TCut cut0,  char * description);
void SysZX(TCut cut0,  char * description);
//
TProfile * ProfileMaxRow(TCut cut0, char *name, Int_t max);
TProfile * ProfileMaxPhi(TCut cut0, char *name, Int_t max);
TProfile * ProfileMaxZ(TCut cut0, char *name, Int_t max);
TProfile * ProfileQRow(TCut cut0, char *name, Int_t max);
TProfile * ProfileQPhi(TCut cut0, char *name, Int_t max);
TProfile * ProfileQZ(TCut cut0, char *name, Int_t max);
TCanvas *  NoiseSector(TCut cut0,  char * description, Int_t maxrow, Int_t maxpad);

//
// global variables
//
TChain chaincl("Tracks","Tracks");   // tpc tracks and clusters
TChain chaincl2("Tracks","Tracks");   // tpc tracks and clusters
TChain chainSignal("SignalB","SignalB");   // signals over threshold 50

TChain chainFit("Fit","Fit");        // fitted signals with fit parameters
TChain chainPed("Fit","Fit");        // fitted pedestal with noise
TString runDesc="Run ";              // run descriptor
//
AliComparisonDraw comp;
AliComparisonDraw compCl;
AliComparisonDraw compF;
AliComparisonDraw compP;
//
//
// selection of data for analysis
//
TEventList * listTracks    = new TEventList("listTracks","listTracks");
TEventList * listFitS      = new TEventList("listFitS","listFitS");
TEventList * listFitPed    = new TEventList("listFitPed","listFitPed");




void MakePictures(char *dirname){
  //
  //
  //
  // Define Uli Style
  gROOT->SetStyle("Plain");
  gStyle->SetFillColor(10);
  gStyle->SetPadColor(10);
  gStyle->SetCanvasColor(10);
  gStyle->SetStatColor(10);
  
  gStyle->SetPalette(1,0);
  gStyle->SetNumberContours(50);
  //
  const Int_t kMinCl = 200;
  char chshell[100];
  sprintf(chshell,"mkdir %s", dirname);
  gSystem->Exec(chshell); 
  sprintf(chshell,"cd %s", dirname);
  gSystem->Exec(chshell);
  //
  //
  //
  TCanvas c(dirname,dirname);
  for (Int_t isector=0; isector<36; isector++){
    char chcut1[100];
    char chcut2[100];
    char chdesc[100];
    TProfile * prof;
    sprintf(chshell,"Cl.fX>0&&Cl.fDetector==%d",isector);
    Int_t ncl = comp.fTree->Draw("Cl.fY",chshell);
    if (ncl<kMinCl) continue;
    printf("MakePictures sector %d\n",isector);
    //
    // charge pictures
    //
    //
    // charge row
    //
    c.cd();
    sprintf(chdesc,"%s Sector %d IROC",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector);
    prof = ProfileQRow(chcut1, chdesc, 70);
    sprintf(chshell,"%s/qrow_sec%dIROC.eps", dirname,isector);
    prof->Draw();
    c.Update();
    c.Print(chshell);
    prof = ProfileMaxRow(chcut1, chdesc, 70);
    sprintf(chshell,"%s/maxrow_sec%dIROC.eps", dirname,isector);
    prof->Draw();
    c.Update();
    c.Print(chshell);
    //
    sprintf(chdesc,"%s Sector %d OROC",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector+36);
    prof = ProfileQRow(chcut1, chdesc, 100);
    sprintf(chshell,"%s/qrow_sec%dOROC.eps", dirname,isector);
    prof->Draw();
    c.Update();
    c.Print(chshell);
    prof = ProfileMaxRow(chcut1, chdesc, 100);
    sprintf(chshell,"%s/maxrow_sec%dOROC.eps", dirname,isector);
    prof->Draw();
    c.Update();
    c.Print(chshell);
    //
    // charge phi
    //
    sprintf(chdesc,"%s Sector %d IROC",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector);
    prof = ProfileMaxPhi(chcut1, chdesc,20);
    sprintf(chshell,"%s/qphi_sec%dIROC.eps", dirname,isector);
    prof->Draw();
    c.Update();
    c.Print(chshell);
    //
    sprintf(chdesc,"%s Sector %d OROC",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector+36);
    prof = ProfileMaxPhi(chcut1, chdesc,20);
    sprintf(chshell,"%s/qphi_sec%dOROC.eps", dirname,isector);
    prof->Draw();
    c.Update();
    c.Print(chshell);
    //
    //   charge z
    //
    c.cd();
    sprintf(chdesc,"%s Sector %d IROC",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector);
    prof = ProfileQZ(chcut1, chdesc,20);
    sprintf(chshell,"%s/qz_sec%dIROC.eps", dirname,isector);
    //    prof->Draw();
    c.Update();
    c.Print(chshell);
    //
    c.cd();
    sprintf(chdesc,"%s Sector %d OROC",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector+36);
    prof = ProfileQZ(chcut1, chdesc,20);
    sprintf(chshell,"%s/qz_sec%dOROC.eps", dirname,isector);
    //prof->Draw();
    c.Update();
    c.Print(chshell);
    //
    // Picture noise
    //
    sprintf(chdesc,"%s Sector %d IROC",runDesc.Data(), isector);
    sprintf(chcut1,"Sector==%d", isector);
    TCanvas *cnoise = NoiseSector(chcut1, chdesc,70,70);
    sprintf(chshell,"%s/noise_sec%dIROC.eps", dirname,isector);
    cnoise->Print(chshell);
    sprintf(chdesc,"%s Sector %d OROC",runDesc.Data(), isector);
    sprintf(chcut1,"Sector==%d", isector+36);
    cnoise = NoiseSector(chcut1, chdesc,70,70);
    sprintf(chshell,"%s/noise_sec%dOROC.eps", dirname,isector);
    cnoise->Print(chshell);
    //
    // systematic
    //
    c.cd();
    sprintf(chdesc,"%s Sector %d",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d||Cl.fDetector==%d", isector, isector+36);
    SysYX(chcut1,chdesc);
    sprintf(chshell,"%s/deltayx_sec%d.eps", dirname,isector);
    c.Print(chshell);
    c.cd();
    SysZX(chcut1,chdesc);
    sprintf(chshell,"%s/deltazx_sec%d.eps", dirname,isector);
    c.Print(chshell);
    
    //
    // picture prf
    //  
    if (ncl<500) continue;  //not enough statistic
    //
    sprintf(chdesc,"%s Sector %d",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector);
    sprintf(chcut2,"Cl.fDetector==%d", isector+36);
    c.cd();
    PRFYZ(chcut1, chcut2,chdesc);
    sprintf(chshell,"%s/prfyz_sec%d.eps", dirname,isector);
    c.Print(chshell);
    sprintf(chcut1,"Sector==%d", isector);
    sprintf(chcut2,"Sector==%d", isector+36);
    PRFZZ(chcut1, chcut2,chdesc);
    sprintf(chshell,"%s/prfzz_sec%d.eps", dirname,isector);
    c.Print(chshell);
    //
    // y resolution
    //
    sprintf(chdesc,"%s Sector %d",runDesc.Data(), isector);
    sprintf(chcut1,"Cl.fDetector==%d", isector);
    sprintf(chcut2,"Cl.fDetector==%d", isector+36);
    c.cd();
    ResYZ(chcut1, chcut2,chdesc);
    sprintf(chshell,"%s/resyz_sec%d.eps", dirname,isector);
    c.Print(chshell);
    //
  }
}






void AddChains(Int_t run){
  //
  // add files to the chains + check consistency
  //
  ifstream in0;
  ifstream in1;
  ifstream in2;
  ifstream in3;
  ifstream in4;
  TString sfile;
  char strcl[100];
  runDesc+=run;
  // TPC tracks
  //
  sprintf(strcl,"ls  *%d*/TPCtracks.root > files.txt", run);
  gSystem->Exec(strcl);
  in0.open("files.txt");
  for (;in0>>sfile;){
    if (sfile.Length()==0) break;
    printf("%s\n",sfile.Data());
    TFile f(sfile.Data());
    TTree * tree = (TTree*)f.Get("Tracks");
    if (tree){      
      f.Close();
      chaincl.Add(sfile.Data());
    }
  }
  //
  // Fitted signals
  sprintf(strcl,"ls  *%d*/FitSignal.root > files.txt", run);
  gSystem->Exec(strcl);
  in1.open("files.txt");
  for (;in1>>sfile;){
    if (sfile.Length()==0) break;
    printf("%s\n",sfile.Data()); 
    TFile f(sfile.Data());
    TTree * tree =(TTree*)f.Get("Fit");
    if (tree){      
      f.Close();
      chainFit.Add(sfile.Data());
    }
  }
  //
  // Fitted pedestal
  sprintf(strcl,"ls  *%d*/TPCsignal.root > files.txt", run);
  gSystem->Exec(strcl);
  in2.open("files.txt");
  for (;in2>>sfile;){
    if (sfile.Length()==0) break;
    printf("%s\n",sfile.Data());
    TFile f(sfile.Data());
    TTree * tree =(TTree*)f.Get("Fit");
    if (tree){      
      f.Close();
      chainPed.Add(sfile.Data());
    }
    //    chainPed.Add(sfile.Data());
  }
  //
  // Random signals
  sprintf(strcl,"ls  *%d*/TPCsignal.root > files.txt", run);
  gSystem->Exec(strcl);
  in4.open("files.txt");
  for (;in4>>sfile;){
    if (sfile.Length()==0) break;
    printf("%s\n",sfile.Data());
    TFile f(sfile.Data());
    TTree * tree =(TTree*)f.Get("SignalB");
    if (tree){      
      f.Close();
      chainSignal.Add(sfile.Data());
    }
    //    chainPed.Add(sfile.Data());
  }
  //
  // Rec points trees
  //
  printf("\n IMPORT REC points");
  sprintf(strcl,"ls  *%d*/*RecPoints* > files.txt", run);
  gSystem->Exec(strcl);
  in3.open("files.txt");
  for (;in3>>sfile;){
    if (sfile.Length()==0) break;
    printf("%s\n",sfile.Data());    
    TFile fcl(sfile.Data());
    char tname[100];
    sprintf(tname,"%s/%s/TreeR",sfile.Data(),fcl.GetListOfKeys()->At(0)->GetName());
    chaincl2.Add(tname);
    //    chainPed.Add(sfile.Data());
  }

  comp.fTree = &chaincl;
  compF.fTree = &chainFit;
  compP.fTree = &chainPed;
}

void Select(){
  //
  // base cut on the tracks
  //
  comp.fTree->Draw(">>listTracks","Etrack.fTPCncls>30&&abs(Etrack.fIp.fP[4])<1");
  comp.fTree->SetEventList(listTracks);
  //
  compF.fTree->Draw(">>listFitS","p2>0&&p2<5&&p1<900&&p0<10000&&p4<1&&p4>0&&p5<p3&&chi2<150");
  compF.fTree->SetEventList(listFitS);
}

void SelectLaser(){
  //
  // base cut on the tracks
  //
  comp.fTree->Draw(">>listTracks","Etrack.fTPCncls>20&&abs(Etrack.fIp.fP[4])<1&&abs(Etrack.fIp.fP[3])<0.01");
  comp.fTree->SetEventList(listTracks);
  //
  compF.fTree->Draw(">>listFitS","p2>0&&p2<5&&p1<900&&p0<10000&&p4<1&&p4>0&&p5<p3&&chi2<150");
  compF.fTree->SetEventList(listFitS);
  //
  // make default aliases
  //
  //  laser z beam
  comp.fTree->SetAlias("lz0","abs(Etrack.fIp.fP[1]-20)<5");
  comp.fTree->SetAlias("lz1","abs(Etrack.fIp.fP[1]-70)<20");
  comp.fTree->SetAlias("lz2","abs(Etrack.fIp.fP[1]-150)<20");
  comp.fTree->SetAlias("lz3","abs(Etrack.fIp.fP[1]-210)<20");

}



void PRFYZ(TCut cut0, TCut cut1,  char * description){
  //
  // plot Pad response function as funtion of drift z
  //
  //
  TF1 * f1 = new TF1("fdiff","sqrt([0]*[0]+(250-x)*[1]*[1])");
  f1->SetParameter(1,0.2);
  f1->SetParameter(0,0.2);
  comp.DrawXY("abs(Cl.fZ)","sqrt(Cl.fSigmaY2)","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut0,5,10,240,-0,1);
  TH1F * prfInnerY = (TH1F*)comp.fMean->Clone();

  comp.DrawXY("abs(Cl.fZ)","sqrt(Cl.fSigmaY2)","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut1,5,10,240,-0,1);
  TH1F * prfOuterY = (TH1F*)comp.fMean->Clone();
  //
  //
  prfOuterY->SetMinimum(0);
  prfOuterY->SetMarkerStyle(23);
  prfInnerY->SetMarkerStyle(24);
  prfOuterY->SetXTitle("Z position (cm)");
  prfOuterY->SetYTitle("PRF width (cm)");
  char chouter[100];
  char chinner[100];
  prfOuterY->Fit(f1);
  sprintf(chouter,"Outer sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfInnerY->Fit(f1);
  sprintf(chinner,"Inner sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfOuterY->Draw();
  prfInnerY->Draw("same");
  TString desc = description;
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, desc+"\nTPC cluster shape Fit: #sigma = #sqrt{p_{0}^{2}+(z_{d}-z)p_{1}^{2}}");
  legend->SetBorderSize(1);
  legend->AddEntry(prfOuterY,chouter);
  legend->AddEntry(prfInnerY,chinner);
  legend->Draw();
}



void PRFZZ(TCut cut0, TCut cut1,  char * description){
  TF1 * f1 = new TF1("fdiff","sqrt([0]*[0]+x*[1]*[1])");
  f1->SetParameter(1,0.2);
  f1->SetParameter(0,0.2);
  compF.DrawXY("p1*0.285","p2*0.285","p2>0",cut0,8,20,250,-0,2);
  TH1F * prfInnerY = (TH1F*)compF.fMean->Clone();
  compF.DrawXY("p1*0.285","p2*0.285","p2>0",cut1,8,20,250,-0,2);
  TH1F * prfOuterY = (TH1F*)compF.fMean->Clone();
  //
  //
  prfOuterY->SetMinimum(0);
  prfOuterY->SetMarkerStyle(23);
  prfInnerY->SetMarkerStyle(24);
  prfOuterY->SetXTitle("Drift length(cm)");
  prfOuterY->SetYTitle("Z Sigma (cm)");
  char chouter[100];
  char chinner[100];
  prfOuterY->Fit(f1);
  sprintf(chouter,"Outer sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfInnerY->Fit(f1);
  sprintf(chinner,"Inner sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfOuterY->Draw();
  prfInnerY->Draw("same");
  TString desc = description;
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, desc+"TPC signal shape Fit: #sigma = #sqrt{p_{0}^{2}+(z)p_{1}^{2}}");
  legend->SetBorderSize(1);
  legend->AddEntry(prfOuterY,chouter);
  legend->AddEntry(prfInnerY,chinner);
  legend->Draw();
}


void ResYZ(TCut cut0, TCut cut1,  char * description){
  //
  // resolution in y coordinate as function of z
  //
  TF1 * f1 = new TF1("fdiff","sqrt([0]*[0]+(250-x)*[1]*[1])");
  f1->SetParameter(1,0.2);
  f1->SetParameter(0,0.2);
  comp.DrawXY("abs(Cl.fZ)","Track.fTrackPoints.GetY()-Cl.GetY()","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut0,5,10,240,-0.5,0.5);
  TH1F * prfInnerY = (TH1F*)comp.fRes->Clone();

  comp.DrawXY("abs(Cl.fZ)","Track.fTrackPoints.GetY()-Cl.GetY()","abs(Track.fTrackPoints.GetAngleY())<0.05","Track.fTrackPoints.fTX>0"+cut1,5,10,240,-0.5,0.5);
  TH1F * prfOuterY = (TH1F*)comp.fRes->Clone();
  //
  //
  prfOuterY->SetMinimum(0);
  prfOuterY->SetMaximum(0.15);  
  prfOuterY->SetMarkerStyle(23);
  prfInnerY->SetMarkerStyle(24);
  prfOuterY->SetXTitle("Z position (cm)");
  prfOuterY->SetYTitle("Y resolution (cm)");
  char chouter[100];
  char chinner[100];
  prfOuterY->Fit(f1);
  sprintf(chouter,"Outer sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfInnerY->Fit(f1);
  sprintf(chinner,"Inner sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfOuterY->Draw();
  prfInnerY->Draw("same");
  TString desc = description;
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, desc+"TPC cluster resolution: #sigma = #sqrt{p_{0}^{2}+(z_{d}-z)p_{1}^{2}}");
  legend->SetBorderSize(1);
  legend->AddEntry(prfOuterY,chouter);
  legend->AddEntry(prfInnerY,chinner);
  legend->Draw();
}

void SysYX(TCut cut0,  char * description){
  //
  //
  //
  TProfile * profA = new TProfile("profY","profY",70,89,250);
  comp.fTree->Draw("Cl.fY-Track.fTrackPoints.GetY():Track.fTrackPoints.GetX()>>profY","abs(Cl.fY-Track.fTrackPoints.GetY())<1&&Track.fTrackPoints.fTX>10"+cut0,"prof");
  profA->SetXTitle("Local X (cm)");
  profA->SetYTitle("Mean #Delta Y (cm)");  
  TLegend *legend = new TLegend(0.55,0.25,0.85,0.30, description);
  legend->Draw();
}

void SysZX(TCut cut0,  char * description){
  //
  //
  //
  TProfile * profA = new TProfile("profZ","profZ",70,89,250);
  comp.fTree->Draw("abs(Cl.fZ)-abs(Track.fTrackPoints.GetZ()):Track.fTrackPoints.GetX()>>profZ","abs(abs(Cl.fZ)-abs(Track.fTrackPoints.GetZ()))<1&&Track.fTrackPoints.fTX>10"+cut0,"prof");
  profA->SetXTitle("Local X (cm)");
  profA->SetYTitle("Mean #Delta Z (cm)");  
  TLegend *legend = new TLegend(0.55,0.25,0.85,0.30, description);
  legend->Draw(); 
}

TProfile * ProfileMaxRow(TCut cut0, char *name, Int_t max){ 
  //
  // make profile histrogram of amplitudes
  //
  TProfile *profA = new TProfile(name,name,max,0,max-1);
  char expr[100];
  sprintf(expr,"Cl.fMax:Cl.fRow>>%s",name);
  comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
  profA->SetXTitle("Pad Row");
  profA->SetYTitle("Amplitude at maxima (ADC)");
  return profA;
}

TProfile * ProfileMaxPhi(TCut cut0, char *name, Int_t max){ 
  //
  // make profile histrogram of amplitudes
  //
  TProfile *profA = new TProfile(name,name,max,-0.14,0.14);
  char expr[100];
  sprintf(expr,"Cl.fMax:Cl.fY/Cl.fX>>%s",name);
  comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
  profA->SetXTitle("Local #phi(rad)");
  profA->SetYTitle("Amplitude at maxima (ADC)");
  return profA; 
}

TProfile * ProfileQRow(TCut cut0, char *name, Int_t max){ 
  //
  // make profile histrogram of amplitudes
  //
  TProfile *profA = new TProfile(name,name,max,0,max-1);
  char expr[100];
  sprintf(expr,"Cl.fQ:Cl.fRow>>%s",name);
  comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
  profA->SetXTitle("Pad Row");
  profA->SetYTitle("Total charge(ADC)");
  return profA;
}

TProfile * ProfileQPhi(TCut cut0, char *name, Int_t max){ 
  //
  // make profile histrogram of amplitudes
  //
  TProfile *profA = new TProfile(name,name,max,-0.14,0.14);
  char expr[100];
  sprintf(expr,"Cl.fQ:Cl.fY/Cl.fX>>%s",name);
  comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
  profA->SetXTitle("Local #phi(rad)");
  profA->SetYTitle("Total charge (ADC)");
  return profA;
}

TProfile * ProfileQZ(TCut cut0, char *name, Int_t max){ 
  //
  // make profile histrogram of amplitudes
  // 
  TF1 * fline = new TF1("fline","[0]+[1]*[0]*(250-x)");
  TF1 * f1 = new TF1("f1","[0]*exp(-[1]*(250-x))");
  TProfile *profA = new TProfile(name,name,max,0,250);
  char expr[100];
  sprintf(expr,"Cl.fQ:abs(Cl.fZ)>>%s",name);
  comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
  profA->SetXTitle("Z position (cm)"); 
  profA->SetYTitle("Amplitude (ADC)");
  char chc[100];
  profA->Fit(fline);
  f1->SetParameter(0,fline->GetParameter(0));
  f1->SetParameter(1,fline->GetParameter(1));
  profA->Fit(f1);
  sprintf(chc,"Exponential fit params: p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  printf("%s",chc);
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.25, chc);
  legend->Draw();
  return profA;
}

TProfile * ProfileMaxZ(TCut cut0, char *name, Int_t max){ 
  //
  // make profile histrogram of amplitudes
  // 
  TF1 * f1 = new TF1("f1","[0]+[1]*[0]*(250-x)");
  TProfile *profA = new TProfile(name,name,max,0,250);
  char expr[100];
  sprintf(expr,"Cl.fMax:abs(Cl.fZ)>>%s",name);
  comp.fTree->Draw(expr,"abs(Cl.fZ)>0&&Cl.fMax<500"+cut0,"prof");
  profA->SetXTitle("Z position (cm)"); 
  profA->SetYTitle("Amplitude at maxima (ADC)");
  char chc[100];
  profA->Fit(f1);
  sprintf(chc,"p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, chc);
  legend->Draw();
  return profA;
}


void P3Z(TCut cut0, TCut cut1,  char * description){
  //
  // first exponenent as function of z drift
  //
  TF1 * f1 = new TF1("fdiff","[0]+[1]/[0]*x");
  f1->SetParameter(1,0.2);   
  f1->SetParameter(0,0.2);
  compF.DrawXY("p1*0.285","p3","Max>250",cut0,5,20,250,-0,2);
  TH1F * prfInnerY = (TH1F*)compF.fMean->Clone();
  compF.DrawXY("p1*0.285","p3","Max>250",cut1,5,20,250,-0,2);
  TH1F * prfOuterY = (TH1F*)compF.fMean->Clone();
  //
  //
  prfOuterY->SetMinimum(0);
  prfOuterY->SetMaximum(1);
  prfOuterY->SetMarkerStyle(23);
  prfInnerY->SetMarkerStyle(24);
  prfOuterY->SetXTitle("Drift length (cm)");
  prfOuterY->SetYTitle("Lambda 0 (Time Bin)");
  char chouter[100];
  char chinner[100];
  prfOuterY->Fit(f1);
  sprintf(chouter,"Outer sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfInnerY->Fit(f1);
  sprintf(chinner,"Inner sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfOuterY->Draw();
  prfInnerY->Draw("same");
  TString desc = description;
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, desc+"TPC cluster shape fit Parameter Lambda0 - P3:");
  legend->SetBorderSize(1);
  legend->AddEntry(prfOuterY,chouter);
  legend->AddEntry(prfInnerY,chinner);
  legend->Draw();
}


void P5Z(TCut cut0, TCut cut1,  char * description){
  //
  // second exponenent as function of z drift
  //
  TF1 * f1 = new TF1("fdiff","[0]+[1]/[0]*x");
  f1->SetParameter(1,0.2);
  f1->SetParameter(0,0.2);
  compF.DrawXY("p1*0.285","p5","Max>250",cut0,5,20,250,-0,0.2);
  TH1F * prfInnerY = (TH1F*)compF.fMean->Clone();
  compF.DrawXY("p1*0.285","p5","Max>250",cut1,5,20,250,-0,0.2);
  TH1F * prfOuterY = (TH1F*)compF.fMean->Clone();
  //
  //
  prfOuterY->SetMinimum(0);
  prfOuterY->SetMaximum(0.15);
  prfOuterY->SetMarkerStyle(23);
  prfInnerY->SetMarkerStyle(24);
  prfOuterY->SetXTitle("Drift length (Time Bin)");
  prfOuterY->SetYTitle("Lambda1 (Time bin)");
  char chouter[100];
  char chinner[100];
  prfOuterY->Fit(f1);
  sprintf(chouter,"Outer sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfInnerY->Fit(f1);
  sprintf(chinner,"Inner sector : p_{0} = %f  p_{1} = %f",f1->GetParameter(0),f1->GetParameter(1));
  prfOuterY->Draw();
  prfInnerY->Draw("same");
   TString desc = description;
  TLegend *legend = new TLegend(0.25,0.12,0.85,0.35, desc+"TPC cluster shape fit Parameter Lambda1 - P5");
  legend->SetBorderSize(1);
  legend->AddEntry(prfOuterY,chouter);
  legend->AddEntry(prfInnerY,chinner);
  legend->Draw();
}

TCanvas *  NoiseSector(TCut cut0,  char * description, Int_t maxrow, Int_t maxpad){
  //
  // draw plots of the noise
  //
  TCanvas * c = new TCanvas;
  c->Divide(2,1);
  c->Draw();
  c->cd(1);
  compP.fTree->Draw("GSigma","GSigma<5"+cut0);
  c->cd(2);
  Float_t rand  = gRandom->Rndm();
  char name[100];
  sprintf(name,"prof%f",rand);
  TProfile2D * prof= new TProfile2D(name,name,maxrow, 0, maxrow-1, 2*maxpad,-maxpad,maxpad);
  char expr[100];
  sprintf(expr,"GSigma:RPad:Row>>%s",name);
  prof->SetXTitle("Pad row");
  prof->SetYTitle("Pad number");
  compP.fTree->Draw(expr,cut0,"profcolz");
  c->cd(1);
  TString desc = description;
  TLegend *legend = new TLegend(0.25,0.30,0.85,0.85, desc+"Noise map");
  legend->Draw();
  
  return c;
}


 TestAnalisys.C:1
 TestAnalisys.C:2
 TestAnalisys.C:3
 TestAnalisys.C:4
 TestAnalisys.C:5
 TestAnalisys.C:6
 TestAnalisys.C:7
 TestAnalisys.C:8
 TestAnalisys.C:9
 TestAnalisys.C:10
 TestAnalisys.C:11
 TestAnalisys.C:12
 TestAnalisys.C:13
 TestAnalisys.C:14
 TestAnalisys.C:15
 TestAnalisys.C:16
 TestAnalisys.C:17
 TestAnalisys.C:18
 TestAnalisys.C:19
 TestAnalisys.C:20
 TestAnalisys.C:21
 TestAnalisys.C:22
 TestAnalisys.C:23
 TestAnalisys.C:24
 TestAnalisys.C:25
 TestAnalisys.C:26
 TestAnalisys.C:27
 TestAnalisys.C:28
 TestAnalisys.C:29
 TestAnalisys.C:30
 TestAnalisys.C:31
 TestAnalisys.C:32
 TestAnalisys.C:33
 TestAnalisys.C:34
 TestAnalisys.C:35
 TestAnalisys.C:36
 TestAnalisys.C:37
 TestAnalisys.C:38
 TestAnalisys.C:39
 TestAnalisys.C:40
 TestAnalisys.C:41
 TestAnalisys.C:42
 TestAnalisys.C:43
 TestAnalisys.C:44
 TestAnalisys.C:45
 TestAnalisys.C:46
 TestAnalisys.C:47
 TestAnalisys.C:48
 TestAnalisys.C:49
 TestAnalisys.C:50
 TestAnalisys.C:51
 TestAnalisys.C:52
 TestAnalisys.C:53
 TestAnalisys.C:54
 TestAnalisys.C:55
 TestAnalisys.C:56
 TestAnalisys.C:57
 TestAnalisys.C:58
 TestAnalisys.C:59
 TestAnalisys.C:60
 TestAnalisys.C:61
 TestAnalisys.C:62
 TestAnalisys.C:63
 TestAnalisys.C:64
 TestAnalisys.C:65
 TestAnalisys.C:66
 TestAnalisys.C:67
 TestAnalisys.C:68
 TestAnalisys.C:69
 TestAnalisys.C:70
 TestAnalisys.C:71
 TestAnalisys.C:72
 TestAnalisys.C:73
 TestAnalisys.C:74
 TestAnalisys.C:75
 TestAnalisys.C:76
 TestAnalisys.C:77
 TestAnalisys.C:78
 TestAnalisys.C:79
 TestAnalisys.C:80
 TestAnalisys.C:81
 TestAnalisys.C:82
 TestAnalisys.C:83
 TestAnalisys.C:84
 TestAnalisys.C:85
 TestAnalisys.C:86
 TestAnalisys.C:87
 TestAnalisys.C:88
 TestAnalisys.C:89
 TestAnalisys.C:90
 TestAnalisys.C:91
 TestAnalisys.C:92
 TestAnalisys.C:93
 TestAnalisys.C:94
 TestAnalisys.C:95
 TestAnalisys.C:96
 TestAnalisys.C:97
 TestAnalisys.C:98
 TestAnalisys.C:99
 TestAnalisys.C:100
 TestAnalisys.C:101
 TestAnalisys.C:102
 TestAnalisys.C:103
 TestAnalisys.C:104
 TestAnalisys.C:105
 TestAnalisys.C:106
 TestAnalisys.C:107
 TestAnalisys.C:108
 TestAnalisys.C:109
 TestAnalisys.C:110
 TestAnalisys.C:111
 TestAnalisys.C:112
 TestAnalisys.C:113
 TestAnalisys.C:114
 TestAnalisys.C:115
 TestAnalisys.C:116
 TestAnalisys.C:117
 TestAnalisys.C:118
 TestAnalisys.C:119
 TestAnalisys.C:120
 TestAnalisys.C:121
 TestAnalisys.C:122
 TestAnalisys.C:123
 TestAnalisys.C:124
 TestAnalisys.C:125
 TestAnalisys.C:126
 TestAnalisys.C:127
 TestAnalisys.C:128
 TestAnalisys.C:129
 TestAnalisys.C:130
 TestAnalisys.C:131
 TestAnalisys.C:132
 TestAnalisys.C:133
 TestAnalisys.C:134
 TestAnalisys.C:135
 TestAnalisys.C:136
 TestAnalisys.C:137
 TestAnalisys.C:138
 TestAnalisys.C:139
 TestAnalisys.C:140
 TestAnalisys.C:141
 TestAnalisys.C:142
 TestAnalisys.C:143
 TestAnalisys.C:144
 TestAnalisys.C:145
 TestAnalisys.C:146
 TestAnalisys.C:147
 TestAnalisys.C:148
 TestAnalisys.C:149
 TestAnalisys.C:150
 TestAnalisys.C:151
 TestAnalisys.C:152
 TestAnalisys.C:153
 TestAnalisys.C:154
 TestAnalisys.C:155
 TestAnalisys.C:156
 TestAnalisys.C:157
 TestAnalisys.C:158
 TestAnalisys.C:159
 TestAnalisys.C:160
 TestAnalisys.C:161
 TestAnalisys.C:162
 TestAnalisys.C:163
 TestAnalisys.C:164
 TestAnalisys.C:165
 TestAnalisys.C:166
 TestAnalisys.C:167
 TestAnalisys.C:168
 TestAnalisys.C:169
 TestAnalisys.C:170
 TestAnalisys.C:171
 TestAnalisys.C:172
 TestAnalisys.C:173
 TestAnalisys.C:174
 TestAnalisys.C:175
 TestAnalisys.C:176
 TestAnalisys.C:177
 TestAnalisys.C:178
 TestAnalisys.C:179
 TestAnalisys.C:180
 TestAnalisys.C:181
 TestAnalisys.C:182
 TestAnalisys.C:183
 TestAnalisys.C:184
 TestAnalisys.C:185
 TestAnalisys.C:186
 TestAnalisys.C:187
 TestAnalisys.C:188
 TestAnalisys.C:189
 TestAnalisys.C:190
 TestAnalisys.C:191
 TestAnalisys.C:192
 TestAnalisys.C:193
 TestAnalisys.C:194
 TestAnalisys.C:195
 TestAnalisys.C:196
 TestAnalisys.C:197
 TestAnalisys.C:198
 TestAnalisys.C:199
 TestAnalisys.C:200
 TestAnalisys.C:201
 TestAnalisys.C:202
 TestAnalisys.C:203
 TestAnalisys.C:204
 TestAnalisys.C:205
 TestAnalisys.C:206
 TestAnalisys.C:207
 TestAnalisys.C:208
 TestAnalisys.C:209
 TestAnalisys.C:210
 TestAnalisys.C:211
 TestAnalisys.C:212
 TestAnalisys.C:213
 TestAnalisys.C:214
 TestAnalisys.C:215
 TestAnalisys.C:216
 TestAnalisys.C:217
 TestAnalisys.C:218
 TestAnalisys.C:219
 TestAnalisys.C:220
 TestAnalisys.C:221
 TestAnalisys.C:222
 TestAnalisys.C:223
 TestAnalisys.C:224
 TestAnalisys.C:225
 TestAnalisys.C:226
 TestAnalisys.C:227
 TestAnalisys.C:228
 TestAnalisys.C:229
 TestAnalisys.C:230
 TestAnalisys.C:231
 TestAnalisys.C:232
 TestAnalisys.C:233
 TestAnalisys.C:234
 TestAnalisys.C:235
 TestAnalisys.C:236
 TestAnalisys.C:237
 TestAnalisys.C:238
 TestAnalisys.C:239
 TestAnalisys.C:240
 TestAnalisys.C:241
 TestAnalisys.C:242
 TestAnalisys.C:243
 TestAnalisys.C:244
 TestAnalisys.C:245
 TestAnalisys.C:246
 TestAnalisys.C:247
 TestAnalisys.C:248
 TestAnalisys.C:249
 TestAnalisys.C:250
 TestAnalisys.C:251
 TestAnalisys.C:252
 TestAnalisys.C:253
 TestAnalisys.C:254
 TestAnalisys.C:255
 TestAnalisys.C:256
 TestAnalisys.C:257
 TestAnalisys.C:258
 TestAnalisys.C:259
 TestAnalisys.C:260
 TestAnalisys.C:261
 TestAnalisys.C:262
 TestAnalisys.C:263
 TestAnalisys.C:264
 TestAnalisys.C:265
 TestAnalisys.C:266
 TestAnalisys.C:267
 TestAnalisys.C:268
 TestAnalisys.C:269
 TestAnalisys.C:270
 TestAnalisys.C:271
 TestAnalisys.C:272
 TestAnalisys.C:273
 TestAnalisys.C:274
 TestAnalisys.C:275
 TestAnalisys.C:276
 TestAnalisys.C:277
 TestAnalisys.C:278
 TestAnalisys.C:279
 TestAnalisys.C:280
 TestAnalisys.C:281
 TestAnalisys.C:282
 TestAnalisys.C:283
 TestAnalisys.C:284
 TestAnalisys.C:285
 TestAnalisys.C:286
 TestAnalisys.C:287
 TestAnalisys.C:288
 TestAnalisys.C:289
 TestAnalisys.C:290
 TestAnalisys.C:291
 TestAnalisys.C:292
 TestAnalisys.C:293
 TestAnalisys.C:294
 TestAnalisys.C:295
 TestAnalisys.C:296
 TestAnalisys.C:297
 TestAnalisys.C:298
 TestAnalisys.C:299
 TestAnalisys.C:300
 TestAnalisys.C:301
 TestAnalisys.C:302
 TestAnalisys.C:303
 TestAnalisys.C:304
 TestAnalisys.C:305
 TestAnalisys.C:306
 TestAnalisys.C:307
 TestAnalisys.C:308
 TestAnalisys.C:309
 TestAnalisys.C:310
 TestAnalisys.C:311
 TestAnalisys.C:312
 TestAnalisys.C:313
 TestAnalisys.C:314
 TestAnalisys.C:315
 TestAnalisys.C:316
 TestAnalisys.C:317
 TestAnalisys.C:318
 TestAnalisys.C:319
 TestAnalisys.C:320
 TestAnalisys.C:321
 TestAnalisys.C:322
 TestAnalisys.C:323
 TestAnalisys.C:324
 TestAnalisys.C:325
 TestAnalisys.C:326
 TestAnalisys.C:327
 TestAnalisys.C:328
 TestAnalisys.C:329
 TestAnalisys.C:330
 TestAnalisys.C:331
 TestAnalisys.C:332
 TestAnalisys.C:333
 TestAnalisys.C:334
 TestAnalisys.C:335
 TestAnalisys.C:336
 TestAnalisys.C:337
 TestAnalisys.C:338
 TestAnalisys.C:339
 TestAnalisys.C:340
 TestAnalisys.C:341
 TestAnalisys.C:342
 TestAnalisys.C:343
 TestAnalisys.C:344
 TestAnalisys.C:345
 TestAnalisys.C:346
 TestAnalisys.C:347
 TestAnalisys.C:348
 TestAnalisys.C:349
 TestAnalisys.C:350
 TestAnalisys.C:351
 TestAnalisys.C:352
 TestAnalisys.C:353
 TestAnalisys.C:354
 TestAnalisys.C:355
 TestAnalisys.C:356
 TestAnalisys.C:357
 TestAnalisys.C:358
 TestAnalisys.C:359
 TestAnalisys.C:360
 TestAnalisys.C:361
 TestAnalisys.C:362
 TestAnalisys.C:363
 TestAnalisys.C:364
 TestAnalisys.C:365
 TestAnalisys.C:366
 TestAnalisys.C:367
 TestAnalisys.C:368
 TestAnalisys.C:369
 TestAnalisys.C:370
 TestAnalisys.C:371
 TestAnalisys.C:372
 TestAnalisys.C:373
 TestAnalisys.C:374
 TestAnalisys.C:375
 TestAnalisys.C:376
 TestAnalisys.C:377
 TestAnalisys.C:378
 TestAnalisys.C:379
 TestAnalisys.C:380
 TestAnalisys.C:381
 TestAnalisys.C:382
 TestAnalisys.C:383
 TestAnalisys.C:384
 TestAnalisys.C:385
 TestAnalisys.C:386
 TestAnalisys.C:387
 TestAnalisys.C:388
 TestAnalisys.C:389
 TestAnalisys.C:390
 TestAnalisys.C:391
 TestAnalisys.C:392
 TestAnalisys.C:393
 TestAnalisys.C:394
 TestAnalisys.C:395
 TestAnalisys.C:396
 TestAnalisys.C:397
 TestAnalisys.C:398
 TestAnalisys.C:399
 TestAnalisys.C:400
 TestAnalisys.C:401
 TestAnalisys.C:402
 TestAnalisys.C:403
 TestAnalisys.C:404
 TestAnalisys.C:405
 TestAnalisys.C:406
 TestAnalisys.C:407
 TestAnalisys.C:408
 TestAnalisys.C:409
 TestAnalisys.C:410
 TestAnalisys.C:411
 TestAnalisys.C:412
 TestAnalisys.C:413
 TestAnalisys.C:414
 TestAnalisys.C:415
 TestAnalisys.C:416
 TestAnalisys.C:417
 TestAnalisys.C:418
 TestAnalisys.C:419
 TestAnalisys.C:420
 TestAnalisys.C:421
 TestAnalisys.C:422
 TestAnalisys.C:423
 TestAnalisys.C:424
 TestAnalisys.C:425
 TestAnalisys.C:426
 TestAnalisys.C:427
 TestAnalisys.C:428
 TestAnalisys.C:429
 TestAnalisys.C:430
 TestAnalisys.C:431
 TestAnalisys.C:432
 TestAnalisys.C:433
 TestAnalisys.C:434
 TestAnalisys.C:435
 TestAnalisys.C:436
 TestAnalisys.C:437
 TestAnalisys.C:438
 TestAnalisys.C:439
 TestAnalisys.C:440
 TestAnalisys.C:441
 TestAnalisys.C:442
 TestAnalisys.C:443
 TestAnalisys.C:444
 TestAnalisys.C:445
 TestAnalisys.C:446
 TestAnalisys.C:447
 TestAnalisys.C:448
 TestAnalisys.C:449
 TestAnalisys.C:450
 TestAnalisys.C:451
 TestAnalisys.C:452
 TestAnalisys.C:453
 TestAnalisys.C:454
 TestAnalisys.C:455
 TestAnalisys.C:456
 TestAnalisys.C:457
 TestAnalisys.C:458
 TestAnalisys.C:459
 TestAnalisys.C:460
 TestAnalisys.C:461
 TestAnalisys.C:462
 TestAnalisys.C:463
 TestAnalisys.C:464
 TestAnalisys.C:465
 TestAnalisys.C:466
 TestAnalisys.C:467
 TestAnalisys.C:468
 TestAnalisys.C:469
 TestAnalisys.C:470
 TestAnalisys.C:471
 TestAnalisys.C:472
 TestAnalisys.C:473
 TestAnalisys.C:474
 TestAnalisys.C:475
 TestAnalisys.C:476
 TestAnalisys.C:477
 TestAnalisys.C:478
 TestAnalisys.C:479
 TestAnalisys.C:480
 TestAnalisys.C:481
 TestAnalisys.C:482
 TestAnalisys.C:483
 TestAnalisys.C:484
 TestAnalisys.C:485
 TestAnalisys.C:486
 TestAnalisys.C:487
 TestAnalisys.C:488
 TestAnalisys.C:489
 TestAnalisys.C:490
 TestAnalisys.C:491
 TestAnalisys.C:492
 TestAnalisys.C:493
 TestAnalisys.C:494
 TestAnalisys.C:495
 TestAnalisys.C:496
 TestAnalisys.C:497
 TestAnalisys.C:498
 TestAnalisys.C:499
 TestAnalisys.C:500
 TestAnalisys.C:501
 TestAnalisys.C:502
 TestAnalisys.C:503
 TestAnalisys.C:504
 TestAnalisys.C:505
 TestAnalisys.C:506
 TestAnalisys.C:507
 TestAnalisys.C:508
 TestAnalisys.C:509
 TestAnalisys.C:510
 TestAnalisys.C:511
 TestAnalisys.C:512
 TestAnalisys.C:513
 TestAnalisys.C:514
 TestAnalisys.C:515
 TestAnalisys.C:516
 TestAnalisys.C:517
 TestAnalisys.C:518
 TestAnalisys.C:519
 TestAnalisys.C:520
 TestAnalisys.C:521
 TestAnalisys.C:522
 TestAnalisys.C:523
 TestAnalisys.C:524
 TestAnalisys.C:525
 TestAnalisys.C:526
 TestAnalisys.C:527
 TestAnalisys.C:528
 TestAnalisys.C:529
 TestAnalisys.C:530
 TestAnalisys.C:531
 TestAnalisys.C:532
 TestAnalisys.C:533
 TestAnalisys.C:534
 TestAnalisys.C:535
 TestAnalisys.C:536
 TestAnalisys.C:537
 TestAnalisys.C:538
 TestAnalisys.C:539
 TestAnalisys.C:540
 TestAnalisys.C:541
 TestAnalisys.C:542
 TestAnalisys.C:543
 TestAnalisys.C:544
 TestAnalisys.C:545
 TestAnalisys.C:546
 TestAnalisys.C:547
 TestAnalisys.C:548
 TestAnalisys.C:549
 TestAnalisys.C:550
 TestAnalisys.C:551
 TestAnalisys.C:552
 TestAnalisys.C:553
 TestAnalisys.C:554
 TestAnalisys.C:555
 TestAnalisys.C:556
 TestAnalisys.C:557
 TestAnalisys.C:558
 TestAnalisys.C:559
 TestAnalisys.C:560
 TestAnalisys.C:561
 TestAnalisys.C:562
 TestAnalisys.C:563
 TestAnalisys.C:564
 TestAnalisys.C:565
 TestAnalisys.C:566
 TestAnalisys.C:567
 TestAnalisys.C:568
 TestAnalisys.C:569
 TestAnalisys.C:570
 TestAnalisys.C:571
 TestAnalisys.C:572
 TestAnalisys.C:573
 TestAnalisys.C:574
 TestAnalisys.C:575
 TestAnalisys.C:576
 TestAnalisys.C:577
 TestAnalisys.C:578
 TestAnalisys.C:579
 TestAnalisys.C:580
 TestAnalisys.C:581
 TestAnalisys.C:582
 TestAnalisys.C:583
 TestAnalisys.C:584
 TestAnalisys.C:585
 TestAnalisys.C:586
 TestAnalisys.C:587
 TestAnalisys.C:588
 TestAnalisys.C:589
 TestAnalisys.C:590
 TestAnalisys.C:591
 TestAnalisys.C:592
 TestAnalisys.C:593
 TestAnalisys.C:594
 TestAnalisys.C:595
 TestAnalisys.C:596
 TestAnalisys.C:597
 TestAnalisys.C:598
 TestAnalisys.C:599
 TestAnalisys.C:600
 TestAnalisys.C:601
 TestAnalisys.C:602
 TestAnalisys.C:603
 TestAnalisys.C:604
 TestAnalisys.C:605
 TestAnalisys.C:606
 TestAnalisys.C:607
 TestAnalisys.C:608
 TestAnalisys.C:609
 TestAnalisys.C:610
 TestAnalisys.C:611
 TestAnalisys.C:612
 TestAnalisys.C:613
 TestAnalisys.C:614
 TestAnalisys.C:615
 TestAnalisys.C:616
 TestAnalisys.C:617
 TestAnalisys.C:618
 TestAnalisys.C:619
 TestAnalisys.C:620
 TestAnalisys.C:621
 TestAnalisys.C:622
 TestAnalisys.C:623
 TestAnalisys.C:624
 TestAnalisys.C:625
 TestAnalisys.C:626
 TestAnalisys.C:627
 TestAnalisys.C:628
 TestAnalisys.C:629
 TestAnalisys.C:630
 TestAnalisys.C:631
 TestAnalisys.C:632
 TestAnalisys.C:633
 TestAnalisys.C:634
 TestAnalisys.C:635
 TestAnalisys.C:636
 TestAnalisys.C:637
 TestAnalisys.C:638
 TestAnalisys.C:639
 TestAnalisys.C:640
 TestAnalisys.C:641
 TestAnalisys.C:642
 TestAnalisys.C:643
 TestAnalisys.C:644
 TestAnalisys.C:645
 TestAnalisys.C:646
 TestAnalisys.C:647
 TestAnalisys.C:648
 TestAnalisys.C:649
 TestAnalisys.C:650
 TestAnalisys.C:651
 TestAnalisys.C:652
 TestAnalisys.C:653
 TestAnalisys.C:654
 TestAnalisys.C:655
 TestAnalisys.C:656
 TestAnalisys.C:657
 TestAnalisys.C:658
 TestAnalisys.C:659
 TestAnalisys.C:660
 TestAnalisys.C:661
 TestAnalisys.C:662
 TestAnalisys.C:663
 TestAnalisys.C:664
 TestAnalisys.C:665
 TestAnalisys.C:666
 TestAnalisys.C:667
 TestAnalisys.C:668
 TestAnalisys.C:669
 TestAnalisys.C:670
 TestAnalisys.C:671
 TestAnalisys.C:672
 TestAnalisys.C:673
 TestAnalisys.C:674
 TestAnalisys.C:675
 TestAnalisys.C:676
 TestAnalisys.C:677
 TestAnalisys.C:678
 TestAnalisys.C:679
 TestAnalisys.C:680
 TestAnalisys.C:681
 TestAnalisys.C:682
 TestAnalisys.C:683
 TestAnalisys.C:684
 TestAnalisys.C:685
 TestAnalisys.C:686
 TestAnalisys.C:687
 TestAnalisys.C:688
 TestAnalisys.C:689
 TestAnalisys.C:690
 TestAnalisys.C:691
 TestAnalisys.C:692
 TestAnalisys.C:693
 TestAnalisys.C:694
 TestAnalisys.C:695
 TestAnalisys.C:696
 TestAnalisys.C:697
 TestAnalisys.C:698
 TestAnalisys.C:699
 TestAnalisys.C:700
 TestAnalisys.C:701
 TestAnalisys.C:702
 TestAnalisys.C:703
 TestAnalisys.C:704
 TestAnalisys.C:705
 TestAnalisys.C:706
 TestAnalisys.C:707