#define AliAnalysisTaskMuonCuts_cxx
#include "AliAnalysisTaskMuonCuts.h"
#include "TROOT.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TAxis.h"
#include "TCanvas.h"
#include "TLegend.h"
#include "TMath.h"
#include "TObjString.h"
#include "TObjArray.h"
#include "TF1.h"
#include "TStyle.h"
#include "TArrayI.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODMCParticle.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliInputEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliMergeableCollection.h"
#include "AliMuonEventCuts.h"
#include "AliMuonTrackCuts.h"
#include "AliAnalysisMuonUtility.h"
ClassImp(AliAnalysisTaskMuonCuts)
AliAnalysisTaskMuonCuts::AliAnalysisTaskMuonCuts() :
AliVAnalysisMuon(),
fHistoTypeKeys(0x0),
fThetaAbsKeys(0x0),
fSigmaCuts(TArrayD())
{
}
AliAnalysisTaskMuonCuts::AliAnalysisTaskMuonCuts(const char *name, const AliMuonTrackCuts& cuts) :
AliVAnalysisMuon(name, cuts),
fHistoTypeKeys(0x0),
fThetaAbsKeys(0x0),
fSigmaCuts(TArrayD())
{
TString histoTypeKeys = "hDCAxVsP hDCAyVsP hPdcaVsP hPDCAVsPCheck hDCAVsPCheck hChiProbVsP hSigmaVsPt hSigmaVsEta";
fHistoTypeKeys = histoTypeKeys.Tokenize(" ");
TString thetaAbsKeys = "ThetaAbs23 ThetaAbs310";
fThetaAbsKeys = thetaAbsKeys.Tokenize(" ");
SetSigmaCuts();
}
AliAnalysisTaskMuonCuts::~AliAnalysisTaskMuonCuts()
{
delete fHistoTypeKeys;
delete fThetaAbsKeys;
}
void AliAnalysisTaskMuonCuts::MyUserCreateOutputObjects()
{
TH1* histo = 0x0;
TString histoName = "";
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
histoName = GetHistoName(kDCAxVsP, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 50, 0., 200., 100, -50., 50.);
histo->SetXTitle("p (GeV/c)");
histo->SetYTitle("DCA_{x} (cm)");
AddObjectToCollection(histo);
histoName = GetHistoName(kDCAyVsP, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 50, 0., 200., 100, -50., 50.);
histo->SetXTitle("p (GeV/c)");
histo->SetYTitle("DCA_{y} (cm)");
AddObjectToCollection(histo);
histoName = GetHistoName(kPdcaVsP, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 100, 0., 400., 50, 0., 500.);
histo->SetXTitle("p (GeV/c)");
histo->SetYTitle("p#timesDCA (cm #times GeV/c)");
AddObjectToCollection(histo);
histoName = GetHistoName(kPDCAVsPCheck, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 100, 0., 800., 100, 0., 5000.);
histo->SetXTitle("p (GeV/c)");
histo->SetYTitle("p#timesDCA (cm #times GeV/c)");
AddObjectToCollection(histo);
histoName = GetHistoName(kDCAVsPCheck, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 100, 0., 800., 400, 0., 200.);
histo->SetXTitle("p (GeV/c)");
histo->SetYTitle("DCA (cm)");
AddObjectToCollection(histo);
histoName = GetHistoName(kChiProbVsP, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 50, 0., 200., 50, 0., 1.);
histo->SetXTitle("p (GeV/c)");
histo->SetYTitle("Chisquare prob.");
AddObjectToCollection(histo);
histoName = GetHistoName(kSigmaVsPt, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 100, 0., 100., fSigmaCuts.GetSize(), 0.5, 0.5+(Double_t)fSigmaCuts.GetSize());
histo->SetXTitle("p_{t} (GeV/c)");
histo->SetYTitle("#sigma_{p#timesDCA}");
for ( Int_t ibin=0; ibin<fSigmaCuts.GetSize(); ++ibin ) {
histo->GetYaxis()->SetBinLabel(ibin+1,Form("%g", fSigmaCuts[ibin]));
}
AddObjectToCollection(histo);
histoName = GetHistoName(kSigmaVsEta, itheta, isrc);
histo = new TH2F(histoName.Data(), histoName.Data(), 25, -4.5, -2., fSigmaCuts.GetSize(), 0.5, 0.5+(Double_t)fSigmaCuts.GetSize());
histo->SetXTitle("#eta");
histo->SetYTitle("#sigma_{p#timesDCA}");
for ( Int_t ibin=0; ibin<fSigmaCuts.GetSize(); ++ibin ) {
histo->GetYaxis()->SetBinLabel(ibin+1,Form("%g", fSigmaCuts[ibin]));
}
AddObjectToCollection(histo);
}
}
fMuonTrackCuts->Print();
}
TString AliAnalysisTaskMuonCuts::GetHistoName(Int_t histoTypeIndex, Int_t thetaAbsIndex, Int_t srcIndex)
{
TString histoName = Form("%s%s%s", fHistoTypeKeys->At(histoTypeIndex)->GetName(), fThetaAbsKeys->At(thetaAbsIndex)->GetName(), fSrcKeys->At(srcIndex)->GetName());
return histoName;
}
void AliAnalysisTaskMuonCuts::ProcessEvent(TString physSel, const TObjArray& selectTrigClasses, TString centrality)
{
TString histoName = "";
AliVParticle* track = 0x0;
Int_t nTracks = AliAnalysisMuonUtility::GetNTracks(InputEvent());
for (Int_t itrack = 0; itrack < nTracks; itrack++) {
track = AliAnalysisMuonUtility::GetTrack(itrack, InputEvent());
fMuonTrackCuts->CustomParam()->SetNSigmaPdca(1.e10);
if ( ! fMuonTrackCuts->IsSelected(track) ) continue;
Double_t thetaAbsEndDeg = AliAnalysisMuonUtility::GetThetaAbsDeg(track);
Int_t thetaAbsBin = ( thetaAbsEndDeg < 3. ) ? kThetaAbs23 : kThetaAbs310;
Int_t trackSrc = GetParticleType(track);
TVector3 dcaAtVz = fMuonTrackCuts->GetCorrectedDCA(track);
Double_t pTotMean = fMuonTrackCuts->GetAverageMomentum(track);
Double_t dca = dcaAtVz.Mag();
Double_t pDca = pTotMean * dca;
Double_t sigmaPdca = fMuonTrackCuts->IsThetaAbs23(track) ? fMuonTrackCuts->GetMuonTrackCutsParam().GetSigmaPdca23() : fMuonTrackCuts->GetMuonTrackCutsParam().GetSigmaPdca310();
Double_t chi2 = pDca / sigmaPdca;
chi2 *= chi2;
Double_t chiProb = TMath::Prob(chi2, 2);
Double_t pTot = track->P();
Double_t pt = track->Pt();
Double_t eta = track->Eta();
for ( Int_t itrig=0; itrig<selectTrigClasses.GetEntries(); ++itrig ) {
TString trigClassName = ((TObjString*)selectTrigClasses.At(itrig))->GetString();
histoName = GetHistoName(kDCAxVsP, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pTot, dcaAtVz.X());
histoName = GetHistoName(kDCAyVsP, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pTot, dcaAtVz.Y());
histoName = GetHistoName(kPdcaVsP, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pTot, pDca);
histoName = GetHistoName(kPDCAVsPCheck, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pTot, pDca);
histoName = GetHistoName(kDCAVsPCheck, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pTot, dca);
histoName = GetHistoName(kChiProbVsP, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pTot, chiProb);
}
for ( Int_t isigma=0; isigma<fSigmaCuts.GetSize(); ++isigma) {
fMuonTrackCuts->CustomParam()->SetNSigmaPdca(fSigmaCuts[isigma]);
if ( ! fMuonTrackCuts->IsSelected(track) ) continue;
for ( Int_t itrig=0; itrig<selectTrigClasses.GetEntries(); ++itrig ) {
TString trigClassName = ((TObjString*)selectTrigClasses.At(itrig))->GetString();
histoName = GetHistoName(kSigmaVsPt, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(pt, isigma+1);
histoName = GetHistoName(kSigmaVsEta, thetaAbsBin, trackSrc);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, histoName))->Fill(eta, isigma+1);
}
}
}
}
void AliAnalysisTaskMuonCuts::SetSigmaCuts(Int_t nSigmaCuts, Double_t* sigmaCuts)
{
if ( ! sigmaCuts || nSigmaCuts < 0 ) {
Double_t cuts[] = {2., 3., 4., 5., 6., 7., 10., 15., 20., 25., 30., 1.e10};
Int_t nCuts = sizeof(cuts)/sizeof(cuts[0]);
fSigmaCuts.Set(nCuts, cuts);
}
else {
fSigmaCuts.Set(nSigmaCuts, sigmaCuts);
}
}
void AliAnalysisTaskMuonCuts::Terminate(Option_t *) {
AliVAnalysisMuon::Terminate("");
if ( ! fMergeableCollection ) return;
TString physSel = fTerminateOptions->At(0)->GetName();
TString trigClassName = fTerminateOptions->At(1)->GetName();
TString centralityRange = fTerminateOptions->At(2)->GetName();
TString furtherOpt = fTerminateOptions->At(3)->GetName();
furtherOpt.ToUpper();
furtherOpt.ReplaceAll(" ", " ");
furtherOpt.ReplaceAll(" =", "=");
furtherOpt.ReplaceAll("= ", "=");
TObjArray* optArray = furtherOpt.Tokenize(" ");
Double_t refSigmaCut = 6.;
for ( Int_t iopt=0; iopt<optArray->GetEntries(); ++iopt ) {
TString currOpt = optArray->At(iopt)->GetName();
if ( currOpt.Contains("REFSIGMA") ) {
currOpt.Remove(0,currOpt.Index("=")+1);
refSigmaCut = currOpt.Atof();
}
}
delete optArray;
fMuonTrackCuts->Print("param");
Int_t srcColors[kNtrackSources] = {kBlack, kRed, kSpring, kTeal, kBlue, kViolet, kMagenta, kOrange, kGray};
TCanvas* can = 0x0;
Int_t xshift = 100;
Int_t yshift = 100;
Int_t igroup1 = -1;
Int_t igroup2 = 0;
igroup1++;
igroup2 = 0;
TString histoName = "", currName = "", histoPattern = "", drawOpt = "";
currName = Form("%s_recoDCA", GetName());
can = new TCanvas(currName.Data(),"Reco DCA",igroup1*xshift,igroup2*yshift,600,600);
can->Divide(2,2);
igroup2++;
Int_t recoDcaHisto[2] = {kDCAxVsP, kDCAyVsP};
TString dcaName[2] = {"DCAx", "DCAy"};
Double_t averageDca[4] = {0., 0.};
printf("\nAverage reconstructed DCA:\n");
TF1* fitFuncMeanDca = new TF1("fitFuncMeanDca","gausn",-20.,20.);
fitFuncMeanDca->SetParNames("Norm", "Mean", "Sigma");
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
for ( Int_t ihisto=0; ihisto<2; ++ihisto ) {
TH2* histo = 0x0;
histoPattern = "";
histoPattern = Form("%s%s*", fHistoTypeKeys->At(recoDcaHisto[ihisto])->GetName(), fThetaAbsKeys->At(itheta)->GetName());
histo = (TH2*)GetSum(physSel, trigClassName, centralityRange, histoPattern);
if ( ! histo ) continue;
TH1* meanDcaVsP = histo->ProjectionX(Form("mean%sVsP_%s", dcaName[ihisto].Data(), fThetaAbsKeys->At(itheta)->GetName()));
meanDcaVsP->Reset();
meanDcaVsP->SetTitle(Form("Mean %s vs. p %s", dcaName[ihisto].Data(), fThetaAbsKeys->At(itheta)->GetName()));
meanDcaVsP->SetYTitle(Form("<%s> (cm)", dcaName[ihisto].Data()));
meanDcaVsP->SetStats(kFALSE);
Int_t nPbins = histo->GetXaxis()->GetNbins();
TCanvas* meanDcaFitCan = 0x0;
Int_t nPadX = 5;
Int_t nPadY = 5;
Int_t ipad = 0;
Int_t ican = 0;
for ( Int_t ibin=2; ibin<=nPbins; ++ibin ) {
currName = Form("hMean%s_%s_%s", dcaName[ihisto].Data(), physSel.Data(), trigClassName.Data());
Int_t minBin = ( ibin == 0 ) ? 1 : ibin;
Int_t maxBin = ( ibin == 0 ) ? nPbins : ibin;
if ( ibin > 0 ) currName += Form("_pBin%i", ibin);
TH1* projHisto = histo->ProjectionY(currName.Data(), minBin, maxBin, "e");
projHisto->SetTitle(Form("%s %s %g < p < %g (GeV/c)", dcaName[ihisto].Data(), fThetaAbsKeys->At(itheta)->GetName(), meanDcaVsP->GetXaxis()->GetBinLowEdge(minBin), meanDcaVsP->GetXaxis()->GetBinUpEdge(maxBin)));
if ( projHisto->GetEntries() == 0 ) continue;
if ( ipad % (nPadX*nPadY) == 0 ) {
currName = histo->GetName();
currName += Form("Fit_can_%i", ican++);
meanDcaFitCan = new TCanvas(currName.Data(), currName.Data(),igroup1*xshift,igroup2*yshift,600,600);
meanDcaFitCan->Divide(nPadX,nPadY);
ipad = 0;
}
meanDcaFitCan->cd(++ipad);
gPad->SetLogy();
if ( projHisto->Integral() > 50 ) {
fitFuncMeanDca->SetParameter(0, projHisto->Integral());
fitFuncMeanDca->SetParameter(1, projHisto->GetMean());
fitFuncMeanDca->SetParameter(2, projHisto->GetRMS());
Double_t fitDcaLim = ( ibin == 0 ) ? 40. : 40./((Double_t)ibin);
fitDcaLim = TMath::Max(5., fitDcaLim);
projHisto->Fit(fitFuncMeanDca, "RQ", "e", -fitDcaLim, fitDcaLim);
Double_t chi2 = fitFuncMeanDca->GetChisquare();
Double_t ndf = fitFuncMeanDca->GetNDF();
if ( ndf <= 0.) continue;
if ( chi2 / ndf > 100. ) continue;
Double_t meanDca = fitFuncMeanDca->GetParameter(1);
Double_t meanDcaErr = fitFuncMeanDca->GetParError(1);
meanDcaVsP->SetBinContent(ibin, meanDca);
meanDcaVsP->SetBinError(ibin, meanDcaErr);
}
else projHisto->Draw("e");
}
can->cd(2*itheta+ihisto+1);
meanDcaVsP->Fit("pol0","Q");
TF1* trendFit = (TF1*)meanDcaVsP->GetListOfFunctions()->FindObject("pol0");
if ( trendFit ) {
averageDca[2*itheta+ihisto] = trendFit->GetParameter(0);
printf(" %s: mean %s = %g +- %g (chi2/%i = %g)\n", fThetaAbsKeys->At(itheta)->GetName(), dcaName[ihisto].Data(), trendFit->GetParameter(0), trendFit->GetParError(0), trendFit->GetNDF(), trendFit->GetChisquare()/((Double_t)trendFit->GetNDF()));
}
}
}
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
printf("muonCuts->SetMeanDCA(%g, %g, 0.); // %s\n", averageDca[2*itheta], averageDca[2*itheta+1], fThetaAbsKeys->At(itheta)->GetName());
}
Double_t nSigmaCut = fMuonTrackCuts->GetMuonTrackCutsParam().GetNSigmaPdca();
Double_t sigmaMeasCut[2] = { fMuonTrackCuts->GetMuonTrackCutsParam().GetSigmaPdca23(), fMuonTrackCuts->GetMuonTrackCutsParam().GetSigmaPdca310()};
Double_t relPResolution = fMuonTrackCuts->GetMuonTrackCutsParam().GetRelPResolution();
Double_t angleResolution = 535.*fMuonTrackCuts->GetMuonTrackCutsParam().GetSlopeResolution();
Double_t pMinCut = 0.1;
Double_t pMaxCut = 800.;
const Int_t kNCutFuncs = 2;
Int_t nShowFuncs = 1;
TString cutFormula = "[1]*TMath::Sqrt( ( [0] / ( 1. - [1]*[2]*x / ( 1.+[1]*[2]*x ) ) ) * ( [0] / ( 1. - [1]*[2]*x / ( 1.+[1]*[2]*x ) ) ) + [3]*[3]*x*x)";
Double_t cutParam[kNCutFuncs][4] = {{sigmaMeasCut[0], nSigmaCut, relPResolution, angleResolution}, {sigmaMeasCut[0], nSigmaCut, 0., 0.32}};
Int_t cutColor[kNCutFuncs] = {kBlack, kRed};
igroup1++;
igroup2 = 0;
can = new TCanvas("pdcaSigmaFit","Sigma vs P fit",igroup1*xshift,igroup2*yshift,600,600);
can->Divide(2,1);
igroup2++;
TF1* fitFunc = new TF1("fitFunc", "x*gausn", 0., 400.);
fitFunc->SetParNames("Norm", "Mean", "Sigma");
gStyle->SetOptFit(1111);
Double_t xMinFit[2] = {0., 0.};
Double_t xMaxFit[2] = {260., 150.};
printf("\nSigma p x DCA:\n");
Double_t averageSigmaPdca[kNtrackSources*kNthetaAbs] = {0.};
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
TLegend* leg = new TLegend(0.7, 0.7, 0.9, 0.9);
leg->SetBorderSize(1);
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
histoPattern = GetHistoName(kPdcaVsP, itheta, isrc);
TH2* histo = (TH2*)GetSum(physSel, trigClassName, centralityRange, histoPattern);
if ( ! histo ) continue;
if ( histo->Integral() < 200 ) {
delete histo;
continue;
}
TH1* sigmaVsP = histo->ProjectionX(Form("sigma%s_%s_%s", fHistoTypeKeys->At(kPdcaVsP)->GetName(), fThetaAbsKeys->At(itheta)->GetName(), fSrcKeys->At(isrc)->GetName()));
sigmaVsP->Reset();
sigmaVsP->SetTitle(Form("#sigma_{p#timesDCA} vs. p %s %s", fThetaAbsKeys->At(itheta)->GetName(), fSrcKeys->At(isrc)->GetName()));
sigmaVsP->SetYTitle("#sigma_{p#timesDCA} (cm #times GeV/c)");
sigmaVsP->SetStats(kFALSE);
Int_t nPbins = histo->GetXaxis()->GetNbins();
TCanvas* pdcaFitCan = 0x0;
Int_t nPadX = 5;
Int_t nPadY = 5;
Int_t ipad = 0;
Int_t ican = 0;
for ( Int_t ibin=2; ibin<=nPbins; ++ibin ) {
currName = Form("hPDCA_%s_%s_%s_%s", fSrcKeys->At(isrc)->GetName(), physSel.Data(), trigClassName.Data(), fThetaAbsKeys->At(itheta)->GetName());
Int_t minBin = ( ibin == 0 ) ? 1 : ibin;
Int_t maxBin = ( ibin == 0 ) ? nPbins : ibin;
if ( ibin > 0 ) currName += Form("_pBin%i", ibin);
TH1* projHisto = histo->ProjectionY(currName.Data(), minBin, maxBin, "e");
if ( projHisto->GetEntries() == 0 ) continue;
projHisto->SetTitle(Form("P DCA %s %s %g < p < %g (GeV/c)", fThetaAbsKeys->At(itheta)->GetName(), fSrcKeys->At(isrc)->GetName(), sigmaVsP->GetXaxis()->GetBinLowEdge(minBin), sigmaVsP->GetXaxis()->GetBinUpEdge(maxBin)));
if ( ipad % (nPadX*nPadY) == 0 ) {
currName = histo->GetName();
currName += Form("Fit_can_%i", ican++);
pdcaFitCan = new TCanvas(currName.Data(), currName.Data(),igroup1*xshift,igroup2*yshift,600,600);
pdcaFitCan->Divide(nPadX,nPadY);
ipad = 0;
}
pdcaFitCan->cd(++ipad);
if ( projHisto->Integral() > 0.) projHisto->Scale(1./projHisto->Integral());
gPad->SetLogy();
if ( projHisto->GetEntries() > 50 ) {
fitFunc->SetParameter(0, projHisto->Integral());
fitFunc->SetParameter(1, projHisto->GetMean());
fitFunc->SetParameter(2, projHisto->GetRMS());
projHisto->Fit(fitFunc, "RQ", "e", xMinFit[itheta], xMaxFit[itheta]);
Double_t chi2 = fitFunc->GetChisquare();
Double_t ndf = fitFunc->GetNDF();
if ( ndf <= 0.) continue;
if ( chi2 / ndf > 100. ) continue;
Double_t sigma = TMath::Abs(fitFunc->GetParameter(2));
Double_t sigmaErr = fitFunc->GetParError(2);
sigmaVsP->SetBinContent(ibin, sigma);
sigmaVsP->SetBinError(ibin, sigmaErr);
}
else projHisto->Draw("e");
}
can->cd(itheta+1);
sigmaVsP->SetLineColor(srcColors[isrc]);
sigmaVsP->SetMarkerColor(srcColors[isrc]);
sigmaVsP->SetMarkerStyle(20+isrc);
drawOpt = "e";
if ( gPad->GetListOfPrimitives()->GetEntries() != 0 ) drawOpt += "same";
sigmaVsP->Draw(drawOpt.Data());
sigmaVsP->Fit("pol0","Q",drawOpt.Data());
TF1* trendFit = (TF1*)sigmaVsP->GetListOfFunctions()->FindObject("pol0");
if ( trendFit ) {
averageSigmaPdca[kNtrackSources*itheta+isrc] = trendFit->GetParameter(0);
printf(" %s %s: Sigma = %g +- %g (chi2/%i = %g)\n", fThetaAbsKeys->At(itheta)->GetName(), fSrcKeys->At(isrc)->GetName(), trendFit->GetParameter(0), trendFit->GetParError(0), trendFit->GetNDF(), trendFit->GetChisquare()/((Double_t)trendFit->GetNDF()));
}
leg->AddEntry(sigmaVsP, fSrcKeys->At(isrc)->GetName(), "lp");
}
can->cd(itheta+1);
leg->Draw("same");
for ( Int_t icut=0; icut<nShowFuncs; ++icut ) {
currName = Form("sigmaCut_%s_%i", fThetaAbsKeys->At(itheta)->GetName(), icut);
TF1* cutFunction = new TF1(currName.Data(), cutFormula.Data(), pMinCut, pMaxCut);
cutParam[icut][0] = sigmaMeasCut[itheta];
cutParam[icut][1] = 1.;
cutFunction->SetParameters(cutParam[icut]);
cutFunction->SetLineColor(cutColor[icut]);
cutFunction->SetLineWidth(2);
cutFunction->Draw("same");
}
}
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
printf("muonCuts->SetSigmaPdca(%g, %g); // %s\n", averageSigmaPdca[isrc], averageSigmaPdca[kNtrackSources+isrc], fSrcKeys->At(isrc)->GetName());
}
printf("\n");
igroup2++;
for ( Int_t icheck=0; icheck<2; icheck++ ) {
Int_t hDraw = ( icheck == 0 ) ? kPDCAVsPCheck : kDCAVsPCheck;
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
histoPattern = GetHistoName(hDraw, itheta, isrc);
TH2* histoCheck = (TH2*)GetSum(physSel, trigClassName, centralityRange, histoPattern);
if ( ! histoCheck ) continue;
currName = histoCheck->GetName();
currName.Append("_plotCut");
TCanvas* pdcaVsPcan = new TCanvas(currName.Data(), currName.Data(), igroup1*xshift,(igroup2+icheck)*yshift,600,600);
pdcaVsPcan->SetRightMargin(0.12);
pdcaVsPcan->SetLogy();
pdcaVsPcan->SetLogz();
histoCheck->Draw("COLZ");
for ( Int_t icut=0; icut<nShowFuncs; ++icut ) {
currName = histoCheck->GetName();
currName.Append(Form("_cutFunc%i",icut));
TString currFormula = cutFormula;
if ( icheck == 1 ) currFormula.Append("/x");
TF1* cutFunction = new TF1(currName.Data(),currFormula.Data(), pMinCut, pMaxCut);
cutParam[icut][0] = sigmaMeasCut[itheta];
cutParam[icut][1] = nSigmaCut;
cutFunction->SetParameters(cutParam[icut]);
cutFunction->SetLineWidth(2);
cutFunction->SetLineColor(cutColor[icut]);
cutFunction->Draw("same");
}
}
}
}
igroup1++;
igroup2 = 0;
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
histoPattern = GetHistoName(kChiProbVsP, itheta, isrc);
TH2* histo = (TH2*)GetSum(physSel, trigClassName, centralityRange, histoPattern);
if ( ! histo ) continue;
Int_t nPbins = histo->GetXaxis()->GetNbins();
TCanvas* chi2probCan = 0x0;
Int_t nPadX = 5;
Int_t nPadY = 5;
Int_t ipad = 0;
Int_t ican = 0;
for ( Int_t ibin=0; ibin<=nPbins; ++ibin ) {
currName = Form("hChiProb_%s_%s_%s_%s", fSrcKeys->At(isrc)->GetName(), physSel.Data(), trigClassName.Data(), fThetaAbsKeys->At(itheta)->GetName());
Int_t minBin = ( ibin == 0 ) ? 1 : ibin;
Int_t maxBin = ( ibin == 0 ) ? nPbins : ibin;
if ( ibin > 0 ) currName += Form("_pBin%i", ibin);
TH1* projHisto = histo->ProjectionY(currName.Data(), minBin, maxBin);
projHisto->SetTitle(Form("Chisquare prob %s %s %g < p < %g (GeV/c)", fThetaAbsKeys->At(itheta)->GetName(), fSrcKeys->At(isrc)->GetName(), histo->GetXaxis()->GetBinLowEdge(minBin), histo->GetXaxis()->GetBinUpEdge(maxBin)));
if ( projHisto->GetEntries() == 0 ) continue;
if ( ipad % (nPadX*nPadY) == 0 ) {
currName = histo->GetName();
currName += Form("Fit_can_%i", ican++);
chi2probCan = new TCanvas(currName.Data(), currName.Data(),igroup1*xshift,igroup2*yshift,600,600);
chi2probCan->Divide(nPadX,nPadY);
ipad = 0;
}
chi2probCan->cd(++ipad);
gPad->SetLogy();
projHisto->Draw("e");
}
}
}
printf("\nReference sigma cut %g\n", refSigmaCut);
Float_t fracOfHeight = 0.35;
Float_t rightMargin = 0.03;
Int_t cutColors[14] = {kBlack, kRed, kBlue, kGreen, kCyan, kMagenta, kOrange, kViolet, kSpring, kGray, kSpring, kAzure, kPink, kYellow};
TArrayI orderCuts;
Int_t checkHistos[2] = {kSigmaVsPt, kSigmaVsEta};
Bool_t useCustomSigma = furtherOpt.Contains("CUSTOMSIGMA");
igroup1++;
igroup2 = 0;
for ( Int_t ihisto=0; ihisto<2; ++ihisto ) {
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
can = 0x0;
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
histoPattern = GetHistoName(checkHistos[ihisto], itheta, isrc);
TH2* histo = (TH2*)GetSum(physSel, trigClassName, centralityRange, histoPattern);
if ( ! histo ) continue;
if ( histo->Integral() == 0. ) {
delete histo;
continue;
}
if ( orderCuts.GetSize() == 0 ) {
TAxis* axis = histo->GetYaxis();
Int_t nSigmaCuts = ( useCustomSigma ) ? fSigmaCuts.GetSize() : axis->GetNbins();
orderCuts.Set(nSigmaCuts);
Int_t countBin = 0;
for ( Int_t isigma=0; isigma<axis->GetNbins(); ++isigma ) {
TString currLabel = axis->GetBinLabel(isigma+1);
Double_t currSigma = currLabel.Atof();
if ( useCustomSigma ) {
Bool_t foundMatch = kFALSE;
for ( Int_t jsigma=0; jsigma<fSigmaCuts.GetSize(); ++jsigma ) {
if ( TMath::Abs(currSigma - fSigmaCuts[jsigma]) < 1e-4 ) {
foundMatch = kTRUE;
break;
}
}
if ( ! foundMatch ) continue;
}
Int_t currBin = ( TMath::Abs(currSigma - refSigmaCut) < 1e-4) ? 0 : ++countBin;
orderCuts[currBin] = isigma+1;
}
}
currName = histo->GetName();
currName.Append("_can");
can = new TCanvas(currName.Data(), currName.Data(), igroup1*xshift,igroup2*yshift, 600, 600);
TLegend* leg = new TLegend(0.6,0.6,0.9,0.9);
leg->SetBorderSize(1);
can->Divide(1,2,0,0);
can->cd(1);
gPad->SetPad(0., fracOfHeight, 0.99, 0.99);
gPad->SetTopMargin(0.03);
gPad->SetRightMargin(rightMargin);
gPad->SetLogy();
can->cd(2);
gPad->SetPad(0., 0., 0.99, fracOfHeight);
gPad->SetRightMargin(rightMargin);
gPad->SetBottomMargin(0.08/fracOfHeight);
TH1* refCutHisto = 0x0;
TString legTitle = "";
for ( Int_t isigma=0; isigma<orderCuts.GetSize(); ++isigma ) {
currName = histo->GetName();
currName.Append(Form("_sigma%i", isigma));
Int_t currBin = orderCuts[isigma];
TH1* projectHisto = histo->ProjectionX(currName.Data(), currBin, currBin);
projectHisto->SetLineColor(cutColors[isigma]);
projectHisto->SetMarkerColor(cutColors[isigma]);
projectHisto->SetMarkerStyle(20+isigma);
projectHisto->SetStats(kFALSE);
projectHisto->SetTitle("");
can->cd(1);
drawOpt = "e";
if ( gPad->GetListOfPrimitives()->GetEntries() != 0 ) drawOpt += "same";
projectHisto->Draw(drawOpt.Data());
TString currLabel = histo->GetYaxis()->GetBinLabel(currBin);
TString cutName = ( TMath::Abs(currLabel.Atof() ) > 1000. ) ? "Total" : Form("%s #sigma cut", currLabel.Data());
leg->AddEntry(projectHisto, cutName.Data(), "lp");
if ( ! refCutHisto ) {
refCutHisto = projectHisto;
legTitle = Form("(pass n #sigma) / (pass %s #sigma)", currLabel.Data());
continue;
}
currName.Append("_ratio");
TH1* histoRatio = (TH1*)projectHisto->Clone(currName.Data());
histoRatio->Sumw2();
TH1* auxNum = projectHisto;
TH1* auxDen = refCutHisto;
Bool_t mustInvert = kFALSE;
if ( auxNum->Integral()>auxDen->Integral() ) {
auxNum = refCutHisto;
auxDen = projectHisto;
mustInvert = kTRUE;
}
histoRatio->Divide(auxNum,auxDen,1.,1.,"B");
if ( mustInvert ) {
TH1* auxHistoOne = static_cast<TH1*>(histoRatio->Clone("auxHistoOne"));
for ( Int_t ibin=1; ibin<=auxHistoOne->GetXaxis()->GetNbins(); ibin++ ) {
auxHistoOne->SetBinContent(ibin,1.);
auxHistoOne->SetBinError(ibin,0.);
}
histoRatio->Divide(auxHistoOne,histoRatio);
delete auxHistoOne;
}
histoRatio->SetTitle("");
histoRatio->GetYaxis()->SetTitle(legTitle.Data());
histoRatio->GetXaxis()->SetLabelSize(0.04/fracOfHeight);
histoRatio->GetXaxis()->SetTitleSize(0.035/fracOfHeight);
histoRatio->GetYaxis()->SetLabelSize(0.03/fracOfHeight);
histoRatio->GetYaxis()->SetTitleSize(0.03/fracOfHeight);
histoRatio->GetXaxis()->SetTitleOffset(1.);
histoRatio->GetYaxis()->SetTitleOffset(0.6);
histoRatio->GetYaxis()->SetRangeUser(0.5,1.5);
can->cd(2);
drawOpt = "e";
if ( gPad->GetListOfPrimitives()->GetEntries() != 0 ) drawOpt += "same";
histoRatio->Draw(drawOpt.Data());
}
can->cd(1);
leg->Draw("same");
}
}
}
igroup1++;
igroup2=0;
Double_t ptMin[] = {0., 2., 4., 15., 60.};
Int_t nPtMins = sizeof(ptMin)/sizeof(ptMin[0]);
for ( Int_t iptmin=0; iptmin<nPtMins; ++iptmin) {
for ( Int_t isrc=0; isrc<kNtrackSources; ++isrc ) {
can = 0x0;
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
TLegend* leg = 0x0;
histoName = GetHistoName(kSigmaVsPt, itheta, isrc);
for ( Int_t icent=1; icent<=GetCentralityClasses()->GetNbins(); ++icent ) {
TH2* histo = (TH2*)GetSum(physSel, trigClassName, GetCentralityClasses()->GetBinLabel(icent), histoName);
if ( ! histo ) continue;
Int_t ptMinBin = histo->GetXaxis()->FindBin(ptMin[iptmin]);
Int_t ptMaxBin = histo->GetXaxis()->GetNbins()+1;
currName = histo->GetName();
currName += Form("_%s_ptMin%i", GetCentralityClasses()->GetBinLabel(icent), TMath::Nint(ptMin[iptmin]));
TH1* projectHisto = histo->ProjectionY(currName.Data(), ptMinBin, ptMaxBin);
if ( projectHisto->GetMaximum() < 50. ) {
delete projectHisto;
continue;
}
if ( ! can ) {
currName = Form("CutEffect_%s_ptMin%i", fSrcKeys->At(isrc)->GetName(), TMath::Nint(ptMin[iptmin]));
can = new TCanvas(currName.Data(), currName.Data(), igroup1*xshift,igroup2*yshift, 600, 600);
can->Divide(2,1);
}
if ( ! leg ) {
leg = new TLegend(0.6,0.6,0.9,0.9);
leg->SetBorderSize(1);
}
can->cd(itheta+1);
projectHisto->SetTitle(Form("Cut effect %s %s %g < p_{t} < %g (GeV/c)", fSrcKeys->At(isrc)->GetName(), fThetaAbsKeys->At(itheta)->GetName(), histo->GetXaxis()->GetBinLowEdge(ptMinBin), histo->GetXaxis()->GetBinUpEdge(ptMaxBin)));
projectHisto->SetLineColor(cutColors[icent-1]);
projectHisto->SetMarkerColor(cutColors[icent-1]);
projectHisto->SetMarkerStyle(19+icent);
projectHisto->SetStats(0);
drawOpt = "e";
if ( gPad->GetListOfPrimitives()->GetEntries() != 0 ) drawOpt += "same";
projectHisto->Draw(drawOpt.Data());
leg->AddEntry(projectHisto, GetCentralityClasses()->GetBinLabel(icent), "lp");
Double_t keptEvents = projectHisto->GetBinContent(orderCuts[0]);
Double_t totalEvents = projectHisto->GetBinContent(orderCuts[orderCuts.GetSize()-1]);
Double_t accepted = ( totalEvents > 0. ) ? keptEvents / totalEvents : 1.;
Double_t acceptedErr = ( totalEvents > 0. ) ? TMath::Sqrt(accepted*(1.-accepted)/totalEvents) : 1.;
printf("%12s %11s %6s (pt>%g) rejected evts : %6.2f +- %6.3f %%\n", fSrcKeys->At(isrc)->GetName(), fThetaAbsKeys->At(itheta)->GetName(), GetCentralityClasses()->GetBinLabel(icent), ptMin[iptmin], (1.-accepted)*100., acceptedErr*100.);
}
if ( leg ) leg->Draw("same");
}
}
}
}
AliAnalysisTaskMuonCuts.cxx:1 AliAnalysisTaskMuonCuts.cxx:2 AliAnalysisTaskMuonCuts.cxx:3 AliAnalysisTaskMuonCuts.cxx:4 AliAnalysisTaskMuonCuts.cxx:5 AliAnalysisTaskMuonCuts.cxx:6 AliAnalysisTaskMuonCuts.cxx:7 AliAnalysisTaskMuonCuts.cxx:8 AliAnalysisTaskMuonCuts.cxx:9 AliAnalysisTaskMuonCuts.cxx:10 AliAnalysisTaskMuonCuts.cxx:11 AliAnalysisTaskMuonCuts.cxx:12 AliAnalysisTaskMuonCuts.cxx:13 AliAnalysisTaskMuonCuts.cxx:14 AliAnalysisTaskMuonCuts.cxx:15 AliAnalysisTaskMuonCuts.cxx:16 AliAnalysisTaskMuonCuts.cxx:17 AliAnalysisTaskMuonCuts.cxx:18 AliAnalysisTaskMuonCuts.cxx:19 AliAnalysisTaskMuonCuts.cxx:20 AliAnalysisTaskMuonCuts.cxx:21 AliAnalysisTaskMuonCuts.cxx:22 AliAnalysisTaskMuonCuts.cxx:23 AliAnalysisTaskMuonCuts.cxx:24 AliAnalysisTaskMuonCuts.cxx:25 AliAnalysisTaskMuonCuts.cxx:26 AliAnalysisTaskMuonCuts.cxx:27 AliAnalysisTaskMuonCuts.cxx:28 AliAnalysisTaskMuonCuts.cxx:29 AliAnalysisTaskMuonCuts.cxx:30 AliAnalysisTaskMuonCuts.cxx:31 AliAnalysisTaskMuonCuts.cxx:32 AliAnalysisTaskMuonCuts.cxx:33 AliAnalysisTaskMuonCuts.cxx:34 AliAnalysisTaskMuonCuts.cxx:35 AliAnalysisTaskMuonCuts.cxx:36 AliAnalysisTaskMuonCuts.cxx:37 AliAnalysisTaskMuonCuts.cxx:38 AliAnalysisTaskMuonCuts.cxx:39 AliAnalysisTaskMuonCuts.cxx:40 AliAnalysisTaskMuonCuts.cxx:41 AliAnalysisTaskMuonCuts.cxx:42 AliAnalysisTaskMuonCuts.cxx:43 AliAnalysisTaskMuonCuts.cxx:44 AliAnalysisTaskMuonCuts.cxx:45 AliAnalysisTaskMuonCuts.cxx:46 AliAnalysisTaskMuonCuts.cxx:47 AliAnalysisTaskMuonCuts.cxx:48 AliAnalysisTaskMuonCuts.cxx:49 AliAnalysisTaskMuonCuts.cxx:50 AliAnalysisTaskMuonCuts.cxx:51 AliAnalysisTaskMuonCuts.cxx:52 AliAnalysisTaskMuonCuts.cxx:53 AliAnalysisTaskMuonCuts.cxx:54 AliAnalysisTaskMuonCuts.cxx:55 AliAnalysisTaskMuonCuts.cxx:56 AliAnalysisTaskMuonCuts.cxx:57 AliAnalysisTaskMuonCuts.cxx:58 AliAnalysisTaskMuonCuts.cxx:59 AliAnalysisTaskMuonCuts.cxx:60 AliAnalysisTaskMuonCuts.cxx:61 AliAnalysisTaskMuonCuts.cxx:62 AliAnalysisTaskMuonCuts.cxx:63 AliAnalysisTaskMuonCuts.cxx:64 AliAnalysisTaskMuonCuts.cxx:65 AliAnalysisTaskMuonCuts.cxx:66 AliAnalysisTaskMuonCuts.cxx:67 AliAnalysisTaskMuonCuts.cxx:68 AliAnalysisTaskMuonCuts.cxx:69 AliAnalysisTaskMuonCuts.cxx:70 AliAnalysisTaskMuonCuts.cxx:71 AliAnalysisTaskMuonCuts.cxx:72 AliAnalysisTaskMuonCuts.cxx:73 AliAnalysisTaskMuonCuts.cxx:74 AliAnalysisTaskMuonCuts.cxx:75 AliAnalysisTaskMuonCuts.cxx:76 AliAnalysisTaskMuonCuts.cxx:77 AliAnalysisTaskMuonCuts.cxx:78 AliAnalysisTaskMuonCuts.cxx:79 AliAnalysisTaskMuonCuts.cxx:80 AliAnalysisTaskMuonCuts.cxx:81 AliAnalysisTaskMuonCuts.cxx:82 AliAnalysisTaskMuonCuts.cxx:83 AliAnalysisTaskMuonCuts.cxx:84 AliAnalysisTaskMuonCuts.cxx:85 AliAnalysisTaskMuonCuts.cxx:86 AliAnalysisTaskMuonCuts.cxx:87 AliAnalysisTaskMuonCuts.cxx:88 AliAnalysisTaskMuonCuts.cxx:89 AliAnalysisTaskMuonCuts.cxx:90 AliAnalysisTaskMuonCuts.cxx:91 AliAnalysisTaskMuonCuts.cxx:92 AliAnalysisTaskMuonCuts.cxx:93 AliAnalysisTaskMuonCuts.cxx:94 AliAnalysisTaskMuonCuts.cxx:95 AliAnalysisTaskMuonCuts.cxx:96 AliAnalysisTaskMuonCuts.cxx:97 AliAnalysisTaskMuonCuts.cxx:98 AliAnalysisTaskMuonCuts.cxx:99 AliAnalysisTaskMuonCuts.cxx:100 AliAnalysisTaskMuonCuts.cxx:101 AliAnalysisTaskMuonCuts.cxx:102 AliAnalysisTaskMuonCuts.cxx:103 AliAnalysisTaskMuonCuts.cxx:104 AliAnalysisTaskMuonCuts.cxx:105 AliAnalysisTaskMuonCuts.cxx:106 AliAnalysisTaskMuonCuts.cxx:107 AliAnalysisTaskMuonCuts.cxx:108 AliAnalysisTaskMuonCuts.cxx:109 AliAnalysisTaskMuonCuts.cxx:110 AliAnalysisTaskMuonCuts.cxx:111 AliAnalysisTaskMuonCuts.cxx:112 AliAnalysisTaskMuonCuts.cxx:113 AliAnalysisTaskMuonCuts.cxx:114 AliAnalysisTaskMuonCuts.cxx:115 AliAnalysisTaskMuonCuts.cxx:116 AliAnalysisTaskMuonCuts.cxx:117 AliAnalysisTaskMuonCuts.cxx:118 AliAnalysisTaskMuonCuts.cxx:119 AliAnalysisTaskMuonCuts.cxx:120 AliAnalysisTaskMuonCuts.cxx:121 AliAnalysisTaskMuonCuts.cxx:122 AliAnalysisTaskMuonCuts.cxx:123 AliAnalysisTaskMuonCuts.cxx:124 AliAnalysisTaskMuonCuts.cxx:125 AliAnalysisTaskMuonCuts.cxx:126 AliAnalysisTaskMuonCuts.cxx:127 AliAnalysisTaskMuonCuts.cxx:128 AliAnalysisTaskMuonCuts.cxx:129 AliAnalysisTaskMuonCuts.cxx:130 AliAnalysisTaskMuonCuts.cxx:131 AliAnalysisTaskMuonCuts.cxx:132 AliAnalysisTaskMuonCuts.cxx:133 AliAnalysisTaskMuonCuts.cxx:134 AliAnalysisTaskMuonCuts.cxx:135 AliAnalysisTaskMuonCuts.cxx:136 AliAnalysisTaskMuonCuts.cxx:137 AliAnalysisTaskMuonCuts.cxx:138 AliAnalysisTaskMuonCuts.cxx:139 AliAnalysisTaskMuonCuts.cxx:140 AliAnalysisTaskMuonCuts.cxx:141 AliAnalysisTaskMuonCuts.cxx:142 AliAnalysisTaskMuonCuts.cxx:143 AliAnalysisTaskMuonCuts.cxx:144 AliAnalysisTaskMuonCuts.cxx:145 AliAnalysisTaskMuonCuts.cxx:146 AliAnalysisTaskMuonCuts.cxx:147 AliAnalysisTaskMuonCuts.cxx:148 AliAnalysisTaskMuonCuts.cxx:149 AliAnalysisTaskMuonCuts.cxx:150 AliAnalysisTaskMuonCuts.cxx:151 AliAnalysisTaskMuonCuts.cxx:152 AliAnalysisTaskMuonCuts.cxx:153 AliAnalysisTaskMuonCuts.cxx:154 AliAnalysisTaskMuonCuts.cxx:155 AliAnalysisTaskMuonCuts.cxx:156 AliAnalysisTaskMuonCuts.cxx:157 AliAnalysisTaskMuonCuts.cxx:158 AliAnalysisTaskMuonCuts.cxx:159 AliAnalysisTaskMuonCuts.cxx:160 AliAnalysisTaskMuonCuts.cxx:161 AliAnalysisTaskMuonCuts.cxx:162 AliAnalysisTaskMuonCuts.cxx:163 AliAnalysisTaskMuonCuts.cxx:164 AliAnalysisTaskMuonCuts.cxx:165 AliAnalysisTaskMuonCuts.cxx:166 AliAnalysisTaskMuonCuts.cxx:167 AliAnalysisTaskMuonCuts.cxx:168 AliAnalysisTaskMuonCuts.cxx:169 AliAnalysisTaskMuonCuts.cxx:170 AliAnalysisTaskMuonCuts.cxx:171 AliAnalysisTaskMuonCuts.cxx:172 AliAnalysisTaskMuonCuts.cxx:173 AliAnalysisTaskMuonCuts.cxx:174 AliAnalysisTaskMuonCuts.cxx:175 AliAnalysisTaskMuonCuts.cxx:176 AliAnalysisTaskMuonCuts.cxx:177 AliAnalysisTaskMuonCuts.cxx:178 AliAnalysisTaskMuonCuts.cxx:179 AliAnalysisTaskMuonCuts.cxx:180 AliAnalysisTaskMuonCuts.cxx:181 AliAnalysisTaskMuonCuts.cxx:182 AliAnalysisTaskMuonCuts.cxx:183 AliAnalysisTaskMuonCuts.cxx:184 AliAnalysisTaskMuonCuts.cxx:185 AliAnalysisTaskMuonCuts.cxx:186 AliAnalysisTaskMuonCuts.cxx:187 AliAnalysisTaskMuonCuts.cxx:188 AliAnalysisTaskMuonCuts.cxx:189 AliAnalysisTaskMuonCuts.cxx:190 AliAnalysisTaskMuonCuts.cxx:191 AliAnalysisTaskMuonCuts.cxx:192 AliAnalysisTaskMuonCuts.cxx:193 AliAnalysisTaskMuonCuts.cxx:194 AliAnalysisTaskMuonCuts.cxx:195 AliAnalysisTaskMuonCuts.cxx:196 AliAnalysisTaskMuonCuts.cxx:197 AliAnalysisTaskMuonCuts.cxx:198 AliAnalysisTaskMuonCuts.cxx:199 AliAnalysisTaskMuonCuts.cxx:200 AliAnalysisTaskMuonCuts.cxx:201 AliAnalysisTaskMuonCuts.cxx:202 AliAnalysisTaskMuonCuts.cxx:203 AliAnalysisTaskMuonCuts.cxx:204 AliAnalysisTaskMuonCuts.cxx:205 AliAnalysisTaskMuonCuts.cxx:206 AliAnalysisTaskMuonCuts.cxx:207 AliAnalysisTaskMuonCuts.cxx:208 AliAnalysisTaskMuonCuts.cxx:209 AliAnalysisTaskMuonCuts.cxx:210 AliAnalysisTaskMuonCuts.cxx:211 AliAnalysisTaskMuonCuts.cxx:212 AliAnalysisTaskMuonCuts.cxx:213 AliAnalysisTaskMuonCuts.cxx:214 AliAnalysisTaskMuonCuts.cxx:215 AliAnalysisTaskMuonCuts.cxx:216 AliAnalysisTaskMuonCuts.cxx:217 AliAnalysisTaskMuonCuts.cxx:218 AliAnalysisTaskMuonCuts.cxx:219 AliAnalysisTaskMuonCuts.cxx:220 AliAnalysisTaskMuonCuts.cxx:221 AliAnalysisTaskMuonCuts.cxx:222 AliAnalysisTaskMuonCuts.cxx:223 AliAnalysisTaskMuonCuts.cxx:224 AliAnalysisTaskMuonCuts.cxx:225 AliAnalysisTaskMuonCuts.cxx:226 AliAnalysisTaskMuonCuts.cxx:227 AliAnalysisTaskMuonCuts.cxx:228 AliAnalysisTaskMuonCuts.cxx:229 AliAnalysisTaskMuonCuts.cxx:230 AliAnalysisTaskMuonCuts.cxx:231 AliAnalysisTaskMuonCuts.cxx:232 AliAnalysisTaskMuonCuts.cxx:233 AliAnalysisTaskMuonCuts.cxx:234 AliAnalysisTaskMuonCuts.cxx:235 AliAnalysisTaskMuonCuts.cxx:236 AliAnalysisTaskMuonCuts.cxx:237 AliAnalysisTaskMuonCuts.cxx:238 AliAnalysisTaskMuonCuts.cxx:239 AliAnalysisTaskMuonCuts.cxx:240 AliAnalysisTaskMuonCuts.cxx:241 AliAnalysisTaskMuonCuts.cxx:242 AliAnalysisTaskMuonCuts.cxx:243 AliAnalysisTaskMuonCuts.cxx:244 AliAnalysisTaskMuonCuts.cxx:245 AliAnalysisTaskMuonCuts.cxx:246 AliAnalysisTaskMuonCuts.cxx:247 AliAnalysisTaskMuonCuts.cxx:248 AliAnalysisTaskMuonCuts.cxx:249 AliAnalysisTaskMuonCuts.cxx:250 AliAnalysisTaskMuonCuts.cxx:251 AliAnalysisTaskMuonCuts.cxx:252 AliAnalysisTaskMuonCuts.cxx:253 AliAnalysisTaskMuonCuts.cxx:254 AliAnalysisTaskMuonCuts.cxx:255 AliAnalysisTaskMuonCuts.cxx:256 AliAnalysisTaskMuonCuts.cxx:257 AliAnalysisTaskMuonCuts.cxx:258 AliAnalysisTaskMuonCuts.cxx:259 AliAnalysisTaskMuonCuts.cxx:260 AliAnalysisTaskMuonCuts.cxx:261 AliAnalysisTaskMuonCuts.cxx:262 AliAnalysisTaskMuonCuts.cxx:263 AliAnalysisTaskMuonCuts.cxx:264 AliAnalysisTaskMuonCuts.cxx:265 AliAnalysisTaskMuonCuts.cxx:266 AliAnalysisTaskMuonCuts.cxx:267 AliAnalysisTaskMuonCuts.cxx:268 AliAnalysisTaskMuonCuts.cxx:269 AliAnalysisTaskMuonCuts.cxx:270 AliAnalysisTaskMuonCuts.cxx:271 AliAnalysisTaskMuonCuts.cxx:272 AliAnalysisTaskMuonCuts.cxx:273 AliAnalysisTaskMuonCuts.cxx:274 AliAnalysisTaskMuonCuts.cxx:275 AliAnalysisTaskMuonCuts.cxx:276 AliAnalysisTaskMuonCuts.cxx:277 AliAnalysisTaskMuonCuts.cxx:278 AliAnalysisTaskMuonCuts.cxx:279 AliAnalysisTaskMuonCuts.cxx:280 AliAnalysisTaskMuonCuts.cxx:281 AliAnalysisTaskMuonCuts.cxx:282 AliAnalysisTaskMuonCuts.cxx:283 AliAnalysisTaskMuonCuts.cxx:284 AliAnalysisTaskMuonCuts.cxx:285 AliAnalysisTaskMuonCuts.cxx:286 AliAnalysisTaskMuonCuts.cxx:287 AliAnalysisTaskMuonCuts.cxx:288 AliAnalysisTaskMuonCuts.cxx:289 AliAnalysisTaskMuonCuts.cxx:290 AliAnalysisTaskMuonCuts.cxx:291 AliAnalysisTaskMuonCuts.cxx:292 AliAnalysisTaskMuonCuts.cxx:293 AliAnalysisTaskMuonCuts.cxx:294 AliAnalysisTaskMuonCuts.cxx:295 AliAnalysisTaskMuonCuts.cxx:296 AliAnalysisTaskMuonCuts.cxx:297 AliAnalysisTaskMuonCuts.cxx:298 AliAnalysisTaskMuonCuts.cxx:299 AliAnalysisTaskMuonCuts.cxx:300 AliAnalysisTaskMuonCuts.cxx:301 AliAnalysisTaskMuonCuts.cxx:302 AliAnalysisTaskMuonCuts.cxx:303 AliAnalysisTaskMuonCuts.cxx:304 AliAnalysisTaskMuonCuts.cxx:305 AliAnalysisTaskMuonCuts.cxx:306 AliAnalysisTaskMuonCuts.cxx:307 AliAnalysisTaskMuonCuts.cxx:308 AliAnalysisTaskMuonCuts.cxx:309 AliAnalysisTaskMuonCuts.cxx:310 AliAnalysisTaskMuonCuts.cxx:311 AliAnalysisTaskMuonCuts.cxx:312 AliAnalysisTaskMuonCuts.cxx:313 AliAnalysisTaskMuonCuts.cxx:314 AliAnalysisTaskMuonCuts.cxx:315 AliAnalysisTaskMuonCuts.cxx:316 AliAnalysisTaskMuonCuts.cxx:317 AliAnalysisTaskMuonCuts.cxx:318 AliAnalysisTaskMuonCuts.cxx:319 AliAnalysisTaskMuonCuts.cxx:320 AliAnalysisTaskMuonCuts.cxx:321 AliAnalysisTaskMuonCuts.cxx:322 AliAnalysisTaskMuonCuts.cxx:323 AliAnalysisTaskMuonCuts.cxx:324 AliAnalysisTaskMuonCuts.cxx:325 AliAnalysisTaskMuonCuts.cxx:326 AliAnalysisTaskMuonCuts.cxx:327 AliAnalysisTaskMuonCuts.cxx:328 AliAnalysisTaskMuonCuts.cxx:329 AliAnalysisTaskMuonCuts.cxx:330 AliAnalysisTaskMuonCuts.cxx:331 AliAnalysisTaskMuonCuts.cxx:332 AliAnalysisTaskMuonCuts.cxx:333 AliAnalysisTaskMuonCuts.cxx:334 AliAnalysisTaskMuonCuts.cxx:335 AliAnalysisTaskMuonCuts.cxx:336 AliAnalysisTaskMuonCuts.cxx:337 AliAnalysisTaskMuonCuts.cxx:338 AliAnalysisTaskMuonCuts.cxx:339 AliAnalysisTaskMuonCuts.cxx:340 AliAnalysisTaskMuonCuts.cxx:341 AliAnalysisTaskMuonCuts.cxx:342 AliAnalysisTaskMuonCuts.cxx:343 AliAnalysisTaskMuonCuts.cxx:344 AliAnalysisTaskMuonCuts.cxx:345 AliAnalysisTaskMuonCuts.cxx:346 AliAnalysisTaskMuonCuts.cxx:347 AliAnalysisTaskMuonCuts.cxx:348 AliAnalysisTaskMuonCuts.cxx:349 AliAnalysisTaskMuonCuts.cxx:350 AliAnalysisTaskMuonCuts.cxx:351 AliAnalysisTaskMuonCuts.cxx:352 AliAnalysisTaskMuonCuts.cxx:353 AliAnalysisTaskMuonCuts.cxx:354 AliAnalysisTaskMuonCuts.cxx:355 AliAnalysisTaskMuonCuts.cxx:356 AliAnalysisTaskMuonCuts.cxx:357 AliAnalysisTaskMuonCuts.cxx:358 AliAnalysisTaskMuonCuts.cxx:359 AliAnalysisTaskMuonCuts.cxx:360 AliAnalysisTaskMuonCuts.cxx:361 AliAnalysisTaskMuonCuts.cxx:362 AliAnalysisTaskMuonCuts.cxx:363 AliAnalysisTaskMuonCuts.cxx:364 AliAnalysisTaskMuonCuts.cxx:365 AliAnalysisTaskMuonCuts.cxx:366 AliAnalysisTaskMuonCuts.cxx:367 AliAnalysisTaskMuonCuts.cxx:368 AliAnalysisTaskMuonCuts.cxx:369 AliAnalysisTaskMuonCuts.cxx:370 AliAnalysisTaskMuonCuts.cxx:371 AliAnalysisTaskMuonCuts.cxx:372 AliAnalysisTaskMuonCuts.cxx:373 AliAnalysisTaskMuonCuts.cxx:374 AliAnalysisTaskMuonCuts.cxx:375 AliAnalysisTaskMuonCuts.cxx:376 AliAnalysisTaskMuonCuts.cxx:377 AliAnalysisTaskMuonCuts.cxx:378 AliAnalysisTaskMuonCuts.cxx:379 AliAnalysisTaskMuonCuts.cxx:380 AliAnalysisTaskMuonCuts.cxx:381 AliAnalysisTaskMuonCuts.cxx:382 AliAnalysisTaskMuonCuts.cxx:383 AliAnalysisTaskMuonCuts.cxx:384 AliAnalysisTaskMuonCuts.cxx:385 AliAnalysisTaskMuonCuts.cxx:386 AliAnalysisTaskMuonCuts.cxx:387 AliAnalysisTaskMuonCuts.cxx:388 AliAnalysisTaskMuonCuts.cxx:389 AliAnalysisTaskMuonCuts.cxx:390 AliAnalysisTaskMuonCuts.cxx:391 AliAnalysisTaskMuonCuts.cxx:392 AliAnalysisTaskMuonCuts.cxx:393 AliAnalysisTaskMuonCuts.cxx:394 AliAnalysisTaskMuonCuts.cxx:395 AliAnalysisTaskMuonCuts.cxx:396 AliAnalysisTaskMuonCuts.cxx:397 AliAnalysisTaskMuonCuts.cxx:398 AliAnalysisTaskMuonCuts.cxx:399 AliAnalysisTaskMuonCuts.cxx:400 AliAnalysisTaskMuonCuts.cxx:401 AliAnalysisTaskMuonCuts.cxx:402 AliAnalysisTaskMuonCuts.cxx:403 AliAnalysisTaskMuonCuts.cxx:404 AliAnalysisTaskMuonCuts.cxx:405 AliAnalysisTaskMuonCuts.cxx:406 AliAnalysisTaskMuonCuts.cxx:407 AliAnalysisTaskMuonCuts.cxx:408 AliAnalysisTaskMuonCuts.cxx:409 AliAnalysisTaskMuonCuts.cxx:410 AliAnalysisTaskMuonCuts.cxx:411 AliAnalysisTaskMuonCuts.cxx:412 AliAnalysisTaskMuonCuts.cxx:413 AliAnalysisTaskMuonCuts.cxx:414 AliAnalysisTaskMuonCuts.cxx:415 AliAnalysisTaskMuonCuts.cxx:416 AliAnalysisTaskMuonCuts.cxx:417 AliAnalysisTaskMuonCuts.cxx:418 AliAnalysisTaskMuonCuts.cxx:419 AliAnalysisTaskMuonCuts.cxx:420 AliAnalysisTaskMuonCuts.cxx:421 AliAnalysisTaskMuonCuts.cxx:422 AliAnalysisTaskMuonCuts.cxx:423 AliAnalysisTaskMuonCuts.cxx:424 AliAnalysisTaskMuonCuts.cxx:425 AliAnalysisTaskMuonCuts.cxx:426 AliAnalysisTaskMuonCuts.cxx:427 AliAnalysisTaskMuonCuts.cxx:428 AliAnalysisTaskMuonCuts.cxx:429 AliAnalysisTaskMuonCuts.cxx:430 AliAnalysisTaskMuonCuts.cxx:431 AliAnalysisTaskMuonCuts.cxx:432 AliAnalysisTaskMuonCuts.cxx:433 AliAnalysisTaskMuonCuts.cxx:434 AliAnalysisTaskMuonCuts.cxx:435 AliAnalysisTaskMuonCuts.cxx:436 AliAnalysisTaskMuonCuts.cxx:437 AliAnalysisTaskMuonCuts.cxx:438 AliAnalysisTaskMuonCuts.cxx:439 AliAnalysisTaskMuonCuts.cxx:440 AliAnalysisTaskMuonCuts.cxx:441 AliAnalysisTaskMuonCuts.cxx:442 AliAnalysisTaskMuonCuts.cxx:443 AliAnalysisTaskMuonCuts.cxx:444 AliAnalysisTaskMuonCuts.cxx:445 AliAnalysisTaskMuonCuts.cxx:446 AliAnalysisTaskMuonCuts.cxx:447 AliAnalysisTaskMuonCuts.cxx:448 AliAnalysisTaskMuonCuts.cxx:449 AliAnalysisTaskMuonCuts.cxx:450 AliAnalysisTaskMuonCuts.cxx:451 AliAnalysisTaskMuonCuts.cxx:452 AliAnalysisTaskMuonCuts.cxx:453 AliAnalysisTaskMuonCuts.cxx:454 AliAnalysisTaskMuonCuts.cxx:455 AliAnalysisTaskMuonCuts.cxx:456 AliAnalysisTaskMuonCuts.cxx:457 AliAnalysisTaskMuonCuts.cxx:458 AliAnalysisTaskMuonCuts.cxx:459 AliAnalysisTaskMuonCuts.cxx:460 AliAnalysisTaskMuonCuts.cxx:461 AliAnalysisTaskMuonCuts.cxx:462 AliAnalysisTaskMuonCuts.cxx:463 AliAnalysisTaskMuonCuts.cxx:464 AliAnalysisTaskMuonCuts.cxx:465 AliAnalysisTaskMuonCuts.cxx:466 AliAnalysisTaskMuonCuts.cxx:467 AliAnalysisTaskMuonCuts.cxx:468 AliAnalysisTaskMuonCuts.cxx:469 AliAnalysisTaskMuonCuts.cxx:470 AliAnalysisTaskMuonCuts.cxx:471 AliAnalysisTaskMuonCuts.cxx:472 AliAnalysisTaskMuonCuts.cxx:473 AliAnalysisTaskMuonCuts.cxx:474 AliAnalysisTaskMuonCuts.cxx:475 AliAnalysisTaskMuonCuts.cxx:476 AliAnalysisTaskMuonCuts.cxx:477 AliAnalysisTaskMuonCuts.cxx:478 AliAnalysisTaskMuonCuts.cxx:479 AliAnalysisTaskMuonCuts.cxx:480 AliAnalysisTaskMuonCuts.cxx:481 AliAnalysisTaskMuonCuts.cxx:482 AliAnalysisTaskMuonCuts.cxx:483 AliAnalysisTaskMuonCuts.cxx:484 AliAnalysisTaskMuonCuts.cxx:485 AliAnalysisTaskMuonCuts.cxx:486 AliAnalysisTaskMuonCuts.cxx:487 AliAnalysisTaskMuonCuts.cxx:488 AliAnalysisTaskMuonCuts.cxx:489 AliAnalysisTaskMuonCuts.cxx:490 AliAnalysisTaskMuonCuts.cxx:491 AliAnalysisTaskMuonCuts.cxx:492 AliAnalysisTaskMuonCuts.cxx:493 AliAnalysisTaskMuonCuts.cxx:494 AliAnalysisTaskMuonCuts.cxx:495 AliAnalysisTaskMuonCuts.cxx:496 AliAnalysisTaskMuonCuts.cxx:497 AliAnalysisTaskMuonCuts.cxx:498 AliAnalysisTaskMuonCuts.cxx:499 AliAnalysisTaskMuonCuts.cxx:500 AliAnalysisTaskMuonCuts.cxx:501 AliAnalysisTaskMuonCuts.cxx:502 AliAnalysisTaskMuonCuts.cxx:503 AliAnalysisTaskMuonCuts.cxx:504 AliAnalysisTaskMuonCuts.cxx:505 AliAnalysisTaskMuonCuts.cxx:506 AliAnalysisTaskMuonCuts.cxx:507 AliAnalysisTaskMuonCuts.cxx:508 AliAnalysisTaskMuonCuts.cxx:509 AliAnalysisTaskMuonCuts.cxx:510 AliAnalysisTaskMuonCuts.cxx:511 AliAnalysisTaskMuonCuts.cxx:512 AliAnalysisTaskMuonCuts.cxx:513 AliAnalysisTaskMuonCuts.cxx:514 AliAnalysisTaskMuonCuts.cxx:515 AliAnalysisTaskMuonCuts.cxx:516 AliAnalysisTaskMuonCuts.cxx:517 AliAnalysisTaskMuonCuts.cxx:518 AliAnalysisTaskMuonCuts.cxx:519 AliAnalysisTaskMuonCuts.cxx:520 AliAnalysisTaskMuonCuts.cxx:521 AliAnalysisTaskMuonCuts.cxx:522 AliAnalysisTaskMuonCuts.cxx:523 AliAnalysisTaskMuonCuts.cxx:524 AliAnalysisTaskMuonCuts.cxx:525 AliAnalysisTaskMuonCuts.cxx:526 AliAnalysisTaskMuonCuts.cxx:527 AliAnalysisTaskMuonCuts.cxx:528 AliAnalysisTaskMuonCuts.cxx:529 AliAnalysisTaskMuonCuts.cxx:530 AliAnalysisTaskMuonCuts.cxx:531 AliAnalysisTaskMuonCuts.cxx:532 AliAnalysisTaskMuonCuts.cxx:533 AliAnalysisTaskMuonCuts.cxx:534 AliAnalysisTaskMuonCuts.cxx:535 AliAnalysisTaskMuonCuts.cxx:536 AliAnalysisTaskMuonCuts.cxx:537 AliAnalysisTaskMuonCuts.cxx:538 AliAnalysisTaskMuonCuts.cxx:539 AliAnalysisTaskMuonCuts.cxx:540 AliAnalysisTaskMuonCuts.cxx:541 AliAnalysisTaskMuonCuts.cxx:542 AliAnalysisTaskMuonCuts.cxx:543 AliAnalysisTaskMuonCuts.cxx:544 AliAnalysisTaskMuonCuts.cxx:545 AliAnalysisTaskMuonCuts.cxx:546 AliAnalysisTaskMuonCuts.cxx:547 AliAnalysisTaskMuonCuts.cxx:548 AliAnalysisTaskMuonCuts.cxx:549 AliAnalysisTaskMuonCuts.cxx:550 AliAnalysisTaskMuonCuts.cxx:551 AliAnalysisTaskMuonCuts.cxx:552 AliAnalysisTaskMuonCuts.cxx:553 AliAnalysisTaskMuonCuts.cxx:554 AliAnalysisTaskMuonCuts.cxx:555 AliAnalysisTaskMuonCuts.cxx:556 AliAnalysisTaskMuonCuts.cxx:557 AliAnalysisTaskMuonCuts.cxx:558 AliAnalysisTaskMuonCuts.cxx:559 AliAnalysisTaskMuonCuts.cxx:560 AliAnalysisTaskMuonCuts.cxx:561 AliAnalysisTaskMuonCuts.cxx:562 AliAnalysisTaskMuonCuts.cxx:563 AliAnalysisTaskMuonCuts.cxx:564 AliAnalysisTaskMuonCuts.cxx:565 AliAnalysisTaskMuonCuts.cxx:566 AliAnalysisTaskMuonCuts.cxx:567 AliAnalysisTaskMuonCuts.cxx:568 AliAnalysisTaskMuonCuts.cxx:569 AliAnalysisTaskMuonCuts.cxx:570 AliAnalysisTaskMuonCuts.cxx:571 AliAnalysisTaskMuonCuts.cxx:572 AliAnalysisTaskMuonCuts.cxx:573 AliAnalysisTaskMuonCuts.cxx:574 AliAnalysisTaskMuonCuts.cxx:575 AliAnalysisTaskMuonCuts.cxx:576 AliAnalysisTaskMuonCuts.cxx:577 AliAnalysisTaskMuonCuts.cxx:578 AliAnalysisTaskMuonCuts.cxx:579 AliAnalysisTaskMuonCuts.cxx:580 AliAnalysisTaskMuonCuts.cxx:581 AliAnalysisTaskMuonCuts.cxx:582 AliAnalysisTaskMuonCuts.cxx:583 AliAnalysisTaskMuonCuts.cxx:584 AliAnalysisTaskMuonCuts.cxx:585 AliAnalysisTaskMuonCuts.cxx:586 AliAnalysisTaskMuonCuts.cxx:587 AliAnalysisTaskMuonCuts.cxx:588 AliAnalysisTaskMuonCuts.cxx:589 AliAnalysisTaskMuonCuts.cxx:590 AliAnalysisTaskMuonCuts.cxx:591 AliAnalysisTaskMuonCuts.cxx:592 AliAnalysisTaskMuonCuts.cxx:593 AliAnalysisTaskMuonCuts.cxx:594 AliAnalysisTaskMuonCuts.cxx:595 AliAnalysisTaskMuonCuts.cxx:596 AliAnalysisTaskMuonCuts.cxx:597 AliAnalysisTaskMuonCuts.cxx:598 AliAnalysisTaskMuonCuts.cxx:599 AliAnalysisTaskMuonCuts.cxx:600 AliAnalysisTaskMuonCuts.cxx:601 AliAnalysisTaskMuonCuts.cxx:602 AliAnalysisTaskMuonCuts.cxx:603 AliAnalysisTaskMuonCuts.cxx:604 AliAnalysisTaskMuonCuts.cxx:605 AliAnalysisTaskMuonCuts.cxx:606 AliAnalysisTaskMuonCuts.cxx:607 AliAnalysisTaskMuonCuts.cxx:608 AliAnalysisTaskMuonCuts.cxx:609 AliAnalysisTaskMuonCuts.cxx:610 AliAnalysisTaskMuonCuts.cxx:611 AliAnalysisTaskMuonCuts.cxx:612 AliAnalysisTaskMuonCuts.cxx:613 AliAnalysisTaskMuonCuts.cxx:614 AliAnalysisTaskMuonCuts.cxx:615 AliAnalysisTaskMuonCuts.cxx:616 AliAnalysisTaskMuonCuts.cxx:617 AliAnalysisTaskMuonCuts.cxx:618 AliAnalysisTaskMuonCuts.cxx:619 AliAnalysisTaskMuonCuts.cxx:620 AliAnalysisTaskMuonCuts.cxx:621 AliAnalysisTaskMuonCuts.cxx:622 AliAnalysisTaskMuonCuts.cxx:623 AliAnalysisTaskMuonCuts.cxx:624 AliAnalysisTaskMuonCuts.cxx:625 AliAnalysisTaskMuonCuts.cxx:626 AliAnalysisTaskMuonCuts.cxx:627 AliAnalysisTaskMuonCuts.cxx:628 AliAnalysisTaskMuonCuts.cxx:629 AliAnalysisTaskMuonCuts.cxx:630 AliAnalysisTaskMuonCuts.cxx:631 AliAnalysisTaskMuonCuts.cxx:632 AliAnalysisTaskMuonCuts.cxx:633 AliAnalysisTaskMuonCuts.cxx:634 AliAnalysisTaskMuonCuts.cxx:635 AliAnalysisTaskMuonCuts.cxx:636 AliAnalysisTaskMuonCuts.cxx:637 AliAnalysisTaskMuonCuts.cxx:638 AliAnalysisTaskMuonCuts.cxx:639 AliAnalysisTaskMuonCuts.cxx:640 AliAnalysisTaskMuonCuts.cxx:641 AliAnalysisTaskMuonCuts.cxx:642 AliAnalysisTaskMuonCuts.cxx:643 AliAnalysisTaskMuonCuts.cxx:644 AliAnalysisTaskMuonCuts.cxx:645 AliAnalysisTaskMuonCuts.cxx:646 AliAnalysisTaskMuonCuts.cxx:647 AliAnalysisTaskMuonCuts.cxx:648 AliAnalysisTaskMuonCuts.cxx:649 AliAnalysisTaskMuonCuts.cxx:650 AliAnalysisTaskMuonCuts.cxx:651 AliAnalysisTaskMuonCuts.cxx:652 AliAnalysisTaskMuonCuts.cxx:653 AliAnalysisTaskMuonCuts.cxx:654 AliAnalysisTaskMuonCuts.cxx:655 AliAnalysisTaskMuonCuts.cxx:656 AliAnalysisTaskMuonCuts.cxx:657 AliAnalysisTaskMuonCuts.cxx:658 AliAnalysisTaskMuonCuts.cxx:659 AliAnalysisTaskMuonCuts.cxx:660 AliAnalysisTaskMuonCuts.cxx:661 AliAnalysisTaskMuonCuts.cxx:662 AliAnalysisTaskMuonCuts.cxx:663 AliAnalysisTaskMuonCuts.cxx:664 AliAnalysisTaskMuonCuts.cxx:665 AliAnalysisTaskMuonCuts.cxx:666 AliAnalysisTaskMuonCuts.cxx:667 AliAnalysisTaskMuonCuts.cxx:668 AliAnalysisTaskMuonCuts.cxx:669 AliAnalysisTaskMuonCuts.cxx:670 AliAnalysisTaskMuonCuts.cxx:671 AliAnalysisTaskMuonCuts.cxx:672 AliAnalysisTaskMuonCuts.cxx:673 AliAnalysisTaskMuonCuts.cxx:674 AliAnalysisTaskMuonCuts.cxx:675 AliAnalysisTaskMuonCuts.cxx:676 AliAnalysisTaskMuonCuts.cxx:677 AliAnalysisTaskMuonCuts.cxx:678 AliAnalysisTaskMuonCuts.cxx:679 AliAnalysisTaskMuonCuts.cxx:680 AliAnalysisTaskMuonCuts.cxx:681 AliAnalysisTaskMuonCuts.cxx:682 AliAnalysisTaskMuonCuts.cxx:683 AliAnalysisTaskMuonCuts.cxx:684 AliAnalysisTaskMuonCuts.cxx:685 AliAnalysisTaskMuonCuts.cxx:686 AliAnalysisTaskMuonCuts.cxx:687 AliAnalysisTaskMuonCuts.cxx:688 AliAnalysisTaskMuonCuts.cxx:689 AliAnalysisTaskMuonCuts.cxx:690 AliAnalysisTaskMuonCuts.cxx:691 AliAnalysisTaskMuonCuts.cxx:692 AliAnalysisTaskMuonCuts.cxx:693 AliAnalysisTaskMuonCuts.cxx:694 AliAnalysisTaskMuonCuts.cxx:695 AliAnalysisTaskMuonCuts.cxx:696 AliAnalysisTaskMuonCuts.cxx:697 AliAnalysisTaskMuonCuts.cxx:698 AliAnalysisTaskMuonCuts.cxx:699 AliAnalysisTaskMuonCuts.cxx:700 AliAnalysisTaskMuonCuts.cxx:701 AliAnalysisTaskMuonCuts.cxx:702 AliAnalysisTaskMuonCuts.cxx:703 AliAnalysisTaskMuonCuts.cxx:704 AliAnalysisTaskMuonCuts.cxx:705 AliAnalysisTaskMuonCuts.cxx:706 AliAnalysisTaskMuonCuts.cxx:707 AliAnalysisTaskMuonCuts.cxx:708 AliAnalysisTaskMuonCuts.cxx:709 AliAnalysisTaskMuonCuts.cxx:710 AliAnalysisTaskMuonCuts.cxx:711 AliAnalysisTaskMuonCuts.cxx:712 AliAnalysisTaskMuonCuts.cxx:713 AliAnalysisTaskMuonCuts.cxx:714 AliAnalysisTaskMuonCuts.cxx:715 AliAnalysisTaskMuonCuts.cxx:716 AliAnalysisTaskMuonCuts.cxx:717 AliAnalysisTaskMuonCuts.cxx:718 AliAnalysisTaskMuonCuts.cxx:719 AliAnalysisTaskMuonCuts.cxx:720 AliAnalysisTaskMuonCuts.cxx:721 AliAnalysisTaskMuonCuts.cxx:722 AliAnalysisTaskMuonCuts.cxx:723 AliAnalysisTaskMuonCuts.cxx:724 AliAnalysisTaskMuonCuts.cxx:725 AliAnalysisTaskMuonCuts.cxx:726 AliAnalysisTaskMuonCuts.cxx:727 AliAnalysisTaskMuonCuts.cxx:728 AliAnalysisTaskMuonCuts.cxx:729 AliAnalysisTaskMuonCuts.cxx:730 AliAnalysisTaskMuonCuts.cxx:731 AliAnalysisTaskMuonCuts.cxx:732 AliAnalysisTaskMuonCuts.cxx:733 AliAnalysisTaskMuonCuts.cxx:734 AliAnalysisTaskMuonCuts.cxx:735 AliAnalysisTaskMuonCuts.cxx:736 AliAnalysisTaskMuonCuts.cxx:737 AliAnalysisTaskMuonCuts.cxx:738 AliAnalysisTaskMuonCuts.cxx:739 AliAnalysisTaskMuonCuts.cxx:740 AliAnalysisTaskMuonCuts.cxx:741 AliAnalysisTaskMuonCuts.cxx:742 AliAnalysisTaskMuonCuts.cxx:743 AliAnalysisTaskMuonCuts.cxx:744 AliAnalysisTaskMuonCuts.cxx:745 AliAnalysisTaskMuonCuts.cxx:746 AliAnalysisTaskMuonCuts.cxx:747 AliAnalysisTaskMuonCuts.cxx:748 AliAnalysisTaskMuonCuts.cxx:749 AliAnalysisTaskMuonCuts.cxx:750 AliAnalysisTaskMuonCuts.cxx:751 AliAnalysisTaskMuonCuts.cxx:752 AliAnalysisTaskMuonCuts.cxx:753 AliAnalysisTaskMuonCuts.cxx:754 AliAnalysisTaskMuonCuts.cxx:755 AliAnalysisTaskMuonCuts.cxx:756 AliAnalysisTaskMuonCuts.cxx:757 AliAnalysisTaskMuonCuts.cxx:758 AliAnalysisTaskMuonCuts.cxx:759 AliAnalysisTaskMuonCuts.cxx:760 AliAnalysisTaskMuonCuts.cxx:761 AliAnalysisTaskMuonCuts.cxx:762 AliAnalysisTaskMuonCuts.cxx:763 AliAnalysisTaskMuonCuts.cxx:764 AliAnalysisTaskMuonCuts.cxx:765 AliAnalysisTaskMuonCuts.cxx:766 AliAnalysisTaskMuonCuts.cxx:767 AliAnalysisTaskMuonCuts.cxx:768 AliAnalysisTaskMuonCuts.cxx:769 AliAnalysisTaskMuonCuts.cxx:770 AliAnalysisTaskMuonCuts.cxx:771 AliAnalysisTaskMuonCuts.cxx:772 AliAnalysisTaskMuonCuts.cxx:773 AliAnalysisTaskMuonCuts.cxx:774 AliAnalysisTaskMuonCuts.cxx:775 AliAnalysisTaskMuonCuts.cxx:776 AliAnalysisTaskMuonCuts.cxx:777 AliAnalysisTaskMuonCuts.cxx:778 AliAnalysisTaskMuonCuts.cxx:779 AliAnalysisTaskMuonCuts.cxx:780 AliAnalysisTaskMuonCuts.cxx:781 AliAnalysisTaskMuonCuts.cxx:782 AliAnalysisTaskMuonCuts.cxx:783 AliAnalysisTaskMuonCuts.cxx:784 AliAnalysisTaskMuonCuts.cxx:785 AliAnalysisTaskMuonCuts.cxx:786 AliAnalysisTaskMuonCuts.cxx:787 AliAnalysisTaskMuonCuts.cxx:788 AliAnalysisTaskMuonCuts.cxx:789 AliAnalysisTaskMuonCuts.cxx:790 AliAnalysisTaskMuonCuts.cxx:791 AliAnalysisTaskMuonCuts.cxx:792 AliAnalysisTaskMuonCuts.cxx:793 AliAnalysisTaskMuonCuts.cxx:794 AliAnalysisTaskMuonCuts.cxx:795 AliAnalysisTaskMuonCuts.cxx:796 AliAnalysisTaskMuonCuts.cxx:797 AliAnalysisTaskMuonCuts.cxx:798 AliAnalysisTaskMuonCuts.cxx:799 AliAnalysisTaskMuonCuts.cxx:800 AliAnalysisTaskMuonCuts.cxx:801 AliAnalysisTaskMuonCuts.cxx:802 AliAnalysisTaskMuonCuts.cxx:803 AliAnalysisTaskMuonCuts.cxx:804 AliAnalysisTaskMuonCuts.cxx:805 AliAnalysisTaskMuonCuts.cxx:806 AliAnalysisTaskMuonCuts.cxx:807 AliAnalysisTaskMuonCuts.cxx:808 AliAnalysisTaskMuonCuts.cxx:809 AliAnalysisTaskMuonCuts.cxx:810 AliAnalysisTaskMuonCuts.cxx:811