#include <TCanvas.h>
#include <TDirectory.h>
#include <TH2.h>
#include <TBits.h>
#include <AliVParticle.h>
#include <AliLog.h>
#include "AliCFTrackKineCuts.h"
ClassImp(AliCFTrackKineCuts)
AliCFTrackKineCuts::AliCFTrackKineCuts() :
AliCFCutBase(),
fMomentumMin(0),
fMomentumMax(0),
fPtMin(0),
fPtMax(0),
fPxMin(0),
fPxMax(0),
fPyMin(0),
fPyMax(0),
fPzMin(0),
fPzMax(0),
fEtaMin(0),
fEtaMax(0),
fRapidityMin(0),
fRapidityMax(0),
fPhiMin(0),
fPhiMax(0),
fCharge(0),
fRequireIsCharged(0),
fhCutStatistics(0),
fhCutCorrelation(0),
fBitmap(0x0),
fhNBinsMomentum(0),
fhNBinsPt(0),
fhNBinsPx(0),
fhNBinsPy(0),
fhNBinsPz(0),
fhNBinsEta(0),
fhNBinsRapidity(0),
fhNBinsPhi(0),
fhNBinsCharge(0),
fhBinLimMomentum(0x0),
fhBinLimPt(0x0),
fhBinLimPx(0x0),
fhBinLimPy(0x0),
fhBinLimPz(0x0),
fhBinLimEta(0x0),
fhBinLimRapidity(0x0),
fhBinLimPhi(0x0),
fhBinLimCharge(0x0)
{
Initialise();
}
AliCFTrackKineCuts::AliCFTrackKineCuts(Char_t* name, Char_t* title) :
AliCFCutBase(name,title),
fMomentumMin(0),
fMomentumMax(0),
fPtMin(0),
fPtMax(0),
fPxMin(0),
fPxMax(0),
fPyMin(0),
fPyMax(0),
fPzMin(0),
fPzMax(0),
fEtaMin(0),
fEtaMax(0),
fRapidityMin(0),
fRapidityMax(0),
fPhiMin(0),
fPhiMax(0),
fCharge(0),
fRequireIsCharged(0),
fhCutStatistics(0),
fhCutCorrelation(0),
fBitmap(0x0),
fhNBinsMomentum(0),
fhNBinsPt(0),
fhNBinsPx(0),
fhNBinsPy(0),
fhNBinsPz(0),
fhNBinsEta(0),
fhNBinsRapidity(0),
fhNBinsPhi(0),
fhNBinsCharge(0),
fhBinLimMomentum(0x0),
fhBinLimPt(0x0),
fhBinLimPx(0x0),
fhBinLimPy(0x0),
fhBinLimPz(0x0),
fhBinLimEta(0x0),
fhBinLimRapidity(0x0),
fhBinLimPhi(0x0),
fhBinLimCharge(0x0)
{
Initialise();
}
AliCFTrackKineCuts::AliCFTrackKineCuts(const AliCFTrackKineCuts& c) :
AliCFCutBase(c),
fMomentumMin(c.fMomentumMin),
fMomentumMax(c.fMomentumMax),
fPtMin(c.fPtMin),
fPtMax(c.fPtMax),
fPxMin(c.fPxMin),
fPxMax(c.fPxMax),
fPyMin(c.fPyMin),
fPyMax(c.fPyMax),
fPzMin(c.fPzMin),
fPzMax(c.fPzMax),
fEtaMin(c.fEtaMin),
fEtaMax(c.fEtaMax),
fRapidityMin(c.fRapidityMin),
fRapidityMax(c.fRapidityMax),
fPhiMin(c.fPhiMin),
fPhiMax(c.fPhiMax),
fCharge(c.fCharge),
fRequireIsCharged(c.fRequireIsCharged),
fhCutStatistics(c.fhCutStatistics),
fhCutCorrelation(c.fhCutCorrelation),
fBitmap(c.fBitmap),
fhNBinsMomentum(c.fhNBinsMomentum),
fhNBinsPt(c.fhNBinsPt),
fhNBinsPx(c.fhNBinsPx),
fhNBinsPy(c.fhNBinsPy),
fhNBinsPz(c.fhNBinsPz),
fhNBinsEta(c.fhNBinsEta),
fhNBinsRapidity(c.fhNBinsRapidity),
fhNBinsPhi(c.fhNBinsPhi),
fhNBinsCharge(c.fhNBinsCharge),
fhBinLimMomentum(c.fhBinLimMomentum),
fhBinLimPt(c.fhBinLimPt),
fhBinLimPx(c.fhBinLimPx),
fhBinLimPy(c.fhBinLimPy),
fhBinLimPz(c.fhBinLimPz),
fhBinLimEta(c.fhBinLimEta),
fhBinLimRapidity(c.fhBinLimRapidity),
fhBinLimPhi(c.fhBinLimPhi),
fhBinLimCharge(c.fhBinLimCharge)
{
((AliCFTrackKineCuts &) c).Copy(*this);
}
AliCFTrackKineCuts& AliCFTrackKineCuts::operator=(const AliCFTrackKineCuts& c)
{
if (this != &c) {
AliCFCutBase::operator=(c) ;
fMomentumMin = c.fMomentumMin ;
fMomentumMax = c.fMomentumMax ;
fPtMin = c.fPtMin ;
fPtMax = c.fPtMax ;
fPxMin = c.fPxMin ;
fPxMax = c.fPxMax ;
fPyMin = c.fPyMin ;
fPyMax = c.fPyMax ;
fPzMin = c.fPzMin ;
fPzMax = c.fPzMax ;
fEtaMin = c.fEtaMin ;
fEtaMax = c.fEtaMax ;
fRapidityMin = c.fRapidityMin ;
fRapidityMax = c.fRapidityMax ;
fPhiMin = c.fPhiMin ;
fPhiMax = c.fPhiMax ;
fCharge = c.fCharge ;
fRequireIsCharged = c.fRequireIsCharged ;
fhCutStatistics = c.fhCutStatistics ;
fhCutCorrelation = c.fhCutCorrelation ;
fBitmap = c.fBitmap;
fhNBinsMomentum = c.fhNBinsMomentum;
fhNBinsPt = c.fhNBinsPt;
fhNBinsPx = c.fhNBinsPx;
fhNBinsPy = c.fhNBinsPy;
fhNBinsPz = c.fhNBinsPz;
fhNBinsEta = c.fhNBinsEta;
fhNBinsRapidity = c.fhNBinsRapidity;
fhNBinsPhi = c.fhNBinsPhi;
fhNBinsCharge = c.fhNBinsCharge;
fhBinLimMomentum = c.fhBinLimMomentum;
fhBinLimPt = c.fhBinLimPt;
fhBinLimPx = c.fhBinLimPx;
fhBinLimPy = c.fhBinLimPy;
fhBinLimPz = c.fhBinLimPz;
fhBinLimEta = c.fhBinLimEta;
fhBinLimRapidity = c.fhBinLimRapidity;
fhBinLimPhi = c.fhBinLimPhi;
fhBinLimCharge = c.fhBinLimCharge;
for (Int_t i=0; i<c.kNHist; i++){
for (Int_t j=0; j<c.kNStepQA; j++){
if(c.fhQA[i][j]) fhQA[i][j] = (TH1F*)c.fhQA[i][j]->Clone();
}
}
((AliCFTrackKineCuts &) c).Copy(*this);
}
return *this ;
}
AliCFTrackKineCuts::~AliCFTrackKineCuts()
{
if (fhCutStatistics) delete fhCutStatistics;
if (fhCutCorrelation) delete fhCutCorrelation;
for (Int_t i=0; i<kNHist; i++){
for (Int_t j=0; j<kNStepQA; j++){
if(fhQA[i][j]) delete fhQA[i][j];
}
}
if(fBitmap) delete fBitmap;
if(fhBinLimMomentum) delete fhBinLimMomentum;
if(fhBinLimPt) delete fhBinLimPt;
if(fhBinLimPx) delete fhBinLimPx;
if(fhBinLimPy) delete fhBinLimPy;
if(fhBinLimPz) delete fhBinLimPz;
if(fhBinLimEta) delete fhBinLimEta;
if(fhBinLimRapidity) delete fhBinLimRapidity;
if(fhBinLimPhi) delete fhBinLimPhi;
if(fhBinLimCharge) delete fhBinLimCharge;
}
void AliCFTrackKineCuts::Initialise()
{
fMomentumMin = 0;
fMomentumMax = 0;
fPtMin = 0;
fPtMax = 0;
fPxMin = 0;
fPxMax = 0;
fPyMin = 0;
fPyMax = 0;
fPzMin = 0;
fPzMax = 0;
fEtaMin = 0;
fEtaMax = 0;
fRapidityMin = 0;
fRapidityMax = 0;
fPhiMin = 0;
fPhiMax = 0;
fCharge = 0;
fRequireIsCharged = 0;
SetMomentumRange();
SetPtRange();
SetPxRange();
SetPyRange();
SetPzRange();
SetEtaRange();
SetRapidityRange();
SetPhiRange();
SetChargeRec();
SetChargeMC();
SetRequireIsCharged();
for (Int_t i=0; i<kNHist; i++){
for (Int_t j=0; j<kNStepQA; j++) {
fhQA[i][j] = 0x0;
}
}
fhCutStatistics = 0;
fhCutCorrelation = 0;
fBitmap=new TBits(0);
SetHistogramBins(kCutP,200,0.,20.);
SetHistogramBins(kCutPt,200,0.,20.);
SetHistogramBins(kCutPx,400,-20.,20.);
SetHistogramBins(kCutPy,400,-20.,20.);
SetHistogramBins(kCutPz,400,-20.,20.);
SetHistogramBins(kCutRapidity,200,-10.,10.);
SetHistogramBins(kCutEta,200,-10.,10.);
SetHistogramBins(kCutPhi,38,-0.6,7.);
SetHistogramBins(kCutCharge,21,-10.5,10.5);
}
void AliCFTrackKineCuts::Copy(TObject &c) const
{
AliCFTrackKineCuts& target = (AliCFTrackKineCuts &) c;
target.Initialise();
if (fhCutStatistics) target.fhCutStatistics = (TH1F*) fhCutStatistics->Clone();
if (fhCutCorrelation) target.fhCutCorrelation = (TH2F*) fhCutCorrelation->Clone();
for (Int_t i=0; i<kNHist; i++){
for (Int_t j=0; j<kNStepQA; j++){
if(fhQA[i][j]) target.fhQA[i][j] = (TH1F*)fhQA[i][j]->Clone();
}
}
TNamed::Copy(c);
}
void AliCFTrackKineCuts::SelectionBitMap(TObject* obj) {
for(Int_t i=0; i<kNCuts; i++)fBitmap->SetBitNumber(i,kFALSE);
if (!obj) return ;
if (!obj->InheritsFrom("AliVParticle")) AliError("object must derived from AliVParticle !");
AliVParticle* particle = dynamic_cast<AliVParticle *>(obj);
if ( !particle ) return;
Int_t iCutBit = 0;
if((particle->P() >= fMomentumMin) && (particle->P() <= fMomentumMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Pt() >= fPtMin) && (particle->Pt() <= fPtMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Px() >= fPxMin) && (particle->Px() <= fPxMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Py() >= fPyMin) && (particle->Py() <= fPyMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Pz() >= fPzMin) && (particle->Pz() <= fPzMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Eta() >= fEtaMin) && (particle->Eta() <= fEtaMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Y() >= fRapidityMin) && (particle->Y() <= fRapidityMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if ((particle->Phi() >= fPhiMin) && (particle->Phi() <= fPhiMax))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if (fCharge >= 10 || (particle->Charge() == fCharge))
fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if (fRequireIsCharged && particle->Charge()!=0)
fBitmap->SetBitNumber(iCutBit,kTRUE);
if (!fRequireIsCharged)
fBitmap->SetBitNumber(iCutBit,kTRUE);
return;
}
Bool_t AliCFTrackKineCuts::IsSelected(TObject* obj) {
SelectionBitMap(obj);
if (fIsQAOn) FillHistograms(obj,0);
Bool_t isSelected = kTRUE;
for (UInt_t icut=0; icut<fBitmap->GetNbits();icut++) {
if(!fBitmap->TestBitNumber(icut)) {
isSelected = kFALSE;
break;
}
}
if (!isSelected) return kFALSE ;
if (fIsQAOn) FillHistograms(obj,1);
return kTRUE;
}
void AliCFTrackKineCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins)
{
if(!fIsQAOn) return;
switch(index){
case kCutP:
fhNBinsMomentum=nbins+1;
fhBinLimMomentum=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimMomentum[i]=bins[i];
break;
case kCutPt:
fhNBinsPt=nbins+1;
fhBinLimPt=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPt[i]=bins[i];
break;
case kCutPx:
fhNBinsPx=nbins+1;
fhBinLimPx=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPx[i]=bins[i];
break;
case kCutPy:
fhNBinsPy=nbins+1;
fhBinLimPy=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPy[i]=bins[i];
break;
case kCutPz:
fhNBinsPz=nbins+1;
fhBinLimPz=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPz[i]=bins[i];
break;
case kCutRapidity:
fhNBinsRapidity=nbins+1;
fhBinLimRapidity=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimRapidity[i]=bins[i];
break;
case kCutEta:
fhNBinsEta=nbins+1;
fhBinLimEta=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimEta[i]=bins[i];
break;
case kCutPhi:
fhNBinsPhi=nbins+1;
fhBinLimPhi=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPhi[i]=bins[i];
break;
case kCutCharge:
fhNBinsCharge=nbins+1;
fhBinLimCharge=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimCharge[i]=bins[i];
break;
}
}
void AliCFTrackKineCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax)
{
switch(index){
case kCutP:
fhNBinsMomentum=nbins+1;
fhBinLimMomentum=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimMomentum[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutPt:
fhNBinsPt=nbins+1;
fhBinLimPt=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPt[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutPx:
fhNBinsPx=nbins+1;
fhBinLimPx=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPx[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutPy:
fhNBinsPy=nbins+1;
fhBinLimPy=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPy[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutPz:
fhNBinsPz=nbins+1;
fhBinLimPz=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPz[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutRapidity:
fhNBinsRapidity=nbins+1;
fhBinLimRapidity=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimRapidity[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutEta:
fhNBinsEta=nbins+1;
fhBinLimEta=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimEta[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutPhi:
fhNBinsPhi=nbins+1;
fhBinLimPhi=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimPhi[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
case kCutCharge:
fhNBinsCharge=nbins+1;
fhBinLimCharge=new Double_t[nbins+1];
for(Int_t i=0;i<nbins+1;i++)fhBinLimCharge[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
break;
}
}
void AliCFTrackKineCuts::DefineHistograms() {
Int_t color = 2;
fhCutStatistics = new TH1F(Form("%s_cut_statistics",GetName()), Form("%s cut statistics",GetName()), kNCuts,0.5,kNCuts+0.5);
fhCutStatistics->SetLineWidth(2);
fhCutStatistics->GetXaxis()->SetBinLabel(1,"p");
fhCutStatistics->GetXaxis()->SetBinLabel(2,"pt");
fhCutStatistics->GetXaxis()->SetBinLabel(3,"px");
fhCutStatistics->GetXaxis()->SetBinLabel(4,"py");
fhCutStatistics->GetXaxis()->SetBinLabel(5,"pz");
fhCutStatistics->GetXaxis()->SetBinLabel(6,"eta");
fhCutStatistics->GetXaxis()->SetBinLabel(7,"y");
fhCutStatistics->GetXaxis()->SetBinLabel(8,"phi");
fhCutStatistics->GetXaxis()->SetBinLabel(9,"charge");
fhCutStatistics->GetXaxis()->SetBinLabel(10,"is charged");
fhCutCorrelation = new TH2F(Form("%s_cut_correlation",GetName()), Form("%s cut correlation",GetName()), kNCuts,0.5,kNCuts+0.5,kNCuts,0.5,kNCuts+0.5);
fhCutCorrelation->SetLineWidth(2);
fhCutCorrelation->GetXaxis()->SetBinLabel(1,"p");
fhCutCorrelation->GetXaxis()->SetBinLabel(2,"pt");
fhCutCorrelation->GetXaxis()->SetBinLabel(3,"px");
fhCutCorrelation->GetXaxis()->SetBinLabel(4,"py");
fhCutCorrelation->GetXaxis()->SetBinLabel(5,"pz");
fhCutCorrelation->GetXaxis()->SetBinLabel(6,"eta");
fhCutCorrelation->GetXaxis()->SetBinLabel(7,"y");
fhCutCorrelation->GetXaxis()->SetBinLabel(8,"phi");
fhCutCorrelation->GetXaxis()->SetBinLabel(9,"charge");
fhCutCorrelation->GetXaxis()->SetBinLabel(10,"is charged");
fhCutCorrelation->GetYaxis()->SetBinLabel(1,"p");
fhCutCorrelation->GetYaxis()->SetBinLabel(2,"pt");
fhCutCorrelation->GetYaxis()->SetBinLabel(3,"px");
fhCutCorrelation->GetYaxis()->SetBinLabel(4,"py");
fhCutCorrelation->GetYaxis()->SetBinLabel(5,"pz");
fhCutCorrelation->GetYaxis()->SetBinLabel(6,"eta");
fhCutCorrelation->GetYaxis()->SetBinLabel(7,"y");
fhCutCorrelation->GetYaxis()->SetBinLabel(8,"phi");
fhCutCorrelation->GetYaxis()->SetBinLabel(9,"charge");
fhCutCorrelation->GetYaxis()->SetBinLabel(10,"is charged");
Char_t str[5];
for (Int_t i=0; i<kNStepQA; i++) {
if (i==0) snprintf(str,5," ");
else snprintf(str,5,"_cut");
fhQA[kCutP][i] = new TH1F(Form("%s_momentum%s",GetName(),str), "",fhNBinsMomentum-1,fhBinLimMomentum);
fhQA[kCutPt][i] = new TH1F(Form("%s_transverse_momentum%s",GetName(),str),"",fhNBinsPt-1,fhBinLimPt);
fhQA[kCutPx][i] = new TH1F(Form("%s_px%s",GetName(),str), "",fhNBinsPx-1,fhBinLimPx);
fhQA[kCutPy][i] = new TH1F(Form("%s_py%s",GetName(),str), "",fhNBinsPy-1,fhBinLimPy);
fhQA[kCutPz][i] = new TH1F(Form("%s_pz%s",GetName(),str), "",fhNBinsPz-1,fhBinLimPz);
fhQA[kCutRapidity][i]=new TH1F(Form("%s_rapidity%s",GetName(),str), "",fhNBinsRapidity-1,fhBinLimRapidity);
fhQA[kCutEta][i] = new TH1F(Form("%s_eta%s",GetName(),str), "",fhNBinsEta-1,fhBinLimEta);
fhQA[kCutPhi][i] = new TH1F(Form("%s_phi%s",GetName(),str), "",fhNBinsPhi-1,fhBinLimPhi);
fhQA[kCutCharge][i] = new TH1F(Form("%s_charge%s",GetName(),str), "",fhNBinsCharge-1,fhBinLimCharge);
fhQA[kCutP][i] ->SetXTitle("momentum p (GeV/c)");
fhQA[kCutPt][i] ->SetXTitle("p_{T} (GeV/c)");
fhQA[kCutPx][i] ->SetXTitle("p_{x} (GeV/c)");
fhQA[kCutPy][i] ->SetXTitle("p_{y} (GeV/c)");
fhQA[kCutPz][i] ->SetXTitle("p_{z} (GeV/c)");
fhQA[kCutRapidity][i]->SetXTitle("rapidity y");
fhQA[kCutEta][i] ->SetXTitle("pseudo rapidity #eta");
fhQA[kCutPhi][i] ->SetXTitle("azimuth #phi (rad)");
fhQA[kCutCharge][i] ->SetXTitle("charge");
}
for(Int_t i=0; i<kNHist; i++) fhQA[i][1]->SetLineColor(color);
}
void AliCFTrackKineCuts::FillHistograms(TObject* obj, Bool_t b)
{
if (!obj) return;
AliVParticle* particle = dynamic_cast<AliVParticle *>(obj);
if ( !particle ) return;
fhQA[kCutP][b]->Fill(particle->P());
fhQA[kCutPt][b]->Fill(particle->Pt());
fhQA[kCutPx][b]->Fill(particle->Px());
fhQA[kCutPy][b]->Fill(particle->Py());
fhQA[kCutPz][b]->Fill(particle->Pz());
fhQA[kCutRapidity][b]->Fill(particle->Y());
fhQA[kCutEta][b]->Fill(particle->Eta());
fhQA[kCutPhi][b]->Fill(particle->Phi());
fhQA[kCutCharge][b]->Fill((float)particle->Charge());
if (b) return;
UInt_t ncuts = fBitmap->GetNbits();
for(UInt_t bit=0; bit<ncuts;bit++) {
if (!fBitmap->TestBitNumber(bit)) {
fhCutStatistics->Fill(bit+1);
for (UInt_t bit2=bit; bit2<ncuts;bit2++) {
if (!fBitmap->TestBitNumber(bit2))
fhCutCorrelation->Fill(bit+1,bit2+1);
}
}
}
}
void AliCFTrackKineCuts::SaveHistograms(const Char_t* dir) {
if(!fIsQAOn) return;
if (!dir)
dir = GetName();
gDirectory->mkdir(dir);
gDirectory->cd(dir);
gDirectory->mkdir("before_cuts");
gDirectory->mkdir("after_cuts");
fhCutStatistics->Write();
fhCutCorrelation->Write();
for (Int_t j=0; j<kNStepQA; j++) {
if (j==0)
gDirectory->cd("before_cuts");
else
gDirectory->cd("after_cuts");
for(Int_t i=0; i<kNHist; i++) fhQA[i][j]->Write();
gDirectory->cd("../");
}
gDirectory->cd("../");
}
void AliCFTrackKineCuts::DrawHistograms(Bool_t drawLogScale)
{
if(!fIsQAOn) return;
Float_t right = 0.03;
Float_t left = 0.175;
Float_t top = 0.03;
Float_t bottom = 0.175;
TCanvas* canvas1 = new TCanvas("Track_QA_Kinematics_1", "Track QA Kinematics 1", 800, 500);
canvas1->Divide(2, 1);
canvas1->cd(1);
fhCutStatistics->SetStats(kFALSE);
fhCutStatistics->LabelsOption("v");
gPad->SetLeftMargin(left);
gPad->SetBottomMargin(0.25);
gPad->SetRightMargin(right);
gPad->SetTopMargin(0.1);
fhCutStatistics->Draw();
canvas1->cd(2);
fhCutCorrelation->SetStats(kFALSE);
fhCutCorrelation->LabelsOption("v");
gPad->SetLeftMargin(0.30);
gPad->SetRightMargin(bottom);
gPad->SetTopMargin(0.1);
gPad->SetBottomMargin(0.25);
fhCutCorrelation->Draw("COLZ");
canvas1->SaveAs(Form("%s.eps", canvas1->GetName()));
canvas1->SaveAs(Form("%s.ps", canvas1->GetName()));
TCanvas* canvas2 = new TCanvas("Track_QA_Kinematics_2", "Track QA Kinematics 2", 1600, 800);
canvas2->Divide(4, 2);
canvas2->cd(1);
fhQA[kCutP][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutP][0]->Draw();
fhQA[kCutP][1]->Draw("same");
canvas2->cd(2);
fhQA[kCutPt][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutPt][0]->Draw();
fhQA[kCutPt][1]->Draw("same");
canvas2->cd(3);
fhQA[kCutRapidity][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutRapidity][0]->Draw();
fhQA[kCutRapidity][1]->Draw("same");
canvas2->cd(4);
fhQA[kCutEta][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutEta][0]->Draw();
fhQA[kCutEta][1]->Draw("same");
canvas2->cd(5);
fhQA[kCutPx][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutPx][0]->Draw();
fhQA[kCutPx][1]->Draw("same");
canvas2->cd(6);
fhQA[kCutPy][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutPy][0]->Draw();
fhQA[kCutPy][1]->Draw("same");
canvas2->cd(7);
fhQA[kCutPz][0]->SetStats(kFALSE);
if(drawLogScale) gPad->SetLogy();
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutPz][0]->Draw();
fhQA[kCutPz][1]->Draw("same");
canvas2->SaveAs(Form("%s.eps", canvas2->GetName()));
canvas2->SaveAs(Form("%s.ps", canvas2->GetName()));
TCanvas* canvas3 = new TCanvas("Track_QA_Kinematics_3", "Track QA Kinematics 3", 800, 400);
canvas3->Divide(2, 1);
canvas3->cd(1);
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutPhi][0]->SetStats(kFALSE);
fhQA[kCutPhi][0]->Draw();
fhQA[kCutPhi][1]->Draw("same");
canvas3->cd(2);
gPad->SetRightMargin(right);
gPad->SetLeftMargin(left);
gPad->SetTopMargin(top);
gPad->SetBottomMargin(bottom);
fhQA[kCutCharge][0]->SetStats(kFALSE);
fhQA[kCutCharge][0]->Draw();
fhQA[kCutCharge][1]->Draw("same");
canvas3->SaveAs(Form("%s.eps", canvas3->GetName()));
canvas3->SaveAs(Form("%s.ps", canvas3->GetName()));
}
void AliCFTrackKineCuts::AddQAHistograms(TList *qaList) {
DefineHistograms();
qaList->Add(fhCutStatistics);
qaList->Add(fhCutCorrelation);
for (Int_t j=0; j<kNStepQA; j++) {
for(Int_t i=0; i<kNHist; i++)
qaList->Add(fhQA[i][j]);
}
}
AliCFTrackKineCuts.cxx:10 AliCFTrackKineCuts.cxx:11 AliCFTrackKineCuts.cxx:12 AliCFTrackKineCuts.cxx:13 AliCFTrackKineCuts.cxx:14 AliCFTrackKineCuts.cxx:15 AliCFTrackKineCuts.cxx:16 AliCFTrackKineCuts.cxx:17 AliCFTrackKineCuts.cxx:18 AliCFTrackKineCuts.cxx:19 AliCFTrackKineCuts.cxx:20 AliCFTrackKineCuts.cxx:21 AliCFTrackKineCuts.cxx:22 AliCFTrackKineCuts.cxx:23 AliCFTrackKineCuts.cxx:24 AliCFTrackKineCuts.cxx:25 AliCFTrackKineCuts.cxx:26 AliCFTrackKineCuts.cxx:27 AliCFTrackKineCuts.cxx:28 AliCFTrackKineCuts.cxx:29 AliCFTrackKineCuts.cxx:30 AliCFTrackKineCuts.cxx:31 AliCFTrackKineCuts.cxx:32 AliCFTrackKineCuts.cxx:33 AliCFTrackKineCuts.cxx:34 AliCFTrackKineCuts.cxx:35 AliCFTrackKineCuts.cxx:36 AliCFTrackKineCuts.cxx:37 AliCFTrackKineCuts.cxx:38 AliCFTrackKineCuts.cxx:39 AliCFTrackKineCuts.cxx:40 AliCFTrackKineCuts.cxx:41 AliCFTrackKineCuts.cxx:42 AliCFTrackKineCuts.cxx:43 AliCFTrackKineCuts.cxx:44 AliCFTrackKineCuts.cxx:45 AliCFTrackKineCuts.cxx:46 AliCFTrackKineCuts.cxx:47 AliCFTrackKineCuts.cxx:48 AliCFTrackKineCuts.cxx:49 AliCFTrackKineCuts.cxx:50 AliCFTrackKineCuts.cxx:51 AliCFTrackKineCuts.cxx:52 AliCFTrackKineCuts.cxx:53 AliCFTrackKineCuts.cxx:54 AliCFTrackKineCuts.cxx:55 AliCFTrackKineCuts.cxx:56 AliCFTrackKineCuts.cxx:57 AliCFTrackKineCuts.cxx:58 AliCFTrackKineCuts.cxx:59 AliCFTrackKineCuts.cxx:60 AliCFTrackKineCuts.cxx:61 AliCFTrackKineCuts.cxx:62 AliCFTrackKineCuts.cxx:63 AliCFTrackKineCuts.cxx:64 AliCFTrackKineCuts.cxx:65 AliCFTrackKineCuts.cxx:66 AliCFTrackKineCuts.cxx:67 AliCFTrackKineCuts.cxx:68 AliCFTrackKineCuts.cxx:69 AliCFTrackKineCuts.cxx:70 AliCFTrackKineCuts.cxx:71 AliCFTrackKineCuts.cxx:72 AliCFTrackKineCuts.cxx:73 AliCFTrackKineCuts.cxx:74 AliCFTrackKineCuts.cxx:75 AliCFTrackKineCuts.cxx:76 AliCFTrackKineCuts.cxx:77 AliCFTrackKineCuts.cxx:78 AliCFTrackKineCuts.cxx:79 AliCFTrackKineCuts.cxx:80 AliCFTrackKineCuts.cxx:81 AliCFTrackKineCuts.cxx:82 AliCFTrackKineCuts.cxx:83 AliCFTrackKineCuts.cxx:84 AliCFTrackKineCuts.cxx:85 AliCFTrackKineCuts.cxx:86 AliCFTrackKineCuts.cxx:87 AliCFTrackKineCuts.cxx:88 AliCFTrackKineCuts.cxx:89 AliCFTrackKineCuts.cxx:90 AliCFTrackKineCuts.cxx:91 AliCFTrackKineCuts.cxx:92 AliCFTrackKineCuts.cxx:93 AliCFTrackKineCuts.cxx:94 AliCFTrackKineCuts.cxx:95 AliCFTrackKineCuts.cxx:96 AliCFTrackKineCuts.cxx:97 AliCFTrackKineCuts.cxx:98 AliCFTrackKineCuts.cxx:99 AliCFTrackKineCuts.cxx:100 AliCFTrackKineCuts.cxx:101 AliCFTrackKineCuts.cxx:102 AliCFTrackKineCuts.cxx:103 AliCFTrackKineCuts.cxx:104 AliCFTrackKineCuts.cxx:105 AliCFTrackKineCuts.cxx:106 AliCFTrackKineCuts.cxx:107 AliCFTrackKineCuts.cxx:108 AliCFTrackKineCuts.cxx:109 AliCFTrackKineCuts.cxx:110 AliCFTrackKineCuts.cxx:111 AliCFTrackKineCuts.cxx:112 AliCFTrackKineCuts.cxx:113 AliCFTrackKineCuts.cxx:114 AliCFTrackKineCuts.cxx:115 AliCFTrackKineCuts.cxx:116 AliCFTrackKineCuts.cxx:117 AliCFTrackKineCuts.cxx:118 AliCFTrackKineCuts.cxx:119 AliCFTrackKineCuts.cxx:120 AliCFTrackKineCuts.cxx:121 AliCFTrackKineCuts.cxx:122 AliCFTrackKineCuts.cxx:123 AliCFTrackKineCuts.cxx:124 AliCFTrackKineCuts.cxx:125 AliCFTrackKineCuts.cxx:126 AliCFTrackKineCuts.cxx:127 AliCFTrackKineCuts.cxx:128 AliCFTrackKineCuts.cxx:129 AliCFTrackKineCuts.cxx:130 AliCFTrackKineCuts.cxx:131 AliCFTrackKineCuts.cxx:132 AliCFTrackKineCuts.cxx:133 AliCFTrackKineCuts.cxx:134 AliCFTrackKineCuts.cxx:135 AliCFTrackKineCuts.cxx:136 AliCFTrackKineCuts.cxx:137 AliCFTrackKineCuts.cxx:138 AliCFTrackKineCuts.cxx:139 AliCFTrackKineCuts.cxx:140 AliCFTrackKineCuts.cxx:141 AliCFTrackKineCuts.cxx:142 AliCFTrackKineCuts.cxx:143 AliCFTrackKineCuts.cxx:144 AliCFTrackKineCuts.cxx:145 AliCFTrackKineCuts.cxx:146 AliCFTrackKineCuts.cxx:147 AliCFTrackKineCuts.cxx:148 AliCFTrackKineCuts.cxx:149 AliCFTrackKineCuts.cxx:150 AliCFTrackKineCuts.cxx:151 AliCFTrackKineCuts.cxx:152 AliCFTrackKineCuts.cxx:153 AliCFTrackKineCuts.cxx:154 AliCFTrackKineCuts.cxx:155 AliCFTrackKineCuts.cxx:156 AliCFTrackKineCuts.cxx:157 AliCFTrackKineCuts.cxx:158 AliCFTrackKineCuts.cxx:159 AliCFTrackKineCuts.cxx:160 AliCFTrackKineCuts.cxx:161 AliCFTrackKineCuts.cxx:162 AliCFTrackKineCuts.cxx:163 AliCFTrackKineCuts.cxx:164 AliCFTrackKineCuts.cxx:165 AliCFTrackKineCuts.cxx:166 AliCFTrackKineCuts.cxx:167 AliCFTrackKineCuts.cxx:168 AliCFTrackKineCuts.cxx:169 AliCFTrackKineCuts.cxx:170 AliCFTrackKineCuts.cxx:171 AliCFTrackKineCuts.cxx:172 AliCFTrackKineCuts.cxx:173 AliCFTrackKineCuts.cxx:174 AliCFTrackKineCuts.cxx:175 AliCFTrackKineCuts.cxx:176 AliCFTrackKineCuts.cxx:177 AliCFTrackKineCuts.cxx:178 AliCFTrackKineCuts.cxx:179 AliCFTrackKineCuts.cxx:180 AliCFTrackKineCuts.cxx:181 AliCFTrackKineCuts.cxx:182 AliCFTrackKineCuts.cxx:183 AliCFTrackKineCuts.cxx:184 AliCFTrackKineCuts.cxx:185 AliCFTrackKineCuts.cxx:186 AliCFTrackKineCuts.cxx:187 AliCFTrackKineCuts.cxx:188 AliCFTrackKineCuts.cxx:189 AliCFTrackKineCuts.cxx:190 AliCFTrackKineCuts.cxx:191 AliCFTrackKineCuts.cxx:192 AliCFTrackKineCuts.cxx:193 AliCFTrackKineCuts.cxx:194 AliCFTrackKineCuts.cxx:195 AliCFTrackKineCuts.cxx:196 AliCFTrackKineCuts.cxx:197 AliCFTrackKineCuts.cxx:198 AliCFTrackKineCuts.cxx:199 AliCFTrackKineCuts.cxx:200 AliCFTrackKineCuts.cxx:201 AliCFTrackKineCuts.cxx:202 AliCFTrackKineCuts.cxx:203 AliCFTrackKineCuts.cxx:204 AliCFTrackKineCuts.cxx:205 AliCFTrackKineCuts.cxx:206 AliCFTrackKineCuts.cxx:207 AliCFTrackKineCuts.cxx:208 AliCFTrackKineCuts.cxx:209 AliCFTrackKineCuts.cxx:210 AliCFTrackKineCuts.cxx:211 AliCFTrackKineCuts.cxx:212 AliCFTrackKineCuts.cxx:213 AliCFTrackKineCuts.cxx:214 AliCFTrackKineCuts.cxx:215 AliCFTrackKineCuts.cxx:216 AliCFTrackKineCuts.cxx:217 AliCFTrackKineCuts.cxx:218 AliCFTrackKineCuts.cxx:219 AliCFTrackKineCuts.cxx:220 AliCFTrackKineCuts.cxx:221 AliCFTrackKineCuts.cxx:222 AliCFTrackKineCuts.cxx:223 AliCFTrackKineCuts.cxx:224 AliCFTrackKineCuts.cxx:225 AliCFTrackKineCuts.cxx:226 AliCFTrackKineCuts.cxx:227 AliCFTrackKineCuts.cxx:228 AliCFTrackKineCuts.cxx:229 AliCFTrackKineCuts.cxx:230 AliCFTrackKineCuts.cxx:231 AliCFTrackKineCuts.cxx:232 AliCFTrackKineCuts.cxx:233 AliCFTrackKineCuts.cxx:234 AliCFTrackKineCuts.cxx:235 AliCFTrackKineCuts.cxx:236 AliCFTrackKineCuts.cxx:237 AliCFTrackKineCuts.cxx:238 AliCFTrackKineCuts.cxx:239 AliCFTrackKineCuts.cxx:240 AliCFTrackKineCuts.cxx:241 AliCFTrackKineCuts.cxx:242 AliCFTrackKineCuts.cxx:243 AliCFTrackKineCuts.cxx:244 AliCFTrackKineCuts.cxx:245 AliCFTrackKineCuts.cxx:246 AliCFTrackKineCuts.cxx:247 AliCFTrackKineCuts.cxx:248 AliCFTrackKineCuts.cxx:249 AliCFTrackKineCuts.cxx:250 AliCFTrackKineCuts.cxx:251 AliCFTrackKineCuts.cxx:252 AliCFTrackKineCuts.cxx:253 AliCFTrackKineCuts.cxx:254 AliCFTrackKineCuts.cxx:255 AliCFTrackKineCuts.cxx:256 AliCFTrackKineCuts.cxx:257 AliCFTrackKineCuts.cxx:258 AliCFTrackKineCuts.cxx:259 AliCFTrackKineCuts.cxx:260 AliCFTrackKineCuts.cxx:261 AliCFTrackKineCuts.cxx:262 AliCFTrackKineCuts.cxx:263 AliCFTrackKineCuts.cxx:264 AliCFTrackKineCuts.cxx:265 AliCFTrackKineCuts.cxx:266 AliCFTrackKineCuts.cxx:267 AliCFTrackKineCuts.cxx:268 AliCFTrackKineCuts.cxx:269 AliCFTrackKineCuts.cxx:270 AliCFTrackKineCuts.cxx:271 AliCFTrackKineCuts.cxx:272 AliCFTrackKineCuts.cxx:273 AliCFTrackKineCuts.cxx:274 AliCFTrackKineCuts.cxx:275 AliCFTrackKineCuts.cxx:276 AliCFTrackKineCuts.cxx:277 AliCFTrackKineCuts.cxx:278 AliCFTrackKineCuts.cxx:279 AliCFTrackKineCuts.cxx:280 AliCFTrackKineCuts.cxx:281 AliCFTrackKineCuts.cxx:282 AliCFTrackKineCuts.cxx:283 AliCFTrackKineCuts.cxx:284 AliCFTrackKineCuts.cxx:285 AliCFTrackKineCuts.cxx:286 AliCFTrackKineCuts.cxx:287 AliCFTrackKineCuts.cxx:288 AliCFTrackKineCuts.cxx:289 AliCFTrackKineCuts.cxx:290 AliCFTrackKineCuts.cxx:291 AliCFTrackKineCuts.cxx:292 AliCFTrackKineCuts.cxx:293 AliCFTrackKineCuts.cxx:294 AliCFTrackKineCuts.cxx:295 AliCFTrackKineCuts.cxx:296 AliCFTrackKineCuts.cxx:297 AliCFTrackKineCuts.cxx:298 AliCFTrackKineCuts.cxx:299 AliCFTrackKineCuts.cxx:300 AliCFTrackKineCuts.cxx:301 AliCFTrackKineCuts.cxx:302 AliCFTrackKineCuts.cxx:303 AliCFTrackKineCuts.cxx:304 AliCFTrackKineCuts.cxx:305 AliCFTrackKineCuts.cxx:306 AliCFTrackKineCuts.cxx:307 AliCFTrackKineCuts.cxx:308 AliCFTrackKineCuts.cxx:309 AliCFTrackKineCuts.cxx:310 AliCFTrackKineCuts.cxx:311 AliCFTrackKineCuts.cxx:312 AliCFTrackKineCuts.cxx:313 AliCFTrackKineCuts.cxx:314 AliCFTrackKineCuts.cxx:315 AliCFTrackKineCuts.cxx:316 AliCFTrackKineCuts.cxx:317 AliCFTrackKineCuts.cxx:318 AliCFTrackKineCuts.cxx:319 AliCFTrackKineCuts.cxx:320 AliCFTrackKineCuts.cxx:321 AliCFTrackKineCuts.cxx:322 AliCFTrackKineCuts.cxx:323 AliCFTrackKineCuts.cxx:324 AliCFTrackKineCuts.cxx:325 AliCFTrackKineCuts.cxx:326 AliCFTrackKineCuts.cxx:327 AliCFTrackKineCuts.cxx:328 AliCFTrackKineCuts.cxx:329 AliCFTrackKineCuts.cxx:330 AliCFTrackKineCuts.cxx:331 AliCFTrackKineCuts.cxx:332 AliCFTrackKineCuts.cxx:333 AliCFTrackKineCuts.cxx:334 AliCFTrackKineCuts.cxx:335 AliCFTrackKineCuts.cxx:336 AliCFTrackKineCuts.cxx:337 AliCFTrackKineCuts.cxx:338 AliCFTrackKineCuts.cxx:339 AliCFTrackKineCuts.cxx:340 AliCFTrackKineCuts.cxx:341 AliCFTrackKineCuts.cxx:342 AliCFTrackKineCuts.cxx:343 AliCFTrackKineCuts.cxx:344 AliCFTrackKineCuts.cxx:345 AliCFTrackKineCuts.cxx:346 AliCFTrackKineCuts.cxx:347 AliCFTrackKineCuts.cxx:348 AliCFTrackKineCuts.cxx:349 AliCFTrackKineCuts.cxx:350 AliCFTrackKineCuts.cxx:351 AliCFTrackKineCuts.cxx:352 AliCFTrackKineCuts.cxx:353 AliCFTrackKineCuts.cxx:354 AliCFTrackKineCuts.cxx:355 AliCFTrackKineCuts.cxx:356 AliCFTrackKineCuts.cxx:357 AliCFTrackKineCuts.cxx:358 AliCFTrackKineCuts.cxx:359 AliCFTrackKineCuts.cxx:360 AliCFTrackKineCuts.cxx:361 AliCFTrackKineCuts.cxx:362 AliCFTrackKineCuts.cxx:363 AliCFTrackKineCuts.cxx:364 AliCFTrackKineCuts.cxx:365 AliCFTrackKineCuts.cxx:366 AliCFTrackKineCuts.cxx:367 AliCFTrackKineCuts.cxx:368 AliCFTrackKineCuts.cxx:369 AliCFTrackKineCuts.cxx:370 AliCFTrackKineCuts.cxx:371 AliCFTrackKineCuts.cxx:372 AliCFTrackKineCuts.cxx:373 AliCFTrackKineCuts.cxx:374 AliCFTrackKineCuts.cxx:375 AliCFTrackKineCuts.cxx:376 AliCFTrackKineCuts.cxx:377 AliCFTrackKineCuts.cxx:378 AliCFTrackKineCuts.cxx:379 AliCFTrackKineCuts.cxx:380 AliCFTrackKineCuts.cxx:381 AliCFTrackKineCuts.cxx:382 AliCFTrackKineCuts.cxx:383 AliCFTrackKineCuts.cxx:384 AliCFTrackKineCuts.cxx:385 AliCFTrackKineCuts.cxx:386 AliCFTrackKineCuts.cxx:387 AliCFTrackKineCuts.cxx:388 AliCFTrackKineCuts.cxx:389 AliCFTrackKineCuts.cxx:390 AliCFTrackKineCuts.cxx:391 AliCFTrackKineCuts.cxx:392 AliCFTrackKineCuts.cxx:393 AliCFTrackKineCuts.cxx:394 AliCFTrackKineCuts.cxx:395 AliCFTrackKineCuts.cxx:396 AliCFTrackKineCuts.cxx:397 AliCFTrackKineCuts.cxx:398 AliCFTrackKineCuts.cxx:399 AliCFTrackKineCuts.cxx:400 AliCFTrackKineCuts.cxx:401 AliCFTrackKineCuts.cxx:402 AliCFTrackKineCuts.cxx:403 AliCFTrackKineCuts.cxx:404 AliCFTrackKineCuts.cxx:405 AliCFTrackKineCuts.cxx:406 AliCFTrackKineCuts.cxx:407 AliCFTrackKineCuts.cxx:408 AliCFTrackKineCuts.cxx:409 AliCFTrackKineCuts.cxx:410 AliCFTrackKineCuts.cxx:411 AliCFTrackKineCuts.cxx:412 AliCFTrackKineCuts.cxx:413 AliCFTrackKineCuts.cxx:414 AliCFTrackKineCuts.cxx:415 AliCFTrackKineCuts.cxx:416 AliCFTrackKineCuts.cxx:417 AliCFTrackKineCuts.cxx:418 AliCFTrackKineCuts.cxx:419 AliCFTrackKineCuts.cxx:420 AliCFTrackKineCuts.cxx:421 AliCFTrackKineCuts.cxx:422 AliCFTrackKineCuts.cxx:423 AliCFTrackKineCuts.cxx:424 AliCFTrackKineCuts.cxx:425 AliCFTrackKineCuts.cxx:426 AliCFTrackKineCuts.cxx:427 AliCFTrackKineCuts.cxx:428 AliCFTrackKineCuts.cxx:429 AliCFTrackKineCuts.cxx:430 AliCFTrackKineCuts.cxx:431 AliCFTrackKineCuts.cxx:432 AliCFTrackKineCuts.cxx:433 AliCFTrackKineCuts.cxx:434 AliCFTrackKineCuts.cxx:435 AliCFTrackKineCuts.cxx:436 AliCFTrackKineCuts.cxx:437 AliCFTrackKineCuts.cxx:438 AliCFTrackKineCuts.cxx:439 AliCFTrackKineCuts.cxx:440 AliCFTrackKineCuts.cxx:441 AliCFTrackKineCuts.cxx:442 AliCFTrackKineCuts.cxx:443 AliCFTrackKineCuts.cxx:444 AliCFTrackKineCuts.cxx:445 AliCFTrackKineCuts.cxx:446 AliCFTrackKineCuts.cxx:447 AliCFTrackKineCuts.cxx:448 AliCFTrackKineCuts.cxx:449 AliCFTrackKineCuts.cxx:450 AliCFTrackKineCuts.cxx:451 AliCFTrackKineCuts.cxx:452 AliCFTrackKineCuts.cxx:453 AliCFTrackKineCuts.cxx:454 AliCFTrackKineCuts.cxx:455 AliCFTrackKineCuts.cxx:456 AliCFTrackKineCuts.cxx:457 AliCFTrackKineCuts.cxx:458 AliCFTrackKineCuts.cxx:459 AliCFTrackKineCuts.cxx:460 AliCFTrackKineCuts.cxx:461 AliCFTrackKineCuts.cxx:462 AliCFTrackKineCuts.cxx:463 AliCFTrackKineCuts.cxx:464 AliCFTrackKineCuts.cxx:465 AliCFTrackKineCuts.cxx:466 AliCFTrackKineCuts.cxx:467 AliCFTrackKineCuts.cxx:468 AliCFTrackKineCuts.cxx:469 AliCFTrackKineCuts.cxx:470 AliCFTrackKineCuts.cxx:471 AliCFTrackKineCuts.cxx:472 AliCFTrackKineCuts.cxx:473 AliCFTrackKineCuts.cxx:474 AliCFTrackKineCuts.cxx:475 AliCFTrackKineCuts.cxx:476 AliCFTrackKineCuts.cxx:477 AliCFTrackKineCuts.cxx:478 AliCFTrackKineCuts.cxx:479 AliCFTrackKineCuts.cxx:480 AliCFTrackKineCuts.cxx:481 AliCFTrackKineCuts.cxx:482 AliCFTrackKineCuts.cxx:483 AliCFTrackKineCuts.cxx:484 AliCFTrackKineCuts.cxx:485 AliCFTrackKineCuts.cxx:486 AliCFTrackKineCuts.cxx:487 AliCFTrackKineCuts.cxx:488 AliCFTrackKineCuts.cxx:489 AliCFTrackKineCuts.cxx:490 AliCFTrackKineCuts.cxx:491 AliCFTrackKineCuts.cxx:492 AliCFTrackKineCuts.cxx:493 AliCFTrackKineCuts.cxx:494 AliCFTrackKineCuts.cxx:495 AliCFTrackKineCuts.cxx:496 AliCFTrackKineCuts.cxx:497 AliCFTrackKineCuts.cxx:498 AliCFTrackKineCuts.cxx:499 AliCFTrackKineCuts.cxx:500 AliCFTrackKineCuts.cxx:501 AliCFTrackKineCuts.cxx:502 AliCFTrackKineCuts.cxx:503 AliCFTrackKineCuts.cxx:504 AliCFTrackKineCuts.cxx:505 AliCFTrackKineCuts.cxx:506 AliCFTrackKineCuts.cxx:507 AliCFTrackKineCuts.cxx:508 AliCFTrackKineCuts.cxx:509 AliCFTrackKineCuts.cxx:510 AliCFTrackKineCuts.cxx:511 AliCFTrackKineCuts.cxx:512 AliCFTrackKineCuts.cxx:513 AliCFTrackKineCuts.cxx:514 AliCFTrackKineCuts.cxx:515 AliCFTrackKineCuts.cxx:516 AliCFTrackKineCuts.cxx:517 AliCFTrackKineCuts.cxx:518 AliCFTrackKineCuts.cxx:519 AliCFTrackKineCuts.cxx:520 AliCFTrackKineCuts.cxx:521 AliCFTrackKineCuts.cxx:522 AliCFTrackKineCuts.cxx:523 AliCFTrackKineCuts.cxx:524 AliCFTrackKineCuts.cxx:525 AliCFTrackKineCuts.cxx:526 AliCFTrackKineCuts.cxx:527 AliCFTrackKineCuts.cxx:528 AliCFTrackKineCuts.cxx:529 AliCFTrackKineCuts.cxx:530 AliCFTrackKineCuts.cxx:531 AliCFTrackKineCuts.cxx:532 AliCFTrackKineCuts.cxx:533 AliCFTrackKineCuts.cxx:534 AliCFTrackKineCuts.cxx:535 AliCFTrackKineCuts.cxx:536 AliCFTrackKineCuts.cxx:537 AliCFTrackKineCuts.cxx:538 AliCFTrackKineCuts.cxx:539 AliCFTrackKineCuts.cxx:540 AliCFTrackKineCuts.cxx:541 AliCFTrackKineCuts.cxx:542 AliCFTrackKineCuts.cxx:543 AliCFTrackKineCuts.cxx:544 AliCFTrackKineCuts.cxx:545 AliCFTrackKineCuts.cxx:546 AliCFTrackKineCuts.cxx:547 AliCFTrackKineCuts.cxx:548 AliCFTrackKineCuts.cxx:549 AliCFTrackKineCuts.cxx:550 AliCFTrackKineCuts.cxx:551 AliCFTrackKineCuts.cxx:552 AliCFTrackKineCuts.cxx:553 AliCFTrackKineCuts.cxx:554 AliCFTrackKineCuts.cxx:555 AliCFTrackKineCuts.cxx:556 AliCFTrackKineCuts.cxx:557 AliCFTrackKineCuts.cxx:558 AliCFTrackKineCuts.cxx:559 AliCFTrackKineCuts.cxx:560 AliCFTrackKineCuts.cxx:561 AliCFTrackKineCuts.cxx:562 AliCFTrackKineCuts.cxx:563 AliCFTrackKineCuts.cxx:564 AliCFTrackKineCuts.cxx:565 AliCFTrackKineCuts.cxx:566 AliCFTrackKineCuts.cxx:567 AliCFTrackKineCuts.cxx:568 AliCFTrackKineCuts.cxx:569 AliCFTrackKineCuts.cxx:570 AliCFTrackKineCuts.cxx:571 AliCFTrackKineCuts.cxx:572 AliCFTrackKineCuts.cxx:573 AliCFTrackKineCuts.cxx:574 AliCFTrackKineCuts.cxx:575 AliCFTrackKineCuts.cxx:576 AliCFTrackKineCuts.cxx:577 AliCFTrackKineCuts.cxx:578 AliCFTrackKineCuts.cxx:579 AliCFTrackKineCuts.cxx:580 AliCFTrackKineCuts.cxx:581 AliCFTrackKineCuts.cxx:582 AliCFTrackKineCuts.cxx:583 AliCFTrackKineCuts.cxx:584 AliCFTrackKineCuts.cxx:585 AliCFTrackKineCuts.cxx:586 AliCFTrackKineCuts.cxx:587 AliCFTrackKineCuts.cxx:588 AliCFTrackKineCuts.cxx:589 AliCFTrackKineCuts.cxx:590 AliCFTrackKineCuts.cxx:591 AliCFTrackKineCuts.cxx:592 AliCFTrackKineCuts.cxx:593 AliCFTrackKineCuts.cxx:594 AliCFTrackKineCuts.cxx:595 AliCFTrackKineCuts.cxx:596 AliCFTrackKineCuts.cxx:597 AliCFTrackKineCuts.cxx:598 AliCFTrackKineCuts.cxx:599 AliCFTrackKineCuts.cxx:600 AliCFTrackKineCuts.cxx:601 AliCFTrackKineCuts.cxx:602 AliCFTrackKineCuts.cxx:603 AliCFTrackKineCuts.cxx:604 AliCFTrackKineCuts.cxx:605 AliCFTrackKineCuts.cxx:606 AliCFTrackKineCuts.cxx:607 AliCFTrackKineCuts.cxx:608 AliCFTrackKineCuts.cxx:609 AliCFTrackKineCuts.cxx:610 AliCFTrackKineCuts.cxx:611 AliCFTrackKineCuts.cxx:612 AliCFTrackKineCuts.cxx:613 AliCFTrackKineCuts.cxx:614 AliCFTrackKineCuts.cxx:615 AliCFTrackKineCuts.cxx:616 AliCFTrackKineCuts.cxx:617 AliCFTrackKineCuts.cxx:618 AliCFTrackKineCuts.cxx:619 AliCFTrackKineCuts.cxx:620 AliCFTrackKineCuts.cxx:621 AliCFTrackKineCuts.cxx:622 AliCFTrackKineCuts.cxx:623 AliCFTrackKineCuts.cxx:624 AliCFTrackKineCuts.cxx:625 AliCFTrackKineCuts.cxx:626 AliCFTrackKineCuts.cxx:627 AliCFTrackKineCuts.cxx:628 AliCFTrackKineCuts.cxx:629 AliCFTrackKineCuts.cxx:630 AliCFTrackKineCuts.cxx:631 AliCFTrackKineCuts.cxx:632 AliCFTrackKineCuts.cxx:633 AliCFTrackKineCuts.cxx:634 AliCFTrackKineCuts.cxx:635 AliCFTrackKineCuts.cxx:636 AliCFTrackKineCuts.cxx:637 AliCFTrackKineCuts.cxx:638 AliCFTrackKineCuts.cxx:639 AliCFTrackKineCuts.cxx:640 AliCFTrackKineCuts.cxx:641 AliCFTrackKineCuts.cxx:642 AliCFTrackKineCuts.cxx:643 AliCFTrackKineCuts.cxx:644 AliCFTrackKineCuts.cxx:645 AliCFTrackKineCuts.cxx:646 AliCFTrackKineCuts.cxx:647 AliCFTrackKineCuts.cxx:648 AliCFTrackKineCuts.cxx:649 AliCFTrackKineCuts.cxx:650 AliCFTrackKineCuts.cxx:651 AliCFTrackKineCuts.cxx:652 AliCFTrackKineCuts.cxx:653 AliCFTrackKineCuts.cxx:654 AliCFTrackKineCuts.cxx:655 AliCFTrackKineCuts.cxx:656 AliCFTrackKineCuts.cxx:657 AliCFTrackKineCuts.cxx:658 AliCFTrackKineCuts.cxx:659 AliCFTrackKineCuts.cxx:660 AliCFTrackKineCuts.cxx:661 AliCFTrackKineCuts.cxx:662 AliCFTrackKineCuts.cxx:663 AliCFTrackKineCuts.cxx:664 AliCFTrackKineCuts.cxx:665 AliCFTrackKineCuts.cxx:666 AliCFTrackKineCuts.cxx:667 AliCFTrackKineCuts.cxx:668 AliCFTrackKineCuts.cxx:669 AliCFTrackKineCuts.cxx:670 AliCFTrackKineCuts.cxx:671 AliCFTrackKineCuts.cxx:672 AliCFTrackKineCuts.cxx:673 AliCFTrackKineCuts.cxx:674 AliCFTrackKineCuts.cxx:675 AliCFTrackKineCuts.cxx:676 AliCFTrackKineCuts.cxx:677 AliCFTrackKineCuts.cxx:678 AliCFTrackKineCuts.cxx:679 AliCFTrackKineCuts.cxx:680 AliCFTrackKineCuts.cxx:681 AliCFTrackKineCuts.cxx:682 AliCFTrackKineCuts.cxx:683 AliCFTrackKineCuts.cxx:684 AliCFTrackKineCuts.cxx:685 AliCFTrackKineCuts.cxx:686 AliCFTrackKineCuts.cxx:687 AliCFTrackKineCuts.cxx:688 AliCFTrackKineCuts.cxx:689 AliCFTrackKineCuts.cxx:690 AliCFTrackKineCuts.cxx:691 AliCFTrackKineCuts.cxx:692 AliCFTrackKineCuts.cxx:693 AliCFTrackKineCuts.cxx:694 AliCFTrackKineCuts.cxx:695 AliCFTrackKineCuts.cxx:696 AliCFTrackKineCuts.cxx:697 AliCFTrackKineCuts.cxx:698 AliCFTrackKineCuts.cxx:699 AliCFTrackKineCuts.cxx:700 AliCFTrackKineCuts.cxx:701 AliCFTrackKineCuts.cxx:702 AliCFTrackKineCuts.cxx:703 AliCFTrackKineCuts.cxx:704 AliCFTrackKineCuts.cxx:705 AliCFTrackKineCuts.cxx:706 AliCFTrackKineCuts.cxx:707 AliCFTrackKineCuts.cxx:708 AliCFTrackKineCuts.cxx:709 AliCFTrackKineCuts.cxx:710 AliCFTrackKineCuts.cxx:711 AliCFTrackKineCuts.cxx:712 AliCFTrackKineCuts.cxx:713 AliCFTrackKineCuts.cxx:714 AliCFTrackKineCuts.cxx:715 AliCFTrackKineCuts.cxx:716 AliCFTrackKineCuts.cxx:717 AliCFTrackKineCuts.cxx:718 AliCFTrackKineCuts.cxx:719 AliCFTrackKineCuts.cxx:720 AliCFTrackKineCuts.cxx:721 AliCFTrackKineCuts.cxx:722 AliCFTrackKineCuts.cxx:723 AliCFTrackKineCuts.cxx:724 AliCFTrackKineCuts.cxx:725 AliCFTrackKineCuts.cxx:726 AliCFTrackKineCuts.cxx:727 AliCFTrackKineCuts.cxx:728 AliCFTrackKineCuts.cxx:729 AliCFTrackKineCuts.cxx:730 AliCFTrackKineCuts.cxx:731 AliCFTrackKineCuts.cxx:732 AliCFTrackKineCuts.cxx:733 AliCFTrackKineCuts.cxx:734 AliCFTrackKineCuts.cxx:735 AliCFTrackKineCuts.cxx:736 AliCFTrackKineCuts.cxx:737 AliCFTrackKineCuts.cxx:738 AliCFTrackKineCuts.cxx:739 AliCFTrackKineCuts.cxx:740 AliCFTrackKineCuts.cxx:741 AliCFTrackKineCuts.cxx:742 AliCFTrackKineCuts.cxx:743 AliCFTrackKineCuts.cxx:744 AliCFTrackKineCuts.cxx:745 AliCFTrackKineCuts.cxx:746 AliCFTrackKineCuts.cxx:747 AliCFTrackKineCuts.cxx:748 AliCFTrackKineCuts.cxx:749 AliCFTrackKineCuts.cxx:750 AliCFTrackKineCuts.cxx:751 AliCFTrackKineCuts.cxx:752 AliCFTrackKineCuts.cxx:753 AliCFTrackKineCuts.cxx:754 AliCFTrackKineCuts.cxx:755 AliCFTrackKineCuts.cxx:756 AliCFTrackKineCuts.cxx:757 AliCFTrackKineCuts.cxx:758 AliCFTrackKineCuts.cxx:759 AliCFTrackKineCuts.cxx:760 AliCFTrackKineCuts.cxx:761 AliCFTrackKineCuts.cxx:762 AliCFTrackKineCuts.cxx:763 AliCFTrackKineCuts.cxx:764 AliCFTrackKineCuts.cxx:765 AliCFTrackKineCuts.cxx:766 AliCFTrackKineCuts.cxx:767 AliCFTrackKineCuts.cxx:768 AliCFTrackKineCuts.cxx:769 AliCFTrackKineCuts.cxx:770 AliCFTrackKineCuts.cxx:771 AliCFTrackKineCuts.cxx:772 AliCFTrackKineCuts.cxx:773 AliCFTrackKineCuts.cxx:774 AliCFTrackKineCuts.cxx:775 AliCFTrackKineCuts.cxx:776 AliCFTrackKineCuts.cxx:777 AliCFTrackKineCuts.cxx:778 AliCFTrackKineCuts.cxx:779 AliCFTrackKineCuts.cxx:780 AliCFTrackKineCuts.cxx:781 AliCFTrackKineCuts.cxx:782 AliCFTrackKineCuts.cxx:783 AliCFTrackKineCuts.cxx:784 AliCFTrackKineCuts.cxx:785 AliCFTrackKineCuts.cxx:786 AliCFTrackKineCuts.cxx:787 AliCFTrackKineCuts.cxx:788 AliCFTrackKineCuts.cxx:789 AliCFTrackKineCuts.cxx:790 AliCFTrackKineCuts.cxx:791 AliCFTrackKineCuts.cxx:792 AliCFTrackKineCuts.cxx:793 AliCFTrackKineCuts.cxx:794 AliCFTrackKineCuts.cxx:795 AliCFTrackKineCuts.cxx:796 AliCFTrackKineCuts.cxx:797 AliCFTrackKineCuts.cxx:798 AliCFTrackKineCuts.cxx:799 AliCFTrackKineCuts.cxx:800 AliCFTrackKineCuts.cxx:801 AliCFTrackKineCuts.cxx:802 AliCFTrackKineCuts.cxx:803 AliCFTrackKineCuts.cxx:804 AliCFTrackKineCuts.cxx:805 AliCFTrackKineCuts.cxx:806 AliCFTrackKineCuts.cxx:807 AliCFTrackKineCuts.cxx:808 AliCFTrackKineCuts.cxx:809 AliCFTrackKineCuts.cxx:810 AliCFTrackKineCuts.cxx:811 AliCFTrackKineCuts.cxx:812 AliCFTrackKineCuts.cxx:813 AliCFTrackKineCuts.cxx:814 AliCFTrackKineCuts.cxx:815 AliCFTrackKineCuts.cxx:816 AliCFTrackKineCuts.cxx:817 AliCFTrackKineCuts.cxx:818 AliCFTrackKineCuts.cxx:819 AliCFTrackKineCuts.cxx:820 AliCFTrackKineCuts.cxx:821 AliCFTrackKineCuts.cxx:822 AliCFTrackKineCuts.cxx:823 AliCFTrackKineCuts.cxx:824 AliCFTrackKineCuts.cxx:825 AliCFTrackKineCuts.cxx:826 AliCFTrackKineCuts.cxx:827 AliCFTrackKineCuts.cxx:828 AliCFTrackKineCuts.cxx:829 AliCFTrackKineCuts.cxx:830 AliCFTrackKineCuts.cxx:831 AliCFTrackKineCuts.cxx:832 AliCFTrackKineCuts.cxx:833 AliCFTrackKineCuts.cxx:834 AliCFTrackKineCuts.cxx:835 AliCFTrackKineCuts.cxx:836 AliCFTrackKineCuts.cxx:837 AliCFTrackKineCuts.cxx:838 AliCFTrackKineCuts.cxx:839 AliCFTrackKineCuts.cxx:840 AliCFTrackKineCuts.cxx:841 AliCFTrackKineCuts.cxx:842 AliCFTrackKineCuts.cxx:843 AliCFTrackKineCuts.cxx:844 AliCFTrackKineCuts.cxx:845 AliCFTrackKineCuts.cxx:846 AliCFTrackKineCuts.cxx:847 AliCFTrackKineCuts.cxx:848 AliCFTrackKineCuts.cxx:849 AliCFTrackKineCuts.cxx:850 AliCFTrackKineCuts.cxx:851 AliCFTrackKineCuts.cxx:852 AliCFTrackKineCuts.cxx:853 AliCFTrackKineCuts.cxx:854 AliCFTrackKineCuts.cxx:855 AliCFTrackKineCuts.cxx:856 AliCFTrackKineCuts.cxx:857 AliCFTrackKineCuts.cxx:858 AliCFTrackKineCuts.cxx:859