#define AliAnalysisTaskSingleMu_cxx
#include "AliAnalysisTaskSingleMu.h"
#include "TROOT.h"
#include "TH1.h"
#include "TH2.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 "TArrayD.h"
#include "TPaveStats.h"
#include "TFitResultPtr.h"
#include "TFile.h"
#include "THashList.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODMCParticle.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliVHeader.h"
#include "AliAODMCHeader.h"
#include "AliStack.h"
#include "AliAnalysisManager.h"
#include "AliCFContainer.h"
#include "AliCFGridSparse.h"
#include "AliCFEffGrid.h"
#include "AliVAnalysisMuon.h"
#include "AliMergeableCollection.h"
#include "AliCounterCollection.h"
#include "AliMuonEventCuts.h"
#include "AliMuonTrackCuts.h"
#include "AliAnalysisMuonUtility.h"
ClassImp(AliAnalysisTaskSingleMu)
AliAnalysisTaskSingleMu::AliAnalysisTaskSingleMu() :
AliVAnalysisMuon(),
fThetaAbsKeys(0x0),
fCutOnDimu(kFALSE)
{
}
AliAnalysisTaskSingleMu::AliAnalysisTaskSingleMu(const char *name, const AliMuonTrackCuts& cuts) :
AliVAnalysisMuon(name, cuts),
fThetaAbsKeys(0x0),
fCutOnDimu(kFALSE)
{
TString thetaAbsKeys = "ThetaAbs23 ThetaAbs310";
fThetaAbsKeys = thetaAbsKeys.Tokenize(" ");
}
AliAnalysisTaskSingleMu::~AliAnalysisTaskSingleMu()
{
delete fThetaAbsKeys;
}
void AliAnalysisTaskSingleMu::MyUserCreateOutputObjects()
{
TH1* histo = 0x0;
TString histoName = "", histoTitle = "";
Int_t nVzBins = 40;
Double_t vzMin = -20., vzMax = 20.;
TString vzName("Vz"), vzTitle("Vz"), vzUnits("cm");
histoName = "hIpVtx";
histo = new TH1F(histoName.Data(), histoName.Data(), nVzBins, vzMin, vzMax);
histo->SetXTitle("v_{z} (cm)");
AddObjectToCollection(histo, kIPVz);
Int_t nPtBins = 80;
Double_t ptMin = 0., ptMax = 80.;
TString ptName("Pt"), ptTitle("p_{T}"), ptUnits("GeV/c");
Int_t nEtaBins = 25;
Double_t etaMin = -4.5, etaMax = -2.;
TString etaName("Eta"), etaTitle("#eta"), etaUnits("");
Int_t nPhiBins = 36;
Double_t phiMin = 0.; Double_t phiMax = 2.*TMath::Pi();
TString phiName("Phi"), phiTitle("#phi"), phiUnits("rad");
Int_t nChargeBins = 2;
Double_t chargeMin = -2, chargeMax = 2.;
TString chargeName("Charge"), chargeTitle("charge"), chargeUnits("e");
Int_t nThetaAbsEndBins = 2;
Double_t thetaAbsEndMin = -0.5, thetaAbsEndMax = 1.5;
TString thetaAbsEndName("ThetaAbsEnd"), thetaAbsEndTitle("#theta_{abs}"), thetaAbsEndUnits("a.u.");
Int_t nMotherTypeBins = kNtrackSources;
Double_t motherTypeMin = -0.5, motherTypeMax = (Double_t)kNtrackSources - 0.5;
TString motherType("MotherType"), motherTypeTitle("motherType"), motherTypeUnits("");
Int_t nbins[kNvars] = {nPtBins, nEtaBins, nPhiBins, nVzBins, nChargeBins, nThetaAbsEndBins, nMotherTypeBins};
Double_t xmin[kNvars] = {ptMin, etaMin, phiMin, vzMin, chargeMin, thetaAbsEndMin, motherTypeMin};
Double_t xmax[kNvars] = {ptMax, etaMax, phiMax, vzMax, chargeMax, thetaAbsEndMax, motherTypeMax};
TString axisTitle[kNvars] = {ptTitle, etaTitle, phiTitle, vzTitle, chargeTitle, thetaAbsEndTitle, motherTypeTitle};
TString axisUnits[kNvars] = {ptUnits, etaUnits, phiUnits, vzUnits, chargeUnits, thetaAbsEndUnits, motherTypeUnits};
AliCFContainer* cfContainer = new AliCFContainer("SingleMuContainer","Container for tracks",kNsteps,kNvars,nbins);
for ( Int_t idim = 0; idim<kNvars; idim++){
histoTitle = Form("%s (%s)", axisTitle[idim].Data(), axisUnits[idim].Data());
histoTitle.ReplaceAll("()","");
cfContainer->SetVarTitle(idim, histoTitle.Data());
cfContainer->SetBinLimits(idim, xmin[idim], xmax[idim]);
}
TString stepTitle[kNsteps] = {"reconstructed", "generated"};
TAxis* currAxis = 0x0;
for (Int_t istep=0; istep<kNsteps; istep++){
cfContainer->SetStepTitle(istep, stepTitle[istep].Data());
AliCFGridSparse* gridSparse = cfContainer->GetGrid(istep);
currAxis = gridSparse->GetAxis(kHvarMotherType);
for ( Int_t ibin=0; ibin<fSrcKeys->GetEntries(); ibin++ ) {
currAxis->SetBinLabel(ibin+1, fSrcKeys->At(ibin)->GetName());
}
}
AddObjectToCollection(cfContainer, kTrackContainer);
histoName = "hRecoDimu";
TH2* histoDimu = new TH2F(histoName.Data(), histoName.Data(), 24, 0., 120., 30, 0., 150.);
histoDimu->SetXTitle("min. p_{T}^{#mu} (GeV/c)");
histoDimu->SetYTitle("M_{#mu#mu} (GeV/c^{2})");
AddObjectToCollection(histoDimu, kNobjectTypes);
histoName = "hGeneratedZ";
TH2* histoGenZ = static_cast<TH2*>(histoDimu->Clone(histoName.Data()));
histoGenZ->SetTitle(histoName.Data());
AddObjectToCollection(histoGenZ, kNobjectTypes+1);
histoName = "hZmuEtaCorr";
histoDimu = new TH2F(histoName.Data(), histoName.Data(), 160, -8., 8., 160, -8., 8.);
histoDimu->SetXTitle("#eta_{#mu-}");
histoDimu->SetYTitle("#eta_{#mu+}");
AddObjectToCollection(histoDimu, kNobjectTypes+2);
fMuonTrackCuts->Print("mask");
AliInfo(Form("Apply cut on dimuon (60<M_mumu<120 GeV/c^2) to reject Z contribution: %i", fCutOnDimu));
}
void AliAnalysisTaskSingleMu::ProcessEvent(TString physSel, const TObjArray& selectTrigClasses, TString centrality)
{
Double_t ipVz = AliAnalysisMuonUtility::GetVertexSPD(InputEvent())->GetZ();
Double_t ipVzMC = MCEvent() ? AliAnalysisMuonUtility::GetMCVertexZ(InputEvent(),MCEvent()) : 0.;
for ( Int_t itrig=0; itrig<selectTrigClasses.GetEntries(); ++itrig ) {
TString trigClassName = ((TObjString*)selectTrigClasses.At(itrig))->GetString();
((TH1*)GetMergeableObject(physSel, trigClassName, centrality, "hIpVtx"))->Fill(ipVz);
}
Double_t containerInput[kNvars];
AliVParticle* track = 0x0;
Int_t nSteps = MCEvent() ? 2 : 1;
for ( Int_t istep = 0; istep<nSteps; ++istep ) {
Int_t nTracks = ( istep == kStepReconstructed ) ? AliAnalysisMuonUtility::GetNTracks(InputEvent()) : MCEvent()->GetNumberOfTracks();
TObjArray selectedTracks(nTracks);
TArrayI trackSources(nTracks);
TArrayD trackWgt(nTracks);
trackWgt.Reset(1.);
for (Int_t itrack = 0; itrack < nTracks; itrack++) {
track = ( istep == kStepReconstructed ) ? AliAnalysisMuonUtility::GetTrack(itrack,InputEvent()) : MCEvent()->GetTrack(itrack);
Bool_t isSelected = ( istep == kStepReconstructed ) ? fMuonTrackCuts->IsSelected(track) : ( TMath::Abs(track->PdgCode()) == 13 && AliAnalysisMuonUtility::GetStatusCode(track) != 21 );
if ( ! isSelected ) continue;
selectedTracks.AddAt(track,itrack);
trackSources[itrack] = GetParticleType(track);
TObject* wgtObj = GetWeight(fSrcKeys->At(trackSources[itrack])->GetName());
if ( wgtObj ) {
AliVParticle* mcTrack = ( istep == kStepReconstructed ) ? MCEvent()->GetTrack(track->GetLabel()) : track;
if ( wgtObj->IsA() == TF1::Class() ) trackWgt[itrack] = static_cast<TF1*>(wgtObj)->Eval(mcTrack->Pt());
else if ( wgtObj->IsA()->InheritsFrom(TH1::Class()) ) {
TH1* wgtHisto = static_cast<TH1*>(wgtObj);
trackWgt[itrack] = wgtHisto->GetBinContent(wgtHisto->GetXaxis()->FindBin(mcTrack->Pt()));
}
AliDebug(3,Form("Apply weights %s: pt %g gen pt %g weight %g",wgtObj->GetName(),track->Pt(),mcTrack->Pt(),trackWgt[itrack]));
}
}
TArrayI rejectTrack(nTracks);
for ( Int_t itrack=0; itrack<nTracks; itrack++) {
track = static_cast<AliVParticle*>(selectedTracks.At(itrack));
if ( ! track ) continue;
for ( Int_t jtrack=itrack+1; jtrack<nTracks; jtrack++ ) {
AliVParticle* auxTrack = static_cast<AliVParticle*>(selectedTracks.At(jtrack));
if ( ! auxTrack ) continue;
if ( track->Charge() * auxTrack->Charge() >= 0 ) continue;
TLorentzVector dimuPair = AliAnalysisMuonUtility::GetTrackPair(track,auxTrack);
Double_t ptMin = TMath::Min(track->Pt(),auxTrack->Pt());
Double_t invMass = dimuPair.M();
if ( fCutOnDimu && invMass > 60. && invMass < 120. ) {
rejectTrack[itrack] = 1;
rejectTrack[jtrack] = 1;
}
Double_t dimuWgt = trackWgt[itrack] * trackWgt[jtrack];
if ( istep == kStepReconstructed ) {
for ( Int_t itrig=0; itrig<selectTrigClasses.GetEntries(); ++itrig ) {
TString trigClassName = ((TObjString*)selectTrigClasses.At(itrig))->GetString();
if ( ! fMuonTrackCuts->TrackPtCutMatchTrigClass(track, fMuonEventCuts->GetTrigClassPtCutLevel(trigClassName)) || ! fMuonTrackCuts->TrackPtCutMatchTrigClass(auxTrack, fMuonEventCuts->GetTrigClassPtCutLevel(trigClassName)) ) continue;
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, "hRecoDimu"))->Fill(ptMin,invMass,dimuWgt);
}
}
else {
if ( trackSources[itrack] == kZbosonMu && trackSources[jtrack] == kZbosonMu ) {
Bool_t isAccepted = kTRUE;
AliVParticle* muDaughter[2] = {0x0, 0x0};
for ( Int_t imu=0; imu<2; imu++ ) {
AliVParticle* currPart = ( imu == 0 ) ? track : auxTrack;
if ( currPart->Charge() < 0. ) muDaughter[0] = currPart;
else muDaughter[1] = currPart;
if ( currPart->Eta() < -4.5 || currPart->Eta() > -2. ) {
isAccepted = kFALSE;
}
}
Double_t pairRapidity = dimuPair.Rapidity();
if ( pairRapidity < -4. || pairRapidity > -2.5 ) isAccepted = kFALSE;
for ( Int_t itrig=0; itrig<selectTrigClasses.GetEntries(); ++itrig ) {
TString trigClassName = ((TObjString*)selectTrigClasses.At(itrig))->GetString();
if ( isAccepted ) ((TH2*)GetMergeableObject(physSel, trigClassName, centrality, "hGeneratedZ"))->Fill(ptMin,invMass,dimuWgt);
((TH2*)GetMergeableObject(physSel, trigClassName, centrality, "hZmuEtaCorr"))->Fill(muDaughter[0]->Eta(),muDaughter[1]->Eta(),dimuWgt);
}
}
}
}
if ( rejectTrack[itrack] > 0 ) continue;
Double_t thetaAbsEndDeg = 0;
if ( istep == kStepReconstructed ) {
thetaAbsEndDeg = AliAnalysisMuonUtility::GetThetaAbsDeg(track);
}
else {
thetaAbsEndDeg = ( TMath::Pi()-track->Theta() ) * TMath::RadToDeg();
}
Int_t thetaAbsBin = ( thetaAbsEndDeg < 3. ) ? kThetaAbs23 : kThetaAbs310;
containerInput[kHvarPt] = track->Pt();
containerInput[kHvarEta] = track->Eta();
containerInput[kHvarPhi] = track->Phi();
containerInput[kHvarVz] = ( istep == kStepReconstructed ) ? ipVz : ipVzMC;
containerInput[kHvarCharge] = track->Charge()/3.;
containerInput[kHvarThetaAbs] = (Double_t)thetaAbsBin;
containerInput[kHvarMotherType] = (Double_t)trackSources[itrack];
for ( Int_t itrig=0; itrig<selectTrigClasses.GetEntries(); ++itrig ) {
TString trigClassName = ((TObjString*)selectTrigClasses.At(itrig))->GetString();
if ( istep == kStepReconstructed && ! fMuonTrackCuts->TrackPtCutMatchTrigClass(track, fMuonEventCuts->GetTrigClassPtCutLevel(trigClassName)) ) continue;
((AliCFContainer*)GetMergeableObject(physSel, trigClassName, centrality, "SingleMuContainer"))->Fill(containerInput,istep,trackWgt[itrack]);
}
}
}
}
void AliAnalysisTaskSingleMu::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();
TString minBiasTrig = "";
TObjArray* optArr = furtherOpt.Tokenize(" ");
TString currName = "";
for ( Int_t iopt=0; iopt<optArr->GetEntries(); iopt++ ) {
currName = optArr->At(iopt)->GetName();
if ( currName.Contains("-B-") || currName.Contains("ANY") ) minBiasTrig = currName;
}
delete optArr;
furtherOpt.ToUpper();
Bool_t plotChargeAsymmetry = furtherOpt.Contains("ASYM");
AliCFContainer* inContainer = static_cast<AliCFContainer*> ( GetSum(physSel,trigClassName,centralityRange,"SingleMuContainer") );
if ( ! inContainer ) return;
AliCFContainer* cfContainer = inContainer;
if ( ! furtherOpt.Contains("GENINTRIGCLASS") && trigClassName != "ANY" ) {
AliCFContainer* fullMCcontainer = static_cast<AliCFContainer*> ( GetSum(physSel,"ANY",centralityRange,"SingleMuContainer") );
if ( fullMCcontainer ) {
cfContainer = static_cast<AliCFContainer*>(cfContainer->Clone("SingleMuContainerCombo"));
cfContainer->SetGrid(kStepGeneratedMC,fullMCcontainer->GetGrid(kStepGeneratedMC));
}
}
AliCFEffGrid* effSparse = new AliCFEffGrid(Form("eff%s", cfContainer->GetName()),Form("Efficiency %s", cfContainer->GetTitle()),*cfContainer);
effSparse->CalculateEfficiency(kStepReconstructed, kStepGeneratedMC);
AliCFGridSparse* gridSparseArray[3] = {effSparse->GetNum(), effSparse->GetDen(), effSparse};
TString gridSparseName[3] = {cfContainer->GetStepTitle(kStepReconstructed), cfContainer->GetStepTitle(kStepGeneratedMC), "Efficiency"};
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;
Bool_t isMC = furtherOpt.Contains("MC");
TAxis* srcAxis = gridSparseArray[0]->GetAxis(kHvarMotherType);
Int_t unIdBin = srcAxis->FindBin(fSrcKeys->At(kUnidentified)->GetName());
if ( unIdBin < 1 ) unIdBin = srcAxis->GetNbins();
Int_t firstSrcBin = ( isMC ) ? 1 : unIdBin;
Int_t lastSrcBin = ( isMC ) ? srcAxis->GetNbins() - 1 : unIdBin;
if ( ! isMC ) srcColors[unIdBin-1] = 1;
TString chargeNames[3] = {fChargeKeys->At(0)->GetName(), fChargeKeys->At(1)->GetName(), "Total"};
THashList histoList[3];
for ( Int_t icharge=0; icharge<3; icharge++ ) {
histoList[icharge].SetName(chargeNames[icharge].Data());
}
for ( Int_t isrc = firstSrcBin; isrc <= lastSrcBin; ++isrc ) {
for ( Int_t icharge=0; icharge<3; ++icharge ) {
Int_t icharge1 = ( icharge < 2 ) ? icharge : 0;
Int_t icharge2 = ( icharge < 2 ) ? icharge : 1;
for ( Int_t igrid=0; igrid<3; ++igrid ) {
if ( gridSparseArray[igrid]->GetEntries() == 0. ) break;
if ( gridSparseArray[igrid]->IsA() != AliCFEffGrid::Class() ) {
SetSparseRange(gridSparseArray[igrid], kHvarEta, "", -3.999, -2.501);
SetSparseRange(gridSparseArray[igrid], kHvarMotherType, "", isrc, isrc, "USEBIN");
SetSparseRange(gridSparseArray[igrid], kHvarCharge, "", icharge1+1, icharge2+1, "USEBIN");
}
TH1* histo = gridSparseArray[igrid]->Project(kHvarPt, kHvarEta);
histo->SetName(Form("hPtEta_%s_%s_%s", gridSparseName[igrid].Data(), srcAxis->GetBinLabel(isrc), chargeNames[icharge].Data()));
if ( histo->Integral() > 0 ) histoList[icharge].Add(histo);
for ( Int_t iproj=0; iproj<4; ++iproj ) {
histo = gridSparseArray[igrid]->Project(iproj);
histo->SetName(Form("proj%i_%s_%s_%s", iproj, gridSparseName[igrid].Data(), srcAxis->GetBinLabel(isrc), chargeNames[icharge].Data()));
if ( histo->Integral() > 0 ) histoList[icharge].Add(histo);
}
}
}
}
THashList histoListRatio;
TString basePlotName = plotChargeAsymmetry ? "ChargeAsymmetry" : "ChargeRatio";
histoListRatio.SetName(basePlotName.Data());
Int_t baseCharge = 1;
Int_t auxCharge = 1-baseCharge;
for ( Int_t ihisto=0; ihisto<histoList[baseCharge].GetEntries(); ihisto++ ) {
TObject* obj = histoList[baseCharge].At(ihisto);
TString histoName = obj->GetName();
if ( histoName.Contains(gridSparseName[2].Data()) ) continue;
TString searchName = histoName;
searchName.ReplaceAll(fChargeKeys->At(baseCharge)->GetName(), fChargeKeys->At(auxCharge)->GetName());
TH1* auxHisto = static_cast<TH1*> (histoList[auxCharge].FindObject(searchName.Data()));
if ( ! auxHisto ) continue;
histoName.ReplaceAll(fChargeKeys->At(baseCharge)->GetName(),basePlotName.Data());
TH1* histo = static_cast<TH1*> (obj->Clone(histoName.Data()));
if ( plotChargeAsymmetry ) {
histo->Add(auxHisto, -1.);
auxHisto->Add(auxHisto, histo, 2.);
}
histo->Divide(auxHisto);
TString axisTitle = plotChargeAsymmetry ? Form("(%s - %s) / (%s + %s)", fChargeKeys->At(1)->GetName(), fChargeKeys->At(0)->GetName(), fChargeKeys->At(1)->GetName(), fChargeKeys->At(0)->GetName()) : Form("%s / %s", fChargeKeys->At(1)->GetName(), fChargeKeys->At(0)->GetName());
axisTitle.ReplaceAll("MuPlus","#mu^{+}");
axisTitle.ReplaceAll("MuMinus","#mu^{-}");
histo->GetYaxis()->SetTitle(axisTitle.Data());
histo->SetStats(kFALSE);
histoListRatio.Add(histo);
}
TString histoName = "", drawOpt = "";
for ( Int_t itype=0; itype<3; itype++ ) {
THashList* currList = 0x0;
Int_t nCharges = 1;
if ( itype == 1 ) currList = &histoListRatio;
else if ( itype == 2 ) currList = &histoList[2];
else nCharges = 2;
for ( Int_t igrid=0; igrid<3; ++igrid ) {
igroup1 = igrid;
TCanvas* canKine = 0x0;
TLegend* legKine = 0x0;
for ( Int_t iproj=0; iproj<4; ++iproj ) {
for ( Int_t isrc = firstSrcBin; isrc <= lastSrcBin; ++isrc ) {
for ( Int_t icharge=0; icharge<nCharges; ++icharge ) {
if ( itype == 0 ) currList = &histoList[icharge];
histoName = Form("proj%i_%s_%s_%s", iproj, gridSparseName[igrid].Data(), srcAxis->GetBinLabel(isrc), currList->GetName());
TH1* histo = static_cast<TH1*>(currList->FindObject(histoName.Data()));
if ( ! histo ) continue;
if ( ! canKine ) {
igroup2 = itype;
igroup1 = igrid;
currName = Form("%s_%s_%s", GetName(), currList->GetName(), gridSparseName[igrid].Data());
canKine = new TCanvas(currName.Data(),currName.Data(),igroup1*xshift,igroup2*yshift,600,600);
canKine->Divide(2,2);
legKine = new TLegend(0.6, 0.6, 0.8, 0.8);
}
canKine->cd(iproj+1);
if ( itype != 1 ) {
if ( ( iproj == kHvarPt || iproj == kHvarVz ) && gridSparseArray[igrid]->IsA() != AliCFEffGrid::Class() ) gPad->SetLogy();
}
Bool_t isFirst = ( gPad->GetListOfPrimitives()->GetEntries() == 0 );
drawOpt = isFirst ? "e" : "esames";
histo->SetLineColor(srcColors[isrc-1]);
histo->SetMarkerColor(srcColors[isrc-1]);
histo->SetMarkerStyle(20+4*icharge);
histo->Draw(drawOpt.Data());
TPaveStats* paveStats = (TPaveStats*)histo->FindObject("stats");
if ( paveStats ) paveStats->SetTextColor(srcColors[isrc-1]);
if ( iproj == 0 ) {
TString legEntry = ( itype == 0 ) ? fChargeKeys->At(icharge)->GetName() : "";
if ( isMC ) legEntry += Form(" %s", srcAxis->GetBinLabel(isrc));
if ( ! legEntry.IsNull() ) legKine->AddEntry(histo,legEntry.Data(), "lp");
}
}
}
}
if ( legKine && legKine->GetNRows() > 0 ) {
canKine->cd(1);
legKine->Draw("same");
}
}
}
for ( Int_t igrid=0; igrid<3; igrid++ ) {
if ( gridSparseArray[igrid]->IsA() == AliCFEffGrid::Class() ) continue;
SetSparseRange(gridSparseArray[igrid], kHvarCharge, "", 1, gridSparseArray[igrid]->GetAxis(kHvarCharge)->GetNbins(), "USEBIN");
}
printf("\nTotal analyzed events:\n");
TString evtSel = Form("trigger:%s", trigClassName.Data());
fEventCounters->PrintSum(evtSel.Data());
printf("Physics selected analyzed events:\n");
evtSel = Form("trigger:%s/selected:yes", trigClassName.Data());
fEventCounters->PrintSum(evtSel.Data());
TString countPhysSel = "any";
if ( physSel.Contains(fPhysSelKeys->At(kPhysSelPass)->GetName()) ) countPhysSel = "yes";
else if ( physSel.Contains(fPhysSelKeys->At(kPhysSelReject)->GetName()) ) countPhysSel="no";
countPhysSel.Prepend("selected:");
printf("Analyzed events vs. centrality:\n");
evtSel = Form("trigger:%s/%s", trigClassName.Data(), countPhysSel.Data());
fEventCounters->Print("centrality",evtSel.Data(),kTRUE);
TString outFilename = Form("/tmp/out%s.root", GetName());
TFile* outFile = new TFile(outFilename.Data(),"RECREATE");
for ( Int_t icharge=0; icharge<3; icharge++ ) {
histoList[icharge].Write();
}
histoListRatio.Write();
outFile->Close();
printf("\nCreating file %s\n", outFilename.Data(
));
if ( ! furtherOpt.Contains("VERTEX") ) return;
igroup1++;
TH1* eventVertex = (TH1*)GetSum(physSel, minBiasTrig, centralityRange, "hIpVtx");
if ( ! eventVertex ) return;
Double_t minZ = -9.99, maxZ = 9.99;
Double_t meanZ = 0., sigmaZ = 4.;
Double_t nSigma = 2.;
TString fitOpt = "R0S";
Bool_t fixFitRange = kFALSE;
TString fitFormula = Form("[0]+[1]*(x+[2])");
if ( eventVertex->GetSumw2N() == 0 ) eventVertex->Sumw2();
Double_t eventVtxIntegral = eventVertex->Integral(0,eventVertex->GetNbinsX()+1);
printf("Event vertex integral %.0f\n\n", eventVtxIntegral);
if ( eventVtxIntegral <= 0. ) return;
eventVertex->Scale(1./eventVtxIntegral);
printf("\nFit MB vertex\n");
eventVertex->Fit("gaus",fitOpt.Data(),"",minZ,maxZ);
TF1* vtxFit = (TF1*)eventVertex->GetListOfFunctions()->FindObject("gaus");
currName = "vtxIntegrated";
can = new TCanvas(currName.Data(),currName.Data(),igroup1*xshift,igroup2*yshift,600,600);
can->SetLogy();
eventVertex->Draw();
vtxFit->Draw("same");
enum {kRecoHF, kRecoBkg, kInputHF, kInputDecay, kRecoAll, kNrecoHistos};
TString baseRecoName[kNrecoHistos] = {"RecoHF", "RecoBkg", "InputHF", "InputDecay", "RecoAll"};
TArrayI sumMothers[kNrecoHistos];
sumMothers[kRecoHF].Set(0);
sumMothers[kRecoBkg].Set(0);
sumMothers[kInputHF].Set(3);
sumMothers[kInputHF][0] = srcAxis->FindBin(fSrcKeys->At(kCharmMu)->GetName());
sumMothers[kInputHF][1] = srcAxis->FindBin(fSrcKeys->At(kBeautyMu)->GetName());
sumMothers[kInputHF][2] = srcAxis->FindBin(fSrcKeys->At(kQuarkoniumMu)->GetName());
sumMothers[kInputDecay].Set(1);
sumMothers[kInputDecay][0] = srcAxis->FindBin(fSrcKeys->At(kDecayMu)->GetName());
sumMothers[kRecoAll].Set(srcAxis->GetNbins());
for ( Int_t isrc=0; isrc<srcAxis->GetNbins(); ++isrc ) {
sumMothers[kRecoAll][isrc] = isrc+1;
}
meanZ = vtxFit->GetParameter(1);
sigmaZ = vtxFit->GetParameter(2);
Double_t minZfit = ( fixFitRange ) ? minZ : meanZ - nSigma*sigmaZ;
Double_t maxZfit = ( fixFitRange ) ? maxZ : meanZ + nSigma*sigmaZ;
TF1* fitFunc = new TF1("fitFunc", fitFormula.Data(), minZ, maxZ);
fitFunc->SetLineColor(2);
fitFunc->SetParNames("Line norm", "Line slope", "Free path");
const Double_t kFreePath = 153.;
fitFunc->FixParameter(2, kFreePath);
AliCFGridSparse* gridSparse = cfContainer->GetGrid(kStepReconstructed);
TAxis* ptAxis = gridSparse->GetAxis(kHvarPt);
Double_t slope = 0.;
Double_t limitNorm = 0., limitSlope = 0.;
Int_t firstPtBin = 0, lastPtBin = 0;
gStyle->SetOptFit(1111);
for ( Int_t itheta=0; itheta<kNthetaAbs; ++itheta ) {
igroup2++;
SetSparseRange(gridSparse, kHvarThetaAbs, "", itheta+1, itheta+1, "USEBIN");
SetSparseRange(gridSparse, kHvarPt, "", 1, ptAxis->GetNbins(), "USEBIN");
TH1* recoHisto[kNrecoHistos];
for ( Int_t ireco=0; ireco<kNrecoHistos; ++ireco ) {
recoHisto[ireco] = gridSparse->Project(kHvarPt);
histoName = Form("%sMuon_%s", baseRecoName[ireco].Data(), fThetaAbsKeys->At(itheta)->GetName());
recoHisto[ireco]->SetName(histoName.Data());
recoHisto[ireco]->SetTitle(histoName.Data());
recoHisto[ireco]->Reset();
recoHisto[ireco]->Sumw2();
for ( Int_t isrc=0; isrc<sumMothers[ireco].GetSize(); ++isrc ) {
SetSparseRange(gridSparse, kHvarMotherType, "", sumMothers[ireco][isrc], sumMothers[ireco][isrc], "USEBIN");
TH1* auxHisto = gridSparse->Project(kHvarPt);
recoHisto[ireco]->Add(auxHisto);
delete auxHisto;
}
}
SetSparseRange(gridSparse, kHvarMotherType, "", firstPtBin, lastSrcBin, "USEBIN");
Int_t currDraw = 0;
for ( Int_t ibinpt=0; ibinpt<=ptAxis->GetNbins(); ++ibinpt ) {
firstPtBin = ibinpt;
lastPtBin = ( ibinpt == 0 ) ? ptAxis->GetNbins() : ibinpt;
SetSparseRange(gridSparse, kHvarPt, "", firstPtBin, lastPtBin, "USEBIN");
TH1* histo = gridSparse->Project(kHvarVz);
histo->SetName(Form("hVtx_%s_%s_ptBin%i", cfContainer->GetStepTitle(kStepReconstructed), fThetaAbsKeys->At(itheta)->GetName(), ibinpt));
if ( histo->Integral() < 100. ) break;
printf("\nFit %.2f < pt < %.2f (entries %g)\n", ptAxis->GetBinLowEdge(firstPtBin), ptAxis->GetBinUpEdge(lastPtBin), histo->GetEntries());
histo->Divide(eventVertex);
Double_t norm = histo->GetBinContent(histo->FindBin(0.));
histo->GetYaxis()->SetTitle("#frac{dN_{#mu}}{dv_{z}} / #left(#frac{1}{N_{MB}}#frac{dN_{MB}}{dv_{z}}#right)");
histo->SetTitle(Form("%g < p_{T} (GeV/c) < %g",ptAxis->GetBinLowEdge(firstPtBin), ptAxis->GetBinUpEdge(lastPtBin)));
slope = ( histo->GetBinContent(histo->FindBin(meanZ+sigmaZ)) -
histo->GetBinContent(histo->FindBin(meanZ-sigmaZ)) ) / ( 2. * sigmaZ );
if ( slope < 0. ) slope = norm/kFreePath;
for ( Int_t itry=0; itry<2; itry++ ) {
fitFunc->SetParameter(0, norm);
fitFunc->SetParameter(1, slope);
if ( itry > 0 ) {
limitNorm = 2.*histo->Integral();
limitSlope = 2.*histo->Integral()/kFreePath;
fitFunc->SetParLimits(1, 0., limitSlope);
printf("Norm 0. < %f < %f slope 0. < %f < %f\n", norm, limitNorm, slope, limitSlope);
}
TFitResultPtr fitRes = histo->Fit(fitFunc, fitOpt.Data(), "", minZfit, maxZfit);
if ( ((Int_t)fitRes) == 0 &&
fitFunc->GetParameter(0) > 0. &&
fitFunc->GetParameter(1) > 0. )
break;
else if ( furtherOpt.Contains("REFIT") ) printf("Re-fit with limits\n");
else {
printf("Warning: fit problems !!!\n");
break;
}
}
Double_t p0 = fitFunc->GetParameter(0);
Double_t p0err = fitFunc->GetParError(0);
Double_t p1 = fitFunc->GetParameter(1);
Double_t p1err = fitFunc->GetParError(1);
Double_t nullVz = ( p1 != 0. ) ? -p0/p1 : 0.;
Double_t nullVzErr = ( p0 != 0. && p1 != 0. ) ? TMath::Abs(nullVz) * TMath::Sqrt(p0err*p0err/(p0*p0) + p1err*p1err/(p1*p1) ) : 0.;
printf("Null value at %f +- %f\n", nullVz - kFreePath, nullVzErr);
recoHisto[kRecoHF]->SetBinContent(ibinpt, p0);
recoHisto[kRecoHF]->SetBinError(ibinpt, p0err);
recoHisto[kRecoBkg]->SetBinContent(ibinpt, ( kFreePath + meanZ ) * p1);
recoHisto[kRecoBkg]->SetBinError(ibinpt, ( kFreePath + meanZ ) * p1err);
if ( currDraw%4 == 0 ){
currName = Form("vtx_%s_PtBin%i",fThetaAbsKeys->At(itheta)->GetName(), ibinpt);
can = new TCanvas(currName.Data(),currName.Data(),igroup1*xshift,igroup2*yshift,600,600);
can->Divide(2,2);
}
can->cd( currDraw%4 + 1 );
can->SetLogy();
histo->Draw();
fitFunc->DrawCopy("same");
currDraw++;
}
SetSparseRange(gridSparse, kHvarMotherType, "", firstSrcBin, lastSrcBin, "USEBIN");
currName = Form("recoPt_%s",fThetaAbsKeys->At(itheta)->GetName());
can = new TCanvas(currName.Data(),currName.Data(),(igroup1+1)*xshift,igroup2*yshift,600,600);
TLegend* leg = new TLegend(0.6, 0.6, 0.8, 0.8);
drawOpt = "e";
for ( Int_t ireco=0; ireco<kNrecoHistos-1; ++ireco ) {
if ( recoHisto[ireco]->GetEntries() == 0. ) continue;
TH1* ratio = (TH1*)recoHisto[ireco]->Clone(Form("%s_ratio", recoHisto[ireco]->GetName()));
ratio->Divide(recoHisto[kRecoAll]);
ratio->SetLineColor(srcColors[ireco]);
ratio->SetMarkerColor(srcColors[ireco]);
ratio->SetMarkerStyle(20+ireco);
ratio->GetYaxis()->SetTitle("fraction of total");
ratio->Draw(drawOpt.Data());
leg->AddEntry(ratio,baseRecoName[ireco].Data(), "lp");
drawOpt = "esame";
}
leg->Draw("same");
}
}
AliAnalysisTaskSingleMu.cxx:1 AliAnalysisTaskSingleMu.cxx:2 AliAnalysisTaskSingleMu.cxx:3 AliAnalysisTaskSingleMu.cxx:4 AliAnalysisTaskSingleMu.cxx:5 AliAnalysisTaskSingleMu.cxx:6 AliAnalysisTaskSingleMu.cxx:7 AliAnalysisTaskSingleMu.cxx:8 AliAnalysisTaskSingleMu.cxx:9 AliAnalysisTaskSingleMu.cxx:10 AliAnalysisTaskSingleMu.cxx:11 AliAnalysisTaskSingleMu.cxx:12 AliAnalysisTaskSingleMu.cxx:13 AliAnalysisTaskSingleMu.cxx:14 AliAnalysisTaskSingleMu.cxx:15 AliAnalysisTaskSingleMu.cxx:16 AliAnalysisTaskSingleMu.cxx:17 AliAnalysisTaskSingleMu.cxx:18 AliAnalysisTaskSingleMu.cxx:19 AliAnalysisTaskSingleMu.cxx:20 AliAnalysisTaskSingleMu.cxx:21 AliAnalysisTaskSingleMu.cxx:22 AliAnalysisTaskSingleMu.cxx:23 AliAnalysisTaskSingleMu.cxx:24 AliAnalysisTaskSingleMu.cxx:25 AliAnalysisTaskSingleMu.cxx:26 AliAnalysisTaskSingleMu.cxx:27 AliAnalysisTaskSingleMu.cxx:28 AliAnalysisTaskSingleMu.cxx:29 AliAnalysisTaskSingleMu.cxx:30 AliAnalysisTaskSingleMu.cxx:31 AliAnalysisTaskSingleMu.cxx:32 AliAnalysisTaskSingleMu.cxx:33 AliAnalysisTaskSingleMu.cxx:34 AliAnalysisTaskSingleMu.cxx:35 AliAnalysisTaskSingleMu.cxx:36 AliAnalysisTaskSingleMu.cxx:37 AliAnalysisTaskSingleMu.cxx:38 AliAnalysisTaskSingleMu.cxx:39 AliAnalysisTaskSingleMu.cxx:40 AliAnalysisTaskSingleMu.cxx:41 AliAnalysisTaskSingleMu.cxx:42 AliAnalysisTaskSingleMu.cxx:43 AliAnalysisTaskSingleMu.cxx:44 AliAnalysisTaskSingleMu.cxx:45 AliAnalysisTaskSingleMu.cxx:46 AliAnalysisTaskSingleMu.cxx:47 AliAnalysisTaskSingleMu.cxx:48 AliAnalysisTaskSingleMu.cxx:49 AliAnalysisTaskSingleMu.cxx:50 AliAnalysisTaskSingleMu.cxx:51 AliAnalysisTaskSingleMu.cxx:52 AliAnalysisTaskSingleMu.cxx:53 AliAnalysisTaskSingleMu.cxx:54 AliAnalysisTaskSingleMu.cxx:55 AliAnalysisTaskSingleMu.cxx:56 AliAnalysisTaskSingleMu.cxx:57 AliAnalysisTaskSingleMu.cxx:58 AliAnalysisTaskSingleMu.cxx:59 AliAnalysisTaskSingleMu.cxx:60 AliAnalysisTaskSingleMu.cxx:61 AliAnalysisTaskSingleMu.cxx:62 AliAnalysisTaskSingleMu.cxx:63 AliAnalysisTaskSingleMu.cxx:64 AliAnalysisTaskSingleMu.cxx:65 AliAnalysisTaskSingleMu.cxx:66 AliAnalysisTaskSingleMu.cxx:67 AliAnalysisTaskSingleMu.cxx:68 AliAnalysisTaskSingleMu.cxx:69 AliAnalysisTaskSingleMu.cxx:70 AliAnalysisTaskSingleMu.cxx:71 AliAnalysisTaskSingleMu.cxx:72 AliAnalysisTaskSingleMu.cxx:73 AliAnalysisTaskSingleMu.cxx:74 AliAnalysisTaskSingleMu.cxx:75 AliAnalysisTaskSingleMu.cxx:76 AliAnalysisTaskSingleMu.cxx:77 AliAnalysisTaskSingleMu.cxx:78 AliAnalysisTaskSingleMu.cxx:79 AliAnalysisTaskSingleMu.cxx:80 AliAnalysisTaskSingleMu.cxx:81 AliAnalysisTaskSingleMu.cxx:82 AliAnalysisTaskSingleMu.cxx:83 AliAnalysisTaskSingleMu.cxx:84 AliAnalysisTaskSingleMu.cxx:85 AliAnalysisTaskSingleMu.cxx:86 AliAnalysisTaskSingleMu.cxx:87 AliAnalysisTaskSingleMu.cxx:88 AliAnalysisTaskSingleMu.cxx:89 AliAnalysisTaskSingleMu.cxx:90 AliAnalysisTaskSingleMu.cxx:91 AliAnalysisTaskSingleMu.cxx:92 AliAnalysisTaskSingleMu.cxx:93 AliAnalysisTaskSingleMu.cxx:94 AliAnalysisTaskSingleMu.cxx:95 AliAnalysisTaskSingleMu.cxx:96 AliAnalysisTaskSingleMu.cxx:97 AliAnalysisTaskSingleMu.cxx:98 AliAnalysisTaskSingleMu.cxx:99 AliAnalysisTaskSingleMu.cxx:100 AliAnalysisTaskSingleMu.cxx:101 AliAnalysisTaskSingleMu.cxx:102 AliAnalysisTaskSingleMu.cxx:103 AliAnalysisTaskSingleMu.cxx:104 AliAnalysisTaskSingleMu.cxx:105 AliAnalysisTaskSingleMu.cxx:106 AliAnalysisTaskSingleMu.cxx:107 AliAnalysisTaskSingleMu.cxx:108 AliAnalysisTaskSingleMu.cxx:109 AliAnalysisTaskSingleMu.cxx:110 AliAnalysisTaskSingleMu.cxx:111 AliAnalysisTaskSingleMu.cxx:112 AliAnalysisTaskSingleMu.cxx:113 AliAnalysisTaskSingleMu.cxx:114 AliAnalysisTaskSingleMu.cxx:115 AliAnalysisTaskSingleMu.cxx:116 AliAnalysisTaskSingleMu.cxx:117 AliAnalysisTaskSingleMu.cxx:118 AliAnalysisTaskSingleMu.cxx:119 AliAnalysisTaskSingleMu.cxx:120 AliAnalysisTaskSingleMu.cxx:121 AliAnalysisTaskSingleMu.cxx:122 AliAnalysisTaskSingleMu.cxx:123 AliAnalysisTaskSingleMu.cxx:124 AliAnalysisTaskSingleMu.cxx:125 AliAnalysisTaskSingleMu.cxx:126 AliAnalysisTaskSingleMu.cxx:127 AliAnalysisTaskSingleMu.cxx:128 AliAnalysisTaskSingleMu.cxx:129 AliAnalysisTaskSingleMu.cxx:130 AliAnalysisTaskSingleMu.cxx:131 AliAnalysisTaskSingleMu.cxx:132 AliAnalysisTaskSingleMu.cxx:133 AliAnalysisTaskSingleMu.cxx:134 AliAnalysisTaskSingleMu.cxx:135 AliAnalysisTaskSingleMu.cxx:136 AliAnalysisTaskSingleMu.cxx:137 AliAnalysisTaskSingleMu.cxx:138 AliAnalysisTaskSingleMu.cxx:139 AliAnalysisTaskSingleMu.cxx:140 AliAnalysisTaskSingleMu.cxx:141 AliAnalysisTaskSingleMu.cxx:142 AliAnalysisTaskSingleMu.cxx:143 AliAnalysisTaskSingleMu.cxx:144 AliAnalysisTaskSingleMu.cxx:145 AliAnalysisTaskSingleMu.cxx:146 AliAnalysisTaskSingleMu.cxx:147 AliAnalysisTaskSingleMu.cxx:148 AliAnalysisTaskSingleMu.cxx:149 AliAnalysisTaskSingleMu.cxx:150 AliAnalysisTaskSingleMu.cxx:151 AliAnalysisTaskSingleMu.cxx:152 AliAnalysisTaskSingleMu.cxx:153 AliAnalysisTaskSingleMu.cxx:154 AliAnalysisTaskSingleMu.cxx:155 AliAnalysisTaskSingleMu.cxx:156 AliAnalysisTaskSingleMu.cxx:157 AliAnalysisTaskSingleMu.cxx:158 AliAnalysisTaskSingleMu.cxx:159 AliAnalysisTaskSingleMu.cxx:160 AliAnalysisTaskSingleMu.cxx:161 AliAnalysisTaskSingleMu.cxx:162 AliAnalysisTaskSingleMu.cxx:163 AliAnalysisTaskSingleMu.cxx:164 AliAnalysisTaskSingleMu.cxx:165 AliAnalysisTaskSingleMu.cxx:166 AliAnalysisTaskSingleMu.cxx:167 AliAnalysisTaskSingleMu.cxx:168 AliAnalysisTaskSingleMu.cxx:169 AliAnalysisTaskSingleMu.cxx:170 AliAnalysisTaskSingleMu.cxx:171 AliAnalysisTaskSingleMu.cxx:172 AliAnalysisTaskSingleMu.cxx:173 AliAnalysisTaskSingleMu.cxx:174 AliAnalysisTaskSingleMu.cxx:175 AliAnalysisTaskSingleMu.cxx:176 AliAnalysisTaskSingleMu.cxx:177 AliAnalysisTaskSingleMu.cxx:178 AliAnalysisTaskSingleMu.cxx:179 AliAnalysisTaskSingleMu.cxx:180 AliAnalysisTaskSingleMu.cxx:181 AliAnalysisTaskSingleMu.cxx:182 AliAnalysisTaskSingleMu.cxx:183 AliAnalysisTaskSingleMu.cxx:184 AliAnalysisTaskSingleMu.cxx:185 AliAnalysisTaskSingleMu.cxx:186 AliAnalysisTaskSingleMu.cxx:187 AliAnalysisTaskSingleMu.cxx:188 AliAnalysisTaskSingleMu.cxx:189 AliAnalysisTaskSingleMu.cxx:190 AliAnalysisTaskSingleMu.cxx:191 AliAnalysisTaskSingleMu.cxx:192 AliAnalysisTaskSingleMu.cxx:193 AliAnalysisTaskSingleMu.cxx:194 AliAnalysisTaskSingleMu.cxx:195 AliAnalysisTaskSingleMu.cxx:196 AliAnalysisTaskSingleMu.cxx:197 AliAnalysisTaskSingleMu.cxx:198 AliAnalysisTaskSingleMu.cxx:199 AliAnalysisTaskSingleMu.cxx:200 AliAnalysisTaskSingleMu.cxx:201 AliAnalysisTaskSingleMu.cxx:202 AliAnalysisTaskSingleMu.cxx:203 AliAnalysisTaskSingleMu.cxx:204 AliAnalysisTaskSingleMu.cxx:205 AliAnalysisTaskSingleMu.cxx:206 AliAnalysisTaskSingleMu.cxx:207 AliAnalysisTaskSingleMu.cxx:208 AliAnalysisTaskSingleMu.cxx:209 AliAnalysisTaskSingleMu.cxx:210 AliAnalysisTaskSingleMu.cxx:211 AliAnalysisTaskSingleMu.cxx:212 AliAnalysisTaskSingleMu.cxx:213 AliAnalysisTaskSingleMu.cxx:214 AliAnalysisTaskSingleMu.cxx:215 AliAnalysisTaskSingleMu.cxx:216 AliAnalysisTaskSingleMu.cxx:217 AliAnalysisTaskSingleMu.cxx:218 AliAnalysisTaskSingleMu.cxx:219 AliAnalysisTaskSingleMu.cxx:220 AliAnalysisTaskSingleMu.cxx:221 AliAnalysisTaskSingleMu.cxx:222 AliAnalysisTaskSingleMu.cxx:223 AliAnalysisTaskSingleMu.cxx:224 AliAnalysisTaskSingleMu.cxx:225 AliAnalysisTaskSingleMu.cxx:226 AliAnalysisTaskSingleMu.cxx:227 AliAnalysisTaskSingleMu.cxx:228 AliAnalysisTaskSingleMu.cxx:229 AliAnalysisTaskSingleMu.cxx:230 AliAnalysisTaskSingleMu.cxx:231 AliAnalysisTaskSingleMu.cxx:232 AliAnalysisTaskSingleMu.cxx:233 AliAnalysisTaskSingleMu.cxx:234 AliAnalysisTaskSingleMu.cxx:235 AliAnalysisTaskSingleMu.cxx:236 AliAnalysisTaskSingleMu.cxx:237 AliAnalysisTaskSingleMu.cxx:238 AliAnalysisTaskSingleMu.cxx:239 AliAnalysisTaskSingleMu.cxx:240 AliAnalysisTaskSingleMu.cxx:241 AliAnalysisTaskSingleMu.cxx:242 AliAnalysisTaskSingleMu.cxx:243 AliAnalysisTaskSingleMu.cxx:244 AliAnalysisTaskSingleMu.cxx:245 AliAnalysisTaskSingleMu.cxx:246 AliAnalysisTaskSingleMu.cxx:247 AliAnalysisTaskSingleMu.cxx:248 AliAnalysisTaskSingleMu.cxx:249 AliAnalysisTaskSingleMu.cxx:250 AliAnalysisTaskSingleMu.cxx:251 AliAnalysisTaskSingleMu.cxx:252 AliAnalysisTaskSingleMu.cxx:253 AliAnalysisTaskSingleMu.cxx:254 AliAnalysisTaskSingleMu.cxx:255 AliAnalysisTaskSingleMu.cxx:256 AliAnalysisTaskSingleMu.cxx:257 AliAnalysisTaskSingleMu.cxx:258 AliAnalysisTaskSingleMu.cxx:259 AliAnalysisTaskSingleMu.cxx:260 AliAnalysisTaskSingleMu.cxx:261 AliAnalysisTaskSingleMu.cxx:262 AliAnalysisTaskSingleMu.cxx:263 AliAnalysisTaskSingleMu.cxx:264 AliAnalysisTaskSingleMu.cxx:265 AliAnalysisTaskSingleMu.cxx:266 AliAnalysisTaskSingleMu.cxx:267 AliAnalysisTaskSingleMu.cxx:268 AliAnalysisTaskSingleMu.cxx:269 AliAnalysisTaskSingleMu.cxx:270 AliAnalysisTaskSingleMu.cxx:271 AliAnalysisTaskSingleMu.cxx:272 AliAnalysisTaskSingleMu.cxx:273 AliAnalysisTaskSingleMu.cxx:274 AliAnalysisTaskSingleMu.cxx:275 AliAnalysisTaskSingleMu.cxx:276 AliAnalysisTaskSingleMu.cxx:277 AliAnalysisTaskSingleMu.cxx:278 AliAnalysisTaskSingleMu.cxx:279 AliAnalysisTaskSingleMu.cxx:280 AliAnalysisTaskSingleMu.cxx:281 AliAnalysisTaskSingleMu.cxx:282 AliAnalysisTaskSingleMu.cxx:283 AliAnalysisTaskSingleMu.cxx:284 AliAnalysisTaskSingleMu.cxx:285 AliAnalysisTaskSingleMu.cxx:286 AliAnalysisTaskSingleMu.cxx:287 AliAnalysisTaskSingleMu.cxx:288 AliAnalysisTaskSingleMu.cxx:289 AliAnalysisTaskSingleMu.cxx:290 AliAnalysisTaskSingleMu.cxx:291 AliAnalysisTaskSingleMu.cxx:292 AliAnalysisTaskSingleMu.cxx:293 AliAnalysisTaskSingleMu.cxx:294 AliAnalysisTaskSingleMu.cxx:295 AliAnalysisTaskSingleMu.cxx:296 AliAnalysisTaskSingleMu.cxx:297 AliAnalysisTaskSingleMu.cxx:298 AliAnalysisTaskSingleMu.cxx:299 AliAnalysisTaskSingleMu.cxx:300 AliAnalysisTaskSingleMu.cxx:301 AliAnalysisTaskSingleMu.cxx:302 AliAnalysisTaskSingleMu.cxx:303 AliAnalysisTaskSingleMu.cxx:304 AliAnalysisTaskSingleMu.cxx:305 AliAnalysisTaskSingleMu.cxx:306 AliAnalysisTaskSingleMu.cxx:307 AliAnalysisTaskSingleMu.cxx:308 AliAnalysisTaskSingleMu.cxx:309 AliAnalysisTaskSingleMu.cxx:310 AliAnalysisTaskSingleMu.cxx:311 AliAnalysisTaskSingleMu.cxx:312 AliAnalysisTaskSingleMu.cxx:313 AliAnalysisTaskSingleMu.cxx:314 AliAnalysisTaskSingleMu.cxx:315 AliAnalysisTaskSingleMu.cxx:316 AliAnalysisTaskSingleMu.cxx:317 AliAnalysisTaskSingleMu.cxx:318 AliAnalysisTaskSingleMu.cxx:319 AliAnalysisTaskSingleMu.cxx:320 AliAnalysisTaskSingleMu.cxx:321 AliAnalysisTaskSingleMu.cxx:322 AliAnalysisTaskSingleMu.cxx:323 AliAnalysisTaskSingleMu.cxx:324 AliAnalysisTaskSingleMu.cxx:325 AliAnalysisTaskSingleMu.cxx:326 AliAnalysisTaskSingleMu.cxx:327 AliAnalysisTaskSingleMu.cxx:328 AliAnalysisTaskSingleMu.cxx:329 AliAnalysisTaskSingleMu.cxx:330 AliAnalysisTaskSingleMu.cxx:331 AliAnalysisTaskSingleMu.cxx:332 AliAnalysisTaskSingleMu.cxx:333 AliAnalysisTaskSingleMu.cxx:334 AliAnalysisTaskSingleMu.cxx:335 AliAnalysisTaskSingleMu.cxx:336 AliAnalysisTaskSingleMu.cxx:337 AliAnalysisTaskSingleMu.cxx:338 AliAnalysisTaskSingleMu.cxx:339 AliAnalysisTaskSingleMu.cxx:340 AliAnalysisTaskSingleMu.cxx:341 AliAnalysisTaskSingleMu.cxx:342 AliAnalysisTaskSingleMu.cxx:343 AliAnalysisTaskSingleMu.cxx:344 AliAnalysisTaskSingleMu.cxx:345 AliAnalysisTaskSingleMu.cxx:346 AliAnalysisTaskSingleMu.cxx:347 AliAnalysisTaskSingleMu.cxx:348 AliAnalysisTaskSingleMu.cxx:349 AliAnalysisTaskSingleMu.cxx:350 AliAnalysisTaskSingleMu.cxx:351 AliAnalysisTaskSingleMu.cxx:352 AliAnalysisTaskSingleMu.cxx:353 AliAnalysisTaskSingleMu.cxx:354 AliAnalysisTaskSingleMu.cxx:355 AliAnalysisTaskSingleMu.cxx:356 AliAnalysisTaskSingleMu.cxx:357 AliAnalysisTaskSingleMu.cxx:358 AliAnalysisTaskSingleMu.cxx:359 AliAnalysisTaskSingleMu.cxx:360 AliAnalysisTaskSingleMu.cxx:361 AliAnalysisTaskSingleMu.cxx:362 AliAnalysisTaskSingleMu.cxx:363 AliAnalysisTaskSingleMu.cxx:364 AliAnalysisTaskSingleMu.cxx:365 AliAnalysisTaskSingleMu.cxx:366 AliAnalysisTaskSingleMu.cxx:367 AliAnalysisTaskSingleMu.cxx:368 AliAnalysisTaskSingleMu.cxx:369 AliAnalysisTaskSingleMu.cxx:370 AliAnalysisTaskSingleMu.cxx:371 AliAnalysisTaskSingleMu.cxx:372 AliAnalysisTaskSingleMu.cxx:373 AliAnalysisTaskSingleMu.cxx:374 AliAnalysisTaskSingleMu.cxx:375 AliAnalysisTaskSingleMu.cxx:376 AliAnalysisTaskSingleMu.cxx:377 AliAnalysisTaskSingleMu.cxx:378 AliAnalysisTaskSingleMu.cxx:379 AliAnalysisTaskSingleMu.cxx:380 AliAnalysisTaskSingleMu.cxx:381 AliAnalysisTaskSingleMu.cxx:382 AliAnalysisTaskSingleMu.cxx:383 AliAnalysisTaskSingleMu.cxx:384 AliAnalysisTaskSingleMu.cxx:385 AliAnalysisTaskSingleMu.cxx:386 AliAnalysisTaskSingleMu.cxx:387 AliAnalysisTaskSingleMu.cxx:388 AliAnalysisTaskSingleMu.cxx:389 AliAnalysisTaskSingleMu.cxx:390 AliAnalysisTaskSingleMu.cxx:391 AliAnalysisTaskSingleMu.cxx:392 AliAnalysisTaskSingleMu.cxx:393 AliAnalysisTaskSingleMu.cxx:394 AliAnalysisTaskSingleMu.cxx:395 AliAnalysisTaskSingleMu.cxx:396 AliAnalysisTaskSingleMu.cxx:397 AliAnalysisTaskSingleMu.cxx:398 AliAnalysisTaskSingleMu.cxx:399 AliAnalysisTaskSingleMu.cxx:400 AliAnalysisTaskSingleMu.cxx:401 AliAnalysisTaskSingleMu.cxx:402 AliAnalysisTaskSingleMu.cxx:403 AliAnalysisTaskSingleMu.cxx:404 AliAnalysisTaskSingleMu.cxx:405 AliAnalysisTaskSingleMu.cxx:406 AliAnalysisTaskSingleMu.cxx:407 AliAnalysisTaskSingleMu.cxx:408 AliAnalysisTaskSingleMu.cxx:409 AliAnalysisTaskSingleMu.cxx:410 AliAnalysisTaskSingleMu.cxx:411 AliAnalysisTaskSingleMu.cxx:412 AliAnalysisTaskSingleMu.cxx:413 AliAnalysisTaskSingleMu.cxx:414 AliAnalysisTaskSingleMu.cxx:415 AliAnalysisTaskSingleMu.cxx:416 AliAnalysisTaskSingleMu.cxx:417 AliAnalysisTaskSingleMu.cxx:418 AliAnalysisTaskSingleMu.cxx:419 AliAnalysisTaskSingleMu.cxx:420 AliAnalysisTaskSingleMu.cxx:421 AliAnalysisTaskSingleMu.cxx:422 AliAnalysisTaskSingleMu.cxx:423 AliAnalysisTaskSingleMu.cxx:424 AliAnalysisTaskSingleMu.cxx:425 AliAnalysisTaskSingleMu.cxx:426 AliAnalysisTaskSingleMu.cxx:427 AliAnalysisTaskSingleMu.cxx:428 AliAnalysisTaskSingleMu.cxx:429 AliAnalysisTaskSingleMu.cxx:430 AliAnalysisTaskSingleMu.cxx:431 AliAnalysisTaskSingleMu.cxx:432 AliAnalysisTaskSingleMu.cxx:433 AliAnalysisTaskSingleMu.cxx:434 AliAnalysisTaskSingleMu.cxx:435 AliAnalysisTaskSingleMu.cxx:436 AliAnalysisTaskSingleMu.cxx:437 AliAnalysisTaskSingleMu.cxx:438 AliAnalysisTaskSingleMu.cxx:439 AliAnalysisTaskSingleMu.cxx:440 AliAnalysisTaskSingleMu.cxx:441 AliAnalysisTaskSingleMu.cxx:442 AliAnalysisTaskSingleMu.cxx:443 AliAnalysisTaskSingleMu.cxx:444 AliAnalysisTaskSingleMu.cxx:445 AliAnalysisTaskSingleMu.cxx:446 AliAnalysisTaskSingleMu.cxx:447 AliAnalysisTaskSingleMu.cxx:448 AliAnalysisTaskSingleMu.cxx:449 AliAnalysisTaskSingleMu.cxx:450 AliAnalysisTaskSingleMu.cxx:451 AliAnalysisTaskSingleMu.cxx:452 AliAnalysisTaskSingleMu.cxx:453 AliAnalysisTaskSingleMu.cxx:454 AliAnalysisTaskSingleMu.cxx:455 AliAnalysisTaskSingleMu.cxx:456 AliAnalysisTaskSingleMu.cxx:457 AliAnalysisTaskSingleMu.cxx:458 AliAnalysisTaskSingleMu.cxx:459 AliAnalysisTaskSingleMu.cxx:460 AliAnalysisTaskSingleMu.cxx:461 AliAnalysisTaskSingleMu.cxx:462 AliAnalysisTaskSingleMu.cxx:463 AliAnalysisTaskSingleMu.cxx:464 AliAnalysisTaskSingleMu.cxx:465 AliAnalysisTaskSingleMu.cxx:466 AliAnalysisTaskSingleMu.cxx:467 AliAnalysisTaskSingleMu.cxx:468 AliAnalysisTaskSingleMu.cxx:469 AliAnalysisTaskSingleMu.cxx:470 AliAnalysisTaskSingleMu.cxx:471 AliAnalysisTaskSingleMu.cxx:472 AliAnalysisTaskSingleMu.cxx:473 AliAnalysisTaskSingleMu.cxx:474 AliAnalysisTaskSingleMu.cxx:475 AliAnalysisTaskSingleMu.cxx:476 AliAnalysisTaskSingleMu.cxx:477 AliAnalysisTaskSingleMu.cxx:478 AliAnalysisTaskSingleMu.cxx:479 AliAnalysisTaskSingleMu.cxx:480 AliAnalysisTaskSingleMu.cxx:481 AliAnalysisTaskSingleMu.cxx:482 AliAnalysisTaskSingleMu.cxx:483 AliAnalysisTaskSingleMu.cxx:484 AliAnalysisTaskSingleMu.cxx:485 AliAnalysisTaskSingleMu.cxx:486 AliAnalysisTaskSingleMu.cxx:487 AliAnalysisTaskSingleMu.cxx:488 AliAnalysisTaskSingleMu.cxx:489 AliAnalysisTaskSingleMu.cxx:490 AliAnalysisTaskSingleMu.cxx:491 AliAnalysisTaskSingleMu.cxx:492 AliAnalysisTaskSingleMu.cxx:493 AliAnalysisTaskSingleMu.cxx:494 AliAnalysisTaskSingleMu.cxx:495 AliAnalysisTaskSingleMu.cxx:496 AliAnalysisTaskSingleMu.cxx:497 AliAnalysisTaskSingleMu.cxx:498 AliAnalysisTaskSingleMu.cxx:499 AliAnalysisTaskSingleMu.cxx:500 AliAnalysisTaskSingleMu.cxx:501 AliAnalysisTaskSingleMu.cxx:502 AliAnalysisTaskSingleMu.cxx:503 AliAnalysisTaskSingleMu.cxx:504 AliAnalysisTaskSingleMu.cxx:505 AliAnalysisTaskSingleMu.cxx:506 AliAnalysisTaskSingleMu.cxx:507 AliAnalysisTaskSingleMu.cxx:508 AliAnalysisTaskSingleMu.cxx:509 AliAnalysisTaskSingleMu.cxx:510 AliAnalysisTaskSingleMu.cxx:511 AliAnalysisTaskSingleMu.cxx:512 AliAnalysisTaskSingleMu.cxx:513 AliAnalysisTaskSingleMu.cxx:514 AliAnalysisTaskSingleMu.cxx:515 AliAnalysisTaskSingleMu.cxx:516 AliAnalysisTaskSingleMu.cxx:517 AliAnalysisTaskSingleMu.cxx:518 AliAnalysisTaskSingleMu.cxx:519 AliAnalysisTaskSingleMu.cxx:520 AliAnalysisTaskSingleMu.cxx:521 AliAnalysisTaskSingleMu.cxx:522 AliAnalysisTaskSingleMu.cxx:523 AliAnalysisTaskSingleMu.cxx:524 AliAnalysisTaskSingleMu.cxx:525 AliAnalysisTaskSingleMu.cxx:526 AliAnalysisTaskSingleMu.cxx:527 AliAnalysisTaskSingleMu.cxx:528 AliAnalysisTaskSingleMu.cxx:529 AliAnalysisTaskSingleMu.cxx:530 AliAnalysisTaskSingleMu.cxx:531 AliAnalysisTaskSingleMu.cxx:532 AliAnalysisTaskSingleMu.cxx:533 AliAnalysisTaskSingleMu.cxx:534 AliAnalysisTaskSingleMu.cxx:535 AliAnalysisTaskSingleMu.cxx:536 AliAnalysisTaskSingleMu.cxx:537 AliAnalysisTaskSingleMu.cxx:538 AliAnalysisTaskSingleMu.cxx:539 AliAnalysisTaskSingleMu.cxx:540 AliAnalysisTaskSingleMu.cxx:541 AliAnalysisTaskSingleMu.cxx:542 AliAnalysisTaskSingleMu.cxx:543 AliAnalysisTaskSingleMu.cxx:544 AliAnalysisTaskSingleMu.cxx:545 AliAnalysisTaskSingleMu.cxx:546 AliAnalysisTaskSingleMu.cxx:547 AliAnalysisTaskSingleMu.cxx:548 AliAnalysisTaskSingleMu.cxx:549 AliAnalysisTaskSingleMu.cxx:550 AliAnalysisTaskSingleMu.cxx:551 AliAnalysisTaskSingleMu.cxx:552 AliAnalysisTaskSingleMu.cxx:553 AliAnalysisTaskSingleMu.cxx:554 AliAnalysisTaskSingleMu.cxx:555 AliAnalysisTaskSingleMu.cxx:556 AliAnalysisTaskSingleMu.cxx:557 AliAnalysisTaskSingleMu.cxx:558 AliAnalysisTaskSingleMu.cxx:559 AliAnalysisTaskSingleMu.cxx:560 AliAnalysisTaskSingleMu.cxx:561 AliAnalysisTaskSingleMu.cxx:562 AliAnalysisTaskSingleMu.cxx:563 AliAnalysisTaskSingleMu.cxx:564 AliAnalysisTaskSingleMu.cxx:565 AliAnalysisTaskSingleMu.cxx:566 AliAnalysisTaskSingleMu.cxx:567 AliAnalysisTaskSingleMu.cxx:568 AliAnalysisTaskSingleMu.cxx:569 AliAnalysisTaskSingleMu.cxx:570 AliAnalysisTaskSingleMu.cxx:571 AliAnalysisTaskSingleMu.cxx:572 AliAnalysisTaskSingleMu.cxx:573 AliAnalysisTaskSingleMu.cxx:574 AliAnalysisTaskSingleMu.cxx:575 AliAnalysisTaskSingleMu.cxx:576 AliAnalysisTaskSingleMu.cxx:577 AliAnalysisTaskSingleMu.cxx:578 AliAnalysisTaskSingleMu.cxx:579 AliAnalysisTaskSingleMu.cxx:580 AliAnalysisTaskSingleMu.cxx:581 AliAnalysisTaskSingleMu.cxx:582 AliAnalysisTaskSingleMu.cxx:583 AliAnalysisTaskSingleMu.cxx:584 AliAnalysisTaskSingleMu.cxx:585 AliAnalysisTaskSingleMu.cxx:586 AliAnalysisTaskSingleMu.cxx:587 AliAnalysisTaskSingleMu.cxx:588 AliAnalysisTaskSingleMu.cxx:589 AliAnalysisTaskSingleMu.cxx:590 AliAnalysisTaskSingleMu.cxx:591 AliAnalysisTaskSingleMu.cxx:592 AliAnalysisTaskSingleMu.cxx:593 AliAnalysisTaskSingleMu.cxx:594 AliAnalysisTaskSingleMu.cxx:595 AliAnalysisTaskSingleMu.cxx:596 AliAnalysisTaskSingleMu.cxx:597 AliAnalysisTaskSingleMu.cxx:598 AliAnalysisTaskSingleMu.cxx:599 AliAnalysisTaskSingleMu.cxx:600 AliAnalysisTaskSingleMu.cxx:601 AliAnalysisTaskSingleMu.cxx:602 AliAnalysisTaskSingleMu.cxx:603 AliAnalysisTaskSingleMu.cxx:604 AliAnalysisTaskSingleMu.cxx:605 AliAnalysisTaskSingleMu.cxx:606 AliAnalysisTaskSingleMu.cxx:607 AliAnalysisTaskSingleMu.cxx:608 AliAnalysisTaskSingleMu.cxx:609 AliAnalysisTaskSingleMu.cxx:610 AliAnalysisTaskSingleMu.cxx:611 AliAnalysisTaskSingleMu.cxx:612 AliAnalysisTaskSingleMu.cxx:613 AliAnalysisTaskSingleMu.cxx:614 AliAnalysisTaskSingleMu.cxx:615 AliAnalysisTaskSingleMu.cxx:616 AliAnalysisTaskSingleMu.cxx:617 AliAnalysisTaskSingleMu.cxx:618 AliAnalysisTaskSingleMu.cxx:619 AliAnalysisTaskSingleMu.cxx:620 AliAnalysisTaskSingleMu.cxx:621 AliAnalysisTaskSingleMu.cxx:622 AliAnalysisTaskSingleMu.cxx:623 AliAnalysisTaskSingleMu.cxx:624 AliAnalysisTaskSingleMu.cxx:625 AliAnalysisTaskSingleMu.cxx:626 AliAnalysisTaskSingleMu.cxx:627 AliAnalysisTaskSingleMu.cxx:628 AliAnalysisTaskSingleMu.cxx:629 AliAnalysisTaskSingleMu.cxx:630 AliAnalysisTaskSingleMu.cxx:631 AliAnalysisTaskSingleMu.cxx:632 AliAnalysisTaskSingleMu.cxx:633 AliAnalysisTaskSingleMu.cxx:634 AliAnalysisTaskSingleMu.cxx:635 AliAnalysisTaskSingleMu.cxx:636 AliAnalysisTaskSingleMu.cxx:637 AliAnalysisTaskSingleMu.cxx:638 AliAnalysisTaskSingleMu.cxx:639 AliAnalysisTaskSingleMu.cxx:640 AliAnalysisTaskSingleMu.cxx:641 AliAnalysisTaskSingleMu.cxx:642 AliAnalysisTaskSingleMu.cxx:643 AliAnalysisTaskSingleMu.cxx:644 AliAnalysisTaskSingleMu.cxx:645 AliAnalysisTaskSingleMu.cxx:646 AliAnalysisTaskSingleMu.cxx:647 AliAnalysisTaskSingleMu.cxx:648 AliAnalysisTaskSingleMu.cxx:649 AliAnalysisTaskSingleMu.cxx:650 AliAnalysisTaskSingleMu.cxx:651 AliAnalysisTaskSingleMu.cxx:652 AliAnalysisTaskSingleMu.cxx:653 AliAnalysisTaskSingleMu.cxx:654 AliAnalysisTaskSingleMu.cxx:655 AliAnalysisTaskSingleMu.cxx:656 AliAnalysisTaskSingleMu.cxx:657 AliAnalysisTaskSingleMu.cxx:658 AliAnalysisTaskSingleMu.cxx:659 AliAnalysisTaskSingleMu.cxx:660 AliAnalysisTaskSingleMu.cxx:661 AliAnalysisTaskSingleMu.cxx:662 AliAnalysisTaskSingleMu.cxx:663 AliAnalysisTaskSingleMu.cxx:664 AliAnalysisTaskSingleMu.cxx:665 AliAnalysisTaskSingleMu.cxx:666 AliAnalysisTaskSingleMu.cxx:667 AliAnalysisTaskSingleMu.cxx:668 AliAnalysisTaskSingleMu.cxx:669 AliAnalysisTaskSingleMu.cxx:670 AliAnalysisTaskSingleMu.cxx:671 AliAnalysisTaskSingleMu.cxx:672 AliAnalysisTaskSingleMu.cxx:673 AliAnalysisTaskSingleMu.cxx:674 AliAnalysisTaskSingleMu.cxx:675 AliAnalysisTaskSingleMu.cxx:676 AliAnalysisTaskSingleMu.cxx:677 AliAnalysisTaskSingleMu.cxx:678 AliAnalysisTaskSingleMu.cxx:679 AliAnalysisTaskSingleMu.cxx:680 AliAnalysisTaskSingleMu.cxx:681 AliAnalysisTaskSingleMu.cxx:682 AliAnalysisTaskSingleMu.cxx:683 AliAnalysisTaskSingleMu.cxx:684 AliAnalysisTaskSingleMu.cxx:685 AliAnalysisTaskSingleMu.cxx:686 AliAnalysisTaskSingleMu.cxx:687 AliAnalysisTaskSingleMu.cxx:688 AliAnalysisTaskSingleMu.cxx:689 AliAnalysisTaskSingleMu.cxx:690 AliAnalysisTaskSingleMu.cxx:691 AliAnalysisTaskSingleMu.cxx:692 AliAnalysisTaskSingleMu.cxx:693 AliAnalysisTaskSingleMu.cxx:694 AliAnalysisTaskSingleMu.cxx:695 AliAnalysisTaskSingleMu.cxx:696 AliAnalysisTaskSingleMu.cxx:697 AliAnalysisTaskSingleMu.cxx:698 AliAnalysisTaskSingleMu.cxx:699 AliAnalysisTaskSingleMu.cxx:700 AliAnalysisTaskSingleMu.cxx:701 AliAnalysisTaskSingleMu.cxx:702 AliAnalysisTaskSingleMu.cxx:703 AliAnalysisTaskSingleMu.cxx:704 AliAnalysisTaskSingleMu.cxx:705 AliAnalysisTaskSingleMu.cxx:706 AliAnalysisTaskSingleMu.cxx:707 AliAnalysisTaskSingleMu.cxx:708 AliAnalysisTaskSingleMu.cxx:709 AliAnalysisTaskSingleMu.cxx:710 AliAnalysisTaskSingleMu.cxx:711 AliAnalysisTaskSingleMu.cxx:712 AliAnalysisTaskSingleMu.cxx:713 AliAnalysisTaskSingleMu.cxx:714 AliAnalysisTaskSingleMu.cxx:715 AliAnalysisTaskSingleMu.cxx:716 AliAnalysisTaskSingleMu.cxx:717 AliAnalysisTaskSingleMu.cxx:718 AliAnalysisTaskSingleMu.cxx:719 AliAnalysisTaskSingleMu.cxx:720 AliAnalysisTaskSingleMu.cxx:721 AliAnalysisTaskSingleMu.cxx:722 AliAnalysisTaskSingleMu.cxx:723 AliAnalysisTaskSingleMu.cxx:724 AliAnalysisTaskSingleMu.cxx:725 AliAnalysisTaskSingleMu.cxx:726 AliAnalysisTaskSingleMu.cxx:727 AliAnalysisTaskSingleMu.cxx:728 AliAnalysisTaskSingleMu.cxx:729 AliAnalysisTaskSingleMu.cxx:730 AliAnalysisTaskSingleMu.cxx:731 AliAnalysisTaskSingleMu.cxx:732 AliAnalysisTaskSingleMu.cxx:733 AliAnalysisTaskSingleMu.cxx:734 AliAnalysisTaskSingleMu.cxx:735 AliAnalysisTaskSingleMu.cxx:736 AliAnalysisTaskSingleMu.cxx:737 AliAnalysisTaskSingleMu.cxx:738 AliAnalysisTaskSingleMu.cxx:739 AliAnalysisTaskSingleMu.cxx:740 AliAnalysisTaskSingleMu.cxx:741 AliAnalysisTaskSingleMu.cxx:742 AliAnalysisTaskSingleMu.cxx:743 AliAnalysisTaskSingleMu.cxx:744 AliAnalysisTaskSingleMu.cxx:745 AliAnalysisTaskSingleMu.cxx:746 AliAnalysisTaskSingleMu.cxx:747 AliAnalysisTaskSingleMu.cxx:748 AliAnalysisTaskSingleMu.cxx:749 AliAnalysisTaskSingleMu.cxx:750 AliAnalysisTaskSingleMu.cxx:751 AliAnalysisTaskSingleMu.cxx:752 AliAnalysisTaskSingleMu.cxx:753 AliAnalysisTaskSingleMu.cxx:754 AliAnalysisTaskSingleMu.cxx:755 AliAnalysisTaskSingleMu.cxx:756 AliAnalysisTaskSingleMu.cxx:757 AliAnalysisTaskSingleMu.cxx:758 AliAnalysisTaskSingleMu.cxx:759 AliAnalysisTaskSingleMu.cxx:760 AliAnalysisTaskSingleMu.cxx:761 AliAnalysisTaskSingleMu.cxx:762 AliAnalysisTaskSingleMu.cxx:763 AliAnalysisTaskSingleMu.cxx:764 AliAnalysisTaskSingleMu.cxx:765 AliAnalysisTaskSingleMu.cxx:766