#include "TROOT.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TF1.h"
#include "TLegend.h"
#include "TGraphErrors.h"
#include "TGraphAsymmErrors.h"
#include "TAxis.h"
#include "TObjArray.h"
#include "TCanvas.h"
#include "TMath.h"
#include "TMCProcess.h"
#include "TGeoGlobalMagField.h"
#include "TGeoManager.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliMCEventHandler.h"
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliCDBManager.h"
#include "AliGeomManager.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisDataContainer.h"
#include "AliCentrality.h"
#include "AliCFContainer.h"
#include "AliCFGridSparse.h"
#include "AliCFEffGrid.h"
#include "AliMUONConstants.h"
#include "AliMUONTrack.h"
#include "AliMUONTriggerTrack.h"
#include "AliMUONLocalTrigger.h"
#include "AliMUONVTrackStore.h"
#include "AliMUONVTriggerTrackStore.h"
#include "AliMUONESDInterface.h"
#include "AliMUONRecoParam.h"
#include "AliMUONCDB.h"
#include "AliMUONTrackExtrap.h"
#include "AliMUONTrackParam.h"
#include "AliMUONRecoCheck.h"
#include "AliMUONVCluster.h"
#include "AliMUONVTrackReconstructor.h"
#include "AliMpSegmentation.h"
#include "AliMpDEIterator.h"
#include "AliAnalysisTaskMuonPerformance.h"
using std::cout;
using std::endl;
using std::flush;
ClassImp(AliAnalysisTaskMuonPerformance)
AliAnalysisTaskMuonPerformance::AliAnalysisTaskMuonPerformance() :
AliAnalysisTaskSE(),
fDefaultStorage(""),
fAlignOCDBpath(""),
fRecoParamOCDBpath(""),
fNPBins(30),
fCorrectForSystematics(kFALSE),
fFitResiduals(kFALSE),
fEnforceTrkCriteria(kFALSE),
fUseMCKinematics(kFALSE),
fMCTrigLevelFromMatchTrk(kFALSE),
fRequestedStationMask(0),
fRequest2ChInSameSt45(0),
fSigmaCutTrig(-1.),
fNDE(0),
fCFContainer(0x0),
fEfficiencyList(0x0),
fTriggerList(0x0),
fTrackerList(0x0),
fPAtVtxList(0x0),
fSlopeAtVtxList(0x0),
fEtaAtVtxList(0x0),
fPhiAtVtxList(0x0),
fPAt1stClList(0x0),
fSlopeAt1stClList(0x0),
fDCAList(0x0),
fClusterList(0x0)
{
fPRange[0] = 0.;
fPRange[1] = 0.;
fClusterMaxRes[0] = 0.;
fClusterMaxRes[1] = 0.;
for (Int_t i = 0; i < 1100; i++) fDEIndices[i] = 0;
for (Int_t i = 0; i < 200; i++) fDEIds[i] = 0;
}
AliAnalysisTaskMuonPerformance::AliAnalysisTaskMuonPerformance(const char *name) :
AliAnalysisTaskSE(name),
fDefaultStorage("raw://"),
fAlignOCDBpath(""),
fRecoParamOCDBpath(""),
fNPBins(30),
fCorrectForSystematics(kFALSE),
fFitResiduals(kFALSE),
fEnforceTrkCriteria(kFALSE),
fUseMCKinematics(kFALSE),
fMCTrigLevelFromMatchTrk(kFALSE),
fRequestedStationMask(0),
fRequest2ChInSameSt45(0),
fSigmaCutTrig(-1.),
fNDE(0),
fCFContainer(0x0),
fEfficiencyList(0x0),
fTriggerList(0x0),
fTrackerList(0x0),
fPAtVtxList(0x0),
fSlopeAtVtxList(0x0),
fEtaAtVtxList(0x0),
fPhiAtVtxList(0x0),
fPAt1stClList(0x0),
fSlopeAt1stClList(0x0),
fDCAList(0x0),
fClusterList(0x0)
{
fPRange[0] = 0.;
fPRange[1] = 300.;
fClusterMaxRes[0] = 0.;
fClusterMaxRes[1] = 0.;
for (Int_t i = 0; i < 1100; i++) fDEIndices[i] = 0;
for (Int_t i = 0; i < 200; i++) fDEIds[i] = 0;
DefineOutput(1, AliCFContainer::Class());
DefineOutput(2, TObjArray::Class());
DefineOutput(3, TObjArray::Class());
DefineOutput(4, TObjArray::Class());
DefineOutput(5, TObjArray::Class());
DefineOutput(6, TObjArray::Class());
DefineOutput(7, TObjArray::Class());
DefineOutput(8, TObjArray::Class());
DefineOutput(9, TObjArray::Class());
DefineOutput(10, TObjArray::Class());
DefineOutput(11, TObjArray::Class());
DefineOutput(12, TObjArray::Class());
}
AliAnalysisTaskMuonPerformance::~AliAnalysisTaskMuonPerformance()
{
if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
delete fCFContainer;
delete fEfficiencyList;
delete fTriggerList;
delete fTrackerList;
delete fPAtVtxList;
delete fSlopeAtVtxList;
delete fEtaAtVtxList;
delete fPhiAtVtxList;
delete fPAt1stClList;
delete fSlopeAt1stClList;
delete fDCAList;
delete fClusterList;
}
}
void AliAnalysisTaskMuonPerformance::NotifyRun()
{
if (fSigmaCutTrig > 0) return;
AliCDBManager* cdbm = AliCDBManager::Instance();
if (cdbm->IsDefaultStorageSet()) printf("PerformanceTask: CDB default storage already set!\n");
else {
cdbm->SetDefaultStorage(fDefaultStorage.Data());
if (!fAlignOCDBpath.IsNull()) cdbm->SetSpecificStorage("MUON/Align/Data",fAlignOCDBpath.Data());
if (!fRecoParamOCDBpath.IsNull()) cdbm->SetSpecificStorage("MUON/Calib/RecoParam",fRecoParamOCDBpath.Data());
}
if (cdbm->GetRun() > -1) printf("PerformanceTask: run number already set!\n");
else cdbm->SetRun(fCurrentRunNumber);
if (!TGeoGlobalMagField::Instance()->GetField()) {
if (!AliMUONCDB::LoadField()) return;
}
if (!AliMpSegmentation::Instance(kFALSE)) {
if (!AliMUONCDB::LoadMapping(kTRUE)) return;
}
if (!AliGeomManager::GetGeometry()) {
AliGeomManager::LoadGeometry();
if (!AliGeomManager::GetGeometry()) return;
if (!AliGeomManager::ApplyAlignObjsFromCDB("MUON")) return;
}
const AliMUONRecoParam* recoParam = (AliMUONESDInterface::GetTracker())
? AliMUONESDInterface::GetTracker()->GetRecoParam()
: AliMUONCDB::LoadRecoParam();
if (!recoParam) {
fRequestedStationMask = 0;
fRequest2ChInSameSt45 = kFALSE;
fSigmaCutTrig = -1.;
AliError("--> skip this run");
return;
}
fRequestedStationMask = 0;
for (Int_t i = 0; i < 5; i++) if (recoParam->RequestStation(i)) fRequestedStationMask |= ( 1 << i );
fRequest2ChInSameSt45 = !recoParam->MakeMoreTrackCandidates();
fSigmaCutTrig = recoParam->GetSigmaCutForTrigger();
if (!AliMUONESDInterface::GetTracker()) AliMUONESDInterface::ResetTracker(recoParam);
for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
if (recoParam->GetDefaultNonBendingReso(i) > fClusterMaxRes[0]) fClusterMaxRes[0] = recoParam->GetDefaultNonBendingReso(i);
if (recoParam->GetDefaultBendingReso(i) > fClusterMaxRes[1]) fClusterMaxRes[1] = recoParam->GetDefaultBendingReso(i);
AliMpDEIterator it;
it.First(i);
while (!it.IsDone()) {
fNDE++;
fDEIndices[it.CurrentDEId()] = fNDE;
fDEIds[fNDE] = it.CurrentDEId();
it.Next();
}
}
UserCreateOutputObjects();
}
void AliAnalysisTaskMuonPerformance::UserCreateOutputObjects()
{
if (fSigmaCutTrig < 0) return;
Int_t nPtBins = 30;
Double_t ptMin = 0., ptMax = 15.;
TString ptTitle("p_{t}"), ptUnits("GeV/c");
Int_t nEtaBins = 15;
Double_t etaMin = -4., etaMax = -2.5;
TString etaTitle("#eta"), etaUnits("a.u.");
Int_t nPhiBins = 15;
Double_t phiMin = 0.; Double_t phiMax = 2.*TMath::Pi();
TString phiTitle("#phi"), phiUnits("rad");
Int_t nThetaAbsEndBins = 4;
Double_t thetaAbsEndMin = -0.5, thetaAbsEndMax = 3.5;
TString thetaAbsEndTitle("#theta_{abs}"), thetaAbsEndUnits("a.u.");
Int_t nChargeBins = 2;
Double_t chargeMin = -2, chargeMax = 2.;
TString chargeTitle("charge"), chargeUnits("e");
Int_t nHasTrackerBins = 2;
Double_t hasTrackerMin = -0.5, hasTrackerMax = (Double_t)nHasTrackerBins - 0.5;
TString hasTrackerTitle("Has tracker"), hasTrackerUnits("");
Int_t nTriggerBins = kNtrigCuts;
Double_t triggerMin = -0.5, triggerMax = (Double_t)nTriggerBins - 0.5;
TString triggerTitle("Trigger match"), triggerUnits("");
Int_t nMotherTypeBins = kNtrackSources;
Double_t motherTypeMin = -0.5, motherTypeMax = (Double_t)kNtrackSources - 0.5;
TString motherTypeTitle("motherType"), motherTypeUnits("");
Int_t nMatchMCBins = kNMatchMC;
Double_t matchMCMin = -0.5, matchMCMax = (Double_t)kNMatchMC - 0.5;
TString matchMCTitle("MatchMC"), matchMCUnits("");
Int_t nMCTriggerBins = kNtrigCuts;
Double_t mcTriggerMin = -0.5, mcTriggerMax = (Double_t)nMCTriggerBins - 0.5;
TString mcTriggerTitle("MC Trigger match"), mcTriggerUnits("");
Int_t nCentBins = 22;
Double_t centMin = -5., centMax = 105.;
TString centTitle("centrality"), centUnits("%");
Int_t nDupliTrgBins = 2;
Double_t dupliTrgMin = -0.5, dupliTrgMax = 1.5;
TString dupliTrgTitle("duplicate trigger"), dupliTrgUnits("");
Int_t nbins[kNvars] = {nPtBins, nEtaBins, nPhiBins, nThetaAbsEndBins, nChargeBins, nHasTrackerBins, nTriggerBins, nMotherTypeBins, nMatchMCBins, nMCTriggerBins, nCentBins, nDupliTrgBins};
Double_t xmin[kNvars] = {ptMin, etaMin, phiMin, thetaAbsEndMin, chargeMin, hasTrackerMin, triggerMin, motherTypeMin, matchMCMin, mcTriggerMin, centMin, dupliTrgMin};
Double_t xmax[kNvars] = {ptMax, etaMax, phiMax, thetaAbsEndMax, chargeMax, hasTrackerMax, triggerMax, motherTypeMax, matchMCMax, mcTriggerMax, centMax, dupliTrgMax};
TString axisTitle[kNvars] = {ptTitle, etaTitle, phiTitle, thetaAbsEndTitle, chargeTitle, hasTrackerTitle, triggerTitle, motherTypeTitle, matchMCTitle, mcTriggerTitle, centTitle, dupliTrgTitle};
TString axisUnits[kNvars] = {ptUnits, etaUnits, phiUnits, thetaAbsEndUnits, chargeUnits, hasTrackerUnits, triggerUnits, motherTypeUnits, matchMCUnits, mcTriggerUnits, centUnits, dupliTrgUnits};
fCFContainer = new AliCFContainer(GetOutputSlot(1)->GetContainer()->GetName(),"container for tracks",kNsteps,kNvars,nbins);
for ( Int_t idim = 0; idim<kNvars; idim++) {
TString histoTitle = Form("%s (%s)", axisTitle[idim].Data(), axisUnits[idim].Data());
histoTitle.ReplaceAll("()","");
fCFContainer->SetVarTitle(idim, histoTitle.Data());
fCFContainer->SetBinLimits(idim, xmin[idim], xmax[idim]);
}
TString stepTitle[kNsteps] = {"reconstructed", "generated"};
TString trigName[kNtrigCuts];
trigName[kNoMatchTrig] = "NoMatch";
trigName[kOtherTrig] = "Other";
trigName[kAllPtTrig] = "AllPt";
trigName[kLowPtTrig] = "LowPt";
trigName[kHighPtTrig] = "HighPt";
TString srcName[kNtrackSources];
srcName[kCharmMu] = "Charm";
srcName[kBeautyMu] = "Beauty";
srcName[kPrimaryMu] = "Decay";
srcName[kSecondaryMu] = "Secondary";
srcName[kRecoHadron] = "Hadrons";
srcName[kUnknownPart] = "Fakes";
TString mMCName[kNMatchMC];
mMCName[kNoMatch] = "NoMatch";
mMCName[kTrackerOnly] = "TrackerOnly";
mMCName[kMatchedSame] = "MatchedSame";
mMCName[kMatchedDiff] = "MatchedDiff";
mMCName[kTriggerOnly] = "TriggerOnly";
for (Int_t istep=0; istep<kNsteps; istep++) {
fCFContainer->SetStepTitle(istep, stepTitle[istep].Data());
AliCFGridSparse* gridSparse = fCFContainer->GetGrid(istep);
TAxis* triggerAxis = gridSparse->GetAxis(kVarTrigger);
for ( Int_t ibin=0; ibin<kNtrigCuts; ibin++ ) {
triggerAxis->SetBinLabel(ibin+1,trigName[ibin]);
}
TAxis* motherTypeAxis = gridSparse->GetAxis(kVarMotherType);
for ( Int_t ibin=0; ibin<kNtrackSources; ibin++ ) {
motherTypeAxis->SetBinLabel(ibin+1,srcName[ibin]);
}
TAxis* matchMCAxis = gridSparse->GetAxis(kVarMatchMC);
for ( Int_t ibin=0; ibin<kNMatchMC; ibin++ ) {
matchMCAxis->SetBinLabel(ibin+1,mMCName[ibin]);
}
TAxis* mcTriggerAxis = gridSparse->GetAxis(kVarMCTrigger);
for ( Int_t ibin=0; ibin<kNtrigCuts; ibin++ ) {
mcTriggerAxis->SetBinLabel(ibin+1,trigName[ibin]);
}
}
fTriggerList = new TObjArray(100);
fTriggerList->SetOwner();
TH1F* h1 = new TH1F("hResTrigX11", "Residual X11;X11_{reco} - X11_{MC} (cm)", 100, -10., 10.);
fTriggerList->AddAt(h1, kResTrigX11);
h1 = new TH1F("hResTrigY11", "Residual Y11;Y11_{reco} - Y11_{MC} (cm)", 100, -10., 10.);
fTriggerList->AddAt(h1, kResTrigY11);
h1 = new TH1F("hResTrigSlopeY", "Residual slope y;ySlope_{reco} - ySlope_{MC} (rad)", 100, -0.1, 0.1);
fTriggerList->AddAt(h1, kResTrigSlopeY);
fTrackerList = new TObjArray(100);
fTrackerList->SetOwner();
const Int_t deltaPAtVtxNBins = 250;
Double_t deltaPAtVtxEdges[2];
deltaPAtVtxEdges[0] = -20. - 0.05 * fPRange[1];
deltaPAtVtxEdges[1] = 5. + 0.05 * fPRange[1];
h1 = new TH1F("hResPAtVtx"," delta P at vertex;#Delta_{p} (GeV/c)",deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h1, kResPAtVtx);
TH2F *h2 = new TH2F("hResPAtVtxVsP","#Delta_{p} at vertex versus p;p (GeV/c);#Delta_{p} (GeV/c)",2*fNPBins,fPRange[0],fPRange[1],deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsP);
h2 = new TH2F("hResPAtVtxVsPIn23deg","#Delta_{p} at vertex versus p for tracks between 2 and 3 degrees at absorber end;p (GeV/c);#Delta_{p} (GeV/c)",2*fNPBins,fPRange[0],fPRange[1],deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsPIn23deg);
h2 = new TH2F("hResPAtVtxVsPIn310deg","#Delta_{p} at vertex versus p for tracks between 3 and 10 degrees at absorber end;p (GeV/c);#Delta_{p} (GeV/c)",2*fNPBins,fPRange[0],fPRange[1],deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsPIn310deg);
h2 = new TH2F("hResPAtVtxVsPIn02degMC","#Delta_{p} at vertex versus p for tracks with MC angle below 2 degrees;p (GeV/c);#Delta_{p} (GeV/c)",2*fNPBins,fPRange[0],fPRange[1],deltaPAtVtxNBins/10,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsPIn02degMC);
h2 = new TH2F("hResPAtVtxVsPosAbsEndIn02degMC","#Delta_{p} at vertex versus track position at absorber end for tracks with MC angle < 2 degrees;position (cm);#Delta_{p} (GeV/c)",1000,0.,100.,deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsPosAbsEndIn02degMC);
h2 = new TH2F("hResPAtVtxVsPosAbsEndIn23degMC","#Delta_{p} at vertex versus track position at absorber end for tracks with MC angle in [2,3[ degrees;position (cm);#Delta_{p} (GeV/c)",1000,0.,100.,deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsPosAbsEndIn23degMC);
h2 = new TH2F("hResPAtVtxVsPosAbsEndIn310degMC","#Delta_{p} at vertex versus track position at absorber end for tracks with MC angle in [3,10[ degrees;position (cm);#Delta_{p} (GeV/c)",1000,0.,100.,deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsPosAbsEndIn310degMC);
h2 = new TH2F("hResPAtVtxVsAngleAtAbsEnd","#Delta_{p} at vertex versus track position at absorber end converted to degrees;angle (Deg);#Delta_{p} (GeV/c)",10,0.,10.,deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsAngleAtAbsEnd);
h2 = new TH2F("hResPAtVtxVsMCAngle","#Delta_{p} at vertex versus MC angle;MC angle (Deg);#Delta_{p} (GeV/c)",10,0.,10.,deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPAtVtxVsMCAngle);
TH3F *h3 = new TH3F("hResPAtVtxVsAngleAtAbsEndVsP","#Delta_{p} at vertex versus track position at absorber end converted to degrees versus momentum;p (GeV/c);angle (Deg);#Delta_{p} (GeV/c)",2*fNPBins,fPRange[0],fPRange[1],100,0.,10.,deltaPAtVtxNBins,deltaPAtVtxEdges[0],deltaPAtVtxEdges[1]);
fTrackerList->AddAt(h3, kResPAtVtxVsAngleAtAbsEndVsP);
h2 = new TH2F("hResPtAtVtxVsPt","#Delta_{p_{t}} at vertex versus p_{t};p_{t} (GeV/c);#Delta_{p_{t}} (GeV/c)",2*fNPBins,fPRange[0]/10.,fPRange[1]/10.,deltaPAtVtxNBins,deltaPAtVtxEdges[0]/10.,deltaPAtVtxEdges[1]/10.);
fTrackerList->AddAt(h2, kResPtAtVtxVsPt);
const Int_t deltaPAtFirstClNBins = 500;
Double_t deltaPAtFirstClEdges[2];
deltaPAtFirstClEdges[0] = -5. - 0.05 * fPRange[1];
deltaPAtFirstClEdges[1] = 5. + 0.05 * fPRange[1];
h1 = new TH1F("hResPAt1stCl"," delta P at first cluster;#Delta_{p} (GeV/c)",deltaPAtFirstClNBins,deltaPAtFirstClEdges[0],deltaPAtFirstClEdges[1]);
fTrackerList->AddAt(h1, kResPAt1stCl);
h2 = new TH2F("hResPAt1stClVsP","#Delta_{p} at first cluster versus p;p (GeV/c);#Delta_{p} (GeV/c)",2*fNPBins,fPRange[0],fPRange[1],deltaPAtFirstClNBins,deltaPAtFirstClEdges[0],deltaPAtFirstClEdges[1]);
fTrackerList->AddAt(h2, kResPAt1stClVsP);
h2 = new TH2F("hResPtAt1stClVsPt","#Delta_{p_{t}} at first cluster versus p_{t};p_{t} (GeV/c);#Delta_{p_{t}} (GeV/c)",2*fNPBins,fPRange[0]/10.,fPRange[1]/10.,deltaPAtFirstClNBins,deltaPAtFirstClEdges[0]/10.,deltaPAtFirstClEdges[1]/10.);
fTrackerList->AddAt(h2, kResPtAt1stClVsPt);
const Int_t deltaSlopeAtVtxNBins = 500;
const Double_t deltaSlopeAtVtxEdges[2] = {-0.05, 0.05};
h1 = new TH1F("hResSlopeXAtVtx","#Delta_{slope_{X}} at vertex;#Delta_{slope_{X}}", deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h1, kResSlopeXAtVtx);
h1 = new TH1F("hResSlopeYAtVtx","#Delta_{slope_{Y}} at vertex;#Delta_{slope_{Y}}", deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h1, kResSlopeYAtVtx);
h2 = new TH2F("hResSlopeXAtVtxVsP","#Delta_{slope_{X}} at vertex versus p;p (GeV/c);#Delta_{slope_{X}}",2*fNPBins,fPRange[0],fPRange[1], deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAtVtxVsP);
h2 = new TH2F("hResSlopeYAtVtxVsP","#Delta_{slope_{Y}} at vertex versus p;p (GeV/c);#Delta_{slope_{Y}}",2*fNPBins,fPRange[0],fPRange[1], deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAtVtxVsP);
h2 = new TH2F("hResSlopeXAtVtxVsPosAbsEndIn02degMC","#Delta_{slope_{X}} at vertex versus track position at absorber end for tracks with MC angle < 2 degrees;position (cm);#Delta_{slope_{X}}",1000,0.,100.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAtVtxVsPosAbsEndIn02degMC);
h2 = new TH2F("hResSlopeYAtVtxVsPosAbsEndIn02degMC","#Delta_{slope_{Y}} at vertex versus track position at absorber end for tracks with MC angle < 2 degrees;position (cm);#Delta_{slope_{Y}}",1000,0.,100.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAtVtxVsPosAbsEndIn02degMC);
h2 = new TH2F("hResSlopeXAtVtxVsPosAbsEndIn23degMC","#Delta_{slope_{X}} at vertex versus track position at absorber end for tracks with MC angle in [2,3[ degrees;position (cm);#Delta_{slope_{X}}",1000,0.,100.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAtVtxVsPosAbsEndIn23degMC);
h2 = new TH2F("hResSlopeYAtVtxVsPosAbsEndIn23degMC","#Delta_{slope_{Y}} at vertex versus track position at absorber end for tracks with MC angle in [2,3[ degrees;position (cm);#Delta_{slope_{Y}}",1000,0.,100.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAtVtxVsPosAbsEndIn23degMC);
h2 = new TH2F("hResSlopeXAtVtxVsPosAbsEndIn310degMC","#Delta_{slope_{X}} at vertex versus track position at absorber end for tracks with MC angle in [3,10[ degrees;position (cm);#Delta_{slope_{X}}",1000,0.,100.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAtVtxVsPosAbsEndIn310degMC);
h2 = new TH2F("hResSlopeYAtVtxVsPosAbsEndIn310degMC","#Delta_{slope_{Y}} at vertex versus track position at absorber end for tracks with MC angle in [3,10[ degrees;position (cm);#Delta_{slope_{Y}}",1000,0.,100.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAtVtxVsPosAbsEndIn310degMC);
h2 = new TH2F("hResSlopeXAtVtxVsAngleAtAbsEnd","#Delta_{slope_{X}} at vertex versus track position at absorber end converted to degrees;angle (Deg);#Delta_{slope_{X}}",10,0.,10.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAtVtxVsAngleAtAbsEnd);
h2 = new TH2F("hResSlopeYAtVtxVsAngleAtAbsEnd","#Delta_{slope_{Y}} at vertex versus track position at absorber end converted to degrees;angle (Deg);#Delta_{slope_{Y}}",10,0.,10.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAtVtxVsAngleAtAbsEnd);
h2 = new TH2F("hResSlopeXAtVtxVsMCAngle","#Delta_{slope_{X}} at vertex versus MC angle;MC angle (Deg);#Delta_{slope_{X}}",10,0.,10.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAtVtxVsMCAngle);
h2 = new TH2F("hResSlopeYAtVtxVsMCAngle","#Delta_{slope_{Y}} at vertex versus MC angle;MC angle (Deg);#Delta_{slope_{Y}}",10,0.,10.,deltaSlopeAtVtxNBins, deltaSlopeAtVtxEdges[0], deltaSlopeAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAtVtxVsMCAngle);
const Int_t deltaSlopeAtFirstClNBins = 500;
const Double_t deltaSlopeAtFirstClEdges[2] = {-0.01, 0.01};
h1 = new TH1F("hResSlopeXAt1stCl","#Delta_{slope_{X}} at first cluster;#Delta_{slope_{X}}", deltaSlopeAtFirstClNBins, deltaSlopeAtFirstClEdges[0], deltaSlopeAtFirstClEdges[1]);
fTrackerList->AddAt(h1, kResSlopeXAt1stCl);
h1 = new TH1F("hResSlopeYAt1stCl","#Delta_{slope_{Y}} at first cluster;#Delta_{slope_{Y}}", deltaSlopeAtFirstClNBins, deltaSlopeAtFirstClEdges[0], deltaSlopeAtFirstClEdges[1]);
fTrackerList->AddAt(h1, kResSlopeYAt1stCl);
h2 = new TH2F("hResSlopeXAt1stClVsP","#Delta_{slope_{X}} at first cluster versus p;p (GeV/c);#Delta_{slope_{X}}",2*fNPBins,fPRange[0],fPRange[1], deltaSlopeAtFirstClNBins, deltaSlopeAtFirstClEdges[0], deltaSlopeAtFirstClEdges[1]);
fTrackerList->AddAt(h2, kResSlopeXAt1stClVsP);
h2 = new TH2F("hResSlopeYAt1stClVsP","#Delta_{slope_{Y}} at first cluster versus p;p (GeV/c);#Delta_{slope_{Y}}",2*fNPBins,fPRange[0],fPRange[1], deltaSlopeAtFirstClNBins, deltaSlopeAtFirstClEdges[0], deltaSlopeAtFirstClEdges[1]);
fTrackerList->AddAt(h2, kResSlopeYAt1stClVsP);
const Int_t deltaEtaAtVtxNBins = 500;
const Double_t deltaEtaAtVtxEdges[2] = {-0.5, 0.5};
h1 = new TH1F("hResEtaAtVtx","#Delta_{eta} at vertex;#Delta_{eta}", deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h1, kResEtaAtVtx);
h2 = new TH2F("hResEtaAtVtxVsP","#Delta_{eta} at vertex versus p;p (GeV/c);#Delta_{eta}",2*fNPBins,fPRange[0],fPRange[1], deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResEtaAtVtxVsP);
h2 = new TH2F("hResEtaAtVtxVsPosAbsEndIn02degMC","#Delta_{eta} at vertex versus track position at absorber end for tracks with MC angle < 2 degrees;position (cm);#Delta_{eta}",1000,0.,100.,deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResEtaAtVtxVsPosAbsEndIn02degMC);
h2 = new TH2F("hResEtaAtVtxVsPosAbsEndIn23degMC","#Delta_{eta} at vertex versus track position at absorber end for tracks with MC angle in [2,3[ degrees;position (cm);#Delta_{eta}",1000,0.,100.,deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResEtaAtVtxVsPosAbsEndIn23degMC);
h2 = new TH2F("hResEtaAtVtxVsPosAbsEndIn310degMC","#Delta_{eta} at vertex versus track position at absorber end for tracks with MC angle in [3,10[ degrees;position (cm);#Delta_{eta}",1000,0.,100.,deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResEtaAtVtxVsPosAbsEndIn310degMC);
h2 = new TH2F("hResEtaAtVtxVsAngleAtAbsEnd","#Delta_{eta} at vertex versus track position at absorber end converted to degrees;angle (Deg);#Delta_{eta}",10,0.,10.,deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResEtaAtVtxVsAngleAtAbsEnd);
h2 = new TH2F("hResEtaAtVtxVsMCAngle","#Delta_{eta} at vertex versus MC angle;MC angle (Deg);#Delta_{eta}",10,0.,10.,deltaEtaAtVtxNBins, deltaEtaAtVtxEdges[0], deltaEtaAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResEtaAtVtxVsMCAngle);
const Int_t deltaPhiAtVtxNBins = 500;
const Double_t deltaPhiAtVtxEdges[2] = {-0.5, 0.5};
h1 = new TH1F("hResPhiAtVtx","#Delta_{phi} at vertex;#Delta_{phi}", deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h1, kResPhiAtVtx);
h2 = new TH2F("hResPhiAtVtxVsP","#Delta_{phi} at vertex versus p;p (GeV/c);#Delta_{phi}",2*fNPBins,fPRange[0],fPRange[1], deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPhiAtVtxVsP);
h2 = new TH2F("hResPhiAtVtxVsPosAbsEndIn02degMC","#Delta_{phi} at vertex versus track position at absorber end for tracks with MC angle < 2 degrees;position (cm);#Delta_{phi}",1000,0.,100.,deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPhiAtVtxVsPosAbsEndIn02degMC);
h2 = new TH2F("hResPhiAtVtxVsPosAbsEndIn23degMC","#Delta_{phi} at vertex versus track position at absorber end for tracks with MC angle in [2,3[ degrees;position (cm);#Delta_{phi}",1000,0.,100.,deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPhiAtVtxVsPosAbsEndIn23degMC);
h2 = new TH2F("hResPhiAtVtxVsPosAbsEndIn310degMC","#Delta_{phi} at vertex versus track position at absorber end for tracks with MC angle in [3,10[ degrees;position (cm);#Delta_{phi}",1000,0.,100.,deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPhiAtVtxVsPosAbsEndIn310degMC);
h2 = new TH2F("hResPhiAtVtxVsAngleAtAbsEnd","#Delta_{phi} at vertex versus track position at absorber end converted to degrees;angle (Deg);#Delta_{phi}",10,0.,10.,deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPhiAtVtxVsAngleAtAbsEnd);
h2 = new TH2F("hResPhiAtVtxVsMCAngle","#Delta_{phi} at vertex versus MC angle;MC angle (Deg);#Delta_{phi}",10,0.,10.,deltaPhiAtVtxNBins, deltaPhiAtVtxEdges[0], deltaPhiAtVtxEdges[1]);
fTrackerList->AddAt(h2, kResPhiAtVtxVsMCAngle);
const Int_t deltaPDCANBins = 500;
const Double_t deltaPDCAEdges[2] = {0., 1000.};
const Double_t deltaPMCSAngEdges[2] = {-1.5, 1.5};
h1 = new TH1F("hPDCA","p #times DCA at vertex;p #times DCA (GeV #times cm)", deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h1, kPDCA);
h2 = new TH2F("hPDCAVsPIn23deg","p #times DCA versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);p #times DCA (GeV #times cm)",2*fNPBins,fPRange[0],fPRange[1], deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsPIn23deg);
h2 = new TH2F("hPDCAVsPIn310deg","p #times DCA versus p for tracks within [3,10[ degrees at absorber end;p (GeV/c);p #times DCA (GeV #times cm)",2*fNPBins,fPRange[0],fPRange[1], deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsPIn310deg);
h2 = new TH2F("hPDCAVsPosAbsEndIn02degMC","p #times DCA versus track position at absorber end for tracks with MC angle < 2 degrees;position (cm);p #times DCA (GeV #times cm)",1000,0.,100.,deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsPosAbsEndIn02degMC);
h2 = new TH2F("hPDCAVsPosAbsEndIn23degMC","p #times DCA}versus track position at absorber end for tracks with MC angle in [2,3[ degrees;position (cm);p #times DCA (GeV #times cm)",1000,0.,100.,deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsPosAbsEndIn23degMC);
h2 = new TH2F("hPDCAVsPosAbsEndIn310degMC","p #times DCA versus track position at absorber end for tracks with MC angle in [3,10[ degrees;position (cm);p #times DCA (GeV #times cm)",1000,0.,100.,deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsPosAbsEndIn310degMC);
h2 = new TH2F("hPDCAVsAngleAtAbsEnd","p #times DCA versus track position at absorber end converted to degrees;angle (Deg);p #times DCA (GeV #times cm)",10,0.,10.,deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsAngleAtAbsEnd);
h2 = new TH2F("hPDCAVsMCAngle","p #times DCA versus MC angle;MC angle (Deg);p #times DCA (GeV #times cm)",10,0.,10.,deltaPDCANBins, deltaPDCAEdges[0], deltaPDCAEdges[1]);
fTrackerList->AddAt(h2, kPDCAVsMCAngle);
h2 = new TH2F("hPMCSAngVsPIn23deg","p #times #Delta#theta_{MCS} versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);p #times #Delta#theta_{MCS} (GeV)",2*fNPBins,fPRange[0],fPRange[1], deltaPDCANBins, deltaPMCSAngEdges[0], deltaPMCSAngEdges[1]);
fTrackerList->AddAt(h2, kPMCSAngVsPIn23deg);
h2 = new TH2F("hPMCSAngVsPIn310deg","p #times #Delta#theta_{MCS} versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);p #times #Delta#theta_{MCS} (GeV)",2*fNPBins,fPRange[0],fPRange[1], deltaPDCANBins, deltaPMCSAngEdges[0], deltaPMCSAngEdges[1]);
fTrackerList->AddAt(h2, kPMCSAngVsPIn310deg);
Int_t nCh = AliMUONConstants::NTrackingCh();
const Int_t clusterResNBins = 5000;
Double_t clusterResMaxX = 10.*fClusterMaxRes[0];
Double_t clusterResMaxY = 10.*fClusterMaxRes[1];
h2 = new TH2F("hResClXVsCh", "cluster-track residual-X distribution per chamber;chamber ID;#Delta_{X} (cm)", nCh, 0.5, nCh+0.5, clusterResNBins, -clusterResMaxX, clusterResMaxX);
fTrackerList->AddAt(h2, kResClXVsCh);
h2 = new TH2F("hResClYVsCh", "cluster-track residual-Y distribution per chamber;chamber ID;#Delta_{Y} (cm)", nCh, 0.5, nCh+0.5, clusterResNBins, -clusterResMaxY, clusterResMaxY);
fTrackerList->AddAt(h2, kResClYVsCh);
h2 = new TH2F("hResClXVsDE", "cluster-track residual-X distribution per DE;DE ID;#Delta_{X} (cm)", fNDE, 0.5, fNDE+0.5, clusterResNBins, -clusterResMaxX, clusterResMaxX);
for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
fTrackerList->AddAt(h2, kResClXVsDE);
h2 = new TH2F("hResClYVsDE", "cluster-track residual-Y distribution per DE;DE ID;#Delta_{Y} (cm)", fNDE, 0.5, fNDE+0.5, clusterResNBins, -clusterResMaxY, clusterResMaxY);
for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
fTrackerList->AddAt(h2, kResClYVsDE);
AliLog::SetClassDebugLevel("AliMCEvent",-1);
PostData(1, fCFContainer);
PostData(2, fTriggerList);
PostData(3, fTrackerList);
}
void AliAnalysisTaskMuonPerformance::UserExec(Option_t * )
{
if (fSigmaCutTrig < 0) return;
AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
if ( ! esd ) {
AliError ("ESD event not found. Nothing done!");
return;
}
AliMCEventHandler* mcH = static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
if ( ! mcH ) {
AliError ("MCH event handler not found. Nothing done!");
return;
}
Double_t centrality = esd->GetCentrality()->GetCentralityPercentileUnchecked("V0M");
AliMUONRecoCheck rc(esd,mcH);
AliMUONVTriggerTrackStore* triggerTrackRefStore = rc.TriggerableTracks(-1);
AliMUONVTrackStore* trackRefStore = rc.TrackRefs(-1);
AliMUONVTrackStore* reconstructibleStore = rc.ReconstructibleTracks(-1, fRequestedStationMask, fRequest2ChInSameSt45);
Double_t containerInput[kNvars];
containerInput[kVarCent] = centrality;
AliMUONTrackParam *trackParam;
Double_t x1,y1,z1,slopex1,slopey1,pX1,pY1,pZ1,p1,pT1,eta1,phi1;
Double_t x2,y2,z2,slopex2,slopey2,pX2,pY2,pZ2,p2,pT2,eta2,phi2;
Double_t dPhi;
Double_t xAbs,yAbs,dAbs,aAbs,aMCS,aMC;
Double_t xDCA,yDCA,dca,pU;
AliESDMuonTrack *esdTrack = 0x0;
Int_t nMuTracks = esd->GetNumberOfMuonTracks();
Int_t *loCircuit = new Int_t[nMuTracks];
Int_t nTrgTracks = 0;
for (Int_t iMuTrack = 0; iMuTrack < nMuTracks; ++iMuTrack) {
esdTrack = esd->GetMuonTrack(iMuTrack);
AliMUONTrack* matchedTrackRef = 0x0;
containerInput[kVarMatchMC] = static_cast<Double_t>(kNoMatch);
Bool_t isValid = kFALSE;
if (esdTrack->ContainTrackerData()) {
AliMUONTrack muonTrack;
AliMUONESDInterface::ESDToMUON(*esdTrack, muonTrack, kFALSE);
isValid = (!fEnforceTrkCriteria || muonTrack.IsValid(fRequestedStationMask, fRequest2ChInSameSt45));
Int_t mcLabel = esdTrack->GetLabel();
if (mcLabel >= 0 && !esdTrack->TestBit(BIT(22)))
matchedTrackRef = static_cast<AliMUONTrack*>(trackRefStore->FindObject(mcLabel));
if (matchedTrackRef && isValid) containerInput[kVarMatchMC] = static_cast<Double_t>(kTrackerOnly);
if (matchedTrackRef && !esdTrack->TestBit(BIT(23))) {
trackParam = matchedTrackRef->GetTrackParamAtVertex();
x1 = trackParam->GetNonBendingCoor();
y1 = trackParam->GetBendingCoor();
z1 = trackParam->GetZ();
slopex1 = trackParam->GetNonBendingSlope();
slopey1 = trackParam->GetBendingSlope();
pX1 = trackParam->Px();
pY1 = trackParam->Py();
pZ1 = trackParam->Pz();
p1 = trackParam->P();
pT1 = TMath::Sqrt(pX1*pX1 + pY1*pY1);
aMC = TMath::ATan(-pT1/pZ1) * TMath::RadToDeg();
eta1 = TMath::Log(TMath::Tan(0.5*TMath::ATan(-pT1/pZ1)));
phi1 = TMath::Pi()+TMath::ATan2(-pY1, -pX1);
AliMUONTrackParam trackParamAtAbsEnd(*((AliMUONTrackParam*)muonTrack.GetTrackParamAtCluster()->First()));
AliMUONTrackExtrap::ExtrapToZ(&trackParamAtAbsEnd, AliMUONConstants::AbsZEnd());
xAbs = trackParamAtAbsEnd.GetNonBendingCoor();
yAbs = trackParamAtAbsEnd.GetBendingCoor();
dAbs = TMath::Sqrt(xAbs*xAbs + yAbs*yAbs);
aAbs = TMath::ATan(-dAbs/AliMUONConstants::AbsZEnd()) * TMath::RadToDeg();
pX2 = trackParamAtAbsEnd.Px();
pY2 = trackParamAtAbsEnd.Py();
pZ2 = trackParamAtAbsEnd.Pz();
pT2 = TMath::Sqrt(pX2*pX2 + pY2*pY2);
aMCS = TMath::ATan(-pT2/pZ2) * TMath::RadToDeg();
trackParam = muonTrack.GetTrackParamAtVertex();
x2 = trackParam->GetNonBendingCoor();
y2 = trackParam->GetBendingCoor();
z2 = trackParam->GetZ();
slopex2 = trackParam->GetNonBendingSlope();
slopey2 = trackParam->GetBendingSlope();
pX2 = trackParam->Px();
pY2 = trackParam->Py();
pZ2 = trackParam->Pz();
p2 = trackParam->P();
pT2 = TMath::Sqrt(pX2*pX2 + pY2*pY2);
eta2 = TMath::Log(TMath::Tan(0.5*TMath::ATan(-pT2/pZ2)));
phi2 = TMath::Pi()+TMath::ATan2(-pY2, -pX2);
AliMUONTrackParam trackParamAtDCA(*((AliMUONTrackParam*) muonTrack.GetTrackParamAtCluster()->First()));
pU = trackParamAtDCA.P();
AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(&trackParamAtDCA, z2);
xDCA = trackParamAtDCA.GetNonBendingCoor();
yDCA = trackParamAtDCA.GetBendingCoor();
dca = TMath::Sqrt(xDCA*xDCA + yDCA*yDCA);
dPhi = phi2-phi1;
if (dPhi < -TMath::Pi()) dPhi += 2.*TMath::Pi();
else if (dPhi > TMath::Pi()) dPhi -= 2.*TMath::Pi();
static_cast<TH1*>(fTrackerList->At(kResPAtVtx))->Fill(p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsP))->Fill(p1,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsAngleAtAbsEnd))->Fill(aAbs,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsMCAngle))->Fill(aMC,p2-p1);
static_cast<TH3*>(fTrackerList->At(kResPAtVtxVsAngleAtAbsEndVsP))->Fill(p1,aAbs,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPtAtVtxVsPt))->Fill(pT1,pT2-pT1);
static_cast<TH1*>(fTrackerList->At(kResSlopeXAtVtx))->Fill(slopex2-slopex1);
static_cast<TH1*>(fTrackerList->At(kResSlopeYAtVtx))->Fill(slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAtVtxVsP))->Fill(p1,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAtVtxVsP))->Fill(p1,slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAtVtxVsAngleAtAbsEnd))->Fill(aAbs,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAtVtxVsAngleAtAbsEnd))->Fill(aAbs,slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAtVtxVsMCAngle))->Fill(aMC,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAtVtxVsMCAngle))->Fill(aMC,slopey2-slopey1);
static_cast<TH1*>(fTrackerList->At(kResEtaAtVtx))->Fill(eta2-eta1);
static_cast<TH2*>(fTrackerList->At(kResEtaAtVtxVsP))->Fill(p1,eta2-eta1);
static_cast<TH2*>(fTrackerList->At(kResEtaAtVtxVsAngleAtAbsEnd))->Fill(aAbs,eta2-eta1);
static_cast<TH2*>(fTrackerList->At(kResEtaAtVtxVsMCAngle))->Fill(aMC,eta2-eta1);
static_cast<TH1*>(fTrackerList->At(kResPhiAtVtx))->Fill(dPhi);
static_cast<TH2*>(fTrackerList->At(kResPhiAtVtxVsP))->Fill(p1,dPhi);
static_cast<TH2*>(fTrackerList->At(kResPhiAtVtxVsAngleAtAbsEnd))->Fill(aAbs,dPhi);
static_cast<TH2*>(fTrackerList->At(kResPhiAtVtxVsMCAngle))->Fill(aMC,dPhi);
static_cast<TH1*>(fTrackerList->At(kPDCA))->Fill(0.5*(p2+pU)*dca);
static_cast<TH2*>(fTrackerList->At(kPDCAVsAngleAtAbsEnd))->Fill(aAbs,0.5*(p2+pU)*dca);
static_cast<TH2*>(fTrackerList->At(kPDCAVsMCAngle))->Fill(aMC,0.5*(p2+pU)*dca);
if (aAbs > 2. && aAbs < 3.) {
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsPIn23deg))->Fill(p1,p2-p1);
static_cast<TH2*>(fTrackerList->At(kPDCAVsPIn23deg))->Fill(p1,0.5*(p2+pU)*dca);
static_cast<TH2*>(fTrackerList->At(kPMCSAngVsPIn23deg))->Fill(p1,0.5*(p2+pU)*(aMCS-aMC)*TMath::DegToRad());
} else if (aAbs >= 3. && aAbs < 10.) {
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsPIn310deg))->Fill(p1,p2-p1);
static_cast<TH2*>(fTrackerList->At(kPDCAVsPIn310deg))->Fill(p1,0.5*(p2+pU)*dca);
static_cast<TH2*>(fTrackerList->At(kPMCSAngVsPIn310deg))->Fill(p1,0.5*(p2+pU)*(aMCS-aMC)*TMath::DegToRad());
}
if (aMC < 2.) {
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsPIn02degMC))->Fill(p1,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsPosAbsEndIn02degMC))->Fill(dAbs,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAtVtxVsPosAbsEndIn02degMC))->Fill(dAbs,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAtVtxVsPosAbsEndIn02degMC))->Fill(dAbs,slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResEtaAtVtxVsPosAbsEndIn02degMC))->Fill(dAbs,eta2-eta1);
static_cast<TH2*>(fTrackerList->At(kResPhiAtVtxVsPosAbsEndIn02degMC))->Fill(dAbs,dPhi);
static_cast<TH2*>(fTrackerList->At(kPDCAVsPosAbsEndIn02degMC))->Fill(dAbs,0.5*(p2+pU)*dca);
} else if (aMC >= 2. && aMC < 3) {
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsPosAbsEndIn23degMC))->Fill(dAbs,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAtVtxVsPosAbsEndIn23degMC))->Fill(dAbs,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAtVtxVsPosAbsEndIn23degMC))->Fill(dAbs,slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResEtaAtVtxVsPosAbsEndIn23degMC))->Fill(dAbs,eta2-eta1);
static_cast<TH2*>(fTrackerList->At(kResPhiAtVtxVsPosAbsEndIn23degMC))->Fill(dAbs,dPhi);
static_cast<TH2*>(fTrackerList->At(kPDCAVsPosAbsEndIn23degMC))->Fill(dAbs,0.5*(p2+pU)*dca);
} else if (aMC >= 3. && aMC < 10.) {
static_cast<TH2*>(fTrackerList->At(kResPAtVtxVsPosAbsEndIn310degMC))->Fill(dAbs,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAtVtxVsPosAbsEndIn310degMC))->Fill(dAbs,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAtVtxVsPosAbsEndIn310degMC))->Fill(dAbs,slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResEtaAtVtxVsPosAbsEndIn310degMC))->Fill(dAbs,eta2-eta1);
static_cast<TH2*>(fTrackerList->At(kResPhiAtVtxVsPosAbsEndIn310degMC))->Fill(dAbs,dPhi);
static_cast<TH2*>(fTrackerList->At(kPDCAVsPosAbsEndIn310degMC))->Fill(dAbs,0.5*(p2+pU)*dca);
}
trackParam = (AliMUONTrackParam*) matchedTrackRef->GetTrackParamAtCluster()->First();
x1 = trackParam->GetNonBendingCoor();
y1 = trackParam->GetBendingCoor();
z1 = trackParam->GetZ();
slopex1 = trackParam->GetNonBendingSlope();
slopey1 = trackParam->GetBendingSlope();
pX1 = trackParam->Px();
pY1 = trackParam->Py();
pZ1 = trackParam->Pz();
p1 = trackParam->P();
pT1 = TMath::Sqrt(pX1*pX1 + pY1*pY1);
trackParam = (AliMUONTrackParam*) muonTrack.GetTrackParamAtCluster()->First();
x2 = trackParam->GetNonBendingCoor();
y2 = trackParam->GetBendingCoor();
z2 = trackParam->GetZ();
slopex2 = trackParam->GetNonBendingSlope();
slopey2 = trackParam->GetBendingSlope();
pX2 = trackParam->Px();
pY2 = trackParam->Py();
pZ2 = trackParam->Pz();
p2 = trackParam->P();
pT2 = TMath::Sqrt(pX2*pX2 + pY2*pY2);
static_cast<TH1*>(fTrackerList->At(kResPAt1stCl))->Fill(p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPAt1stClVsP))->Fill(p1,p2-p1);
static_cast<TH2*>(fTrackerList->At(kResPtAt1stClVsPt))->Fill(pT1,pT2-pT1);
static_cast<TH1*>(fTrackerList->At(kResSlopeXAt1stCl))->Fill(slopex2-slopex1);
static_cast<TH1*>(fTrackerList->At(kResSlopeYAt1stCl))->Fill(slopey2-slopey1);
static_cast<TH2*>(fTrackerList->At(kResSlopeXAt1stClVsP))->Fill(p1,slopex2-slopex1);
static_cast<TH2*>(fTrackerList->At(kResSlopeYAt1stClVsP))->Fill(p1,slopey2-slopey1);
for (Int_t iCl1 = 0; iCl1 < muonTrack.GetNClusters(); iCl1++) {
AliMUONVCluster* cluster1 = static_cast<AliMUONTrackParam*>(muonTrack.GetTrackParamAtCluster()->UncheckedAt(iCl1))->GetClusterPtr();
Int_t chId = cluster1->GetChamberId();
Int_t deId = cluster1->GetDetElemId();
for (Int_t iCl2 = 0; iCl2 < matchedTrackRef->GetNClusters(); iCl2++) {
AliMUONVCluster* cluster2 = static_cast<AliMUONTrackParam*>(matchedTrackRef->GetTrackParamAtCluster()->UncheckedAt(iCl2))->GetClusterPtr();
if (cluster2->GetDetElemId() == deId) {
static_cast<TH2*>(fTrackerList->At(kResClXVsCh))->Fill(chId+1, cluster1->GetX()-cluster2->GetX());
static_cast<TH2*>(fTrackerList->At(kResClYVsCh))->Fill(chId+1, cluster1->GetY()-cluster2->GetY());
static_cast<TH2*>(fTrackerList->At(kResClXVsDE))->Fill(fDEIndices[deId], cluster1->GetX()-cluster2->GetX());
static_cast<TH2*>(fTrackerList->At(kResClYVsDE))->Fill(fDEIndices[deId], cluster1->GetY()-cluster2->GetY());
break;
}
}
}
}
}
AliMUONTriggerTrack* triggerTrackRef = (isValid && matchedTrackRef)
? static_cast<AliMUONTriggerTrack*>(triggerTrackRefStore->FindObject(matchedTrackRef->GetUniqueID()))
: 0x0;
AliMUONTriggerTrack* matchedTrigTrackRef = 0x0;
containerInput[kVarDupliTrg] = 0.;
if (esdTrack->ContainTriggerData()) {
Bool_t trackExist = kFALSE;
for (Int_t i=0; i<nTrgTracks; i++) if (esdTrack->LoCircuit() == loCircuit[i]) trackExist = kTRUE;
if (trackExist) containerInput[kVarDupliTrg] = 1.;
else loCircuit[nTrgTracks++] = esdTrack->LoCircuit();
AliMUONLocalTrigger locTrg;
AliMUONESDInterface::ESDToMUON(*esdTrack, locTrg);
AliMUONTriggerTrack trigTrack;
rc.TriggerToTrack(locTrg, trigTrack);
if (triggerTrackRef && trigTrack.Match(*triggerTrackRef, fSigmaCutTrig)) matchedTrigTrackRef = triggerTrackRef;
if (matchedTrigTrackRef) containerInput[kVarMatchMC] = static_cast<Double_t>(kMatchedSame);
else {
matchedTrigTrackRef = rc.FindCompatibleTrack(trigTrack, *triggerTrackRefStore, fSigmaCutTrig);
if (matchedTrigTrackRef) {
if (isValid && matchedTrackRef) {
containerInput[kVarMatchMC] = static_cast<Double_t>(kMatchedDiff);
if (!fMCTrigLevelFromMatchTrk) triggerTrackRef = matchedTrigTrackRef;
} else {
containerInput[kVarMatchMC] = static_cast<Double_t>(kTriggerOnly);
triggerTrackRef = matchedTrigTrackRef;
}
}
}
if (matchedTrigTrackRef) {
static_cast<TH1*>(fTriggerList->At(kResTrigX11))->Fill(trigTrack.GetX11() - matchedTrigTrackRef->GetX11());
static_cast<TH1*>(fTriggerList->At(kResTrigY11))->Fill(trigTrack.GetY11() - matchedTrigTrackRef->GetY11());
static_cast<TH1*>(fTriggerList->At(kResTrigSlopeY))->Fill(trigTrack.GetSlopeY() - matchedTrigTrackRef->GetSlopeY());
}
}
if (triggerTrackRef) {
if (triggerTrackRef->GetPtCutLevel() == 0) containerInput[kVarMCTrigger] = static_cast<Double_t>(kOtherTrig);
else if (triggerTrackRef->GetPtCutLevel() == 1) containerInput[kVarMCTrigger] = static_cast<Double_t>(kAllPtTrig);
else if (triggerTrackRef->GetPtCutLevel() == 2) containerInput[kVarMCTrigger] = static_cast<Double_t>(kLowPtTrig);
else if (triggerTrackRef->GetPtCutLevel() == 3) containerInput[kVarMCTrigger] = static_cast<Double_t>(kHighPtTrig);
} else containerInput[kVarMCTrigger] = kNoMatchTrig;
Int_t mcID = -1;
if (isValid && matchedTrackRef) mcID = static_cast<Int_t>(matchedTrackRef->GetUniqueID());
else if (matchedTrigTrackRef) mcID = static_cast<Int_t>(matchedTrigTrackRef->GetUniqueID());
FillContainerInfoReco(containerInput, esdTrack, isValid, mcID);
fCFContainer->Fill(containerInput, kStepReconstructed);
}
delete[] loCircuit;
containerInput[kVarDupliTrg] = 0.;
AliMUONTrack* trackRef = 0x0;
TIter next(reconstructibleStore->CreateIterator());
while ((trackRef = static_cast<AliMUONTrack*>(next()))) {
UInt_t mcID = trackRef->GetUniqueID();
AliMUONTriggerTrack* trigTrackRef = static_cast<AliMUONTriggerTrack*>(triggerTrackRefStore->FindObject(mcID));
FillContainerInfoMC(containerInput, static_cast<AliMCParticle*>(fMCEvent->GetTrack(static_cast<Int_t>(mcID))));
containerInput[kVarHasTracker] = 1.;
if (trigTrackRef) {
if (trigTrackRef->GetPtCutLevel() == 0) containerInput[kVarTrigger] = static_cast<Double_t>(kOtherTrig);
else if (trigTrackRef->GetPtCutLevel() == 1) containerInput[kVarTrigger] = static_cast<Double_t>(kAllPtTrig);
else if (trigTrackRef->GetPtCutLevel() == 2) containerInput[kVarTrigger] = static_cast<Double_t>(kLowPtTrig);
else if (trigTrackRef->GetPtCutLevel() == 3) containerInput[kVarTrigger] = static_cast<Double_t>(kHighPtTrig);
} else containerInput[kVarTrigger] = static_cast<Double_t>(kNoMatchTrig);
containerInput[kVarMatchMC] = static_cast<Double_t>(kNoMatch);
containerInput[kVarMCTrigger] = static_cast<Double_t>(kNoMatchTrig);
fCFContainer->Fill(containerInput, kStepGeneratedMC);
}
AliMUONTriggerTrack* trigTrackRef = 0x0;
TIter nextTrig(triggerTrackRefStore->CreateIterator());
while ((trigTrackRef = static_cast<AliMUONTriggerTrack*>(nextTrig()))) {
UInt_t mcID = trigTrackRef->GetUniqueID();
if (reconstructibleStore->FindObject(mcID)) continue;
FillContainerInfoMC(containerInput, static_cast<AliMCParticle*>(fMCEvent->GetTrack(static_cast<Int_t>(mcID))));
containerInput[kVarHasTracker] = 0.;
if (trigTrackRef->GetPtCutLevel() == 0) containerInput[kVarTrigger] = static_cast<Double_t>(kOtherTrig);
else if (trigTrackRef->GetPtCutLevel() == 1) containerInput[kVarTrigger] = static_cast<Double_t>(kAllPtTrig);
else if (trigTrackRef->GetPtCutLevel() == 2) containerInput[kVarTrigger] = static_cast<Double_t>(kLowPtTrig);
else if (trigTrackRef->GetPtCutLevel() == 3) containerInput[kVarTrigger] = static_cast<Double_t>(kHighPtTrig);
containerInput[kVarMatchMC] = static_cast<Double_t>(kNoMatch);
containerInput[kVarMCTrigger] = static_cast<Double_t>(kNoMatchTrig);
fCFContainer->Fill(containerInput, kStepGeneratedMC);
}
PostData(1, fCFContainer);
PostData(2, fTriggerList);
PostData(3, fTrackerList);
}
void AliAnalysisTaskMuonPerformance::Terminate(Option_t *)
{
fCFContainer = dynamic_cast<AliCFContainer*>(GetOutputData(1));
fTriggerList = dynamic_cast<TObjArray*>(GetOutputData(2));
fTrackerList = dynamic_cast<TObjArray*>(GetOutputData(3));
if (!fCFContainer || !fTriggerList || !fTrackerList) {
AliWarning("Output containers not found: summary histograms are not created");
return;
}
fEfficiencyList = new TObjArray(100);
fEfficiencyList->SetOwner();
TObjArray* effAnyPt = new TObjArray(100);
effAnyPt->SetName("effAnyPt");
effAnyPt->SetOwner();
fEfficiencyList->AddLast(effAnyPt);
TObjArray* effAllPt = new TObjArray(100);
effAllPt->SetName("effAllPt");
effAllPt->SetOwner();
fEfficiencyList->AddLast(effAllPt);
TObjArray* effLowPt = new TObjArray(100);
effLowPt->SetName("effLowPt");
effLowPt->SetOwner();
fEfficiencyList->AddLast(effLowPt);
TObjArray* effHighPt = new TObjArray(100);
effHighPt->SetName("effHighPt");
effHighPt->SetOwner();
fEfficiencyList->AddLast(effHighPt);
TObjArray* notTrgable = new TObjArray(100);
notTrgable->SetName("notTrgable");
notTrgable->SetOwner();
fEfficiencyList->AddLast(notTrgable);
TObjArray* trgableNoPtOnly = new TObjArray(100);
trgableNoPtOnly->SetName("trgableNoPtOnly");
trgableNoPtOnly->SetOwner();
fEfficiencyList->AddLast(trgableNoPtOnly);
TObjArray* trgableAPtOnly = new TObjArray(100);
trgableAPtOnly->SetName("trgableAPtOnly");
trgableAPtOnly->SetOwner();
fEfficiencyList->AddLast(trgableAPtOnly);
TObjArray* trgableLPtOnly = new TObjArray(100);
trgableLPtOnly->SetName("trgableLPtOnly");
trgableLPtOnly->SetOwner();
fEfficiencyList->AddLast(trgableLPtOnly);
TObjArray* trgableHPtOnly = new TObjArray(100);
trgableHPtOnly->SetName("trgableHPtOnly");
trgableHPtOnly->SetOwner();
fEfficiencyList->AddLast(trgableHPtOnly);
AliCFEffGrid* efficiency = new AliCFEffGrid("eff","",*fCFContainer);
efficiency->CalculateEfficiency(kStepReconstructed, kStepGeneratedMC);
Double_t totalEff = 0., totalEffErr = 0.;
Int_t sumEffBin = 0;
TH1D* effSummary = new TH1D("effSummary", "Efficiency summary", 1, 0., 0.);
effSummary->GetYaxis()->SetTitle("Efficiency");
fEfficiencyList->AddLast(effSummary);
efficiency->GetNum()->SetRangeUser(kVarHasTracker, 1., 1.);
efficiency->GetDen()->SetRangeUser(kVarHasTracker, 1., 1.);
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
FillEffHistos(efficiency, "trackerTracks", fEfficiencyList);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Tracker_all", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Tracker efficiency using all reconstructed tracks = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kMatchedDiff);
FillEffHistos(efficiency, "trackerTracksMatchMC", fEfficiencyList);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Tracker_MCId", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Tracker efficiency using reconstructed tracks matching MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kHighPtTrig);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kOtherTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
FillEffHistos(efficiency, "matchedTracks", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_all", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using all reconstructed tracks = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kMatchedDiff);
FillEffHistos(efficiency, "matchedTracksMatchMC", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_MCId", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using reconstructed tracks matching MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCAnypt", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_MCIdAnypt", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using reconstructed tracks matching MC-anyPt = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCNoTrig", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_MCIdNoTrig", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using reconstructed tracks matching MC-noTrig = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kMatchedSame);
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
FillEffHistos(efficiency, "matchedTracksMatchSameMC", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_SameMCId", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using reconstructed tracks matching same MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedDiff, kMatchedDiff);
FillEffHistos(efficiency, "matchedTracksMatchDiffMC", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_DiffMCId", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using reconstructed tracks matching different MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kTrackerOnly);
FillEffHistos(efficiency, "matchedTracksMatchTrkMC", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Matched_TrkMCId", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Matched efficiency using reconstructed tracks matching tracker MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kAllPtTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
FillEffHistos(efficiency, "matchedTracks", effAllPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Apt efficiency using all reconstructed tracks = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kMatchedDiff);
FillEffHistos(efficiency, "matchedTracksMatchMC", effAllPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Apt efficiency using reconstructed tracks matching MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kAllPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCApt", effAllPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Apt efficiency using reconstructed tracks matching MC-Apt = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kOtherTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCOther", effAllPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Apt efficiency using reconstructed tracks matching MC-other = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCNoTrig", effAllPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Apt efficiency using reconstructed tracks matching MC-noTrig = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kMatchedSame);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kAllPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchSameMCApt", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kOtherTrig);
FillEffHistos(efficiency, "matchedTracksMatchSameMCOther", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedDiff, kMatchedDiff);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kAllPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchDiffMCApt", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kOtherTrig);
FillEffHistos(efficiency, "matchedTracksMatchDiffMCOther", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kTrackerOnly);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kAllPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchTrkMCApt", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kOtherTrig);
FillEffHistos(efficiency, "matchedTracksMatchTrkMCOther", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kHighPtTrig);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kLowPtTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
FillEffHistos(efficiency, "matchedTracks", effLowPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Lpt efficiency using all reconstructed tracks = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kMatchedDiff);
FillEffHistos(efficiency, "matchedTracksMatchMC", effLowPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Lpt efficiency using reconstructed tracks matching MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kLowPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCLpt", effLowPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Lpt efficiency using reconstructed tracks matching MC-Lpt = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kAllPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCOther", effLowPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Lpt efficiency using reconstructed tracks matching MC-other = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCNoTrig", effLowPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Lpt efficiency using reconstructed tracks matching MC-noTrig = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kMatchedSame);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kLowPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchSameMCLpt", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kAllPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchSameMCOther", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedDiff, kMatchedDiff);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kLowPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchDiffMCLpt", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kAllPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchDiffMCOther", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kTrackerOnly);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kLowPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchTrkMCLpt", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kAllPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchTrkMCOther", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
FillEffHistos(efficiency, "matchedTracks", effHighPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Hpt efficiency using all reconstructed tracks = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kMatchedDiff);
FillEffHistos(efficiency, "matchedTracksMatchMC", effHighPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Hpt efficiency using reconstructed tracks matching MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCHpt", effHighPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Hpt efficiency using reconstructed tracks matching MC-Hpt = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kLowPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCOther", effHighPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Hpt efficiency using reconstructed tracks matching MC-other = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "matchedTracksMatchMCNoTrig", effHighPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
printf("Matched Hpt efficiency using reconstructed tracks matching MC-noTrig = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kMatchedSame);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchSameMCHpt", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kLowPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchSameMCOther", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedDiff, kMatchedDiff);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchDiffMCHpt", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kLowPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchDiffMCOther", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kTrackerOnly);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchTrkMCHpt", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kLowPtTrig);
FillEffHistos(efficiency, "matchedTracksMatchTrkMCOther", effHighPt);
efficiency->GetNum()->GetAxis(kVarHasTracker)->SetRange();
efficiency->GetDen()->GetAxis(kVarHasTracker)->SetRange();
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kHighPtTrig);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kOtherTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
efficiency->GetNum()->SetRangeUser(kVarDupliTrg, 0., 0.);
FillEffHistos(efficiency, "triggerTracks", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Trigger_all", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Trigger efficiency using all reconstructed tracks = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kTriggerOnly);
FillEffHistos(efficiency, "triggerTracksMatchMC", effAnyPt);
GetEfficiency(efficiency, totalEff, totalEffErr);
effSummary->Fill("Trigger_MCId", totalEff);
effSummary->SetBinError(++sumEffBin, totalEffErr);
printf("Trigger efficiency using reconstructed tracks matching MC = %f +- %f\n", totalEff, totalEffErr);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kAllPtTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
FillEffHistos(efficiency, "triggerTracks", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kTriggerOnly);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kAllPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "triggerTracksMatchMCApt", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kOtherTrig);
FillEffHistos(efficiency, "triggerTracksMatchMCOther", effAllPt);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kHighPtTrig);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kLowPtTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
FillEffHistos(efficiency, "triggerTracks", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kTriggerOnly);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kLowPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "triggerTracksMatchMCLpt", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kAllPtTrig);
FillEffHistos(efficiency, "triggerTracksMatchMCOther", effLowPt);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
efficiency->GetDen()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
FillEffHistos(efficiency, "triggerTracks", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kMatchedSame, kTriggerOnly);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "triggerTracksMatchMCHpt", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kLowPtTrig);
FillEffHistos(efficiency, "triggerTracksMatchMCOther", effHighPt);
efficiency->GetNum()->SetRangeUser(kVarHasTracker, 1., 1.);
efficiency->GetDen()->SetRangeUser(kVarHasTracker, 1., 1.);
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->SetRangeUser(kVarTrigger, kNoMatchTrig, kNoMatchTrig);
efficiency->GetNum()->SetRangeUser(kVarMatchMC, kTrackerOnly, kMatchedDiff);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kNoMatchTrig, kNoMatchTrig);
efficiency->GetNum()->GetAxis(kVarDupliTrg)->SetRange();
FillEffHistos(efficiency, "allTracks", notTrgable);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "notMatched", notTrgable);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kAllPtTrig);
FillEffHistos(efficiency, "MatchedApt", notTrgable);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kLowPtTrig);
FillEffHistos(efficiency, "MatchedLpt", notTrgable);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "MatchedHpt", notTrgable);
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->SetRangeUser(kVarTrigger, kOtherTrig, kOtherTrig);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kOtherTrig, kOtherTrig);
FillEffHistos(efficiency, "allTracks", trgableNoPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "notMatched", trgableNoPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kAllPtTrig);
FillEffHistos(efficiency, "MatchedApt", trgableNoPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kLowPtTrig);
FillEffHistos(efficiency, "MatchedLpt", trgableNoPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "MatchedHpt", trgableNoPtOnly);
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->SetRangeUser(kVarTrigger, kAllPtTrig, kAllPtTrig);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kAllPtTrig, kAllPtTrig);
FillEffHistos(efficiency, "allTracks", trgableAPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "notMatched", trgableAPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kAllPtTrig);
FillEffHistos(efficiency, "MatchedApt", trgableAPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kLowPtTrig);
FillEffHistos(efficiency, "MatchedLpt", trgableAPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "MatchedHpt", trgableAPtOnly);
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->SetRangeUser(kVarTrigger, kLowPtTrig, kLowPtTrig);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kLowPtTrig, kLowPtTrig);
FillEffHistos(efficiency, "allTracks", trgableLPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "notMatched", trgableLPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kAllPtTrig);
FillEffHistos(efficiency, "MatchedApt", trgableLPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kLowPtTrig);
FillEffHistos(efficiency, "MatchedLpt", trgableLPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "MatchedHpt", trgableLPtOnly);
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
efficiency->GetNum()->SetRangeUser(kVarMCTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "allTracks", trgableHPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kNoMatchTrig, kNoMatchTrig);
FillEffHistos(efficiency, "notMatched", trgableHPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kAllPtTrig, kAllPtTrig);
FillEffHistos(efficiency, "MatchedApt", trgableHPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kLowPtTrig, kLowPtTrig);
FillEffHistos(efficiency, "MatchedLpt", trgableHPtOnly);
efficiency->GetNum()->SetRangeUser(kVarTrigger, kHighPtTrig, kHighPtTrig);
FillEffHistos(efficiency, "MatchedHpt", trgableHPtOnly);
efficiency->GetNum()->GetAxis(kVarHasTracker)->SetRange();
efficiency->GetDen()->GetAxis(kVarHasTracker)->SetRange();
efficiency->GetNum()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetDen()->GetAxis(kVarTrigger)->SetRange();
efficiency->GetNum()->GetAxis(kVarMatchMC)->SetRange();
efficiency->GetNum()->GetAxis(kVarMCTrigger)->SetRange();
efficiency->GetNum()->GetAxis(kVarDupliTrg)->SetRange();
TCanvas* cEffSummary = new TCanvas("cEffSummary","Efficiency summary",20,20,310,310);
cEffSummary->SetFillColor(10); cEffSummary->SetHighLightColor(10);
cEffSummary->SetLeftMargin(0.15); cEffSummary->SetBottomMargin(0.15);
effSummary->DrawCopy("etext");
TCanvas* cTriggerResolution = new TCanvas("cTriggerResolution","Trigger resolution",10,10,310,310);
cTriggerResolution->SetFillColor(10); cTriggerResolution->SetHighLightColor(10);
cTriggerResolution->SetLeftMargin(0.15); cTriggerResolution->SetBottomMargin(0.15);
cTriggerResolution->Divide(2,2);
cTriggerResolution->cd(1);
static_cast<TH1*>(fTriggerList->UncheckedAt(kResTrigX11))->DrawCopy();
cTriggerResolution->cd(2);
static_cast<TH1*>(fTriggerList->UncheckedAt(kResTrigY11))->DrawCopy();
cTriggerResolution->cd(3);
static_cast<TH1*>(fTriggerList->UncheckedAt(kResTrigSlopeY))->DrawCopy();
fPAtVtxList = new TObjArray(100);
fPAtVtxList->SetOwner();
TGraphAsymmErrors* gMeanResPAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gMeanResPAtVtxVsP->SetName("gMeanResPAtVtxVsP");
gMeanResPAtVtxVsP->SetTitle("<#Delta_{p}> at vertex versus p;p (GeV/c);<#Delta_{p}> (GeV/c)");
fPAtVtxList->AddAt(gMeanResPAtVtxVsP, kMeanResPAtVtxVsP);
TGraphAsymmErrors* gMostProbResPAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gMostProbResPAtVtxVsP->SetName("gMostProbResPAtVtxVsP");
gMostProbResPAtVtxVsP->SetTitle("Most probable #Delta_{p} at vertex versus p;p (GeV/c);Most prob. #Delta_{p} (GeV/c)");
fPAtVtxList->AddAt(gMostProbResPAtVtxVsP, kMostProbResPAtVtxVsP);
TGraphAsymmErrors* gSigmaResPAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResPAtVtxVsP->SetName("gSigmaResPAtVtxVsP");
gSigmaResPAtVtxVsP->SetTitle("#sigma_{p}/p at vertex versus p;p (GeV/c);#sigma_{p}/p (%)");
fPAtVtxList->AddAt(gSigmaResPAtVtxVsP, kSigmaResPAtVtxVsP);
TH2* h = static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsP));
FitLandauGausResVsP(h, "momentum residuals at vertex", gMeanResPAtVtxVsP, gMostProbResPAtVtxVsP, gSigmaResPAtVtxVsP);
Int_t rebinFactorX = TMath::Max(h->GetNbinsX()/fNPBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
Double_t x,y;
gSigmaResPAtVtxVsP->GetPoint(i/rebinFactorX-1, x, y);
gSigmaResPAtVtxVsP->SetPoint(i/rebinFactorX-1, x, 100.*y/x);
gSigmaResPAtVtxVsP->SetPointEYlow(i/rebinFactorX-1, 100.*gSigmaResPAtVtxVsP->GetErrorYlow(i/rebinFactorX-1)/x);
gSigmaResPAtVtxVsP->SetPointEYhigh(i/rebinFactorX-1, 100.*gSigmaResPAtVtxVsP->GetErrorYhigh(i/rebinFactorX-1)/x);
}
fPAt1stClList = new TObjArray(100);
fPAt1stClList->SetOwner();
TGraphAsymmErrors* gMeanResPAt1stClVsP = new TGraphAsymmErrors(fNPBins);
gMeanResPAt1stClVsP->SetName("gMeanResPAt1stClVsP");
gMeanResPAt1stClVsP->SetTitle("<#Delta_{p}> at first cluster versus p;p (GeV/c);<#Delta_{p}> (GeV/c)");
fPAt1stClList->AddAt(gMeanResPAt1stClVsP, kMeanResPAt1stClVsP);
TGraphAsymmErrors* gSigmaResPAt1stClVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResPAt1stClVsP->SetName("gSigmaResPAt1stClVsP");
gSigmaResPAt1stClVsP->SetTitle("#sigma_{p}/p at first cluster versus p;p (GeV/c);#sigma_{p}/p (%)");
fPAt1stClList->AddAt(gSigmaResPAt1stClVsP, kSigmaResPAt1stClVsP);
h = static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAt1stClVsP));
FitGausResVsMom(h, 0., 1., "momentum residuals at first cluster", gMeanResPAt1stClVsP, gSigmaResPAt1stClVsP);
rebinFactorX = TMath::Max(h->GetNbinsX()/fNPBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
Double_t x,y;
gSigmaResPAt1stClVsP->GetPoint(i/rebinFactorX-1, x, y);
gSigmaResPAt1stClVsP->SetPoint(i/rebinFactorX-1, x, 100.*y/x);
gSigmaResPAt1stClVsP->SetPointEYlow(i/rebinFactorX-1, 100.*gSigmaResPAt1stClVsP->GetErrorYlow(i/rebinFactorX-1)/x);
gSigmaResPAt1stClVsP->SetPointEYhigh(i/rebinFactorX-1, 100.*gSigmaResPAt1stClVsP->GetErrorYhigh(i/rebinFactorX-1)/x);
}
fSlopeAtVtxList = new TObjArray(100);
fSlopeAtVtxList->SetOwner();
TGraphAsymmErrors* gMeanResSlopeXAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gMeanResSlopeXAtVtxVsP->SetName("gMeanResSlopeXAtVtxVsP");
gMeanResSlopeXAtVtxVsP->SetTitle("<#Delta_{slope_{X}}> at vertex versus p;p (GeV/c);<#Delta_{slope_{X}}>");
fSlopeAtVtxList->AddAt(gMeanResSlopeXAtVtxVsP, kMeanResSlopeXAtVtxVsP);
TGraphAsymmErrors* gMeanResSlopeYAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gMeanResSlopeYAtVtxVsP->SetName("gMeanResSlopeYAtVtxVsP");
gMeanResSlopeYAtVtxVsP->SetTitle("<#Delta_{slope_{Y}}> at vertex versus p;p (GeV/c);<#Delta_{slope_{Y}}>");
fSlopeAtVtxList->AddAt(gMeanResSlopeYAtVtxVsP, kMeanResSlopeYAtVtxVsP);
TGraphAsymmErrors* gSigmaResSlopeXAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResSlopeXAtVtxVsP->SetName("gSigmaResSlopeXAtVtxVsP");
gSigmaResSlopeXAtVtxVsP->SetTitle("#sigma_{slope_{X}} at vertex versus p;p (GeV/c);#sigma_{slope_{X}}");
fSlopeAtVtxList->AddAt(gSigmaResSlopeXAtVtxVsP, kSigmaResSlopeXAtVtxVsP);
TGraphAsymmErrors* gSigmaResSlopeYAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResSlopeYAtVtxVsP->SetName("gSigmaResSlopeYAtVtxVsP");
gSigmaResSlopeYAtVtxVsP->SetTitle("#sigma_{slope_{Y}} at vertex versus p;p (GeV/c);#sigma_{slope_{Y}}");
fSlopeAtVtxList->AddAt(gSigmaResSlopeYAtVtxVsP, kSigmaResSlopeYAtVtxVsP);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAtVtxVsP)), 0., 2.e-3,
"slopeX residuals at vertex", gMeanResSlopeXAtVtxVsP, gSigmaResSlopeXAtVtxVsP);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAtVtxVsP)), 0., 2.e-3,
"slopeY residuals at vertex", gMeanResSlopeYAtVtxVsP, gSigmaResSlopeYAtVtxVsP);
fSlopeAt1stClList = new TObjArray(100);
fSlopeAt1stClList->SetOwner();
TGraphAsymmErrors* gMeanResSlopeXAt1stClVsP = new TGraphAsymmErrors(fNPBins);
gMeanResSlopeXAt1stClVsP->SetName("gMeanResSlopeXAt1stClVsP");
gMeanResSlopeXAt1stClVsP->SetTitle("<#Delta_{slope_{X}}> at first cluster versus p;p (GeV/c);<#Delta_{slope_{X}}>");
fSlopeAt1stClList->AddAt(gMeanResSlopeXAt1stClVsP, kMeanResSlopeXAt1stClVsP);
TGraphAsymmErrors* gMeanResSlopeYAt1stClVsP = new TGraphAsymmErrors(fNPBins);
gMeanResSlopeYAt1stClVsP->SetName("gMeanResSlopeYAt1stClVsP");
gMeanResSlopeYAt1stClVsP->SetTitle("<#Delta_{slope_{Y}}> at first cluster versus p;p (GeV/c);<#Delta_{slope_{Y}}>");
fSlopeAt1stClList->AddAt(gMeanResSlopeYAt1stClVsP, kMeanResSlopeYAt1stClVsP);
TGraphAsymmErrors* gSigmaResSlopeXAt1stClVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResSlopeXAt1stClVsP->SetName("gSigmaResSlopeXAt1stClVsP");
gSigmaResSlopeXAt1stClVsP->SetTitle("#sigma_{slope_{X}} at first cluster versus p;p (GeV/c);#sigma_{slope_{X}}");
fSlopeAt1stClList->AddAt(gSigmaResSlopeXAt1stClVsP, kSigmaResSlopeXAt1stClVsP);
TGraphAsymmErrors* gSigmaResSlopeYAt1stClVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResSlopeYAt1stClVsP->SetName("gSigmaResSlopeYAt1stClVsP");
gSigmaResSlopeYAt1stClVsP->SetTitle("#sigma_{slope_{Y}} at first cluster versus p;p (GeV/c);#sigma_{slope_{Y}}");
fSlopeAt1stClList->AddAt(gSigmaResSlopeYAt1stClVsP, kSigmaResSlopeYAt1stClVsP);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAt1stClVsP)), 0., 3.e-4,
"slopeX residuals at first cluster", gMeanResSlopeXAt1stClVsP, gSigmaResSlopeXAt1stClVsP);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAt1stClVsP)), 0., 3.e-4,
"slopeY residuals at first cluster", gMeanResSlopeYAt1stClVsP, gSigmaResSlopeYAt1stClVsP);
fEtaAtVtxList = new TObjArray(100);
fEtaAtVtxList->SetOwner();
TGraphAsymmErrors* gMeanResEtaAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gMeanResEtaAtVtxVsP->SetName("gMeanResEtaAtVtxVsP");
gMeanResEtaAtVtxVsP->SetTitle("<#Delta_{eta}> at vertex versus p;p (GeV/c);<#Delta_{eta}>");
fEtaAtVtxList->AddAt(gMeanResEtaAtVtxVsP, kMeanResEtaAtVtxVsP);
TGraphAsymmErrors* gSigmaResEtaAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResEtaAtVtxVsP->SetName("gSigmaResEtaAtVtxVsP");
gSigmaResEtaAtVtxVsP->SetTitle("#sigma_{eta} at vertex versus p;p (GeV/c);#sigma_{eta}");
fEtaAtVtxList->AddAt(gSigmaResEtaAtVtxVsP, kSigmaResEtaAtVtxVsP);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kResEtaAtVtxVsP)), 0., 0.1,
"eta residuals at vertex", gMeanResEtaAtVtxVsP, gSigmaResEtaAtVtxVsP);
fPhiAtVtxList = new TObjArray(100);
fPhiAtVtxList->SetOwner();
TGraphAsymmErrors* gMeanResPhiAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gMeanResPhiAtVtxVsP->SetName("gMeanResPhiAtVtxVsP");
gMeanResPhiAtVtxVsP->SetTitle("<#Delta_{phi}> at vertex versus p;p (GeV/c);<#Delta_{phi}>");
fPhiAtVtxList->AddAt(gMeanResPhiAtVtxVsP, kMeanResPhiAtVtxVsP);
TGraphAsymmErrors* gSigmaResPhiAtVtxVsP = new TGraphAsymmErrors(fNPBins);
gSigmaResPhiAtVtxVsP->SetName("gSigmaResPhiAtVtxVsP");
gSigmaResPhiAtVtxVsP->SetTitle("#sigma_{phi} at vertex versus p;p (GeV/c);#sigma_{phi}");
fPhiAtVtxList->AddAt(gSigmaResPhiAtVtxVsP, kSigmaResPhiAtVtxVsP);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kResPhiAtVtxVsP)), 0., 0.01,
"phi residuals at vertex", gMeanResPhiAtVtxVsP, gSigmaResPhiAtVtxVsP);
fDCAList = new TObjArray(100);
fDCAList->SetOwner();
TGraphAsymmErrors* gMeanPDCAVsPIn23deg = new TGraphAsymmErrors(fNPBins);
gMeanPDCAVsPIn23deg->SetName("gMeanPDCAVsPIn23deg");
gMeanPDCAVsPIn23deg->SetTitle("<p #times DCA> versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);<p #times DCA> (GeV #times cm)");
fDCAList->AddAt(gMeanPDCAVsPIn23deg, kMeanPDCAVsPIn23deg);
TGraphAsymmErrors* gSigmaPDCAVsPIn23deg = new TGraphAsymmErrors(fNPBins);
gSigmaPDCAVsPIn23deg->SetName("gSigmaPDCAVsPIn23deg");
gSigmaPDCAVsPIn23deg->SetTitle("#sigma_{p #times DCA} versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);#sigma_{p #times DCA} (GeV #times cm)");
fDCAList->AddAt(gSigmaPDCAVsPIn23deg, kSigmaPDCAVsPIn23deg);
TGraphAsymmErrors* gMeanPDCAVsPIn310deg = new TGraphAsymmErrors(fNPBins);
gMeanPDCAVsPIn310deg->SetName("gMeanPDCAVsPIn310deg");
gMeanPDCAVsPIn310deg->SetTitle("<p #times DCA> versus p for tracks within [3,10[ degrees at absorber end;p (GeV/c);<p #times DCA> (GeV #times cm)");
fDCAList->AddAt(gMeanPDCAVsPIn310deg, kMeanPDCAVsPIn310deg);
TGraphAsymmErrors* gSigmaPDCAVsPIn310deg = new TGraphAsymmErrors(fNPBins);
gSigmaPDCAVsPIn310deg->SetName("gSigmaPDCAVsPIn310deg");
gSigmaPDCAVsPIn310deg->SetTitle("#sigma_{p #times DCA} versus p for tracks within [3,10[ degrees at absorber end;p (GeV/c);#sigma_{p #times DCA} (GeV #times cm)");
fDCAList->AddAt(gSigmaPDCAVsPIn310deg, kSigmaPDCAVsPIn310deg);
TGraphAsymmErrors* gMeanPMCSAngVsPIn23deg = new TGraphAsymmErrors(fNPBins);
gMeanPMCSAngVsPIn23deg->SetName("gMeanPMCSAngVsPIn23deg");
gMeanPMCSAngVsPIn23deg->SetTitle("<p #times #Delta#theta_{MCS}> versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);<p #times #Delta#theta_{MCS}> (GeV)");
fDCAList->AddAt(gMeanPMCSAngVsPIn23deg, kMeanPMCSAngVsPIn23deg);
TGraphAsymmErrors* gSigmaPMCSAngVsPIn23deg = new TGraphAsymmErrors(fNPBins);
gSigmaPMCSAngVsPIn23deg->SetName("gSigmaPMCSAngVsPIn23deg");
gSigmaPMCSAngVsPIn23deg->SetTitle("#sigma_{p #times #Delta#theta_{MCS}} versus p for tracks within [2,3[ degrees at absorber end;p (GeV/c);#sigma_{p #times #Delta#theta_{MCS}} (GeV)");
fDCAList->AddAt(gSigmaPMCSAngVsPIn23deg, kSigmaPMCSAngVsPIn23deg);
TGraphAsymmErrors* gMeanPMCSAngVsPIn310deg = new TGraphAsymmErrors(fNPBins);
gMeanPMCSAngVsPIn310deg->SetName("gMeanPMCSAngVsPIn310deg");
gMeanPMCSAngVsPIn310deg->SetTitle("<p #times #Delta#theta_{MCS}> versus p for tracks within [3,10[ degrees at absorber end;p (GeV/c);<p #times #Delta#theta_{MCS}> (GeV)");
fDCAList->AddAt(gMeanPMCSAngVsPIn310deg, kMeanPMCSAngVsPIn310deg);
TGraphAsymmErrors* gSigmaPMCSAngVsPIn310deg = new TGraphAsymmErrors(fNPBins);
gSigmaPMCSAngVsPIn310deg->SetName("gSigmaPMCSAngVsPIn310deg");
gSigmaPMCSAngVsPIn310deg->SetTitle("#sigma_{p #times #Delta#theta_{MCS}} versus p for tracks within [3,10[ degrees at absorber end;p (GeV/c);#sigma_{p #times #Delta#theta_{MCS}} (GeV)");
fDCAList->AddAt(gSigmaPMCSAngVsPIn310deg, kSigmaPMCSAngVsPIn310deg);
FitPDCAVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsPIn23deg)),
"p*DCA (tracks in [2,3] deg.)", gMeanPDCAVsPIn23deg, gSigmaPDCAVsPIn23deg);
FitPDCAVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsPIn310deg)),
"p*DCA (tracks in [3,10] deg.)", gMeanPDCAVsPIn310deg, gSigmaPDCAVsPIn310deg);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kPMCSAngVsPIn23deg)), 0., 2.e-3,
"p*MCSAngle (tracks in [2,3] deg.)", gMeanPMCSAngVsPIn23deg, gSigmaPMCSAngVsPIn23deg);
FitGausResVsMom(static_cast<TH2*>(fTrackerList->UncheckedAt(kPMCSAngVsPIn310deg)), 0., 2.e-3,
"p*MCSAngle (tracks in [3,10] deg.)", gMeanPMCSAngVsPIn310deg, gSigmaPMCSAngVsPIn310deg);
fClusterList = new TObjArray(100);
fClusterList->SetOwner();
TGraphErrors* gMeanResClXVsCh = new TGraphErrors(AliMUONConstants::NTrackingCh());
gMeanResClXVsCh->SetName("gMeanResClXVsCh");
gMeanResClXVsCh->SetTitle("cluster-trackRef residual-X per Ch: mean;chamber ID;<#Delta_{X}> (cm)");
gMeanResClXVsCh->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gMeanResClXVsCh, kMeanResClXVsCh);
TGraphErrors* gMeanResClYVsCh = new TGraphErrors(AliMUONConstants::NTrackingCh());
gMeanResClYVsCh->SetName("gMeanResClYVsCh");
gMeanResClYVsCh->SetTitle("cluster-trackRef residual-Y per Ch: mean;chamber ID;<#Delta_{Y}> (cm)");
gMeanResClYVsCh->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gMeanResClYVsCh, kMeanResClYVsCh);
TGraphErrors* gSigmaResClXVsCh = new TGraphErrors(AliMUONConstants::NTrackingCh());
gSigmaResClXVsCh->SetName("gSigmaResClXVsCh");
gSigmaResClXVsCh->SetTitle("cluster-trackRef residual-X per Ch: sigma;chamber ID;#sigma_{X} (cm)");
gSigmaResClXVsCh->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gSigmaResClXVsCh, kSigmaResClXVsCh);
TGraphErrors* gSigmaResClYVsCh = new TGraphErrors(AliMUONConstants::NTrackingCh());
gSigmaResClYVsCh->SetName("gSigmaResClYVsCh");
gSigmaResClYVsCh->SetTitle("cluster-trackRef residual-Y per Ch: sigma;chamber ID;#sigma_{Y} (cm)");
gSigmaResClYVsCh->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gSigmaResClYVsCh, kSigmaResClYVsCh);
TGraphErrors* gMeanResClXVsDE = new TGraphErrors(fNDE);
gMeanResClXVsDE->SetName("gMeanResClXVsDE");
gMeanResClXVsDE->SetTitle("cluster-trackRef residual-X per DE: mean;DE ID;<#Delta_{X}> (cm)");
gMeanResClXVsDE->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gMeanResClXVsDE, kMeanResClXVsDE);
TGraphErrors* gMeanResClYVsDE = new TGraphErrors(fNDE);
gMeanResClYVsDE->SetName("gMeanResClYVsDE");
gMeanResClYVsDE->SetTitle("cluster-trackRef residual-Y per dE: mean;DE ID;<#Delta_{Y}> (cm)");
gMeanResClYVsDE->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gMeanResClYVsDE, kMeanResClYVsDE);
TGraphErrors* gSigmaResClXVsDE = new TGraphErrors(fNDE);
gSigmaResClXVsDE->SetName("gSigmaResClXVsDE");
gSigmaResClXVsDE->SetTitle("cluster-trackRef residual-X per DE: sigma;DE ID;#sigma_{X} (cm)");
gSigmaResClXVsDE->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gSigmaResClXVsDE, kSigmaResClXVsDE);
TGraphErrors* gSigmaResClYVsDE = new TGraphErrors(fNDE);
gSigmaResClYVsDE->SetName("gSigmaResClYVsDE");
gSigmaResClYVsDE->SetTitle("cluster-trackRef residual-Y per DE: sigma;DE ID;#sigma_{Y} (cm)");
gSigmaResClYVsDE->SetMarkerStyle(kFullDotLarge);
fClusterList->AddAt(gSigmaResClYVsDE, kSigmaResClYVsDE);
Double_t clusterResPerCh[10][2];
for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
TH1D *tmp = static_cast<TH2*>(fTrackerList->UncheckedAt(kResClXVsCh))->ProjectionY("tmp",i+1,i+1,"e");
FitClusterResidual(tmp, i, clusterResPerCh[i][0], gMeanResClXVsCh, gSigmaResClXVsCh);
delete tmp;
tmp = static_cast<TH2*>(fTrackerList->UncheckedAt(kResClYVsCh))->ProjectionY("tmp",i+1,i+1,"e");
FitClusterResidual(tmp, i, clusterResPerCh[i][1], gMeanResClYVsCh, gSigmaResClYVsCh);
delete tmp;
}
Double_t clusterResPerDE[200][2];
for (Int_t i = 0; i < fNDE; i++) {
TH1D *tmp = static_cast<TH2*>(fTrackerList->UncheckedAt(kResClXVsDE))->ProjectionY("tmp",i+1,i+1,"e");
FitClusterResidual(tmp, i, clusterResPerDE[i][0], gMeanResClXVsDE, gSigmaResClXVsDE);
delete tmp;
tmp = static_cast<TH2*>(fTrackerList->UncheckedAt(kResClYVsDE))->ProjectionY("tmp",i+1,i+1,"e");
FitClusterResidual(tmp, i, clusterResPerDE[i][1], gMeanResClYVsDE, gSigmaResClYVsDE);
delete tmp;
}
TAxis* xAxis = static_cast<TH2*>(fTrackerList->UncheckedAt(kResClXVsDE))->GetXaxis();
gMeanResClXVsDE->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
gMeanResClYVsDE->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
gSigmaResClXVsDE->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
gSigmaResClYVsDE->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
for (Int_t i = 1; i <= fNDE; i++) {
const char* label = xAxis->GetBinLabel(i);
gMeanResClXVsDE->GetXaxis()->SetBinLabel(i, label);
gMeanResClYVsDE->GetXaxis()->SetBinLabel(i, label);
gSigmaResClXVsDE->GetXaxis()->SetBinLabel(i, label);
gSigmaResClYVsDE->GetXaxis()->SetBinLabel(i, label);
}
TCanvas* cResPAtVtx = DrawVsAng("cResPAtVtx", "momentum residual at vertex in 3 angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResPAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsAngleAtAbsEnd)));
fPAtVtxList->AddAt(cResPAtVtx, kcResPAtVtx);
TCanvas* cResPAtVtxMC = DrawVsAng("cResPAtVtxMC", "momentum residual at vertex in 3 MC angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResPAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsMCAngle)));
fPAtVtxList->AddAt(cResPAtVtxMC, kcResPAtVtxMC);
TCanvas* cResPAtVtxVsPosAbsEndMC = DrawVsPos("cResPAtVtxVsPosAbsEndMC", "momentum residual at vertex versus position at absorber end in 3 MC angular regions",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsPosAbsEndIn02degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsPosAbsEndIn23degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsPosAbsEndIn310degMC)));
fPAtVtxList->AddAt(cResPAtVtxVsPosAbsEndMC, kcResPAtVtxVsPosAbsEndMC);
TCanvas* cResPAtVtxVsPIn23deg = DrawFitLandauGausResPVsP("cResPAtVtxVsPIn23deg", "momentum residual for tracks between 2 and 3 degrees",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsPIn23deg)),
10, "momentum residuals at vertex (tracks in [2,3] deg.)");
fPAtVtxList->AddAt(cResPAtVtxVsPIn23deg, kcResPAtVtxVsPIn23deg);
TCanvas* cResPAtVtxVsPIn310deg = DrawFitLandauGausResPVsP("cResPAtVtxVsPIn310deg", "momentum residual for tracks between 3 and 10 degrees",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsPIn310deg)),
10, "momentum residuals at vertex (tracks in [3,10] deg.)");
fPAtVtxList->AddAt(cResPAtVtxVsPIn310deg, kcResPAtVtxVsPIn310deg);
TCanvas* cResPAtVtxVsPIn02degMC = DrawResPVsP("cResPAtVtxVsPIn02degMC", "momentum residuals for tracks with MC angle < 2 degrees",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPAtVtxVsPIn02degMC)), 5);
fPAtVtxList->AddAt(cResPAtVtxVsPIn02degMC, kcResPAtVtxVsPIn02degMC);
TCanvas* cResSlopeXAtVtx = DrawVsAng("cResSlopeXAtVtx", "slope_{X} residual at vertex in 3 angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResSlopeXAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAtVtxVsAngleAtAbsEnd)));
fSlopeAtVtxList->AddAt(cResSlopeXAtVtx, kcResSlopeXAtVtx);
TCanvas* cResSlopeYAtVtx = DrawVsAng("cResSlopeYAtVtx", "slope_{Y} residual at vertex in 3 angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResSlopeYAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAtVtxVsAngleAtAbsEnd)));
fSlopeAtVtxList->AddAt(cResSlopeYAtVtx, kcResSlopeYAtVtx);
TCanvas* cResSlopeXAtVtxMC = DrawVsAng("cResSlopeXAtVtxMC", "slope_{X} residual at vertex in 3 MC angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResSlopeXAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAtVtxVsMCAngle)));
fSlopeAtVtxList->AddAt(cResSlopeXAtVtxMC, kcResSlopeXAtVtxMC);
TCanvas* cResSlopeYAtVtxMC = DrawVsAng("cResSlopeYAtVtxMC", "slope_{Y} residual at vertex in 3 MC angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResSlopeYAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAtVtxVsMCAngle)));
fSlopeAtVtxList->AddAt(cResSlopeYAtVtxMC, kcResSlopeYAtVtxMC);
TCanvas* cResSlopeXAtVtxVsPosAbsEndMC = DrawVsPos("cResSlopeXAtVtxVsPosAbsEndMC", "slope_{X} residual at vertex versus position at absorber end in 3 MC angular regions",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAtVtxVsPosAbsEndIn02degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAtVtxVsPosAbsEndIn23degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeXAtVtxVsPosAbsEndIn310degMC)));
fSlopeAtVtxList->AddAt(cResSlopeXAtVtxVsPosAbsEndMC, kcResSlopeXAtVtxVsPosAbsEndMC);
TCanvas* cResSlopeYAtVtxVsPosAbsEndMC = DrawVsPos("cResSlopeYAtVtxVsPosAbsEndMC", "slope_{Y} residual at vertex versus position at absorber end in 3 MC angular regions",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAtVtxVsPosAbsEndIn02degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAtVtxVsPosAbsEndIn23degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResSlopeYAtVtxVsPosAbsEndIn310degMC)));
fSlopeAtVtxList->AddAt(cResSlopeYAtVtxVsPosAbsEndMC, kcResSlopeYAtVtxVsPosAbsEndMC);
TCanvas* cResEtaAtVtx = DrawVsAng("cResEtaAtVtx", "eta residual at vertex in 3 angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResEtaAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResEtaAtVtxVsAngleAtAbsEnd)));
fEtaAtVtxList->AddAt(cResEtaAtVtx, kcResEtaAtVtx);
TCanvas* cResEtaAtVtxMC = DrawVsAng("cResEtaAtVtxMC", "eta residual at vertex in 3 MC angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResEtaAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResEtaAtVtxVsMCAngle)));
fEtaAtVtxList->AddAt(cResEtaAtVtxMC, kcResEtaAtVtxMC);
TCanvas* cResEtaAtVtxVsPosAbsEndMC = DrawVsPos("cResEtaAtVtxVsPosAbsEndMC", "eta residual at vertex versus position at absorber end in 3 MC angular regions",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResEtaAtVtxVsPosAbsEndIn02degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResEtaAtVtxVsPosAbsEndIn23degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResEtaAtVtxVsPosAbsEndIn310degMC)));
fEtaAtVtxList->AddAt(cResEtaAtVtxVsPosAbsEndMC, kcResEtaAtVtxVsPosAbsEndMC);
TCanvas* cResPhiAtVtx = DrawVsAng("cResPhiAtVtx", "phi residual at vertex in 3 angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResPhiAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPhiAtVtxVsAngleAtAbsEnd)));
fPhiAtVtxList->AddAt(cResPhiAtVtx, kcResPhiAtVtx);
TCanvas* cResPhiAtVtxMC = DrawVsAng("cResPhiAtVtxMC", "phi residual at vertex in 3 MC angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kResPhiAtVtx)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPhiAtVtxVsMCAngle)));
fPhiAtVtxList->AddAt(cResPhiAtVtxMC, kcResPhiAtVtxMC);
TCanvas* cResPhiAtVtxVsPosAbsEndMC = DrawVsPos("cResPhiAtVtxVsPosAbsEndMC", "phi residual at vertex versus position at absorber end in 3 MC angular regions",
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPhiAtVtxVsPosAbsEndIn02degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPhiAtVtxVsPosAbsEndIn23degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kResPhiAtVtxVsPosAbsEndIn310degMC)));
fPhiAtVtxList->AddAt(cResPhiAtVtxVsPosAbsEndMC, kcResPhiAtVtxVsPosAbsEndMC);
TCanvas* cPDCA = DrawVsAng("cPDCA", "p #times DCA in 3 angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kPDCA)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsAngleAtAbsEnd)));
fDCAList->AddAt(cPDCA, kcPDCA);
TCanvas* cPDCAMC = DrawVsAng("cPDCAMC", "p #times DCA in 3 MC angular regions",
static_cast<TH1*>(fTrackerList->UncheckedAt(kPDCA)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsMCAngle)));
fDCAList->AddAt(cPDCAMC, kcPDCAMC);
TCanvas* cPDCAVsPosAbsEndMC = DrawVsPos("cPDCAVsPosAbsEndMC", "p #times DCA versus position at absorber end in 3 MC angular regions",
static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsPosAbsEndIn02degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsPosAbsEndIn23degMC)),
static_cast<TH2*>(fTrackerList->UncheckedAt(kPDCAVsPosAbsEndIn310degMC)));
fDCAList->AddAt(cPDCAVsPosAbsEndMC, kcPDCAVsPosAbsEndMC);
PostData(4, fEfficiencyList);
PostData(5, fPAtVtxList);
PostData(6, fSlopeAtVtxList);
PostData(7, fEtaAtVtxList);
PostData(8, fPhiAtVtxList);
PostData(9, fPAt1stClList);
PostData(10, fSlopeAt1stClList);
PostData(11, fDCAList);
PostData(12, fClusterList);
}
Bool_t AliAnalysisTaskMuonPerformance::GetEfficiency(AliCFEffGrid* efficiency, Double_t& calcEff, Double_t& calcEffErr)
{
Bool_t isGood = kTRUE;
TH1* histo = 0x0;
Double_t sum[2] = {0., 0.};
for ( Int_t ihisto=0; ihisto<2; ihisto++ ) {
histo = ( ihisto==0 ) ? efficiency->GetNum()->Project(kVarCharge) : efficiency->GetDen()->Project(kVarCharge);
sum[ihisto] = histo->Integral();
delete histo;
}
if ( sum[1] == 0. ) isGood = kFALSE;
calcEff = ( isGood ) ? sum[0]/sum[1] : 0.;
if ( calcEff > 1. ) isGood = kFALSE;
calcEffErr = ( isGood ) ? TMath::Sqrt(calcEff*(1-calcEff)/sum[1]) : 0.;
return isGood;
}
Int_t AliAnalysisTaskMuonPerformance::RecoTrackMother(AliMCParticle* mcParticle)
{
if ( ! mcParticle )
return kUnknownPart;
Int_t recoPdg = mcParticle->PdgCode();
if ( TMath::Abs(recoPdg) != 13 ) return kRecoHadron;
Int_t imother = mcParticle->GetMother();
Bool_t isFirstMotherHF = kFALSE;
Int_t step = 0;
while ( imother >= 0 ) {
TParticle* part = static_cast<AliMCParticle*>(fMCEvent->GetTrack(imother))->Particle();
if ( part->GetUniqueID() == kPHadronic )
return kSecondaryMu;
Int_t absPdg = TMath::Abs(part->GetPdgCode());
step++;
if ( step == 1 )
isFirstMotherHF = ( ( absPdg >= 400 && absPdg < 600 ) ||
( absPdg >= 4000 && absPdg < 6000 ) );
if ( absPdg < 4 )
return kPrimaryMu;
if ( isFirstMotherHF) {
if ( absPdg == 4 )
return kCharmMu;
else if ( absPdg == 5 )
return kBeautyMu;
}
imother = part->GetFirstMother();
}
return kPrimaryMu;
}
Float_t AliAnalysisTaskMuonPerformance::GetBinThetaAbsEnd(Float_t RAtAbsEnd, Bool_t isTheta)
{
Float_t thetaDeg = ( isTheta ) ? RAtAbsEnd : TMath::ATan( RAtAbsEnd / 505. );
thetaDeg *= TMath::RadToDeg();
if ( thetaDeg < 2. )
return 0.;
else if ( thetaDeg < 3. )
return 1.;
else if ( thetaDeg < 10. )
return 2.;
return 3.;
}
void AliAnalysisTaskMuonPerformance::FillContainerInfoReco(Double_t* containerInput, AliESDMuonTrack* esdTrack,
Bool_t isValid, Int_t mcID)
{
AliMCParticle* mcPart = (mcID >= 0) ? static_cast<AliMCParticle*>(fMCEvent->GetTrack(mcID)) : 0x0;
if (fUseMCKinematics && mcPart) {
containerInput[kVarPt] = mcPart->Pt();
containerInput[kVarEta] = mcPart->Eta();
containerInput[kVarPhi] = mcPart->Phi();
} else {
containerInput[kVarPt] = esdTrack->Pt();
containerInput[kVarEta] = esdTrack->Eta();
containerInput[kVarPhi] = esdTrack->Phi();
}
containerInput[kVarThetaZones] = GetBinThetaAbsEnd(esdTrack->GetRAtAbsorberEnd());
containerInput[kVarCharge] = static_cast<Double_t>(esdTrack->Charge());
containerInput[kVarHasTracker] = static_cast<Double_t>(esdTrack->ContainTrackerData() && isValid);
if (esdTrack->GetMatchTrigger() == 0) containerInput[kVarTrigger] = static_cast<Double_t>(kNoMatchTrig);
else if (esdTrack->GetMatchTrigger() == 1) containerInput[kVarTrigger] = static_cast<Double_t>(kAllPtTrig);
else if (esdTrack->GetMatchTrigger() == 2) containerInput[kVarTrigger] = static_cast<Double_t>(kLowPtTrig);
else if (esdTrack->GetMatchTrigger() == 3) containerInput[kVarTrigger] = static_cast<Double_t>(kHighPtTrig);
containerInput[kVarMotherType] = static_cast<Double_t>(RecoTrackMother(mcPart));
}
void AliAnalysisTaskMuonPerformance::FillContainerInfoMC(Double_t* containerInput, AliMCParticle* mcPart)
{
containerInput[kVarPt] = mcPart->Pt();
containerInput[kVarEta] = mcPart->Eta();
containerInput[kVarPhi] = mcPart->Phi();
containerInput[kVarThetaZones] = GetBinThetaAbsEnd(TMath::Pi()-mcPart->Theta(),kTRUE);
containerInput[kVarCharge] = static_cast<Double_t>(mcPart->Charge())/3.;
containerInput[kVarMotherType] = static_cast<Double_t>(RecoTrackMother(mcPart));
}
Double_t langaufun(Double_t *x, Double_t *par)
{
Double_t invsq2pi = 0.3989422804014;
Double_t mpshift = -0.22278298;
Double_t mpc = par[1] - mpshift * par[0];
Double_t xlow = x[0] - 5. * par[3];
Double_t xupp = x[0] + 5. * par[3];
Double_t step = TMath::Min(0.2*par[0],0.1*par[3]);
Double_t xx = xlow + 0.5 * step;
Double_t sum = 0.0;
while (xx < xupp) {
sum += TMath::Landau(-xx,mpc,par[0]) * TMath::Gaus(x[0],xx,par[3]);
xx += step;
}
return (par[2] * step * sum * invsq2pi / par[3] / par[0]);
}
void AliAnalysisTaskMuonPerformance::FitLandauGausResVsP(TH2* h, const char* fitting, TGraphAsymmErrors* gMean,
TGraphAsymmErrors* gMostProb, TGraphAsymmErrors* gSigma)
{
static TF1 *fGaus2 = 0x0;
if (!fGaus2) fGaus2 = new TF1("fGaus2","gaus");
static TF1* fLandauGaus = 0x0;
if (!fLandauGaus) {
fLandauGaus = new TF1("fLandauGaus",langaufun,h->GetYaxis()->GetBinLowEdge(1),h->GetYaxis()->GetBinLowEdge(h->GetNbinsY()+1),4);
fLandauGaus->SetNpx(10000);
}
Int_t rebinFactorX = TMath::Max(h->GetNbinsX()/fNPBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
cout<<Form("\rFitting %s... %d/%d",fitting,i/rebinFactorX,fNPBins)<<flush;
TH1D *tmp = h->ProjectionY("tmp",i-rebinFactorX+1,i,"e");
fGaus2->SetParameters((Double_t)tmp->GetEntries(), 0., 1.);
tmp->Fit("fGaus2", "WWNQ");
Double_t sigma = fGaus2->GetParameter(2);
Int_t rebin = static_cast<Int_t>(TMath::Min(0.1*tmp->GetNbinsX(),TMath::Max(0.5*sigma/tmp->GetBinWidth(1),1.)));
while (tmp->GetNbinsX()%rebin!=0) rebin--;
tmp->Rebin(rebin);
Double_t mean = fGaus2->GetParameter(1);
fLandauGaus->SetParameters(0.25*sigma*TMath::Sqrt(8.*log(2.)), mean, tmp->GetEntries()*tmp->GetXaxis()->GetBinWidth(1), 0.5*sigma);
fLandauGaus->SetParLimits(0, 0.0025*sigma*TMath::Sqrt(8.*log(2.)), 1000.);
fLandauGaus->SetParLimits(3, 0., 2.*sigma);
Double_t xMin = TMath::Max(mean-50.*sigma, tmp->GetXaxis()->GetXmin());
Double_t xMax = TMath::Min(mean+10.*sigma, tmp->GetXaxis()->GetXmax());
if (xMin < tmp->GetXaxis()->GetXmax() && xMax > tmp->GetXaxis()->GetXmin()) fLandauGaus->SetRange(xMin, xMax);
tmp->Fit("fLandauGaus","RNQ");
Double_t fwhm = 4.*fLandauGaus->GetParameter(0);
sigma = fLandauGaus->GetParameter(3);
Double_t sigmaP = TMath::Sqrt(sigma*sigma + fwhm*fwhm/(8.*log(2.)));
Double_t fwhmErr = fLandauGaus->GetParError(0);
Double_t sigmaErr = fLandauGaus->GetParError(3);
Double_t sigmaPErr = TMath::Sqrt(sigma*sigma*sigmaErr*sigmaErr + fwhm*fwhm*fwhmErr*fwhmErr/(64.*log(2.)*log(2.))) / sigmaP;
h->GetXaxis()->SetRange(i-rebinFactorX+1,i);
Double_t p = (tmp->GetEntries() > 0) ? h->GetMean() : 0.5 * (h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1) + h->GetXaxis()->GetBinLowEdge(i+1));
h->GetXaxis()->SetRange();
Double_t pErr[2] = {p-h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1), h->GetXaxis()->GetBinLowEdge(i+1)-p};
gMean->SetPoint(i/rebinFactorX-1, p, tmp->GetMean());
gMean->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], tmp->GetMeanError(), tmp->GetMeanError());
gMostProb->SetPoint(i/rebinFactorX-1, p, -fLandauGaus->GetParameter(1));
gMostProb->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], fLandauGaus->GetParError(1), fLandauGaus->GetParError(1));
gSigma->SetPoint(i/rebinFactorX-1, p, sigmaP);
gSigma->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], sigmaPErr, sigmaPErr);
delete tmp;
}
cout<<Form("\rFitting %s... %d/%d",fitting,fNPBins,fNPBins)<<endl;
}
void AliAnalysisTaskMuonPerformance::FitGausResVsMom(TH2* h, const Double_t mean0,
const Double_t sigma0, const char* fitting,
TGraphAsymmErrors* gMean, TGraphAsymmErrors* gSigma)
{
static TF1* fGaus = 0x0;
if (!fGaus) fGaus = new TF1("fGaus","gaus");
Int_t rebinFactorX = TMath::Max(h->GetNbinsX()/fNPBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
cout<<Form("\rFitting %s... %d/%d",fitting,i/rebinFactorX,fNPBins)<<flush;
TH1D *tmp = h->ProjectionY("tmp",i-rebinFactorX+1,i,"e");
fGaus->SetParameters(tmp->GetEntries(), mean0, sigma0);
tmp->Fit("fGaus","WWNQ");
Int_t rebin = static_cast<Int_t>(TMath::Min(0.1*tmp->GetNbinsX(),TMath::Max(0.5*fGaus->GetParameter(2)/tmp->GetBinWidth(1),1.)));
while (tmp->GetNbinsX()%rebin!=0) rebin--;
tmp->Rebin(rebin);
tmp->Fit("fGaus","NQ");
h->GetXaxis()->SetRange(i-rebinFactorX+1,i);
Double_t p = (tmp->GetEntries() > 0) ? h->GetMean() : 0.5 * (h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1) + h->GetXaxis()->GetBinLowEdge(i+1));
h->GetXaxis()->SetRange();
Double_t pErr[2] = {p-h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1), h->GetXaxis()->GetBinLowEdge(i+1)-p};
gMean->SetPoint(i/rebinFactorX-1, p, fGaus->GetParameter(1));
gMean->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], fGaus->GetParError(1), fGaus->GetParError(1));
gSigma->SetPoint(i/rebinFactorX-1, p, fGaus->GetParameter(2));
gSigma->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], fGaus->GetParError(2), fGaus->GetParError(2));
delete tmp;
}
cout<<Form("\rFitting %s... %d/%d",fitting,fNPBins,fNPBins)<<endl;
}
void AliAnalysisTaskMuonPerformance::FitPDCAVsMom(TH2* h, const char* fitting,
TGraphAsymmErrors* gMean, TGraphAsymmErrors* gSigma)
{
static TF1* fPGaus = 0x0;
if (!fPGaus) fPGaus = new TF1("fPGaus","x*gaus");
Int_t rebinFactorX = TMath::Max(h->GetNbinsX()/fNPBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
cout<<Form("\rFitting %s... %d/%d",fitting,i/rebinFactorX,fNPBins)<<flush;
TH1D *tmp = h->ProjectionY("tmp",i-rebinFactorX+1,i,"e");
Int_t rebin = static_cast<Int_t>(25*(tmp->GetNbinsX()/(tmp->GetBinLowEdge(tmp->GetNbinsX()+1)-tmp->GetBinLowEdge(1))));
while (tmp->GetNbinsX()%rebin!=0) rebin--;
tmp->Rebin(rebin);
fPGaus->SetParameters(1.,0.,80.);
tmp->Fit("fPGaus","NQ");
h->GetXaxis()->SetRange(i-rebinFactorX+1,i);
Double_t p = (tmp->GetEntries() > 0) ? h->GetMean() : 0.5 * (h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1) + h->GetXaxis()->GetBinLowEdge(i+1));
h->GetXaxis()->SetRange();
Double_t pErr[2] = {p-h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1), h->GetXaxis()->GetBinLowEdge(i+1)-p};
gMean->SetPoint(i/rebinFactorX-1, p, fPGaus->GetParameter(1));
gMean->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], fPGaus->GetParError(1), fPGaus->GetParError(1));
gSigma->SetPoint(i/rebinFactorX-1, p, fPGaus->GetParameter(2));
gSigma->SetPointError(i/rebinFactorX-1, pErr[0], pErr[1], fPGaus->GetParError(2), fPGaus->GetParError(2));
delete tmp;
}
cout<<Form("\rFitting %s... %d/%d",fitting,fNPBins,fNPBins)<<endl;
}
void AliAnalysisTaskMuonPerformance::FitClusterResidual(TH1* h, Int_t i, Double_t& sigma,
TGraphErrors* gMean, TGraphErrors* gSigma)
{
static TF1* fRGaus = 0x0;
Double_t mean, meanErr, sigmaErr;
if (fFitResiduals) {
if (!fRGaus) fRGaus = new TF1("fRGaus","gaus");
Double_t xMin = h->GetXaxis()->GetXmin();
Double_t xMax = h->GetXaxis()->GetXmax();
fRGaus->SetRange(xMin, xMax);
fRGaus->SetParameters(h->GetEntries(), 0., 0.1);
fRGaus->SetParLimits(1, xMin, xMax);
h->Fit("fRGaus", "WWNQ");
Int_t rebin = static_cast<Int_t>(TMath::Min(0.1*h->GetNbinsX(),TMath::Max(0.3*fRGaus->GetParameter(2)/h->GetBinWidth(1),1.)));
while (h->GetNbinsX()%rebin!=0) rebin--;
h->Rebin(rebin);
xMin = TMath::Max(fRGaus->GetParameter(1)-10.*fRGaus->GetParameter(2), h->GetXaxis()->GetXmin());
xMax = TMath::Min(fRGaus->GetParameter(1)+10.*fRGaus->GetParameter(2), h->GetXaxis()->GetXmax());
fRGaus->SetRange(xMin, xMax);
fRGaus->SetParLimits(1, xMin, xMax);
h->Fit("fRGaus","NQR");
mean = fRGaus->GetParameter(1);
meanErr = fRGaus->GetParError(1);
sigma = fRGaus->GetParameter(2);
sigmaErr = fRGaus->GetParError(2);
} else {
Zoom(h);
mean = h->GetMean();
meanErr = h->GetMeanError();
sigma = h->GetRMS();
sigmaErr = h->GetRMSError();
h->GetXaxis()->SetRange(0,0);
}
gMean->SetPoint(i, i+1, mean);
gMean->SetPointError(i, 0., meanErr);
if (fCorrectForSystematics) {
Double_t s = TMath::Sqrt(mean*mean + sigma*sigma);
sigmaErr = (s>0.) ? TMath::Sqrt(sigma*sigma*sigmaErr*sigmaErr + mean*mean*meanErr*meanErr) / s : 0.;
sigma = s;
}
gSigma->SetPoint(i, i+1, sigma);
gSigma->SetPointError(i, 0., sigmaErr);
}
TCanvas* AliAnalysisTaskMuonPerformance::DrawVsAng(const char* name, const char* title, TH1* h1, TH2* h2)
{
TCanvas* c = new TCanvas(name, title);
c->cd();
h1->DrawCopy();
TH1D *proj1 = h2->ProjectionY(Form("%s_proj_0_2",h2->GetName()),1,2);
proj1->SetLineColor(2);
proj1->Draw("sames");
TH1D *proj2 = h2->ProjectionY(Form("%s_proj_2_3",h2->GetName()),3,3);
proj2->SetLineColor(4);
proj2->Draw("sames");
TH1D *proj3 = h2->ProjectionY(Form("%s__proj_3_10",h2->GetName()),4,10);
proj3->SetLineColor(3);
proj3->Draw("sames");
return c;
}
TCanvas* AliAnalysisTaskMuonPerformance::DrawVsPos(const char* name, const char* title, TH2* h1, TH2* h2, TH2* h3)
{
TCanvas* c = new TCanvas(name, title);
c->cd();
h1->SetMarkerColor(2);
h1->DrawCopy();
h2->SetMarkerColor(4);
h2->DrawCopy("sames");
h3->SetMarkerColor(3);
h3->DrawCopy("sames");
return c;
}
TCanvas* AliAnalysisTaskMuonPerformance::DrawFitLandauGausResPVsP(const char* name, const char* title,
TH2* h, const Int_t nBins, const char* fitting)
{
static TF1 *fGaus3 = 0x0;
if (!fGaus3) fGaus3 = new TF1("fGaus3","gaus");
static TF1* fLandauGaus2 = 0x0;
if (!fLandauGaus2) {
fLandauGaus2 = new TF1("fLandauGaus2",langaufun,h->GetYaxis()->GetBinLowEdge(1),h->GetYaxis()->GetBinLowEdge(h->GetNbinsY()+1),4);
fLandauGaus2->SetNpx(10000);
}
TLegend* l = new TLegend(0.15,0.25,0.3,0.85);
TCanvas* c = new TCanvas(name, title);
c->cd();
h->Sumw2();
Int_t rebinFactorX = TMath::Max(h->GetNbinsX()/nBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
cout<<Form("\rFitting %s... %d/%d",fitting,i/rebinFactorX,nBins)<<flush;
TH1D* proj = h->ProjectionY(Form("%s_%d",h->GetName(),i/rebinFactorX),i-rebinFactorX+1,i);
if (proj->GetEntries() > 0) proj->Scale(1./proj->GetEntries());
proj->Draw((i==rebinFactorX)?"hist":"histsames");
proj->SetLineColor(i/rebinFactorX);
if (proj->GetEntries() > 10) {
fGaus3->SetParameters(1., 0., 1.);
proj->Fit("fGaus3", "WWNQ");
Double_t sigma = fGaus3->GetParameter(2);
Int_t rebin = static_cast<Int_t>(TMath::Min(0.1*proj->GetNbinsX(),TMath::Max(0.5*sigma/proj->GetBinWidth(1),1.)));
while (proj->GetNbinsX()%rebin!=0) rebin--;
proj->Rebin(rebin);
proj->Scale(1./rebin);
Double_t mean = fGaus3->GetParameter(1);
fLandauGaus2->SetParameters(0.25*sigma*TMath::Sqrt(8.*log(2.)), mean, proj->GetXaxis()->GetBinWidth(1), 0.5*sigma);
fLandauGaus2->SetParLimits(0, 0.0025*sigma*TMath::Sqrt(8.*log(2.)), 1000.);
fLandauGaus2->SetParLimits(3, 0., 2.*sigma);
Double_t xMin = TMath::Max(mean-50.*sigma, proj->GetXaxis()->GetXmin());
Double_t xMax = TMath::Min(mean+10.*sigma, proj->GetXaxis()->GetXmax());
if (xMin < proj->GetXaxis()->GetXmax() && xMax > proj->GetXaxis()->GetXmin()) fLandauGaus2->SetRange(xMin, xMax);
fLandauGaus2->SetLineColor(i/rebinFactorX);
proj->Fit("fLandauGaus2","RQ","sames");
}
Double_t p = 0.5 * (h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1) + h->GetXaxis()->GetBinLowEdge(i+1));
l->AddEntry(proj,Form("%5.1f GeV",p));
}
cout<<Form("\rFitting %s... %d/%d",fitting,nBins,nBins)<<endl;
l->Draw("same");
return c;
}
TCanvas* AliAnalysisTaskMuonPerformance::DrawResPVsP(const char* name, const char* title, TH2* h, const Int_t nBins)
{
TLegend* l = new TLegend(0.15,0.25,0.3,0.85);
TCanvas* c = new TCanvas(name, title);
c->cd();
h->Sumw2();
Int_t rebinFactorX = TMath::Max(h->GetNbinsX()/nBins, 1);
for (Int_t i = rebinFactorX; i <= h->GetNbinsX(); i+=rebinFactorX) {
TH1D* proj = h->ProjectionY(Form("%s_%d",h->GetName(),i/rebinFactorX),i-rebinFactorX+1,i);
if (proj->GetEntries() > 0) proj->Scale(1./proj->GetEntries());
proj->Draw((i==rebinFactorX)?"hist":"histsames");
proj->SetLineColor(i/rebinFactorX);
proj->SetLineWidth(2);
Double_t p = 0.5 * (h->GetXaxis()->GetBinLowEdge(i-rebinFactorX+1) + h->GetXaxis()->GetBinLowEdge(i+1));
l->AddEntry(proj,Form("%5.1f GeV",p));
}
l->Draw("same");
return c;
}
void AliAnalysisTaskMuonPerformance::Zoom(TH1* h, Double_t fractionCut)
{
Double_t maxEventsCut = fractionCut * h->GetEntries();
Int_t nBins = h->GetNbinsX();
Int_t minBin;
Double_t eventsCut = 0.;
for (minBin = 1; minBin <= nBins; minBin++) {
eventsCut += h->GetBinContent(minBin);
if (eventsCut > maxEventsCut) break;
}
Int_t maxBin;
eventsCut = 0.;
for (maxBin = nBins; maxBin >= 1; maxBin--) {
eventsCut += h->GetBinContent(maxBin);
if (eventsCut > maxEventsCut) break;
}
h->GetXaxis()->SetRange(--minBin, ++maxBin);
}
void AliAnalysisTaskMuonPerformance::FillEffHistos(AliCFEffGrid* efficiency, const char* suffix, TObjArray* list)
{
TH1* auxHisto = efficiency->Project(kVarPt);
auxHisto->SetName(Form("effVsPt_%s",suffix));
list->AddLast(auxHisto);
auxHisto = efficiency->Project(kVarEta);
auxHisto->SetName(Form("effVsEta_%s",suffix));
list->AddLast(auxHisto);
auxHisto = efficiency->Project(kVarPhi);
auxHisto->SetName(Form("effVsPhi_%s",suffix));
list->AddLast(auxHisto);
auxHisto = efficiency->Project(kVarCent);
auxHisto->SetName(Form("effVsCent_%s",suffix));
list->AddLast(auxHisto);
}
AliAnalysisTaskMuonPerformance.cxx:1 AliAnalysisTaskMuonPerformance.cxx:2 AliAnalysisTaskMuonPerformance.cxx:3 AliAnalysisTaskMuonPerformance.cxx:4 AliAnalysisTaskMuonPerformance.cxx:5 AliAnalysisTaskMuonPerformance.cxx:6 AliAnalysisTaskMuonPerformance.cxx:7 AliAnalysisTaskMuonPerformance.cxx:8 AliAnalysisTaskMuonPerformance.cxx:9 AliAnalysisTaskMuonPerformance.cxx:10 AliAnalysisTaskMuonPerformance.cxx:11 AliAnalysisTaskMuonPerformance.cxx:12 AliAnalysisTaskMuonPerformance.cxx:13 AliAnalysisTaskMuonPerformance.cxx:14 AliAnalysisTaskMuonPerformance.cxx:15 AliAnalysisTaskMuonPerformance.cxx:16 AliAnalysisTaskMuonPerformance.cxx:17 AliAnalysisTaskMuonPerformance.cxx:18 AliAnalysisTaskMuonPerformance.cxx:19 AliAnalysisTaskMuonPerformance.cxx:20 AliAnalysisTaskMuonPerformance.cxx:21 AliAnalysisTaskMuonPerformance.cxx:22 AliAnalysisTaskMuonPerformance.cxx:23 AliAnalysisTaskMuonPerformance.cxx:24 AliAnalysisTaskMuonPerformance.cxx:25 AliAnalysisTaskMuonPerformance.cxx:26 AliAnalysisTaskMuonPerformance.cxx:27 AliAnalysisTaskMuonPerformance.cxx:28 AliAnalysisTaskMuonPerformance.cxx:29 AliAnalysisTaskMuonPerformance.cxx:30 AliAnalysisTaskMuonPerformance.cxx:31 AliAnalysisTaskMuonPerformance.cxx:32 AliAnalysisTaskMuonPerformance.cxx:33 AliAnalysisTaskMuonPerformance.cxx:34 AliAnalysisTaskMuonPerformance.cxx:35 AliAnalysisTaskMuonPerformance.cxx:36 AliAnalysisTaskMuonPerformance.cxx:37 AliAnalysisTaskMuonPerformance.cxx:38 AliAnalysisTaskMuonPerformance.cxx:39 AliAnalysisTaskMuonPerformance.cxx:40 AliAnalysisTaskMuonPerformance.cxx:41 AliAnalysisTaskMuonPerformance.cxx:42 AliAnalysisTaskMuonPerformance.cxx:43 AliAnalysisTaskMuonPerformance.cxx:44 AliAnalysisTaskMuonPerformance.cxx:45 AliAnalysisTaskMuonPerformance.cxx:46 AliAnalysisTaskMuonPerformance.cxx:47 AliAnalysisTaskMuonPerformance.cxx:48 AliAnalysisTaskMuonPerformance.cxx:49 AliAnalysisTaskMuonPerformance.cxx:50 AliAnalysisTaskMuonPerformance.cxx:51 AliAnalysisTaskMuonPerformance.cxx:52 AliAnalysisTaskMuonPerformance.cxx:53 AliAnalysisTaskMuonPerformance.cxx:54 AliAnalysisTaskMuonPerformance.cxx:55 AliAnalysisTaskMuonPerformance.cxx:56 AliAnalysisTaskMuonPerformance.cxx:57 AliAnalysisTaskMuonPerformance.cxx:58 AliAnalysisTaskMuonPerformance.cxx:59 AliAnalysisTaskMuonPerformance.cxx:60 AliAnalysisTaskMuonPerformance.cxx:61 AliAnalysisTaskMuonPerformance.cxx:62 AliAnalysisTaskMuonPerformance.cxx:63 AliAnalysisTaskMuonPerformance.cxx:64 AliAnalysisTaskMuonPerformance.cxx:65 AliAnalysisTaskMuonPerformance.cxx:66 AliAnalysisTaskMuonPerformance.cxx:67 AliAnalysisTaskMuonPerformance.cxx:68 AliAnalysisTaskMuonPerformance.cxx:69 AliAnalysisTaskMuonPerformance.cxx:70 AliAnalysisTaskMuonPerformance.cxx:71 AliAnalysisTaskMuonPerformance.cxx:72 AliAnalysisTaskMuonPerformance.cxx:73 AliAnalysisTaskMuonPerformance.cxx:74 AliAnalysisTaskMuonPerformance.cxx:75 AliAnalysisTaskMuonPerformance.cxx:76 AliAnalysisTaskMuonPerformance.cxx:77 AliAnalysisTaskMuonPerformance.cxx:78 AliAnalysisTaskMuonPerformance.cxx:79 AliAnalysisTaskMuonPerformance.cxx:80 AliAnalysisTaskMuonPerformance.cxx:81 AliAnalysisTaskMuonPerformance.cxx:82 AliAnalysisTaskMuonPerformance.cxx:83 AliAnalysisTaskMuonPerformance.cxx:84 AliAnalysisTaskMuonPerformance.cxx:85 AliAnalysisTaskMuonPerformance.cxx:86 AliAnalysisTaskMuonPerformance.cxx:87 AliAnalysisTaskMuonPerformance.cxx:88 AliAnalysisTaskMuonPerformance.cxx:89 AliAnalysisTaskMuonPerformance.cxx:90 AliAnalysisTaskMuonPerformance.cxx:91 AliAnalysisTaskMuonPerformance.cxx:92 AliAnalysisTaskMuonPerformance.cxx:93 AliAnalysisTaskMuonPerformance.cxx:94 AliAnalysisTaskMuonPerformance.cxx:95 AliAnalysisTaskMuonPerformance.cxx:96 AliAnalysisTaskMuonPerformance.cxx:97 AliAnalysisTaskMuonPerformance.cxx:98 AliAnalysisTaskMuonPerformance.cxx:99 AliAnalysisTaskMuonPerformance.cxx:100 AliAnalysisTaskMuonPerformance.cxx:101 AliAnalysisTaskMuonPerformance.cxx:102 AliAnalysisTaskMuonPerformance.cxx:103 AliAnalysisTaskMuonPerformance.cxx:104 AliAnalysisTaskMuonPerformance.cxx:105 AliAnalysisTaskMuonPerformance.cxx:106 AliAnalysisTaskMuonPerformance.cxx:107 AliAnalysisTaskMuonPerformance.cxx:108 AliAnalysisTaskMuonPerformance.cxx:109 AliAnalysisTaskMuonPerformance.cxx:110 AliAnalysisTaskMuonPerformance.cxx:111 AliAnalysisTaskMuonPerformance.cxx:112 AliAnalysisTaskMuonPerformance.cxx:113 AliAnalysisTaskMuonPerformance.cxx:114 AliAnalysisTaskMuonPerformance.cxx:115 AliAnalysisTaskMuonPerformance.cxx:116 AliAnalysisTaskMuonPerformance.cxx:117 AliAnalysisTaskMuonPerformance.cxx:118 AliAnalysisTaskMuonPerformance.cxx:119 AliAnalysisTaskMuonPerformance.cxx:120 AliAnalysisTaskMuonPerformance.cxx:121 AliAnalysisTaskMuonPerformance.cxx:122 AliAnalysisTaskMuonPerformance.cxx:123 AliAnalysisTaskMuonPerformance.cxx:124 AliAnalysisTaskMuonPerformance.cxx:125 AliAnalysisTaskMuonPerformance.cxx:126 AliAnalysisTaskMuonPerformance.cxx:127 AliAnalysisTaskMuonPerformance.cxx:128 AliAnalysisTaskMuonPerformance.cxx:129 AliAnalysisTaskMuonPerformance.cxx:130 AliAnalysisTaskMuonPerformance.cxx:131 AliAnalysisTaskMuonPerformance.cxx:132 AliAnalysisTaskMuonPerformance.cxx:133 AliAnalysisTaskMuonPerformance.cxx:134 AliAnalysisTaskMuonPerformance.cxx:135 AliAnalysisTaskMuonPerformance.cxx:136 AliAnalysisTaskMuonPerformance.cxx:137 AliAnalysisTaskMuonPerformance.cxx:138 AliAnalysisTaskMuonPerformance.cxx:139 AliAnalysisTaskMuonPerformance.cxx:140 AliAnalysisTaskMuonPerformance.cxx:141 AliAnalysisTaskMuonPerformance.cxx:142 AliAnalysisTaskMuonPerformance.cxx:143 AliAnalysisTaskMuonPerformance.cxx:144 AliAnalysisTaskMuonPerformance.cxx:145 AliAnalysisTaskMuonPerformance.cxx:146 AliAnalysisTaskMuonPerformance.cxx:147 AliAnalysisTaskMuonPerformance.cxx:148 AliAnalysisTaskMuonPerformance.cxx:149 AliAnalysisTaskMuonPerformance.cxx:150 AliAnalysisTaskMuonPerformance.cxx:151 AliAnalysisTaskMuonPerformance.cxx:152 AliAnalysisTaskMuonPerformance.cxx:153 AliAnalysisTaskMuonPerformance.cxx:154 AliAnalysisTaskMuonPerformance.cxx:155 AliAnalysisTaskMuonPerformance.cxx:156 AliAnalysisTaskMuonPerformance.cxx:157 AliAnalysisTaskMuonPerformance.cxx:158 AliAnalysisTaskMuonPerformance.cxx:159 AliAnalysisTaskMuonPerformance.cxx:160 AliAnalysisTaskMuonPerformance.cxx:161 AliAnalysisTaskMuonPerformance.cxx:162 AliAnalysisTaskMuonPerformance.cxx:163 AliAnalysisTaskMuonPerformance.cxx:164 AliAnalysisTaskMuonPerformance.cxx:165 AliAnalysisTaskMuonPerformance.cxx:166 AliAnalysisTaskMuonPerformance.cxx:167 AliAnalysisTaskMuonPerformance.cxx:168 AliAnalysisTaskMuonPerformance.cxx:169 AliAnalysisTaskMuonPerformance.cxx:170 AliAnalysisTaskMuonPerformance.cxx:171 AliAnalysisTaskMuonPerformance.cxx:172 AliAnalysisTaskMuonPerformance.cxx:173 AliAnalysisTaskMuonPerformance.cxx:174 AliAnalysisTaskMuonPerformance.cxx:175 AliAnalysisTaskMuonPerformance.cxx:176 AliAnalysisTaskMuonPerformance.cxx:177 AliAnalysisTaskMuonPerformance.cxx:178 AliAnalysisTaskMuonPerformance.cxx:179 AliAnalysisTaskMuonPerformance.cxx:180 AliAnalysisTaskMuonPerformance.cxx:181 AliAnalysisTaskMuonPerformance.cxx:182 AliAnalysisTaskMuonPerformance.cxx:183 AliAnalysisTaskMuonPerformance.cxx:184 AliAnalysisTaskMuonPerformance.cxx:185 AliAnalysisTaskMuonPerformance.cxx:186 AliAnalysisTaskMuonPerformance.cxx:187 AliAnalysisTaskMuonPerformance.cxx:188 AliAnalysisTaskMuonPerformance.cxx:189 AliAnalysisTaskMuonPerformance.cxx:190 AliAnalysisTaskMuonPerformance.cxx:191 AliAnalysisTaskMuonPerformance.cxx:192 AliAnalysisTaskMuonPerformance.cxx:193 AliAnalysisTaskMuonPerformance.cxx:194 AliAnalysisTaskMuonPerformance.cxx:195 AliAnalysisTaskMuonPerformance.cxx:196 AliAnalysisTaskMuonPerformance.cxx:197 AliAnalysisTaskMuonPerformance.cxx:198 AliAnalysisTaskMuonPerformance.cxx:199 AliAnalysisTaskMuonPerformance.cxx:200 AliAnalysisTaskMuonPerformance.cxx:201 AliAnalysisTaskMuonPerformance.cxx:202 AliAnalysisTaskMuonPerformance.cxx:203 AliAnalysisTaskMuonPerformance.cxx:204 AliAnalysisTaskMuonPerformance.cxx:205 AliAnalysisTaskMuonPerformance.cxx:206 AliAnalysisTaskMuonPerformance.cxx:207 AliAnalysisTaskMuonPerformance.cxx:208 AliAnalysisTaskMuonPerformance.cxx:209 AliAnalysisTaskMuonPerformance.cxx:210 AliAnalysisTaskMuonPerformance.cxx:211 AliAnalysisTaskMuonPerformance.cxx:212 AliAnalysisTaskMuonPerformance.cxx:213 AliAnalysisTaskMuonPerformance.cxx:214 AliAnalysisTaskMuonPerformance.cxx:215 AliAnalysisTaskMuonPerformance.cxx:216 AliAnalysisTaskMuonPerformance.cxx:217 AliAnalysisTaskMuonPerformance.cxx:218 AliAnalysisTaskMuonPerformance.cxx:219 AliAnalysisTaskMuonPerformance.cxx:220 AliAnalysisTaskMuonPerformance.cxx:221 AliAnalysisTaskMuonPerformance.cxx:222 AliAnalysisTaskMuonPerformance.cxx:223 AliAnalysisTaskMuonPerformance.cxx:224 AliAnalysisTaskMuonPerformance.cxx:225 AliAnalysisTaskMuonPerformance.cxx:226 AliAnalysisTaskMuonPerformance.cxx:227 AliAnalysisTaskMuonPerformance.cxx:228 AliAnalysisTaskMuonPerformance.cxx:229 AliAnalysisTaskMuonPerformance.cxx:230 AliAnalysisTaskMuonPerformance.cxx:231 AliAnalysisTaskMuonPerformance.cxx:232 AliAnalysisTaskMuonPerformance.cxx:233 AliAnalysisTaskMuonPerformance.cxx:234 AliAnalysisTaskMuonPerformance.cxx:235 AliAnalysisTaskMuonPerformance.cxx:236 AliAnalysisTaskMuonPerformance.cxx:237 AliAnalysisTaskMuonPerformance.cxx:238 AliAnalysisTaskMuonPerformance.cxx:239 AliAnalysisTaskMuonPerformance.cxx:240 AliAnalysisTaskMuonPerformance.cxx:241 AliAnalysisTaskMuonPerformance.cxx:242 AliAnalysisTaskMuonPerformance.cxx:243 AliAnalysisTaskMuonPerformance.cxx:244 AliAnalysisTaskMuonPerformance.cxx:245 AliAnalysisTaskMuonPerformance.cxx:246 AliAnalysisTaskMuonPerformance.cxx:247 AliAnalysisTaskMuonPerformance.cxx:248 AliAnalysisTaskMuonPerformance.cxx:249 AliAnalysisTaskMuonPerformance.cxx:250 AliAnalysisTaskMuonPerformance.cxx:251 AliAnalysisTaskMuonPerformance.cxx:252 AliAnalysisTaskMuonPerformance.cxx:253 AliAnalysisTaskMuonPerformance.cxx:254 AliAnalysisTaskMuonPerformance.cxx:255 AliAnalysisTaskMuonPerformance.cxx:256 AliAnalysisTaskMuonPerformance.cxx:257 AliAnalysisTaskMuonPerformance.cxx:258 AliAnalysisTaskMuonPerformance.cxx:259 AliAnalysisTaskMuonPerformance.cxx:260 AliAnalysisTaskMuonPerformance.cxx:261 AliAnalysisTaskMuonPerformance.cxx:262 AliAnalysisTaskMuonPerformance.cxx:263 AliAnalysisTaskMuonPerformance.cxx:264 AliAnalysisTaskMuonPerformance.cxx:265 AliAnalysisTaskMuonPerformance.cxx:266 AliAnalysisTaskMuonPerformance.cxx:267 AliAnalysisTaskMuonPerformance.cxx:268 AliAnalysisTaskMuonPerformance.cxx:269 AliAnalysisTaskMuonPerformance.cxx:270 AliAnalysisTaskMuonPerformance.cxx:271 AliAnalysisTaskMuonPerformance.cxx:272 AliAnalysisTaskMuonPerformance.cxx:273 AliAnalysisTaskMuonPerformance.cxx:274 AliAnalysisTaskMuonPerformance.cxx:275 AliAnalysisTaskMuonPerformance.cxx:276 AliAnalysisTaskMuonPerformance.cxx:277 AliAnalysisTaskMuonPerformance.cxx:278 AliAnalysisTaskMuonPerformance.cxx:279 AliAnalysisTaskMuonPerformance.cxx:280 AliAnalysisTaskMuonPerformance.cxx:281 AliAnalysisTaskMuonPerformance.cxx:282 AliAnalysisTaskMuonPerformance.cxx:283 AliAnalysisTaskMuonPerformance.cxx:284 AliAnalysisTaskMuonPerformance.cxx:285 AliAnalysisTaskMuonPerformance.cxx:286 AliAnalysisTaskMuonPerformance.cxx:287 AliAnalysisTaskMuonPerformance.cxx:288 AliAnalysisTaskMuonPerformance.cxx:289 AliAnalysisTaskMuonPerformance.cxx:290 AliAnalysisTaskMuonPerformance.cxx:291 AliAnalysisTaskMuonPerformance.cxx:292 AliAnalysisTaskMuonPerformance.cxx:293 AliAnalysisTaskMuonPerformance.cxx:294 AliAnalysisTaskMuonPerformance.cxx:295 AliAnalysisTaskMuonPerformance.cxx:296 AliAnalysisTaskMuonPerformance.cxx:297 AliAnalysisTaskMuonPerformance.cxx:298 AliAnalysisTaskMuonPerformance.cxx:299 AliAnalysisTaskMuonPerformance.cxx:300 AliAnalysisTaskMuonPerformance.cxx:301 AliAnalysisTaskMuonPerformance.cxx:302 AliAnalysisTaskMuonPerformance.cxx:303 AliAnalysisTaskMuonPerformance.cxx:304 AliAnalysisTaskMuonPerformance.cxx:305 AliAnalysisTaskMuonPerformance.cxx:306 AliAnalysisTaskMuonPerformance.cxx:307 AliAnalysisTaskMuonPerformance.cxx:308 AliAnalysisTaskMuonPerformance.cxx:309 AliAnalysisTaskMuonPerformance.cxx:310 AliAnalysisTaskMuonPerformance.cxx:311 AliAnalysisTaskMuonPerformance.cxx:312 AliAnalysisTaskMuonPerformance.cxx:313 AliAnalysisTaskMuonPerformance.cxx:314 AliAnalysisTaskMuonPerformance.cxx:315 AliAnalysisTaskMuonPerformance.cxx:316 AliAnalysisTaskMuonPerformance.cxx:317 AliAnalysisTaskMuonPerformance.cxx:318 AliAnalysisTaskMuonPerformance.cxx:319 AliAnalysisTaskMuonPerformance.cxx:320 AliAnalysisTaskMuonPerformance.cxx:321 AliAnalysisTaskMuonPerformance.cxx:322 AliAnalysisTaskMuonPerformance.cxx:323 AliAnalysisTaskMuonPerformance.cxx:324 AliAnalysisTaskMuonPerformance.cxx:325 AliAnalysisTaskMuonPerformance.cxx:326 AliAnalysisTaskMuonPerformance.cxx:327 AliAnalysisTaskMuonPerformance.cxx:328 AliAnalysisTaskMuonPerformance.cxx:329 AliAnalysisTaskMuonPerformance.cxx:330 AliAnalysisTaskMuonPerformance.cxx:331 AliAnalysisTaskMuonPerformance.cxx:332 AliAnalysisTaskMuonPerformance.cxx:333 AliAnalysisTaskMuonPerformance.cxx:334 AliAnalysisTaskMuonPerformance.cxx:335 AliAnalysisTaskMuonPerformance.cxx:336 AliAnalysisTaskMuonPerformance.cxx:337 AliAnalysisTaskMuonPerformance.cxx:338 AliAnalysisTaskMuonPerformance.cxx:339 AliAnalysisTaskMuonPerformance.cxx:340 AliAnalysisTaskMuonPerformance.cxx:341 AliAnalysisTaskMuonPerformance.cxx:342 AliAnalysisTaskMuonPerformance.cxx:343 AliAnalysisTaskMuonPerformance.cxx:344 AliAnalysisTaskMuonPerformance.cxx:345 AliAnalysisTaskMuonPerformance.cxx:346 AliAnalysisTaskMuonPerformance.cxx:347 AliAnalysisTaskMuonPerformance.cxx:348 AliAnalysisTaskMuonPerformance.cxx:349 AliAnalysisTaskMuonPerformance.cxx:350 AliAnalysisTaskMuonPerformance.cxx:351 AliAnalysisTaskMuonPerformance.cxx:352 AliAnalysisTaskMuonPerformance.cxx:353 AliAnalysisTaskMuonPerformance.cxx:354 AliAnalysisTaskMuonPerformance.cxx:355 AliAnalysisTaskMuonPerformance.cxx:356 AliAnalysisTaskMuonPerformance.cxx:357 AliAnalysisTaskMuonPerformance.cxx:358 AliAnalysisTaskMuonPerformance.cxx:359 AliAnalysisTaskMuonPerformance.cxx:360 AliAnalysisTaskMuonPerformance.cxx:361 AliAnalysisTaskMuonPerformance.cxx:362 AliAnalysisTaskMuonPerformance.cxx:363 AliAnalysisTaskMuonPerformance.cxx:364 AliAnalysisTaskMuonPerformance.cxx:365 AliAnalysisTaskMuonPerformance.cxx:366 AliAnalysisTaskMuonPerformance.cxx:367 AliAnalysisTaskMuonPerformance.cxx:368 AliAnalysisTaskMuonPerformance.cxx:369 AliAnalysisTaskMuonPerformance.cxx:370 AliAnalysisTaskMuonPerformance.cxx:371 AliAnalysisTaskMuonPerformance.cxx:372 AliAnalysisTaskMuonPerformance.cxx:373 AliAnalysisTaskMuonPerformance.cxx:374 AliAnalysisTaskMuonPerformance.cxx:375 AliAnalysisTaskMuonPerformance.cxx:376 AliAnalysisTaskMuonPerformance.cxx:377 AliAnalysisTaskMuonPerformance.cxx:378 AliAnalysisTaskMuonPerformance.cxx:379 AliAnalysisTaskMuonPerformance.cxx:380 AliAnalysisTaskMuonPerformance.cxx:381 AliAnalysisTaskMuonPerformance.cxx:382 AliAnalysisTaskMuonPerformance.cxx:383 AliAnalysisTaskMuonPerformance.cxx:384 AliAnalysisTaskMuonPerformance.cxx:385 AliAnalysisTaskMuonPerformance.cxx:386 AliAnalysisTaskMuonPerformance.cxx:387 AliAnalysisTaskMuonPerformance.cxx:388 AliAnalysisTaskMuonPerformance.cxx:389 AliAnalysisTaskMuonPerformance.cxx:390 AliAnalysisTaskMuonPerformance.cxx:391 AliAnalysisTaskMuonPerformance.cxx:392 AliAnalysisTaskMuonPerformance.cxx:393 AliAnalysisTaskMuonPerformance.cxx:394 AliAnalysisTaskMuonPerformance.cxx:395 AliAnalysisTaskMuonPerformance.cxx:396 AliAnalysisTaskMuonPerformance.cxx:397 AliAnalysisTaskMuonPerformance.cxx:398 AliAnalysisTaskMuonPerformance.cxx:399 AliAnalysisTaskMuonPerformance.cxx:400 AliAnalysisTaskMuonPerformance.cxx:401 AliAnalysisTaskMuonPerformance.cxx:402 AliAnalysisTaskMuonPerformance.cxx:403 AliAnalysisTaskMuonPerformance.cxx:404 AliAnalysisTaskMuonPerformance.cxx:405 AliAnalysisTaskMuonPerformance.cxx:406 AliAnalysisTaskMuonPerformance.cxx:407 AliAnalysisTaskMuonPerformance.cxx:408 AliAnalysisTaskMuonPerformance.cxx:409 AliAnalysisTaskMuonPerformance.cxx:410 AliAnalysisTaskMuonPerformance.cxx:411 AliAnalysisTaskMuonPerformance.cxx:412 AliAnalysisTaskMuonPerformance.cxx:413 AliAnalysisTaskMuonPerformance.cxx:414 AliAnalysisTaskMuonPerformance.cxx:415 AliAnalysisTaskMuonPerformance.cxx:416 AliAnalysisTaskMuonPerformance.cxx:417 AliAnalysisTaskMuonPerformance.cxx:418 AliAnalysisTaskMuonPerformance.cxx:419 AliAnalysisTaskMuonPerformance.cxx:420 AliAnalysisTaskMuonPerformance.cxx:421 AliAnalysisTaskMuonPerformance.cxx:422 AliAnalysisTaskMuonPerformance.cxx:423 AliAnalysisTaskMuonPerformance.cxx:424 AliAnalysisTaskMuonPerformance.cxx:425 AliAnalysisTaskMuonPerformance.cxx:426 AliAnalysisTaskMuonPerformance.cxx:427 AliAnalysisTaskMuonPerformance.cxx:428 AliAnalysisTaskMuonPerformance.cxx:429 AliAnalysisTaskMuonPerformance.cxx:430 AliAnalysisTaskMuonPerformance.cxx:431 AliAnalysisTaskMuonPerformance.cxx:432 AliAnalysisTaskMuonPerformance.cxx:433 AliAnalysisTaskMuonPerformance.cxx:434 AliAnalysisTaskMuonPerformance.cxx:435 AliAnalysisTaskMuonPerformance.cxx:436 AliAnalysisTaskMuonPerformance.cxx:437 AliAnalysisTaskMuonPerformance.cxx:438 AliAnalysisTaskMuonPerformance.cxx:439 AliAnalysisTaskMuonPerformance.cxx:440 AliAnalysisTaskMuonPerformance.cxx:441 AliAnalysisTaskMuonPerformance.cxx:442 AliAnalysisTaskMuonPerformance.cxx:443 AliAnalysisTaskMuonPerformance.cxx:444 AliAnalysisTaskMuonPerformance.cxx:445 AliAnalysisTaskMuonPerformance.cxx:446 AliAnalysisTaskMuonPerformance.cxx:447 AliAnalysisTaskMuonPerformance.cxx:448 AliAnalysisTaskMuonPerformance.cxx:449 AliAnalysisTaskMuonPerformance.cxx:450 AliAnalysisTaskMuonPerformance.cxx:451 AliAnalysisTaskMuonPerformance.cxx:452 AliAnalysisTaskMuonPerformance.cxx:453 AliAnalysisTaskMuonPerformance.cxx:454 AliAnalysisTaskMuonPerformance.cxx:455 AliAnalysisTaskMuonPerformance.cxx:456 AliAnalysisTaskMuonPerformance.cxx:457 AliAnalysisTaskMuonPerformance.cxx:458 AliAnalysisTaskMuonPerformance.cxx:459 AliAnalysisTaskMuonPerformance.cxx:460 AliAnalysisTaskMuonPerformance.cxx:461 AliAnalysisTaskMuonPerformance.cxx:462 AliAnalysisTaskMuonPerformance.cxx:463 AliAnalysisTaskMuonPerformance.cxx:464 AliAnalysisTaskMuonPerformance.cxx:465 AliAnalysisTaskMuonPerformance.cxx:466 AliAnalysisTaskMuonPerformance.cxx:467 AliAnalysisTaskMuonPerformance.cxx:468 AliAnalysisTaskMuonPerformance.cxx:469 AliAnalysisTaskMuonPerformance.cxx:470 AliAnalysisTaskMuonPerformance.cxx:471 AliAnalysisTaskMuonPerformance.cxx:472 AliAnalysisTaskMuonPerformance.cxx:473 AliAnalysisTaskMuonPerformance.cxx:474 AliAnalysisTaskMuonPerformance.cxx:475 AliAnalysisTaskMuonPerformance.cxx:476 AliAnalysisTaskMuonPerformance.cxx:477 AliAnalysisTaskMuonPerformance.cxx:478 AliAnalysisTaskMuonPerformance.cxx:479 AliAnalysisTaskMuonPerformance.cxx:480 AliAnalysisTaskMuonPerformance.cxx:481 AliAnalysisTaskMuonPerformance.cxx:482 AliAnalysisTaskMuonPerformance.cxx:483 AliAnalysisTaskMuonPerformance.cxx:484 AliAnalysisTaskMuonPerformance.cxx:485 AliAnalysisTaskMuonPerformance.cxx:486 AliAnalysisTaskMuonPerformance.cxx:487 AliAnalysisTaskMuonPerformance.cxx:488 AliAnalysisTaskMuonPerformance.cxx:489 AliAnalysisTaskMuonPerformance.cxx:490 AliAnalysisTaskMuonPerformance.cxx:491 AliAnalysisTaskMuonPerformance.cxx:492 AliAnalysisTaskMuonPerformance.cxx:493 AliAnalysisTaskMuonPerformance.cxx:494 AliAnalysisTaskMuonPerformance.cxx:495 AliAnalysisTaskMuonPerformance.cxx:496 AliAnalysisTaskMuonPerformance.cxx:497 AliAnalysisTaskMuonPerformance.cxx:498 AliAnalysisTaskMuonPerformance.cxx:499 AliAnalysisTaskMuonPerformance.cxx:500 AliAnalysisTaskMuonPerformance.cxx:501 AliAnalysisTaskMuonPerformance.cxx:502 AliAnalysisTaskMuonPerformance.cxx:503 AliAnalysisTaskMuonPerformance.cxx:504 AliAnalysisTaskMuonPerformance.cxx:505 AliAnalysisTaskMuonPerformance.cxx:506 AliAnalysisTaskMuonPerformance.cxx:507 AliAnalysisTaskMuonPerformance.cxx:508 AliAnalysisTaskMuonPerformance.cxx:509 AliAnalysisTaskMuonPerformance.cxx:510 AliAnalysisTaskMuonPerformance.cxx:511 AliAnalysisTaskMuonPerformance.cxx:512 AliAnalysisTaskMuonPerformance.cxx:513 AliAnalysisTaskMuonPerformance.cxx:514 AliAnalysisTaskMuonPerformance.cxx:515 AliAnalysisTaskMuonPerformance.cxx:516 AliAnalysisTaskMuonPerformance.cxx:517 AliAnalysisTaskMuonPerformance.cxx:518 AliAnalysisTaskMuonPerformance.cxx:519 AliAnalysisTaskMuonPerformance.cxx:520 AliAnalysisTaskMuonPerformance.cxx:521 AliAnalysisTaskMuonPerformance.cxx:522 AliAnalysisTaskMuonPerformance.cxx:523 AliAnalysisTaskMuonPerformance.cxx:524 AliAnalysisTaskMuonPerformance.cxx:525 AliAnalysisTaskMuonPerformance.cxx:526 AliAnalysisTaskMuonPerformance.cxx:527 AliAnalysisTaskMuonPerformance.cxx:528 AliAnalysisTaskMuonPerformance.cxx:529 AliAnalysisTaskMuonPerformance.cxx:530 AliAnalysisTaskMuonPerformance.cxx:531 AliAnalysisTaskMuonPerformance.cxx:532 AliAnalysisTaskMuonPerformance.cxx:533 AliAnalysisTaskMuonPerformance.cxx:534 AliAnalysisTaskMuonPerformance.cxx:535 AliAnalysisTaskMuonPerformance.cxx:536 AliAnalysisTaskMuonPerformance.cxx:537 AliAnalysisTaskMuonPerformance.cxx:538 AliAnalysisTaskMuonPerformance.cxx:539 AliAnalysisTaskMuonPerformance.cxx:540 AliAnalysisTaskMuonPerformance.cxx:541 AliAnalysisTaskMuonPerformance.cxx:542 AliAnalysisTaskMuonPerformance.cxx:543 AliAnalysisTaskMuonPerformance.cxx:544 AliAnalysisTaskMuonPerformance.cxx:545 AliAnalysisTaskMuonPerformance.cxx:546 AliAnalysisTaskMuonPerformance.cxx:547 AliAnalysisTaskMuonPerformance.cxx:548 AliAnalysisTaskMuonPerformance.cxx:549 AliAnalysisTaskMuonPerformance.cxx:550 AliAnalysisTaskMuonPerformance.cxx:551 AliAnalysisTaskMuonPerformance.cxx:552 AliAnalysisTaskMuonPerformance.cxx:553 AliAnalysisTaskMuonPerformance.cxx:554 AliAnalysisTaskMuonPerformance.cxx:555 AliAnalysisTaskMuonPerformance.cxx:556 AliAnalysisTaskMuonPerformance.cxx:557 AliAnalysisTaskMuonPerformance.cxx:558 AliAnalysisTaskMuonPerformance.cxx:559 AliAnalysisTaskMuonPerformance.cxx:560 AliAnalysisTaskMuonPerformance.cxx:561 AliAnalysisTaskMuonPerformance.cxx:562 AliAnalysisTaskMuonPerformance.cxx:563 AliAnalysisTaskMuonPerformance.cxx:564 AliAnalysisTaskMuonPerformance.cxx:565 AliAnalysisTaskMuonPerformance.cxx:566 AliAnalysisTaskMuonPerformance.cxx:567 AliAnalysisTaskMuonPerformance.cxx:568 AliAnalysisTaskMuonPerformance.cxx:569 AliAnalysisTaskMuonPerformance.cxx:570 AliAnalysisTaskMuonPerformance.cxx:571 AliAnalysisTaskMuonPerformance.cxx:572 AliAnalysisTaskMuonPerformance.cxx:573 AliAnalysisTaskMuonPerformance.cxx:574 AliAnalysisTaskMuonPerformance.cxx:575 AliAnalysisTaskMuonPerformance.cxx:576 AliAnalysisTaskMuonPerformance.cxx:577 AliAnalysisTaskMuonPerformance.cxx:578 AliAnalysisTaskMuonPerformance.cxx:579 AliAnalysisTaskMuonPerformance.cxx:580 AliAnalysisTaskMuonPerformance.cxx:581 AliAnalysisTaskMuonPerformance.cxx:582 AliAnalysisTaskMuonPerformance.cxx:583 AliAnalysisTaskMuonPerformance.cxx:584 AliAnalysisTaskMuonPerformance.cxx:585 AliAnalysisTaskMuonPerformance.cxx:586 AliAnalysisTaskMuonPerformance.cxx:587 AliAnalysisTaskMuonPerformance.cxx:588 AliAnalysisTaskMuonPerformance.cxx:589 AliAnalysisTaskMuonPerformance.cxx:590 AliAnalysisTaskMuonPerformance.cxx:591 AliAnalysisTaskMuonPerformance.cxx:592 AliAnalysisTaskMuonPerformance.cxx:593 AliAnalysisTaskMuonPerformance.cxx:594 AliAnalysisTaskMuonPerformance.cxx:595 AliAnalysisTaskMuonPerformance.cxx:596 AliAnalysisTaskMuonPerformance.cxx:597 AliAnalysisTaskMuonPerformance.cxx:598 AliAnalysisTaskMuonPerformance.cxx:599 AliAnalysisTaskMuonPerformance.cxx:600 AliAnalysisTaskMuonPerformance.cxx:601 AliAnalysisTaskMuonPerformance.cxx:602 AliAnalysisTaskMuonPerformance.cxx:603 AliAnalysisTaskMuonPerformance.cxx:604 AliAnalysisTaskMuonPerformance.cxx:605 AliAnalysisTaskMuonPerformance.cxx:606 AliAnalysisTaskMuonPerformance.cxx:607 AliAnalysisTaskMuonPerformance.cxx:608 AliAnalysisTaskMuonPerformance.cxx:609 AliAnalysisTaskMuonPerformance.cxx:610 AliAnalysisTaskMuonPerformance.cxx:611 AliAnalysisTaskMuonPerformance.cxx:612 AliAnalysisTaskMuonPerformance.cxx:613 AliAnalysisTaskMuonPerformance.cxx:614 AliAnalysisTaskMuonPerformance.cxx:615 AliAnalysisTaskMuonPerformance.cxx:616 AliAnalysisTaskMuonPerformance.cxx:617 AliAnalysisTaskMuonPerformance.cxx:618 AliAnalysisTaskMuonPerformance.cxx:619 AliAnalysisTaskMuonPerformance.cxx:620 AliAnalysisTaskMuonPerformance.cxx:621 AliAnalysisTaskMuonPerformance.cxx:622 AliAnalysisTaskMuonPerformance.cxx:623 AliAnalysisTaskMuonPerformance.cxx:624 AliAnalysisTaskMuonPerformance.cxx:625 AliAnalysisTaskMuonPerformance.cxx:626 AliAnalysisTaskMuonPerformance.cxx:627 AliAnalysisTaskMuonPerformance.cxx:628 AliAnalysisTaskMuonPerformance.cxx:629 AliAnalysisTaskMuonPerformance.cxx:630 AliAnalysisTaskMuonPerformance.cxx:631 AliAnalysisTaskMuonPerformance.cxx:632 AliAnalysisTaskMuonPerformance.cxx:633 AliAnalysisTaskMuonPerformance.cxx:634 AliAnalysisTaskMuonPerformance.cxx:635 AliAnalysisTaskMuonPerformance.cxx:636 AliAnalysisTaskMuonPerformance.cxx:637 AliAnalysisTaskMuonPerformance.cxx:638 AliAnalysisTaskMuonPerformance.cxx:639 AliAnalysisTaskMuonPerformance.cxx:640 AliAnalysisTaskMuonPerformance.cxx:641 AliAnalysisTaskMuonPerformance.cxx:642 AliAnalysisTaskMuonPerformance.cxx:643 AliAnalysisTaskMuonPerformance.cxx:644 AliAnalysisTaskMuonPerformance.cxx:645 AliAnalysisTaskMuonPerformance.cxx:646 AliAnalysisTaskMuonPerformance.cxx:647 AliAnalysisTaskMuonPerformance.cxx:648 AliAnalysisTaskMuonPerformance.cxx:649 AliAnalysisTaskMuonPerformance.cxx:650 AliAnalysisTaskMuonPerformance.cxx:651 AliAnalysisTaskMuonPerformance.cxx:652 AliAnalysisTaskMuonPerformance.cxx:653 AliAnalysisTaskMuonPerformance.cxx:654 AliAnalysisTaskMuonPerformance.cxx:655 AliAnalysisTaskMuonPerformance.cxx:656 AliAnalysisTaskMuonPerformance.cxx:657 AliAnalysisTaskMuonPerformance.cxx:658 AliAnalysisTaskMuonPerformance.cxx:659 AliAnalysisTaskMuonPerformance.cxx:660 AliAnalysisTaskMuonPerformance.cxx:661 AliAnalysisTaskMuonPerformance.cxx:662 AliAnalysisTaskMuonPerformance.cxx:663 AliAnalysisTaskMuonPerformance.cxx:664 AliAnalysisTaskMuonPerformance.cxx:665 AliAnalysisTaskMuonPerformance.cxx:666 AliAnalysisTaskMuonPerformance.cxx:667 AliAnalysisTaskMuonPerformance.cxx:668 AliAnalysisTaskMuonPerformance.cxx:669 AliAnalysisTaskMuonPerformance.cxx:670 AliAnalysisTaskMuonPerformance.cxx:671 AliAnalysisTaskMuonPerformance.cxx:672 AliAnalysisTaskMuonPerformance.cxx:673 AliAnalysisTaskMuonPerformance.cxx:674 AliAnalysisTaskMuonPerformance.cxx:675 AliAnalysisTaskMuonPerformance.cxx:676 AliAnalysisTaskMuonPerformance.cxx:677 AliAnalysisTaskMuonPerformance.cxx:678 AliAnalysisTaskMuonPerformance.cxx:679 AliAnalysisTaskMuonPerformance.cxx:680 AliAnalysisTaskMuonPerformance.cxx:681 AliAnalysisTaskMuonPerformance.cxx:682 AliAnalysisTaskMuonPerformance.cxx:683 AliAnalysisTaskMuonPerformance.cxx:684 AliAnalysisTaskMuonPerformance.cxx:685 AliAnalysisTaskMuonPerformance.cxx:686 AliAnalysisTaskMuonPerformance.cxx:687 AliAnalysisTaskMuonPerformance.cxx:688 AliAnalysisTaskMuonPerformance.cxx:689 AliAnalysisTaskMuonPerformance.cxx:690 AliAnalysisTaskMuonPerformance.cxx:691 AliAnalysisTaskMuonPerformance.cxx:692 AliAnalysisTaskMuonPerformance.cxx:693 AliAnalysisTaskMuonPerformance.cxx:694 AliAnalysisTaskMuonPerformance.cxx:695 AliAnalysisTaskMuonPerformance.cxx:696 AliAnalysisTaskMuonPerformance.cxx:697 AliAnalysisTaskMuonPerformance.cxx:698 AliAnalysisTaskMuonPerformance.cxx:699 AliAnalysisTaskMuonPerformance.cxx:700 AliAnalysisTaskMuonPerformance.cxx:701 AliAnalysisTaskMuonPerformance.cxx:702 AliAnalysisTaskMuonPerformance.cxx:703 AliAnalysisTaskMuonPerformance.cxx:704 AliAnalysisTaskMuonPerformance.cxx:705 AliAnalysisTaskMuonPerformance.cxx:706 AliAnalysisTaskMuonPerformance.cxx:707 AliAnalysisTaskMuonPerformance.cxx:708 AliAnalysisTaskMuonPerformance.cxx:709 AliAnalysisTaskMuonPerformance.cxx:710 AliAnalysisTaskMuonPerformance.cxx:711 AliAnalysisTaskMuonPerformance.cxx:712 AliAnalysisTaskMuonPerformance.cxx:713 AliAnalysisTaskMuonPerformance.cxx:714 AliAnalysisTaskMuonPerformance.cxx:715 AliAnalysisTaskMuonPerformance.cxx:716 AliAnalysisTaskMuonPerformance.cxx:717 AliAnalysisTaskMuonPerformance.cxx:718 AliAnalysisTaskMuonPerformance.cxx:719 AliAnalysisTaskMuonPerformance.cxx:720 AliAnalysisTaskMuonPerformance.cxx:721 AliAnalysisTaskMuonPerformance.cxx:722 AliAnalysisTaskMuonPerformance.cxx:723 AliAnalysisTaskMuonPerformance.cxx:724 AliAnalysisTaskMuonPerformance.cxx:725 AliAnalysisTaskMuonPerformance.cxx:726 AliAnalysisTaskMuonPerformance.cxx:727 AliAnalysisTaskMuonPerformance.cxx:728 AliAnalysisTaskMuonPerformance.cxx:729 AliAnalysisTaskMuonPerformance.cxx:730 AliAnalysisTaskMuonPerformance.cxx:731 AliAnalysisTaskMuonPerformance.cxx:732 AliAnalysisTaskMuonPerformance.cxx:733 AliAnalysisTaskMuonPerformance.cxx:734 AliAnalysisTaskMuonPerformance.cxx:735 AliAnalysisTaskMuonPerformance.cxx:736 AliAnalysisTaskMuonPerformance.cxx:737 AliAnalysisTaskMuonPerformance.cxx:738 AliAnalysisTaskMuonPerformance.cxx:739 AliAnalysisTaskMuonPerformance.cxx:740 AliAnalysisTaskMuonPerformance.cxx:741 AliAnalysisTaskMuonPerformance.cxx:742 AliAnalysisTaskMuonPerformance.cxx:743 AliAnalysisTaskMuonPerformance.cxx:744 AliAnalysisTaskMuonPerformance.cxx:745 AliAnalysisTaskMuonPerformance.cxx:746 AliAnalysisTaskMuonPerformance.cxx:747 AliAnalysisTaskMuonPerformance.cxx:748 AliAnalysisTaskMuonPerformance.cxx:749 AliAnalysisTaskMuonPerformance.cxx:750 AliAnalysisTaskMuonPerformance.cxx:751 AliAnalysisTaskMuonPerformance.cxx:752 AliAnalysisTaskMuonPerformance.cxx:753 AliAnalysisTaskMuonPerformance.cxx:754 AliAnalysisTaskMuonPerformance.cxx:755 AliAnalysisTaskMuonPerformance.cxx:756 AliAnalysisTaskMuonPerformance.cxx:757 AliAnalysisTaskMuonPerformance.cxx:758 AliAnalysisTaskMuonPerformance.cxx:759 AliAnalysisTaskMuonPerformance.cxx:760 AliAnalysisTaskMuonPerformance.cxx:761 AliAnalysisTaskMuonPerformance.cxx:762 AliAnalysisTaskMuonPerformance.cxx:763 AliAnalysisTaskMuonPerformance.cxx:764 AliAnalysisTaskMuonPerformance.cxx:765 AliAnalysisTaskMuonPerformance.cxx:766 AliAnalysisTaskMuonPerformance.cxx:767 AliAnalysisTaskMuonPerformance.cxx:768 AliAnalysisTaskMuonPerformance.cxx:769 AliAnalysisTaskMuonPerformance.cxx:770 AliAnalysisTaskMuonPerformance.cxx:771 AliAnalysisTaskMuonPerformance.cxx:772 AliAnalysisTaskMuonPerformance.cxx:773 AliAnalysisTaskMuonPerformance.cxx:774 AliAnalysisTaskMuonPerformance.cxx:775 AliAnalysisTaskMuonPerformance.cxx:776 AliAnalysisTaskMuonPerformance.cxx:777 AliAnalysisTaskMuonPerformance.cxx:778 AliAnalysisTaskMuonPerformance.cxx:779 AliAnalysisTaskMuonPerformance.cxx:780 AliAnalysisTaskMuonPerformance.cxx:781 AliAnalysisTaskMuonPerformance.cxx:782 AliAnalysisTaskMuonPerformance.cxx:783 AliAnalysisTaskMuonPerformance.cxx:784 AliAnalysisTaskMuonPerformance.cxx:785 AliAnalysisTaskMuonPerformance.cxx:786 AliAnalysisTaskMuonPerformance.cxx:787 AliAnalysisTaskMuonPerformance.cxx:788 AliAnalysisTaskMuonPerformance.cxx:789 AliAnalysisTaskMuonPerformance.cxx:790 AliAnalysisTaskMuonPerformance.cxx:791 AliAnalysisTaskMuonPerformance.cxx:792 AliAnalysisTaskMuonPerformance.cxx:793 AliAnalysisTaskMuonPerformance.cxx:794 AliAnalysisTaskMuonPerformance.cxx:795 AliAnalysisTaskMuonPerformance.cxx:796 AliAnalysisTaskMuonPerformance.cxx:797 AliAnalysisTaskMuonPerformance.cxx:798 AliAnalysisTaskMuonPerformance.cxx:799 AliAnalysisTaskMuonPerformance.cxx:800 AliAnalysisTaskMuonPerformance.cxx:801 AliAnalysisTaskMuonPerformance.cxx:802 AliAnalysisTaskMuonPerformance.cxx:803 AliAnalysisTaskMuonPerformance.cxx:804 AliAnalysisTaskMuonPerformance.cxx:805 AliAnalysisTaskMuonPerformance.cxx:806 AliAnalysisTaskMuonPerformance.cxx:807 AliAnalysisTaskMuonPerformance.cxx:808 AliAnalysisTaskMuonPerformance.cxx:809 AliAnalysisTaskMuonPerformance.cxx:810 AliAnalysisTaskMuonPerformance.cxx:811 AliAnalysisTaskMuonPerformance.cxx:812 AliAnalysisTaskMuonPerformance.cxx:813 AliAnalysisTaskMuonPerformance.cxx:814 AliAnalysisTaskMuonPerformance.cxx:815 AliAnalysisTaskMuonPerformance.cxx:816 AliAnalysisTaskMuonPerformance.cxx:817 AliAnalysisTaskMuonPerformance.cxx:818 AliAnalysisTaskMuonPerformance.cxx:819 AliAnalysisTaskMuonPerformance.cxx:820 AliAnalysisTaskMuonPerformance.cxx:821 AliAnalysisTaskMuonPerformance.cxx:822 AliAnalysisTaskMuonPerformance.cxx:823 AliAnalysisTaskMuonPerformance.cxx:824 AliAnalysisTaskMuonPerformance.cxx:825 AliAnalysisTaskMuonPerformance.cxx:826 AliAnalysisTaskMuonPerformance.cxx:827 AliAnalysisTaskMuonPerformance.cxx:828 AliAnalysisTaskMuonPerformance.cxx:829 AliAnalysisTaskMuonPerformance.cxx:830 AliAnalysisTaskMuonPerformance.cxx:831 AliAnalysisTaskMuonPerformance.cxx:832 AliAnalysisTaskMuonPerformance.cxx:833 AliAnalysisTaskMuonPerformance.cxx:834 AliAnalysisTaskMuonPerformance.cxx:835 AliAnalysisTaskMuonPerformance.cxx:836 AliAnalysisTaskMuonPerformance.cxx:837 AliAnalysisTaskMuonPerformance.cxx:838 AliAnalysisTaskMuonPerformance.cxx:839 AliAnalysisTaskMuonPerformance.cxx:840 AliAnalysisTaskMuonPerformance.cxx:841 AliAnalysisTaskMuonPerformance.cxx:842 AliAnalysisTaskMuonPerformance.cxx:843 AliAnalysisTaskMuonPerformance.cxx:844 AliAnalysisTaskMuonPerformance.cxx:845 AliAnalysisTaskMuonPerformance.cxx:846 AliAnalysisTaskMuonPerformance.cxx:847 AliAnalysisTaskMuonPerformance.cxx:848 AliAnalysisTaskMuonPerformance.cxx:849 AliAnalysisTaskMuonPerformance.cxx:850 AliAnalysisTaskMuonPerformance.cxx:851 AliAnalysisTaskMuonPerformance.cxx:852 AliAnalysisTaskMuonPerformance.cxx:853 AliAnalysisTaskMuonPerformance.cxx:854 AliAnalysisTaskMuonPerformance.cxx:855 AliAnalysisTaskMuonPerformance.cxx:856 AliAnalysisTaskMuonPerformance.cxx:857 AliAnalysisTaskMuonPerformance.cxx:858 AliAnalysisTaskMuonPerformance.cxx:859 AliAnalysisTaskMuonPerformance.cxx:860 AliAnalysisTaskMuonPerformance.cxx:861 AliAnalysisTaskMuonPerformance.cxx:862 AliAnalysisTaskMuonPerformance.cxx:863 AliAnalysisTaskMuonPerformance.cxx:864 AliAnalysisTaskMuonPerformance.cxx:865 AliAnalysisTaskMuonPerformance.cxx:866 AliAnalysisTaskMuonPerformance.cxx:867 AliAnalysisTaskMuonPerformance.cxx:868 AliAnalysisTaskMuonPerformance.cxx:869 AliAnalysisTaskMuonPerformance.cxx:870 AliAnalysisTaskMuonPerformance.cxx:871 AliAnalysisTaskMuonPerformance.cxx:872 AliAnalysisTaskMuonPerformance.cxx:873 AliAnalysisTaskMuonPerformance.cxx:874 AliAnalysisTaskMuonPerformance.cxx:875 AliAnalysisTaskMuonPerformance.cxx:876 AliAnalysisTaskMuonPerformance.cxx:877 AliAnalysisTaskMuonPerformance.cxx:878 AliAnalysisTaskMuonPerformance.cxx:879 AliAnalysisTaskMuonPerformance.cxx:880 AliAnalysisTaskMuonPerformance.cxx:881 AliAnalysisTaskMuonPerformance.cxx:882 AliAnalysisTaskMuonPerformance.cxx:883 AliAnalysisTaskMuonPerformance.cxx:884 AliAnalysisTaskMuonPerformance.cxx:885 AliAnalysisTaskMuonPerformance.cxx:886 AliAnalysisTaskMuonPerformance.cxx:887 AliAnalysisTaskMuonPerformance.cxx:888 AliAnalysisTaskMuonPerformance.cxx:889 AliAnalysisTaskMuonPerformance.cxx:890 AliAnalysisTaskMuonPerformance.cxx:891 AliAnalysisTaskMuonPerformance.cxx:892 AliAnalysisTaskMuonPerformance.cxx:893 AliAnalysisTaskMuonPerformance.cxx:894 AliAnalysisTaskMuonPerformance.cxx:895 AliAnalysisTaskMuonPerformance.cxx:896 AliAnalysisTaskMuonPerformance.cxx:897 AliAnalysisTaskMuonPerformance.cxx:898 AliAnalysisTaskMuonPerformance.cxx:899 AliAnalysisTaskMuonPerformance.cxx:900 AliAnalysisTaskMuonPerformance.cxx:901 AliAnalysisTaskMuonPerformance.cxx:902 AliAnalysisTaskMuonPerformance.cxx:903 AliAnalysisTaskMuonPerformance.cxx:904 AliAnalysisTaskMuonPerformance.cxx:905 AliAnalysisTaskMuonPerformance.cxx:906 AliAnalysisTaskMuonPerformance.cxx:907 AliAnalysisTaskMuonPerformance.cxx:908 AliAnalysisTaskMuonPerformance.cxx:909 AliAnalysisTaskMuonPerformance.cxx:910 AliAnalysisTaskMuonPerformance.cxx:911 AliAnalysisTaskMuonPerformance.cxx:912 AliAnalysisTaskMuonPerformance.cxx:913 AliAnalysisTaskMuonPerformance.cxx:914 AliAnalysisTaskMuonPerformance.cxx:915 AliAnalysisTaskMuonPerformance.cxx:916 AliAnalysisTaskMuonPerformance.cxx:917 AliAnalysisTaskMuonPerformance.cxx:918 AliAnalysisTaskMuonPerformance.cxx:919 AliAnalysisTaskMuonPerformance.cxx:920 AliAnalysisTaskMuonPerformance.cxx:921 AliAnalysisTaskMuonPerformance.cxx:922 AliAnalysisTaskMuonPerformance.cxx:923 AliAnalysisTaskMuonPerformance.cxx:924 AliAnalysisTaskMuonPerformance.cxx:925 AliAnalysisTaskMuonPerformance.cxx:926 AliAnalysisTaskMuonPerformance.cxx:927 AliAnalysisTaskMuonPerformance.cxx:928 AliAnalysisTaskMuonPerformance.cxx:929 AliAnalysisTaskMuonPerformance.cxx:930 AliAnalysisTaskMuonPerformance.cxx:931 AliAnalysisTaskMuonPerformance.cxx:932 AliAnalysisTaskMuonPerformance.cxx:933 AliAnalysisTaskMuonPerformance.cxx:934 AliAnalysisTaskMuonPerformance.cxx:935 AliAnalysisTaskMuonPerformance.cxx:936 AliAnalysisTaskMuonPerformance.cxx:937 AliAnalysisTaskMuonPerformance.cxx:938 AliAnalysisTaskMuonPerformance.cxx:939 AliAnalysisTaskMuonPerformance.cxx:940 AliAnalysisTaskMuonPerformance.cxx:941 AliAnalysisTaskMuonPerformance.cxx:942 AliAnalysisTaskMuonPerformance.cxx:943 AliAnalysisTaskMuonPerformance.cxx:944 AliAnalysisTaskMuonPerformance.cxx:945 AliAnalysisTaskMuonPerformance.cxx:946 AliAnalysisTaskMuonPerformance.cxx:947 AliAnalysisTaskMuonPerformance.cxx:948 AliAnalysisTaskMuonPerformance.cxx:949 AliAnalysisTaskMuonPerformance.cxx:950 AliAnalysisTaskMuonPerformance.cxx:951 AliAnalysisTaskMuonPerformance.cxx:952 AliAnalysisTaskMuonPerformance.cxx:953 AliAnalysisTaskMuonPerformance.cxx:954 AliAnalysisTaskMuonPerformance.cxx:955 AliAnalysisTaskMuonPerformance.cxx:956 AliAnalysisTaskMuonPerformance.cxx:957 AliAnalysisTaskMuonPerformance.cxx:958 AliAnalysisTaskMuonPerformance.cxx:959 AliAnalysisTaskMuonPerformance.cxx:960 AliAnalysisTaskMuonPerformance.cxx:961 AliAnalysisTaskMuonPerformance.cxx:962 AliAnalysisTaskMuonPerformance.cxx:963 AliAnalysisTaskMuonPerformance.cxx:964 AliAnalysisTaskMuonPerformance.cxx:965 AliAnalysisTaskMuonPerformance.cxx:966 AliAnalysisTaskMuonPerformance.cxx:967 AliAnalysisTaskMuonPerformance.cxx:968 AliAnalysisTaskMuonPerformance.cxx:969 AliAnalysisTaskMuonPerformance.cxx:970 AliAnalysisTaskMuonPerformance.cxx:971 AliAnalysisTaskMuonPerformance.cxx:972 AliAnalysisTaskMuonPerformance.cxx:973 AliAnalysisTaskMuonPerformance.cxx:974 AliAnalysisTaskMuonPerformance.cxx:975 AliAnalysisTaskMuonPerformance.cxx:976 AliAnalysisTaskMuonPerformance.cxx:977 AliAnalysisTaskMuonPerformance.cxx:978 AliAnalysisTaskMuonPerformance.cxx:979 AliAnalysisTaskMuonPerformance.cxx:980 AliAnalysisTaskMuonPerformance.cxx:981 AliAnalysisTaskMuonPerformance.cxx:982 AliAnalysisTaskMuonPerformance.cxx:983 AliAnalysisTaskMuonPerformance.cxx:984 AliAnalysisTaskMuonPerformance.cxx:985 AliAnalysisTaskMuonPerformance.cxx:986 AliAnalysisTaskMuonPerformance.cxx:987 AliAnalysisTaskMuonPerformance.cxx:988 AliAnalysisTaskMuonPerformance.cxx:989 AliAnalysisTaskMuonPerformance.cxx:990 AliAnalysisTaskMuonPerformance.cxx:991 AliAnalysisTaskMuonPerformance.cxx:992 AliAnalysisTaskMuonPerformance.cxx:993 AliAnalysisTaskMuonPerformance.cxx:994 AliAnalysisTaskMuonPerformance.cxx:995 AliAnalysisTaskMuonPerformance.cxx:996 AliAnalysisTaskMuonPerformance.cxx:997 AliAnalysisTaskMuonPerformance.cxx:998 AliAnalysisTaskMuonPerformance.cxx:999 AliAnalysisTaskMuonPerformance.cxx:1000 AliAnalysisTaskMuonPerformance.cxx:1001 AliAnalysisTaskMuonPerformance.cxx:1002 AliAnalysisTaskMuonPerformance.cxx:1003 AliAnalysisTaskMuonPerformance.cxx:1004 AliAnalysisTaskMuonPerformance.cxx:1005 AliAnalysisTaskMuonPerformance.cxx:1006 AliAnalysisTaskMuonPerformance.cxx:1007 AliAnalysisTaskMuonPerformance.cxx:1008 AliAnalysisTaskMuonPerformance.cxx:1009 AliAnalysisTaskMuonPerformance.cxx:1010 AliAnalysisTaskMuonPerformance.cxx:1011 AliAnalysisTaskMuonPerformance.cxx:1012 AliAnalysisTaskMuonPerformance.cxx:1013 AliAnalysisTaskMuonPerformance.cxx:1014 AliAnalysisTaskMuonPerformance.cxx:1015 AliAnalysisTaskMuonPerformance.cxx:1016 AliAnalysisTaskMuonPerformance.cxx:1017 AliAnalysisTaskMuonPerformance.cxx:1018 AliAnalysisTaskMuonPerformance.cxx:1019 AliAnalysisTaskMuonPerformance.cxx:1020 AliAnalysisTaskMuonPerformance.cxx:1021 AliAnalysisTaskMuonPerformance.cxx:1022 AliAnalysisTaskMuonPerformance.cxx:1023 AliAnalysisTaskMuonPerformance.cxx:1024 AliAnalysisTaskMuonPerformance.cxx:1025 AliAnalysisTaskMuonPerformance.cxx:1026 AliAnalysisTaskMuonPerformance.cxx:1027 AliAnalysisTaskMuonPerformance.cxx:1028 AliAnalysisTaskMuonPerformance.cxx:1029 AliAnalysisTaskMuonPerformance.cxx:1030 AliAnalysisTaskMuonPerformance.cxx:1031 AliAnalysisTaskMuonPerformance.cxx:1032 AliAnalysisTaskMuonPerformance.cxx:1033 AliAnalysisTaskMuonPerformance.cxx:1034 AliAnalysisTaskMuonPerformance.cxx:1035 AliAnalysisTaskMuonPerformance.cxx:1036 AliAnalysisTaskMuonPerformance.cxx:1037 AliAnalysisTaskMuonPerformance.cxx:1038 AliAnalysisTaskMuonPerformance.cxx:1039 AliAnalysisTaskMuonPerformance.cxx:1040 AliAnalysisTaskMuonPerformance.cxx:1041 AliAnalysisTaskMuonPerformance.cxx:1042 AliAnalysisTaskMuonPerformance.cxx:1043 AliAnalysisTaskMuonPerformance.cxx:1044 AliAnalysisTaskMuonPerformance.cxx:1045 AliAnalysisTaskMuonPerformance.cxx:1046 AliAnalysisTaskMuonPerformance.cxx:1047 AliAnalysisTaskMuonPerformance.cxx:1048 AliAnalysisTaskMuonPerformance.cxx:1049 AliAnalysisTaskMuonPerformance.cxx:1050 AliAnalysisTaskMuonPerformance.cxx:1051 AliAnalysisTaskMuonPerformance.cxx:1052 AliAnalysisTaskMuonPerformance.cxx:1053 AliAnalysisTaskMuonPerformance.cxx:1054 AliAnalysisTaskMuonPerformance.cxx:1055 AliAnalysisTaskMuonPerformance.cxx:1056 AliAnalysisTaskMuonPerformance.cxx:1057 AliAnalysisTaskMuonPerformance.cxx:1058 AliAnalysisTaskMuonPerformance.cxx:1059 AliAnalysisTaskMuonPerformance.cxx:1060 AliAnalysisTaskMuonPerformance.cxx:1061 AliAnalysisTaskMuonPerformance.cxx:1062 AliAnalysisTaskMuonPerformance.cxx:1063 AliAnalysisTaskMuonPerformance.cxx:1064 AliAnalysisTaskMuonPerformance.cxx:1065 AliAnalysisTaskMuonPerformance.cxx:1066 AliAnalysisTaskMuonPerformance.cxx:1067 AliAnalysisTaskMuonPerformance.cxx:1068 AliAnalysisTaskMuonPerformance.cxx:1069 AliAnalysisTaskMuonPerformance.cxx:1070 AliAnalysisTaskMuonPerformance.cxx:1071 AliAnalysisTaskMuonPerformance.cxx:1072 AliAnalysisTaskMuonPerformance.cxx:1073 AliAnalysisTaskMuonPerformance.cxx:1074 AliAnalysisTaskMuonPerformance.cxx:1075 AliAnalysisTaskMuonPerformance.cxx:1076 AliAnalysisTaskMuonPerformance.cxx:1077 AliAnalysisTaskMuonPerformance.cxx:1078 AliAnalysisTaskMuonPerformance.cxx:1079 AliAnalysisTaskMuonPerformance.cxx:1080 AliAnalysisTaskMuonPerformance.cxx:1081 AliAnalysisTaskMuonPerformance.cxx:1082 AliAnalysisTaskMuonPerformance.cxx:1083 AliAnalysisTaskMuonPerformance.cxx:1084 AliAnalysisTaskMuonPerformance.cxx:1085 AliAnalysisTaskMuonPerformance.cxx:1086 AliAnalysisTaskMuonPerformance.cxx:1087 AliAnalysisTaskMuonPerformance.cxx:1088 AliAnalysisTaskMuonPerformance.cxx:1089 AliAnalysisTaskMuonPerformance.cxx:1090 AliAnalysisTaskMuonPerformance.cxx:1091 AliAnalysisTaskMuonPerformance.cxx:1092 AliAnalysisTaskMuonPerformance.cxx:1093 AliAnalysisTaskMuonPerformance.cxx:1094 AliAnalysisTaskMuonPerformance.cxx:1095 AliAnalysisTaskMuonPerformance.cxx:1096 AliAnalysisTaskMuonPerformance.cxx:1097 AliAnalysisTaskMuonPerformance.cxx:1098 AliAnalysisTaskMuonPerformance.cxx:1099 AliAnalysisTaskMuonPerformance.cxx:1100 AliAnalysisTaskMuonPerformance.cxx:1101 AliAnalysisTaskMuonPerformance.cxx:1102 AliAnalysisTaskMuonPerformance.cxx:1103 AliAnalysisTaskMuonPerformance.cxx:1104 AliAnalysisTaskMuonPerformance.cxx:1105 AliAnalysisTaskMuonPerformance.cxx:1106 AliAnalysisTaskMuonPerformance.cxx:1107 AliAnalysisTaskMuonPerformance.cxx:1108 AliAnalysisTaskMuonPerformance.cxx:1109 AliAnalysisTaskMuonPerformance.cxx:1110 AliAnalysisTaskMuonPerformance.cxx:1111 AliAnalysisTaskMuonPerformance.cxx:1112 AliAnalysisTaskMuonPerformance.cxx:1113 AliAnalysisTaskMuonPerformance.cxx:1114 AliAnalysisTaskMuonPerformance.cxx:1115 AliAnalysisTaskMuonPerformance.cxx:1116 AliAnalysisTaskMuonPerformance.cxx:1117 AliAnalysisTaskMuonPerformance.cxx:1118 AliAnalysisTaskMuonPerformance.cxx:1119 AliAnalysisTaskMuonPerformance.cxx:1120 AliAnalysisTaskMuonPerformance.cxx:1121 AliAnalysisTaskMuonPerformance.cxx:1122 AliAnalysisTaskMuonPerformance.cxx:1123 AliAnalysisTaskMuonPerformance.cxx:1124 AliAnalysisTaskMuonPerformance.cxx:1125 AliAnalysisTaskMuonPerformance.cxx:1126 AliAnalysisTaskMuonPerformance.cxx:1127 AliAnalysisTaskMuonPerformance.cxx:1128 AliAnalysisTaskMuonPerformance.cxx:1129 AliAnalysisTaskMuonPerformance.cxx:1130 AliAnalysisTaskMuonPerformance.cxx:1131 AliAnalysisTaskMuonPerformance.cxx:1132 AliAnalysisTaskMuonPerformance.cxx:1133 AliAnalysisTaskMuonPerformance.cxx:1134 AliAnalysisTaskMuonPerformance.cxx:1135 AliAnalysisTaskMuonPerformance.cxx:1136 AliAnalysisTaskMuonPerformance.cxx:1137 AliAnalysisTaskMuonPerformance.cxx:1138 AliAnalysisTaskMuonPerformance.cxx:1139 AliAnalysisTaskMuonPerformance.cxx:1140 AliAnalysisTaskMuonPerformance.cxx:1141 AliAnalysisTaskMuonPerformance.cxx:1142 AliAnalysisTaskMuonPerformance.cxx:1143 AliAnalysisTaskMuonPerformance.cxx:1144 AliAnalysisTaskMuonPerformance.cxx:1145 AliAnalysisTaskMuonPerformance.cxx:1146 AliAnalysisTaskMuonPerformance.cxx:1147 AliAnalysisTaskMuonPerformance.cxx:1148 AliAnalysisTaskMuonPerformance.cxx:1149 AliAnalysisTaskMuonPerformance.cxx:1150 AliAnalysisTaskMuonPerformance.cxx:1151 AliAnalysisTaskMuonPerformance.cxx:1152 AliAnalysisTaskMuonPerformance.cxx:1153 AliAnalysisTaskMuonPerformance.cxx:1154 AliAnalysisTaskMuonPerformance.cxx:1155 AliAnalysisTaskMuonPerformance.cxx:1156 AliAnalysisTaskMuonPerformance.cxx:1157 AliAnalysisTaskMuonPerformance.cxx:1158 AliAnalysisTaskMuonPerformance.cxx:1159 AliAnalysisTaskMuonPerformance.cxx:1160 AliAnalysisTaskMuonPerformance.cxx:1161 AliAnalysisTaskMuonPerformance.cxx:1162 AliAnalysisTaskMuonPerformance.cxx:1163 AliAnalysisTaskMuonPerformance.cxx:1164 AliAnalysisTaskMuonPerformance.cxx:1165 AliAnalysisTaskMuonPerformance.cxx:1166 AliAnalysisTaskMuonPerformance.cxx:1167 AliAnalysisTaskMuonPerformance.cxx:1168 AliAnalysisTaskMuonPerformance.cxx:1169 AliAnalysisTaskMuonPerformance.cxx:1170 AliAnalysisTaskMuonPerformance.cxx:1171 AliAnalysisTaskMuonPerformance.cxx:1172 AliAnalysisTaskMuonPerformance.cxx:1173 AliAnalysisTaskMuonPerformance.cxx:1174 AliAnalysisTaskMuonPerformance.cxx:1175 AliAnalysisTaskMuonPerformance.cxx:1176 AliAnalysisTaskMuonPerformance.cxx:1177 AliAnalysisTaskMuonPerformance.cxx:1178 AliAnalysisTaskMuonPerformance.cxx:1179 AliAnalysisTaskMuonPerformance.cxx:1180 AliAnalysisTaskMuonPerformance.cxx:1181 AliAnalysisTaskMuonPerformance.cxx:1182 AliAnalysisTaskMuonPerformance.cxx:1183 AliAnalysisTaskMuonPerformance.cxx:1184 AliAnalysisTaskMuonPerformance.cxx:1185 AliAnalysisTaskMuonPerformance.cxx:1186 AliAnalysisTaskMuonPerformance.cxx:1187 AliAnalysisTaskMuonPerformance.cxx:1188 AliAnalysisTaskMuonPerformance.cxx:1189 AliAnalysisTaskMuonPerformance.cxx:1190 AliAnalysisTaskMuonPerformance.cxx:1191 AliAnalysisTaskMuonPerformance.cxx:1192 AliAnalysisTaskMuonPerformance.cxx:1193 AliAnalysisTaskMuonPerformance.cxx:1194 AliAnalysisTaskMuonPerformance.cxx:1195 AliAnalysisTaskMuonPerformance.cxx:1196 AliAnalysisTaskMuonPerformance.cxx:1197 AliAnalysisTaskMuonPerformance.cxx:1198 AliAnalysisTaskMuonPerformance.cxx:1199 AliAnalysisTaskMuonPerformance.cxx:1200 AliAnalysisTaskMuonPerformance.cxx:1201 AliAnalysisTaskMuonPerformance.cxx:1202 AliAnalysisTaskMuonPerformance.cxx:1203 AliAnalysisTaskMuonPerformance.cxx:1204 AliAnalysisTaskMuonPerformance.cxx:1205 AliAnalysisTaskMuonPerformance.cxx:1206 AliAnalysisTaskMuonPerformance.cxx:1207 AliAnalysisTaskMuonPerformance.cxx:1208 AliAnalysisTaskMuonPerformance.cxx:1209 AliAnalysisTaskMuonPerformance.cxx:1210 AliAnalysisTaskMuonPerformance.cxx:1211 AliAnalysisTaskMuonPerformance.cxx:1212 AliAnalysisTaskMuonPerformance.cxx:1213 AliAnalysisTaskMuonPerformance.cxx:1214 AliAnalysisTaskMuonPerformance.cxx:1215 AliAnalysisTaskMuonPerformance.cxx:1216 AliAnalysisTaskMuonPerformance.cxx:1217 AliAnalysisTaskMuonPerformance.cxx:1218 AliAnalysisTaskMuonPerformance.cxx:1219 AliAnalysisTaskMuonPerformance.cxx:1220 AliAnalysisTaskMuonPerformance.cxx:1221 AliAnalysisTaskMuonPerformance.cxx:1222 AliAnalysisTaskMuonPerformance.cxx:1223 AliAnalysisTaskMuonPerformance.cxx:1224 AliAnalysisTaskMuonPerformance.cxx:1225 AliAnalysisTaskMuonPerformance.cxx:1226 AliAnalysisTaskMuonPerformance.cxx:1227 AliAnalysisTaskMuonPerformance.cxx:1228 AliAnalysisTaskMuonPerformance.cxx:1229 AliAnalysisTaskMuonPerformance.cxx:1230 AliAnalysisTaskMuonPerformance.cxx:1231 AliAnalysisTaskMuonPerformance.cxx:1232 AliAnalysisTaskMuonPerformance.cxx:1233 AliAnalysisTaskMuonPerformance.cxx:1234 AliAnalysisTaskMuonPerformance.cxx:1235 AliAnalysisTaskMuonPerformance.cxx:1236 AliAnalysisTaskMuonPerformance.cxx:1237 AliAnalysisTaskMuonPerformance.cxx:1238 AliAnalysisTaskMuonPerformance.cxx:1239 AliAnalysisTaskMuonPerformance.cxx:1240 AliAnalysisTaskMuonPerformance.cxx:1241 AliAnalysisTaskMuonPerformance.cxx:1242 AliAnalysisTaskMuonPerformance.cxx:1243 AliAnalysisTaskMuonPerformance.cxx:1244 AliAnalysisTaskMuonPerformance.cxx:1245 AliAnalysisTaskMuonPerformance.cxx:1246 AliAnalysisTaskMuonPerformance.cxx:1247 AliAnalysisTaskMuonPerformance.cxx:1248 AliAnalysisTaskMuonPerformance.cxx:1249 AliAnalysisTaskMuonPerformance.cxx:1250 AliAnalysisTaskMuonPerformance.cxx:1251 AliAnalysisTaskMuonPerformance.cxx:1252 AliAnalysisTaskMuonPerformance.cxx:1253 AliAnalysisTaskMuonPerformance.cxx:1254 AliAnalysisTaskMuonPerformance.cxx:1255 AliAnalysisTaskMuonPerformance.cxx:1256 AliAnalysisTaskMuonPerformance.cxx:1257 AliAnalysisTaskMuonPerformance.cxx:1258 AliAnalysisTaskMuonPerformance.cxx:1259 AliAnalysisTaskMuonPerformance.cxx:1260 AliAnalysisTaskMuonPerformance.cxx:1261 AliAnalysisTaskMuonPerformance.cxx:1262 AliAnalysisTaskMuonPerformance.cxx:1263 AliAnalysisTaskMuonPerformance.cxx:1264 AliAnalysisTaskMuonPerformance.cxx:1265 AliAnalysisTaskMuonPerformance.cxx:1266 AliAnalysisTaskMuonPerformance.cxx:1267 AliAnalysisTaskMuonPerformance.cxx:1268 AliAnalysisTaskMuonPerformance.cxx:1269 AliAnalysisTaskMuonPerformance.cxx:1270 AliAnalysisTaskMuonPerformance.cxx:1271 AliAnalysisTaskMuonPerformance.cxx:1272 AliAnalysisTaskMuonPerformance.cxx:1273 AliAnalysisTaskMuonPerformance.cxx:1274 AliAnalysisTaskMuonPerformance.cxx:1275 AliAnalysisTaskMuonPerformance.cxx:1276 AliAnalysisTaskMuonPerformance.cxx:1277 AliAnalysisTaskMuonPerformance.cxx:1278 AliAnalysisTaskMuonPerformance.cxx:1279 AliAnalysisTaskMuonPerformance.cxx:1280 AliAnalysisTaskMuonPerformance.cxx:1281 AliAnalysisTaskMuonPerformance.cxx:1282 AliAnalysisTaskMuonPerformance.cxx:1283 AliAnalysisTaskMuonPerformance.cxx:1284 AliAnalysisTaskMuonPerformance.cxx:1285 AliAnalysisTaskMuonPerformance.cxx:1286 AliAnalysisTaskMuonPerformance.cxx:1287 AliAnalysisTaskMuonPerformance.cxx:1288 AliAnalysisTaskMuonPerformance.cxx:1289 AliAnalysisTaskMuonPerformance.cxx:1290 AliAnalysisTaskMuonPerformance.cxx:1291 AliAnalysisTaskMuonPerformance.cxx:1292 AliAnalysisTaskMuonPerformance.cxx:1293 AliAnalysisTaskMuonPerformance.cxx:1294 AliAnalysisTaskMuonPerformance.cxx:1295 AliAnalysisTaskMuonPerformance.cxx:1296 AliAnalysisTaskMuonPerformance.cxx:1297 AliAnalysisTaskMuonPerformance.cxx:1298 AliAnalysisTaskMuonPerformance.cxx:1299 AliAnalysisTaskMuonPerformance.cxx:1300 AliAnalysisTaskMuonPerformance.cxx:1301 AliAnalysisTaskMuonPerformance.cxx:1302 AliAnalysisTaskMuonPerformance.cxx:1303 AliAnalysisTaskMuonPerformance.cxx:1304 AliAnalysisTaskMuonPerformance.cxx:1305 AliAnalysisTaskMuonPerformance.cxx:1306 AliAnalysisTaskMuonPerformance.cxx:1307 AliAnalysisTaskMuonPerformance.cxx:1308 AliAnalysisTaskMuonPerformance.cxx:1309 AliAnalysisTaskMuonPerformance.cxx:1310 AliAnalysisTaskMuonPerformance.cxx:1311 AliAnalysisTaskMuonPerformance.cxx:1312 AliAnalysisTaskMuonPerformance.cxx:1313 AliAnalysisTaskMuonPerformance.cxx:1314 AliAnalysisTaskMuonPerformance.cxx:1315 AliAnalysisTaskMuonPerformance.cxx:1316 AliAnalysisTaskMuonPerformance.cxx:1317 AliAnalysisTaskMuonPerformance.cxx:1318 AliAnalysisTaskMuonPerformance.cxx:1319 AliAnalysisTaskMuonPerformance.cxx:1320 AliAnalysisTaskMuonPerformance.cxx:1321 AliAnalysisTaskMuonPerformance.cxx:1322 AliAnalysisTaskMuonPerformance.cxx:1323 AliAnalysisTaskMuonPerformance.cxx:1324 AliAnalysisTaskMuonPerformance.cxx:1325 AliAnalysisTaskMuonPerformance.cxx:1326 AliAnalysisTaskMuonPerformance.cxx:1327 AliAnalysisTaskMuonPerformance.cxx:1328 AliAnalysisTaskMuonPerformance.cxx:1329 AliAnalysisTaskMuonPerformance.cxx:1330 AliAnalysisTaskMuonPerformance.cxx:1331 AliAnalysisTaskMuonPerformance.cxx:1332 AliAnalysisTaskMuonPerformance.cxx:1333 AliAnalysisTaskMuonPerformance.cxx:1334 AliAnalysisTaskMuonPerformance.cxx:1335 AliAnalysisTaskMuonPerformance.cxx:1336 AliAnalysisTaskMuonPerformance.cxx:1337 AliAnalysisTaskMuonPerformance.cxx:1338 AliAnalysisTaskMuonPerformance.cxx:1339 AliAnalysisTaskMuonPerformance.cxx:1340 AliAnalysisTaskMuonPerformance.cxx:1341 AliAnalysisTaskMuonPerformance.cxx:1342 AliAnalysisTaskMuonPerformance.cxx:1343 AliAnalysisTaskMuonPerformance.cxx:1344 AliAnalysisTaskMuonPerformance.cxx:1345 AliAnalysisTaskMuonPerformance.cxx:1346 AliAnalysisTaskMuonPerformance.cxx:1347 AliAnalysisTaskMuonPerformance.cxx:1348 AliAnalysisTaskMuonPerformance.cxx:1349 AliAnalysisTaskMuonPerformance.cxx:1350 AliAnalysisTaskMuonPerformance.cxx:1351 AliAnalysisTaskMuonPerformance.cxx:1352 AliAnalysisTaskMuonPerformance.cxx:1353 AliAnalysisTaskMuonPerformance.cxx:1354 AliAnalysisTaskMuonPerformance.cxx:1355 AliAnalysisTaskMuonPerformance.cxx:1356 AliAnalysisTaskMuonPerformance.cxx:1357 AliAnalysisTaskMuonPerformance.cxx:1358 AliAnalysisTaskMuonPerformance.cxx:1359 AliAnalysisTaskMuonPerformance.cxx:1360 AliAnalysisTaskMuonPerformance.cxx:1361 AliAnalysisTaskMuonPerformance.cxx:1362 AliAnalysisTaskMuonPerformance.cxx:1363 AliAnalysisTaskMuonPerformance.cxx:1364 AliAnalysisTaskMuonPerformance.cxx:1365 AliAnalysisTaskMuonPerformance.cxx:1366 AliAnalysisTaskMuonPerformance.cxx:1367 AliAnalysisTaskMuonPerformance.cxx:1368 AliAnalysisTaskMuonPerformance.cxx:1369 AliAnalysisTaskMuonPerformance.cxx:1370 AliAnalysisTaskMuonPerformance.cxx:1371 AliAnalysisTaskMuonPerformance.cxx:1372 AliAnalysisTaskMuonPerformance.cxx:1373 AliAnalysisTaskMuonPerformance.cxx:1374 AliAnalysisTaskMuonPerformance.cxx:1375 AliAnalysisTaskMuonPerformance.cxx:1376 AliAnalysisTaskMuonPerformance.cxx:1377 AliAnalysisTaskMuonPerformance.cxx:1378 AliAnalysisTaskMuonPerformance.cxx:1379 AliAnalysisTaskMuonPerformance.cxx:1380 AliAnalysisTaskMuonPerformance.cxx:1381 AliAnalysisTaskMuonPerformance.cxx:1382 AliAnalysisTaskMuonPerformance.cxx:1383 AliAnalysisTaskMuonPerformance.cxx:1384 AliAnalysisTaskMuonPerformance.cxx:1385 AliAnalysisTaskMuonPerformance.cxx:1386 AliAnalysisTaskMuonPerformance.cxx:1387 AliAnalysisTaskMuonPerformance.cxx:1388 AliAnalysisTaskMuonPerformance.cxx:1389 AliAnalysisTaskMuonPerformance.cxx:1390 AliAnalysisTaskMuonPerformance.cxx:1391 AliAnalysisTaskMuonPerformance.cxx:1392 AliAnalysisTaskMuonPerformance.cxx:1393 AliAnalysisTaskMuonPerformance.cxx:1394 AliAnalysisTaskMuonPerformance.cxx:1395 AliAnalysisTaskMuonPerformance.cxx:1396 AliAnalysisTaskMuonPerformance.cxx:1397 AliAnalysisTaskMuonPerformance.cxx:1398 AliAnalysisTaskMuonPerformance.cxx:1399 AliAnalysisTaskMuonPerformance.cxx:1400 AliAnalysisTaskMuonPerformance.cxx:1401 AliAnalysisTaskMuonPerformance.cxx:1402 AliAnalysisTaskMuonPerformance.cxx:1403 AliAnalysisTaskMuonPerformance.cxx:1404 AliAnalysisTaskMuonPerformance.cxx:1405 AliAnalysisTaskMuonPerformance.cxx:1406 AliAnalysisTaskMuonPerformance.cxx:1407 AliAnalysisTaskMuonPerformance.cxx:1408 AliAnalysisTaskMuonPerformance.cxx:1409 AliAnalysisTaskMuonPerformance.cxx:1410 AliAnalysisTaskMuonPerformance.cxx:1411 AliAnalysisTaskMuonPerformance.cxx:1412 AliAnalysisTaskMuonPerformance.cxx:1413 AliAnalysisTaskMuonPerformance.cxx:1414 AliAnalysisTaskMuonPerformance.cxx:1415 AliAnalysisTaskMuonPerformance.cxx:1416 AliAnalysisTaskMuonPerformance.cxx:1417 AliAnalysisTaskMuonPerformance.cxx:1418 AliAnalysisTaskMuonPerformance.cxx:1419 AliAnalysisTaskMuonPerformance.cxx:1420 AliAnalysisTaskMuonPerformance.cxx:1421 AliAnalysisTaskMuonPerformance.cxx:1422 AliAnalysisTaskMuonPerformance.cxx:1423 AliAnalysisTaskMuonPerformance.cxx:1424 AliAnalysisTaskMuonPerformance.cxx:1425 AliAnalysisTaskMuonPerformance.cxx:1426 AliAnalysisTaskMuonPerformance.cxx:1427 AliAnalysisTaskMuonPerformance.cxx:1428 AliAnalysisTaskMuonPerformance.cxx:1429 AliAnalysisTaskMuonPerformance.cxx:1430 AliAnalysisTaskMuonPerformance.cxx:1431 AliAnalysisTaskMuonPerformance.cxx:1432 AliAnalysisTaskMuonPerformance.cxx:1433 AliAnalysisTaskMuonPerformance.cxx:1434 AliAnalysisTaskMuonPerformance.cxx:1435 AliAnalysisTaskMuonPerformance.cxx:1436 AliAnalysisTaskMuonPerformance.cxx:1437 AliAnalysisTaskMuonPerformance.cxx:1438 AliAnalysisTaskMuonPerformance.cxx:1439 AliAnalysisTaskMuonPerformance.cxx:1440 AliAnalysisTaskMuonPerformance.cxx:1441 AliAnalysisTaskMuonPerformance.cxx:1442 AliAnalysisTaskMuonPerformance.cxx:1443 AliAnalysisTaskMuonPerformance.cxx:1444 AliAnalysisTaskMuonPerformance.cxx:1445 AliAnalysisTaskMuonPerformance.cxx:1446 AliAnalysisTaskMuonPerformance.cxx:1447 AliAnalysisTaskMuonPerformance.cxx:1448 AliAnalysisTaskMuonPerformance.cxx:1449 AliAnalysisTaskMuonPerformance.cxx:1450 AliAnalysisTaskMuonPerformance.cxx:1451 AliAnalysisTaskMuonPerformance.cxx:1452 AliAnalysisTaskMuonPerformance.cxx:1453 AliAnalysisTaskMuonPerformance.cxx:1454 AliAnalysisTaskMuonPerformance.cxx:1455 AliAnalysisTaskMuonPerformance.cxx:1456 AliAnalysisTaskMuonPerformance.cxx:1457 AliAnalysisTaskMuonPerformance.cxx:1458 AliAnalysisTaskMuonPerformance.cxx:1459 AliAnalysisTaskMuonPerformance.cxx:1460 AliAnalysisTaskMuonPerformance.cxx:1461 AliAnalysisTaskMuonPerformance.cxx:1462 AliAnalysisTaskMuonPerformance.cxx:1463 AliAnalysisTaskMuonPerformance.cxx:1464 AliAnalysisTaskMuonPerformance.cxx:1465 AliAnalysisTaskMuonPerformance.cxx:1466 AliAnalysisTaskMuonPerformance.cxx:1467 AliAnalysisTaskMuonPerformance.cxx:1468 AliAnalysisTaskMuonPerformance.cxx:1469 AliAnalysisTaskMuonPerformance.cxx:1470 AliAnalysisTaskMuonPerformance.cxx:1471 AliAnalysisTaskMuonPerformance.cxx:1472 AliAnalysisTaskMuonPerformance.cxx:1473 AliAnalysisTaskMuonPerformance.cxx:1474 AliAnalysisTaskMuonPerformance.cxx:1475 AliAnalysisTaskMuonPerformance.cxx:1476 AliAnalysisTaskMuonPerformance.cxx:1477 AliAnalysisTaskMuonPerformance.cxx:1478 AliAnalysisTaskMuonPerformance.cxx:1479 AliAnalysisTaskMuonPerformance.cxx:1480 AliAnalysisTaskMuonPerformance.cxx:1481 AliAnalysisTaskMuonPerformance.cxx:1482 AliAnalysisTaskMuonPerformance.cxx:1483 AliAnalysisTaskMuonPerformance.cxx:1484 AliAnalysisTaskMuonPerformance.cxx:1485 AliAnalysisTaskMuonPerformance.cxx:1486 AliAnalysisTaskMuonPerformance.cxx:1487 AliAnalysisTaskMuonPerformance.cxx:1488 AliAnalysisTaskMuonPerformance.cxx:1489 AliAnalysisTaskMuonPerformance.cxx:1490 AliAnalysisTaskMuonPerformance.cxx:1491 AliAnalysisTaskMuonPerformance.cxx:1492 AliAnalysisTaskMuonPerformance.cxx:1493 AliAnalysisTaskMuonPerformance.cxx:1494 AliAnalysisTaskMuonPerformance.cxx:1495 AliAnalysisTaskMuonPerformance.cxx:1496 AliAnalysisTaskMuonPerformance.cxx:1497 AliAnalysisTaskMuonPerformance.cxx:1498 AliAnalysisTaskMuonPerformance.cxx:1499 AliAnalysisTaskMuonPerformance.cxx:1500 AliAnalysisTaskMuonPerformance.cxx:1501 AliAnalysisTaskMuonPerformance.cxx:1502 AliAnalysisTaskMuonPerformance.cxx:1503 AliAnalysisTaskMuonPerformance.cxx:1504 AliAnalysisTaskMuonPerformance.cxx:1505 AliAnalysisTaskMuonPerformance.cxx:1506 AliAnalysisTaskMuonPerformance.cxx:1507 AliAnalysisTaskMuonPerformance.cxx:1508 AliAnalysisTaskMuonPerformance.cxx:1509 AliAnalysisTaskMuonPerformance.cxx:1510 AliAnalysisTaskMuonPerformance.cxx:1511 AliAnalysisTaskMuonPerformance.cxx:1512 AliAnalysisTaskMuonPerformance.cxx:1513 AliAnalysisTaskMuonPerformance.cxx:1514 AliAnalysisTaskMuonPerformance.cxx:1515 AliAnalysisTaskMuonPerformance.cxx:1516 AliAnalysisTaskMuonPerformance.cxx:1517 AliAnalysisTaskMuonPerformance.cxx:1518 AliAnalysisTaskMuonPerformance.cxx:1519 AliAnalysisTaskMuonPerformance.cxx:1520 AliAnalysisTaskMuonPerformance.cxx:1521 AliAnalysisTaskMuonPerformance.cxx:1522 AliAnalysisTaskMuonPerformance.cxx:1523 AliAnalysisTaskMuonPerformance.cxx:1524 AliAnalysisTaskMuonPerformance.cxx:1525 AliAnalysisTaskMuonPerformance.cxx:1526 AliAnalysisTaskMuonPerformance.cxx:1527 AliAnalysisTaskMuonPerformance.cxx:1528 AliAnalysisTaskMuonPerformance.cxx:1529 AliAnalysisTaskMuonPerformance.cxx:1530 AliAnalysisTaskMuonPerformance.cxx:1531 AliAnalysisTaskMuonPerformance.cxx:1532 AliAnalysisTaskMuonPerformance.cxx:1533 AliAnalysisTaskMuonPerformance.cxx:1534 AliAnalysisTaskMuonPerformance.cxx:1535 AliAnalysisTaskMuonPerformance.cxx:1536 AliAnalysisTaskMuonPerformance.cxx:1537 AliAnalysisTaskMuonPerformance.cxx:1538 AliAnalysisTaskMuonPerformance.cxx:1539 AliAnalysisTaskMuonPerformance.cxx:1540 AliAnalysisTaskMuonPerformance.cxx:1541 AliAnalysisTaskMuonPerformance.cxx:1542 AliAnalysisTaskMuonPerformance.cxx:1543 AliAnalysisTaskMuonPerformance.cxx:1544 AliAnalysisTaskMuonPerformance.cxx:1545 AliAnalysisTaskMuonPerformance.cxx:1546 AliAnalysisTaskMuonPerformance.cxx:1547 AliAnalysisTaskMuonPerformance.cxx:1548 AliAnalysisTaskMuonPerformance.cxx:1549 AliAnalysisTaskMuonPerformance.cxx:1550 AliAnalysisTaskMuonPerformance.cxx:1551 AliAnalysisTaskMuonPerformance.cxx:1552 AliAnalysisTaskMuonPerformance.cxx:1553 AliAnalysisTaskMuonPerformance.cxx:1554 AliAnalysisTaskMuonPerformance.cxx:1555 AliAnalysisTaskMuonPerformance.cxx:1556 AliAnalysisTaskMuonPerformance.cxx:1557 AliAnalysisTaskMuonPerformance.cxx:1558 AliAnalysisTaskMuonPerformance.cxx:1559 AliAnalysisTaskMuonPerformance.cxx:1560 AliAnalysisTaskMuonPerformance.cxx:1561 AliAnalysisTaskMuonPerformance.cxx:1562 AliAnalysisTaskMuonPerformance.cxx:1563 AliAnalysisTaskMuonPerformance.cxx:1564 AliAnalysisTaskMuonPerformance.cxx:1565 AliAnalysisTaskMuonPerformance.cxx:1566 AliAnalysisTaskMuonPerformance.cxx:1567 AliAnalysisTaskMuonPerformance.cxx:1568 AliAnalysisTaskMuonPerformance.cxx:1569 AliAnalysisTaskMuonPerformance.cxx:1570 AliAnalysisTaskMuonPerformance.cxx:1571 AliAnalysisTaskMuonPerformance.cxx:1572 AliAnalysisTaskMuonPerformance.cxx:1573 AliAnalysisTaskMuonPerformance.cxx:1574 AliAnalysisTaskMuonPerformance.cxx:1575 AliAnalysisTaskMuonPerformance.cxx:1576 AliAnalysisTaskMuonPerformance.cxx:1577 AliAnalysisTaskMuonPerformance.cxx:1578 AliAnalysisTaskMuonPerformance.cxx:1579 AliAnalysisTaskMuonPerformance.cxx:1580 AliAnalysisTaskMuonPerformance.cxx:1581 AliAnalysisTaskMuonPerformance.cxx:1582 AliAnalysisTaskMuonPerformance.cxx:1583 AliAnalysisTaskMuonPerformance.cxx:1584 AliAnalysisTaskMuonPerformance.cxx:1585 AliAnalysisTaskMuonPerformance.cxx:1586 AliAnalysisTaskMuonPerformance.cxx:1587 AliAnalysisTaskMuonPerformance.cxx:1588 AliAnalysisTaskMuonPerformance.cxx:1589 AliAnalysisTaskMuonPerformance.cxx:1590 AliAnalysisTaskMuonPerformance.cxx:1591 AliAnalysisTaskMuonPerformance.cxx:1592 AliAnalysisTaskMuonPerformance.cxx:1593 AliAnalysisTaskMuonPerformance.cxx:1594 AliAnalysisTaskMuonPerformance.cxx:1595 AliAnalysisTaskMuonPerformance.cxx:1596 AliAnalysisTaskMuonPerformance.cxx:1597 AliAnalysisTaskMuonPerformance.cxx:1598 AliAnalysisTaskMuonPerformance.cxx:1599 AliAnalysisTaskMuonPerformance.cxx:1600 AliAnalysisTaskMuonPerformance.cxx:1601 AliAnalysisTaskMuonPerformance.cxx:1602 AliAnalysisTaskMuonPerformance.cxx:1603 AliAnalysisTaskMuonPerformance.cxx:1604 AliAnalysisTaskMuonPerformance.cxx:1605 AliAnalysisTaskMuonPerformance.cxx:1606 AliAnalysisTaskMuonPerformance.cxx:1607 AliAnalysisTaskMuonPerformance.cxx:1608 AliAnalysisTaskMuonPerformance.cxx:1609 AliAnalysisTaskMuonPerformance.cxx:1610 AliAnalysisTaskMuonPerformance.cxx:1611 AliAnalysisTaskMuonPerformance.cxx:1612 AliAnalysisTaskMuonPerformance.cxx:1613 AliAnalysisTaskMuonPerformance.cxx:1614 AliAnalysisTaskMuonPerformance.cxx:1615 AliAnalysisTaskMuonPerformance.cxx:1616 AliAnalysisTaskMuonPerformance.cxx:1617 AliAnalysisTaskMuonPerformance.cxx:1618 AliAnalysisTaskMuonPerformance.cxx:1619 AliAnalysisTaskMuonPerformance.cxx:1620 AliAnalysisTaskMuonPerformance.cxx:1621 AliAnalysisTaskMuonPerformance.cxx:1622 AliAnalysisTaskMuonPerformance.cxx:1623 AliAnalysisTaskMuonPerformance.cxx:1624 AliAnalysisTaskMuonPerformance.cxx:1625 AliAnalysisTaskMuonPerformance.cxx:1626 AliAnalysisTaskMuonPerformance.cxx:1627 AliAnalysisTaskMuonPerformance.cxx:1628 AliAnalysisTaskMuonPerformance.cxx:1629 AliAnalysisTaskMuonPerformance.cxx:1630 AliAnalysisTaskMuonPerformance.cxx:1631 AliAnalysisTaskMuonPerformance.cxx:1632 AliAnalysisTaskMuonPerformance.cxx:1633 AliAnalysisTaskMuonPerformance.cxx:1634 AliAnalysisTaskMuonPerformance.cxx:1635 AliAnalysisTaskMuonPerformance.cxx:1636 AliAnalysisTaskMuonPerformance.cxx:1637 AliAnalysisTaskMuonPerformance.cxx:1638 AliAnalysisTaskMuonPerformance.cxx:1639 AliAnalysisTaskMuonPerformance.cxx:1640 AliAnalysisTaskMuonPerformance.cxx:1641 AliAnalysisTaskMuonPerformance.cxx:1642 AliAnalysisTaskMuonPerformance.cxx:1643 AliAnalysisTaskMuonPerformance.cxx:1644 AliAnalysisTaskMuonPerformance.cxx:1645 AliAnalysisTaskMuonPerformance.cxx:1646 AliAnalysisTaskMuonPerformance.cxx:1647 AliAnalysisTaskMuonPerformance.cxx:1648 AliAnalysisTaskMuonPerformance.cxx:1649 AliAnalysisTaskMuonPerformance.cxx:1650 AliAnalysisTaskMuonPerformance.cxx:1651 AliAnalysisTaskMuonPerformance.cxx:1652 AliAnalysisTaskMuonPerformance.cxx:1653 AliAnalysisTaskMuonPerformance.cxx:1654 AliAnalysisTaskMuonPerformance.cxx:1655 AliAnalysisTaskMuonPerformance.cxx:1656 AliAnalysisTaskMuonPerformance.cxx:1657 AliAnalysisTaskMuonPerformance.cxx:1658 AliAnalysisTaskMuonPerformance.cxx:1659 AliAnalysisTaskMuonPerformance.cxx:1660 AliAnalysisTaskMuonPerformance.cxx:1661 AliAnalysisTaskMuonPerformance.cxx:1662 AliAnalysisTaskMuonPerformance.cxx:1663 AliAnalysisTaskMuonPerformance.cxx:1664 AliAnalysisTaskMuonPerformance.cxx:1665 AliAnalysisTaskMuonPerformance.cxx:1666 AliAnalysisTaskMuonPerformance.cxx:1667 AliAnalysisTaskMuonPerformance.cxx:1668 AliAnalysisTaskMuonPerformance.cxx:1669 AliAnalysisTaskMuonPerformance.cxx:1670 AliAnalysisTaskMuonPerformance.cxx:1671 AliAnalysisTaskMuonPerformance.cxx:1672 AliAnalysisTaskMuonPerformance.cxx:1673 AliAnalysisTaskMuonPerformance.cxx:1674 AliAnalysisTaskMuonPerformance.cxx:1675 AliAnalysisTaskMuonPerformance.cxx:1676 AliAnalysisTaskMuonPerformance.cxx:1677 AliAnalysisTaskMuonPerformance.cxx:1678 AliAnalysisTaskMuonPerformance.cxx:1679 AliAnalysisTaskMuonPerformance.cxx:1680 AliAnalysisTaskMuonPerformance.cxx:1681 AliAnalysisTaskMuonPerformance.cxx:1682 AliAnalysisTaskMuonPerformance.cxx:1683 AliAnalysisTaskMuonPerformance.cxx:1684 AliAnalysisTaskMuonPerformance.cxx:1685 AliAnalysisTaskMuonPerformance.cxx:1686 AliAnalysisTaskMuonPerformance.cxx:1687 AliAnalysisTaskMuonPerformance.cxx:1688 AliAnalysisTaskMuonPerformance.cxx:1689 AliAnalysisTaskMuonPerformance.cxx:1690 AliAnalysisTaskMuonPerformance.cxx:1691 AliAnalysisTaskMuonPerformance.cxx:1692 AliAnalysisTaskMuonPerformance.cxx:1693 AliAnalysisTaskMuonPerformance.cxx:1694 AliAnalysisTaskMuonPerformance.cxx:1695 AliAnalysisTaskMuonPerformance.cxx:1696 AliAnalysisTaskMuonPerformance.cxx:1697 AliAnalysisTaskMuonPerformance.cxx:1698 AliAnalysisTaskMuonPerformance.cxx:1699 AliAnalysisTaskMuonPerformance.cxx:1700 AliAnalysisTaskMuonPerformance.cxx:1701 AliAnalysisTaskMuonPerformance.cxx:1702 AliAnalysisTaskMuonPerformance.cxx:1703 AliAnalysisTaskMuonPerformance.cxx:1704 AliAnalysisTaskMuonPerformance.cxx:1705 AliAnalysisTaskMuonPerformance.cxx:1706 AliAnalysisTaskMuonPerformance.cxx:1707 AliAnalysisTaskMuonPerformance.cxx:1708 AliAnalysisTaskMuonPerformance.cxx:1709 AliAnalysisTaskMuonPerformance.cxx:1710 AliAnalysisTaskMuonPerformance.cxx:1711 AliAnalysisTaskMuonPerformance.cxx:1712 AliAnalysisTaskMuonPerformance.cxx:1713 AliAnalysisTaskMuonPerformance.cxx:1714 AliAnalysisTaskMuonPerformance.cxx:1715 AliAnalysisTaskMuonPerformance.cxx:1716 AliAnalysisTaskMuonPerformance.cxx:1717 AliAnalysisTaskMuonPerformance.cxx:1718 AliAnalysisTaskMuonPerformance.cxx:1719 AliAnalysisTaskMuonPerformance.cxx:1720 AliAnalysisTaskMuonPerformance.cxx:1721 AliAnalysisTaskMuonPerformance.cxx:1722 AliAnalysisTaskMuonPerformance.cxx:1723 AliAnalysisTaskMuonPerformance.cxx:1724 AliAnalysisTaskMuonPerformance.cxx:1725 AliAnalysisTaskMuonPerformance.cxx:1726 AliAnalysisTaskMuonPerformance.cxx:1727 AliAnalysisTaskMuonPerformance.cxx:1728 AliAnalysisTaskMuonPerformance.cxx:1729 AliAnalysisTaskMuonPerformance.cxx:1730 AliAnalysisTaskMuonPerformance.cxx:1731 AliAnalysisTaskMuonPerformance.cxx:1732 AliAnalysisTaskMuonPerformance.cxx:1733 AliAnalysisTaskMuonPerformance.cxx:1734 AliAnalysisTaskMuonPerformance.cxx:1735 AliAnalysisTaskMuonPerformance.cxx:1736 AliAnalysisTaskMuonPerformance.cxx:1737 AliAnalysisTaskMuonPerformance.cxx:1738 AliAnalysisTaskMuonPerformance.cxx:1739 AliAnalysisTaskMuonPerformance.cxx:1740 AliAnalysisTaskMuonPerformance.cxx:1741 AliAnalysisTaskMuonPerformance.cxx:1742 AliAnalysisTaskMuonPerformance.cxx:1743 AliAnalysisTaskMuonPerformance.cxx:1744 AliAnalysisTaskMuonPerformance.cxx:1745 AliAnalysisTaskMuonPerformance.cxx:1746 AliAnalysisTaskMuonPerformance.cxx:1747 AliAnalysisTaskMuonPerformance.cxx:1748 AliAnalysisTaskMuonPerformance.cxx:1749 AliAnalysisTaskMuonPerformance.cxx:1750 AliAnalysisTaskMuonPerformance.cxx:1751 AliAnalysisTaskMuonPerformance.cxx:1752 AliAnalysisTaskMuonPerformance.cxx:1753 AliAnalysisTaskMuonPerformance.cxx:1754 AliAnalysisTaskMuonPerformance.cxx:1755 AliAnalysisTaskMuonPerformance.cxx:1756 AliAnalysisTaskMuonPerformance.cxx:1757 AliAnalysisTaskMuonPerformance.cxx:1758 AliAnalysisTaskMuonPerformance.cxx:1759 AliAnalysisTaskMuonPerformance.cxx:1760 AliAnalysisTaskMuonPerformance.cxx:1761 AliAnalysisTaskMuonPerformance.cxx:1762 AliAnalysisTaskMuonPerformance.cxx:1763 AliAnalysisTaskMuonPerformance.cxx:1764 AliAnalysisTaskMuonPerformance.cxx:1765 AliAnalysisTaskMuonPerformance.cxx:1766 AliAnalysisTaskMuonPerformance.cxx:1767 AliAnalysisTaskMuonPerformance.cxx:1768 AliAnalysisTaskMuonPerformance.cxx:1769 AliAnalysisTaskMuonPerformance.cxx:1770 AliAnalysisTaskMuonPerformance.cxx:1771 AliAnalysisTaskMuonPerformance.cxx:1772 AliAnalysisTaskMuonPerformance.cxx:1773 AliAnalysisTaskMuonPerformance.cxx:1774 AliAnalysisTaskMuonPerformance.cxx:1775 AliAnalysisTaskMuonPerformance.cxx:1776 AliAnalysisTaskMuonPerformance.cxx:1777 AliAnalysisTaskMuonPerformance.cxx:1778 AliAnalysisTaskMuonPerformance.cxx:1779 AliAnalysisTaskMuonPerformance.cxx:1780 AliAnalysisTaskMuonPerformance.cxx:1781 AliAnalysisTaskMuonPerformance.cxx:1782 AliAnalysisTaskMuonPerformance.cxx:1783 AliAnalysisTaskMuonPerformance.cxx:1784 AliAnalysisTaskMuonPerformance.cxx:1785 AliAnalysisTaskMuonPerformance.cxx:1786 AliAnalysisTaskMuonPerformance.cxx:1787 AliAnalysisTaskMuonPerformance.cxx:1788 AliAnalysisTaskMuonPerformance.cxx:1789 AliAnalysisTaskMuonPerformance.cxx:1790 AliAnalysisTaskMuonPerformance.cxx:1791 AliAnalysisTaskMuonPerformance.cxx:1792 AliAnalysisTaskMuonPerformance.cxx:1793 AliAnalysisTaskMuonPerformance.cxx:1794 AliAnalysisTaskMuonPerformance.cxx:1795 AliAnalysisTaskMuonPerformance.cxx:1796 AliAnalysisTaskMuonPerformance.cxx:1797 AliAnalysisTaskMuonPerformance.cxx:1798 AliAnalysisTaskMuonPerformance.cxx:1799 AliAnalysisTaskMuonPerformance.cxx:1800 AliAnalysisTaskMuonPerformance.cxx:1801 AliAnalysisTaskMuonPerformance.cxx:1802 AliAnalysisTaskMuonPerformance.cxx:1803 AliAnalysisTaskMuonPerformance.cxx:1804 AliAnalysisTaskMuonPerformance.cxx:1805 AliAnalysisTaskMuonPerformance.cxx:1806 AliAnalysisTaskMuonPerformance.cxx:1807 AliAnalysisTaskMuonPerformance.cxx:1808 AliAnalysisTaskMuonPerformance.cxx:1809 AliAnalysisTaskMuonPerformance.cxx:1810 AliAnalysisTaskMuonPerformance.cxx:1811 AliAnalysisTaskMuonPerformance.cxx:1812 AliAnalysisTaskMuonPerformance.cxx:1813 AliAnalysisTaskMuonPerformance.cxx:1814 AliAnalysisTaskMuonPerformance.cxx:1815 AliAnalysisTaskMuonPerformance.cxx:1816 AliAnalysisTaskMuonPerformance.cxx:1817 AliAnalysisTaskMuonPerformance.cxx:1818 AliAnalysisTaskMuonPerformance.cxx:1819 AliAnalysisTaskMuonPerformance.cxx:1820 AliAnalysisTaskMuonPerformance.cxx:1821 AliAnalysisTaskMuonPerformance.cxx:1822 AliAnalysisTaskMuonPerformance.cxx:1823 AliAnalysisTaskMuonPerformance.cxx:1824 AliAnalysisTaskMuonPerformance.cxx:1825 AliAnalysisTaskMuonPerformance.cxx:1826 AliAnalysisTaskMuonPerformance.cxx:1827 AliAnalysisTaskMuonPerformance.cxx:1828 AliAnalysisTaskMuonPerformance.cxx:1829 AliAnalysisTaskMuonPerformance.cxx:1830 AliAnalysisTaskMuonPerformance.cxx:1831 AliAnalysisTaskMuonPerformance.cxx:1832 AliAnalysisTaskMuonPerformance.cxx:1833 AliAnalysisTaskMuonPerformance.cxx:1834 AliAnalysisTaskMuonPerformance.cxx:1835 AliAnalysisTaskMuonPerformance.cxx:1836 AliAnalysisTaskMuonPerformance.cxx:1837 AliAnalysisTaskMuonPerformance.cxx:1838 AliAnalysisTaskMuonPerformance.cxx:1839 AliAnalysisTaskMuonPerformance.cxx:1840 AliAnalysisTaskMuonPerformance.cxx:1841 AliAnalysisTaskMuonPerformance.cxx:1842 AliAnalysisTaskMuonPerformance.cxx:1843 AliAnalysisTaskMuonPerformance.cxx:1844 AliAnalysisTaskMuonPerformance.cxx:1845 AliAnalysisTaskMuonPerformance.cxx:1846 AliAnalysisTaskMuonPerformance.cxx:1847 AliAnalysisTaskMuonPerformance.cxx:1848 AliAnalysisTaskMuonPerformance.cxx:1849 AliAnalysisTaskMuonPerformance.cxx:1850 AliAnalysisTaskMuonPerformance.cxx:1851 AliAnalysisTaskMuonPerformance.cxx:1852 AliAnalysisTaskMuonPerformance.cxx:1853 AliAnalysisTaskMuonPerformance.cxx:1854 AliAnalysisTaskMuonPerformance.cxx:1855 AliAnalysisTaskMuonPerformance.cxx:1856 AliAnalysisTaskMuonPerformance.cxx:1857 AliAnalysisTaskMuonPerformance.cxx:1858 AliAnalysisTaskMuonPerformance.cxx:1859 AliAnalysisTaskMuonPerformance.cxx:1860 AliAnalysisTaskMuonPerformance.cxx:1861 AliAnalysisTaskMuonPerformance.cxx:1862 AliAnalysisTaskMuonPerformance.cxx:1863 AliAnalysisTaskMuonPerformance.cxx:1864 AliAnalysisTaskMuonPerformance.cxx:1865 AliAnalysisTaskMuonPerformance.cxx:1866 AliAnalysisTaskMuonPerformance.cxx:1867 AliAnalysisTaskMuonPerformance.cxx:1868 AliAnalysisTaskMuonPerformance.cxx:1869 AliAnalysisTaskMuonPerformance.cxx:1870 AliAnalysisTaskMuonPerformance.cxx:1871 AliAnalysisTaskMuonPerformance.cxx:1872 AliAnalysisTaskMuonPerformance.cxx:1873 AliAnalysisTaskMuonPerformance.cxx:1874 AliAnalysisTaskMuonPerformance.cxx:1875 AliAnalysisTaskMuonPerformance.cxx:1876 AliAnalysisTaskMuonPerformance.cxx:1877 AliAnalysisTaskMuonPerformance.cxx:1878 AliAnalysisTaskMuonPerformance.cxx:1879 AliAnalysisTaskMuonPerformance.cxx:1880 AliAnalysisTaskMuonPerformance.cxx:1881 AliAnalysisTaskMuonPerformance.cxx:1882 AliAnalysisTaskMuonPerformance.cxx:1883 AliAnalysisTaskMuonPerformance.cxx:1884 AliAnalysisTaskMuonPerformance.cxx:1885 AliAnalysisTaskMuonPerformance.cxx:1886 AliAnalysisTaskMuonPerformance.cxx:1887 AliAnalysisTaskMuonPerformance.cxx:1888 AliAnalysisTaskMuonPerformance.cxx:1889 AliAnalysisTaskMuonPerformance.cxx:1890 AliAnalysisTaskMuonPerformance.cxx:1891 AliAnalysisTaskMuonPerformance.cxx:1892 AliAnalysisTaskMuonPerformance.cxx:1893 AliAnalysisTaskMuonPerformance.cxx:1894 AliAnalysisTaskMuonPerformance.cxx:1895 AliAnalysisTaskMuonPerformance.cxx:1896 AliAnalysisTaskMuonPerformance.cxx:1897 AliAnalysisTaskMuonPerformance.cxx:1898 AliAnalysisTaskMuonPerformance.cxx:1899 AliAnalysisTaskMuonPerformance.cxx:1900 AliAnalysisTaskMuonPerformance.cxx:1901 AliAnalysisTaskMuonPerformance.cxx:1902 AliAnalysisTaskMuonPerformance.cxx:1903 AliAnalysisTaskMuonPerformance.cxx:1904 AliAnalysisTaskMuonPerformance.cxx:1905 AliAnalysisTaskMuonPerformance.cxx:1906 AliAnalysisTaskMuonPerformance.cxx:1907 AliAnalysisTaskMuonPerformance.cxx:1908 AliAnalysisTaskMuonPerformance.cxx:1909 AliAnalysisTaskMuonPerformance.cxx:1910 AliAnalysisTaskMuonPerformance.cxx:1911 AliAnalysisTaskMuonPerformance.cxx:1912 AliAnalysisTaskMuonPerformance.cxx:1913 AliAnalysisTaskMuonPerformance.cxx:1914 AliAnalysisTaskMuonPerformance.cxx:1915 AliAnalysisTaskMuonPerformance.cxx:1916 AliAnalysisTaskMuonPerformance.cxx:1917 AliAnalysisTaskMuonPerformance.cxx:1918 AliAnalysisTaskMuonPerformance.cxx:1919 AliAnalysisTaskMuonPerformance.cxx:1920 AliAnalysisTaskMuonPerformance.cxx:1921 AliAnalysisTaskMuonPerformance.cxx:1922 AliAnalysisTaskMuonPerformance.cxx:1923 AliAnalysisTaskMuonPerformance.cxx:1924 AliAnalysisTaskMuonPerformance.cxx:1925 AliAnalysisTaskMuonPerformance.cxx:1926 AliAnalysisTaskMuonPerformance.cxx:1927 AliAnalysisTaskMuonPerformance.cxx:1928 AliAnalysisTaskMuonPerformance.cxx:1929 AliAnalysisTaskMuonPerformance.cxx:1930 AliAnalysisTaskMuonPerformance.cxx:1931 AliAnalysisTaskMuonPerformance.cxx:1932 AliAnalysisTaskMuonPerformance.cxx:1933 AliAnalysisTaskMuonPerformance.cxx:1934 AliAnalysisTaskMuonPerformance.cxx:1935 AliAnalysisTaskMuonPerformance.cxx:1936 AliAnalysisTaskMuonPerformance.cxx:1937 AliAnalysisTaskMuonPerformance.cxx:1938 AliAnalysisTaskMuonPerformance.cxx:1939 AliAnalysisTaskMuonPerformance.cxx:1940 AliAnalysisTaskMuonPerformance.cxx:1941 AliAnalysisTaskMuonPerformance.cxx:1942 AliAnalysisTaskMuonPerformance.cxx:1943 AliAnalysisTaskMuonPerformance.cxx:1944 AliAnalysisTaskMuonPerformance.cxx:1945 AliAnalysisTaskMuonPerformance.cxx:1946 AliAnalysisTaskMuonPerformance.cxx:1947 AliAnalysisTaskMuonPerformance.cxx:1948 AliAnalysisTaskMuonPerformance.cxx:1949 AliAnalysisTaskMuonPerformance.cxx:1950 AliAnalysisTaskMuonPerformance.cxx:1951 AliAnalysisTaskMuonPerformance.cxx:1952 AliAnalysisTaskMuonPerformance.cxx:1953 AliAnalysisTaskMuonPerformance.cxx:1954 AliAnalysisTaskMuonPerformance.cxx:1955 AliAnalysisTaskMuonPerformance.cxx:1956 AliAnalysisTaskMuonPerformance.cxx:1957 AliAnalysisTaskMuonPerformance.cxx:1958 AliAnalysisTaskMuonPerformance.cxx:1959 AliAnalysisTaskMuonPerformance.cxx:1960 AliAnalysisTaskMuonPerformance.cxx:1961 AliAnalysisTaskMuonPerformance.cxx:1962 AliAnalysisTaskMuonPerformance.cxx:1963 AliAnalysisTaskMuonPerformance.cxx:1964 AliAnalysisTaskMuonPerformance.cxx:1965 AliAnalysisTaskMuonPerformance.cxx:1966 AliAnalysisTaskMuonPerformance.cxx:1967 AliAnalysisTaskMuonPerformance.cxx:1968 AliAnalysisTaskMuonPerformance.cxx:1969 AliAnalysisTaskMuonPerformance.cxx:1970 AliAnalysisTaskMuonPerformance.cxx:1971 AliAnalysisTaskMuonPerformance.cxx:1972 AliAnalysisTaskMuonPerformance.cxx:1973 AliAnalysisTaskMuonPerformance.cxx:1974 AliAnalysisTaskMuonPerformance.cxx:1975 AliAnalysisTaskMuonPerformance.cxx:1976 AliAnalysisTaskMuonPerformance.cxx:1977 AliAnalysisTaskMuonPerformance.cxx:1978 AliAnalysisTaskMuonPerformance.cxx:1979 AliAnalysisTaskMuonPerformance.cxx:1980 AliAnalysisTaskMuonPerformance.cxx:1981 AliAnalysisTaskMuonPerformance.cxx:1982 AliAnalysisTaskMuonPerformance.cxx:1983 AliAnalysisTaskMuonPerformance.cxx:1984 AliAnalysisTaskMuonPerformance.cxx:1985 AliAnalysisTaskMuonPerformance.cxx:1986 AliAnalysisTaskMuonPerformance.cxx:1987 AliAnalysisTaskMuonPerformance.cxx:1988 AliAnalysisTaskMuonPerformance.cxx:1989 AliAnalysisTaskMuonPerformance.cxx:1990 AliAnalysisTaskMuonPerformance.cxx:1991 AliAnalysisTaskMuonPerformance.cxx:1992 AliAnalysisTaskMuonPerformance.cxx:1993 AliAnalysisTaskMuonPerformance.cxx:1994 AliAnalysisTaskMuonPerformance.cxx:1995 AliAnalysisTaskMuonPerformance.cxx:1996 AliAnalysisTaskMuonPerformance.cxx:1997 AliAnalysisTaskMuonPerformance.cxx:1998 AliAnalysisTaskMuonPerformance.cxx:1999 AliAnalysisTaskMuonPerformance.cxx:2000 AliAnalysisTaskMuonPerformance.cxx:2001 AliAnalysisTaskMuonPerformance.cxx:2002 AliAnalysisTaskMuonPerformance.cxx:2003 AliAnalysisTaskMuonPerformance.cxx:2004 AliAnalysisTaskMuonPerformance.cxx:2005 AliAnalysisTaskMuonPerformance.cxx:2006 AliAnalysisTaskMuonPerformance.cxx:2007 AliAnalysisTaskMuonPerformance.cxx:2008 AliAnalysisTaskMuonPerformance.cxx:2009 AliAnalysisTaskMuonPerformance.cxx:2010 AliAnalysisTaskMuonPerformance.cxx:2011 AliAnalysisTaskMuonPerformance.cxx:2012 AliAnalysisTaskMuonPerformance.cxx:2013 AliAnalysisTaskMuonPerformance.cxx:2014 AliAnalysisTaskMuonPerformance.cxx:2015 AliAnalysisTaskMuonPerformance.cxx:2016 AliAnalysisTaskMuonPerformance.cxx:2017 AliAnalysisTaskMuonPerformance.cxx:2018 AliAnalysisTaskMuonPerformance.cxx:2019 AliAnalysisTaskMuonPerformance.cxx:2020 AliAnalysisTaskMuonPerformance.cxx:2021 AliAnalysisTaskMuonPerformance.cxx:2022 AliAnalysisTaskMuonPerformance.cxx:2023 AliAnalysisTaskMuonPerformance.cxx:2024 AliAnalysisTaskMuonPerformance.cxx:2025 AliAnalysisTaskMuonPerformance.cxx:2026 AliAnalysisTaskMuonPerformance.cxx:2027 AliAnalysisTaskMuonPerformance.cxx:2028 AliAnalysisTaskMuonPerformance.cxx:2029 AliAnalysisTaskMuonPerformance.cxx:2030 AliAnalysisTaskMuonPerformance.cxx:2031 AliAnalysisTaskMuonPerformance.cxx:2032 AliAnalysisTaskMuonPerformance.cxx:2033 AliAnalysisTaskMuonPerformance.cxx:2034 AliAnalysisTaskMuonPerformance.cxx:2035 AliAnalysisTaskMuonPerformance.cxx:2036 AliAnalysisTaskMuonPerformance.cxx:2037 AliAnalysisTaskMuonPerformance.cxx:2038 AliAnalysisTaskMuonPerformance.cxx:2039 AliAnalysisTaskMuonPerformance.cxx:2040 AliAnalysisTaskMuonPerformance.cxx:2041 AliAnalysisTaskMuonPerformance.cxx:2042 AliAnalysisTaskMuonPerformance.cxx:2043 AliAnalysisTaskMuonPerformance.cxx:2044 AliAnalysisTaskMuonPerformance.cxx:2045 AliAnalysisTaskMuonPerformance.cxx:2046 AliAnalysisTaskMuonPerformance.cxx:2047 AliAnalysisTaskMuonPerformance.cxx:2048 AliAnalysisTaskMuonPerformance.cxx:2049 AliAnalysisTaskMuonPerformance.cxx:2050 AliAnalysisTaskMuonPerformance.cxx:2051 AliAnalysisTaskMuonPerformance.cxx:2052 AliAnalysisTaskMuonPerformance.cxx:2053 AliAnalysisTaskMuonPerformance.cxx:2054 AliAnalysisTaskMuonPerformance.cxx:2055 AliAnalysisTaskMuonPerformance.cxx:2056 AliAnalysisTaskMuonPerformance.cxx:2057 AliAnalysisTaskMuonPerformance.cxx:2058 AliAnalysisTaskMuonPerformance.cxx:2059 AliAnalysisTaskMuonPerformance.cxx:2060 AliAnalysisTaskMuonPerformance.cxx:2061 AliAnalysisTaskMuonPerformance.cxx:2062 AliAnalysisTaskMuonPerformance.cxx:2063 AliAnalysisTaskMuonPerformance.cxx:2064 AliAnalysisTaskMuonPerformance.cxx:2065 AliAnalysisTaskMuonPerformance.cxx:2066 AliAnalysisTaskMuonPerformance.cxx:2067 AliAnalysisTaskMuonPerformance.cxx:2068 AliAnalysisTaskMuonPerformance.cxx:2069 AliAnalysisTaskMuonPerformance.cxx:2070 AliAnalysisTaskMuonPerformance.cxx:2071 AliAnalysisTaskMuonPerformance.cxx:2072 AliAnalysisTaskMuonPerformance.cxx:2073 AliAnalysisTaskMuonPerformance.cxx:2074 AliAnalysisTaskMuonPerformance.cxx:2075 AliAnalysisTaskMuonPerformance.cxx:2076 AliAnalysisTaskMuonPerformance.cxx:2077 AliAnalysisTaskMuonPerformance.cxx:2078 AliAnalysisTaskMuonPerformance.cxx:2079 AliAnalysisTaskMuonPerformance.cxx:2080 AliAnalysisTaskMuonPerformance.cxx:2081 AliAnalysisTaskMuonPerformance.cxx:2082 AliAnalysisTaskMuonPerformance.cxx:2083 AliAnalysisTaskMuonPerformance.cxx:2084 AliAnalysisTaskMuonPerformance.cxx:2085 AliAnalysisTaskMuonPerformance.cxx:2086 AliAnalysisTaskMuonPerformance.cxx:2087 AliAnalysisTaskMuonPerformance.cxx:2088 AliAnalysisTaskMuonPerformance.cxx:2089 AliAnalysisTaskMuonPerformance.cxx:2090 AliAnalysisTaskMuonPerformance.cxx:2091 AliAnalysisTaskMuonPerformance.cxx:2092 AliAnalysisTaskMuonPerformance.cxx:2093 AliAnalysisTaskMuonPerformance.cxx:2094 AliAnalysisTaskMuonPerformance.cxx:2095 AliAnalysisTaskMuonPerformance.cxx:2096 AliAnalysisTaskMuonPerformance.cxx:2097 AliAnalysisTaskMuonPerformance.cxx:2098 AliAnalysisTaskMuonPerformance.cxx:2099 AliAnalysisTaskMuonPerformance.cxx:2100 AliAnalysisTaskMuonPerformance.cxx:2101 AliAnalysisTaskMuonPerformance.cxx:2102 AliAnalysisTaskMuonPerformance.cxx:2103 AliAnalysisTaskMuonPerformance.cxx:2104 AliAnalysisTaskMuonPerformance.cxx:2105 AliAnalysisTaskMuonPerformance.cxx:2106 AliAnalysisTaskMuonPerformance.cxx:2107 AliAnalysisTaskMuonPerformance.cxx:2108 AliAnalysisTaskMuonPerformance.cxx:2109 AliAnalysisTaskMuonPerformance.cxx:2110 AliAnalysisTaskMuonPerformance.cxx:2111 AliAnalysisTaskMuonPerformance.cxx:2112 AliAnalysisTaskMuonPerformance.cxx:2113 AliAnalysisTaskMuonPerformance.cxx:2114 AliAnalysisTaskMuonPerformance.cxx:2115 AliAnalysisTaskMuonPerformance.cxx:2116 AliAnalysisTaskMuonPerformance.cxx:2117 AliAnalysisTaskMuonPerformance.cxx:2118 AliAnalysisTaskMuonPerformance.cxx:2119 AliAnalysisTaskMuonPerformance.cxx:2120 AliAnalysisTaskMuonPerformance.cxx:2121 AliAnalysisTaskMuonPerformance.cxx:2122 AliAnalysisTaskMuonPerformance.cxx:2123 AliAnalysisTaskMuonPerformance.cxx:2124 AliAnalysisTaskMuonPerformance.cxx:2125 AliAnalysisTaskMuonPerformance.cxx:2126 AliAnalysisTaskMuonPerformance.cxx:2127 AliAnalysisTaskMuonPerformance.cxx:2128 AliAnalysisTaskMuonPerformance.cxx:2129 AliAnalysisTaskMuonPerformance.cxx:2130 AliAnalysisTaskMuonPerformance.cxx:2131 AliAnalysisTaskMuonPerformance.cxx:2132 AliAnalysisTaskMuonPerformance.cxx:2133 AliAnalysisTaskMuonPerformance.cxx:2134 AliAnalysisTaskMuonPerformance.cxx:2135 AliAnalysisTaskMuonPerformance.cxx:2136 AliAnalysisTaskMuonPerformance.cxx:2137 AliAnalysisTaskMuonPerformance.cxx:2138 AliAnalysisTaskMuonPerformance.cxx:2139 AliAnalysisTaskMuonPerformance.cxx:2140 AliAnalysisTaskMuonPerformance.cxx:2141 AliAnalysisTaskMuonPerformance.cxx:2142 AliAnalysisTaskMuonPerformance.cxx:2143 AliAnalysisTaskMuonPerformance.cxx:2144 AliAnalysisTaskMuonPerformance.cxx:2145 AliAnalysisTaskMuonPerformance.cxx:2146 AliAnalysisTaskMuonPerformance.cxx:2147 AliAnalysisTaskMuonPerformance.cxx:2148 AliAnalysisTaskMuonPerformance.cxx:2149 AliAnalysisTaskMuonPerformance.cxx:2150 AliAnalysisTaskMuonPerformance.cxx:2151 AliAnalysisTaskMuonPerformance.cxx:2152 AliAnalysisTaskMuonPerformance.cxx:2153 AliAnalysisTaskMuonPerformance.cxx:2154 AliAnalysisTaskMuonPerformance.cxx:2155 AliAnalysisTaskMuonPerformance.cxx:2156 AliAnalysisTaskMuonPerformance.cxx:2157 AliAnalysisTaskMuonPerformance.cxx:2158 AliAnalysisTaskMuonPerformance.cxx:2159 AliAnalysisTaskMuonPerformance.cxx:2160 AliAnalysisTaskMuonPerformance.cxx:2161 AliAnalysisTaskMuonPerformance.cxx:2162 AliAnalysisTaskMuonPerformance.cxx:2163 AliAnalysisTaskMuonPerformance.cxx:2164 AliAnalysisTaskMuonPerformance.cxx:2165 AliAnalysisTaskMuonPerformance.cxx:2166 AliAnalysisTaskMuonPerformance.cxx:2167 AliAnalysisTaskMuonPerformance.cxx:2168 AliAnalysisTaskMuonPerformance.cxx:2169 AliAnalysisTaskMuonPerformance.cxx:2170 AliAnalysisTaskMuonPerformance.cxx:2171 AliAnalysisTaskMuonPerformance.cxx:2172 AliAnalysisTaskMuonPerformance.cxx:2173 AliAnalysisTaskMuonPerformance.cxx:2174 AliAnalysisTaskMuonPerformance.cxx:2175 AliAnalysisTaskMuonPerformance.cxx:2176 AliAnalysisTaskMuonPerformance.cxx:2177 AliAnalysisTaskMuonPerformance.cxx:2178 AliAnalysisTaskMuonPerformance.cxx:2179 AliAnalysisTaskMuonPerformance.cxx:2180 AliAnalysisTaskMuonPerformance.cxx:2181 AliAnalysisTaskMuonPerformance.cxx:2182 AliAnalysisTaskMuonPerformance.cxx:2183 AliAnalysisTaskMuonPerformance.cxx:2184 AliAnalysisTaskMuonPerformance.cxx:2185 AliAnalysisTaskMuonPerformance.cxx:2186 AliAnalysisTaskMuonPerformance.cxx:2187 AliAnalysisTaskMuonPerformance.cxx:2188 AliAnalysisTaskMuonPerformance.cxx:2189 AliAnalysisTaskMuonPerformance.cxx:2190 AliAnalysisTaskMuonPerformance.cxx:2191 AliAnalysisTaskMuonPerformance.cxx:2192 AliAnalysisTaskMuonPerformance.cxx:2193 AliAnalysisTaskMuonPerformance.cxx:2194 AliAnalysisTaskMuonPerformance.cxx:2195 AliAnalysisTaskMuonPerformance.cxx:2196 AliAnalysisTaskMuonPerformance.cxx:2197 AliAnalysisTaskMuonPerformance.cxx:2198 AliAnalysisTaskMuonPerformance.cxx:2199 AliAnalysisTaskMuonPerformance.cxx:2200 AliAnalysisTaskMuonPerformance.cxx:2201 AliAnalysisTaskMuonPerformance.cxx:2202 AliAnalysisTaskMuonPerformance.cxx:2203 AliAnalysisTaskMuonPerformance.cxx:2204 AliAnalysisTaskMuonPerformance.cxx:2205 AliAnalysisTaskMuonPerformance.cxx:2206 AliAnalysisTaskMuonPerformance.cxx:2207 AliAnalysisTaskMuonPerformance.cxx:2208 AliAnalysisTaskMuonPerformance.cxx:2209 AliAnalysisTaskMuonPerformance.cxx:2210 AliAnalysisTaskMuonPerformance.cxx:2211 AliAnalysisTaskMuonPerformance.cxx:2212 AliAnalysisTaskMuonPerformance.cxx:2213 AliAnalysisTaskMuonPerformance.cxx:2214 AliAnalysisTaskMuonPerformance.cxx:2215 AliAnalysisTaskMuonPerformance.cxx:2216 AliAnalysisTaskMuonPerformance.cxx:2217 AliAnalysisTaskMuonPerformance.cxx:2218 AliAnalysisTaskMuonPerformance.cxx:2219 AliAnalysisTaskMuonPerformance.cxx:2220 AliAnalysisTaskMuonPerformance.cxx:2221 AliAnalysisTaskMuonPerformance.cxx:2222 AliAnalysisTaskMuonPerformance.cxx:2223 AliAnalysisTaskMuonPerformance.cxx:2224 AliAnalysisTaskMuonPerformance.cxx:2225 AliAnalysisTaskMuonPerformance.cxx:2226 AliAnalysisTaskMuonPerformance.cxx:2227 AliAnalysisTaskMuonPerformance.cxx:2228 AliAnalysisTaskMuonPerformance.cxx:2229 AliAnalysisTaskMuonPerformance.cxx:2230 AliAnalysisTaskMuonPerformance.cxx:2231 AliAnalysisTaskMuonPerformance.cxx:2232 AliAnalysisTaskMuonPerformance.cxx:2233 AliAnalysisTaskMuonPerformance.cxx:2234 AliAnalysisTaskMuonPerformance.cxx:2235 AliAnalysisTaskMuonPerformance.cxx:2236 AliAnalysisTaskMuonPerformance.cxx:2237 AliAnalysisTaskMuonPerformance.cxx:2238 AliAnalysisTaskMuonPerformance.cxx:2239 AliAnalysisTaskMuonPerformance.cxx:2240 AliAnalysisTaskMuonPerformance.cxx:2241 AliAnalysisTaskMuonPerformance.cxx:2242 AliAnalysisTaskMuonPerformance.cxx:2243 AliAnalysisTaskMuonPerformance.cxx:2244 AliAnalysisTaskMuonPerformance.cxx:2245 AliAnalysisTaskMuonPerformance.cxx:2246 AliAnalysisTaskMuonPerformance.cxx:2247 AliAnalysisTaskMuonPerformance.cxx:2248 AliAnalysisTaskMuonPerformance.cxx:2249 AliAnalysisTaskMuonPerformance.cxx:2250 AliAnalysisTaskMuonPerformance.cxx:2251 AliAnalysisTaskMuonPerformance.cxx:2252 AliAnalysisTaskMuonPerformance.cxx:2253 AliAnalysisTaskMuonPerformance.cxx:2254 AliAnalysisTaskMuonPerformance.cxx:2255 AliAnalysisTaskMuonPerformance.cxx:2256 AliAnalysisTaskMuonPerformance.cxx:2257 AliAnalysisTaskMuonPerformance.cxx:2258 AliAnalysisTaskMuonPerformance.cxx:2259 AliAnalysisTaskMuonPerformance.cxx:2260 AliAnalysisTaskMuonPerformance.cxx:2261 AliAnalysisTaskMuonPerformance.cxx:2262 AliAnalysisTaskMuonPerformance.cxx:2263 AliAnalysisTaskMuonPerformance.cxx:2264 AliAnalysisTaskMuonPerformance.cxx:2265 AliAnalysisTaskMuonPerformance.cxx:2266 AliAnalysisTaskMuonPerformance.cxx:2267 AliAnalysisTaskMuonPerformance.cxx:2268 AliAnalysisTaskMuonPerformance.cxx:2269 AliAnalysisTaskMuonPerformance.cxx:2270 AliAnalysisTaskMuonPerformance.cxx:2271 AliAnalysisTaskMuonPerformance.cxx:2272 AliAnalysisTaskMuonPerformance.cxx:2273 AliAnalysisTaskMuonPerformance.cxx:2274 AliAnalysisTaskMuonPerformance.cxx:2275 AliAnalysisTaskMuonPerformance.cxx:2276 AliAnalysisTaskMuonPerformance.cxx:2277 AliAnalysisTaskMuonPerformance.cxx:2278 AliAnalysisTaskMuonPerformance.cxx:2279 AliAnalysisTaskMuonPerformance.cxx:2280 AliAnalysisTaskMuonPerformance.cxx:2281 AliAnalysisTaskMuonPerformance.cxx:2282 AliAnalysisTaskMuonPerformance.cxx:2283 AliAnalysisTaskMuonPerformance.cxx:2284 AliAnalysisTaskMuonPerformance.cxx:2285 AliAnalysisTaskMuonPerformance.cxx:2286 AliAnalysisTaskMuonPerformance.cxx:2287 AliAnalysisTaskMuonPerformance.cxx:2288 AliAnalysisTaskMuonPerformance.cxx:2289 AliAnalysisTaskMuonPerformance.cxx:2290 AliAnalysisTaskMuonPerformance.cxx:2291 AliAnalysisTaskMuonPerformance.cxx:2292 AliAnalysisTaskMuonPerformance.cxx:2293 AliAnalysisTaskMuonPerformance.cxx:2294 AliAnalysisTaskMuonPerformance.cxx:2295 AliAnalysisTaskMuonPerformance.cxx:2296 AliAnalysisTaskMuonPerformance.cxx:2297 AliAnalysisTaskMuonPerformance.cxx:2298 AliAnalysisTaskMuonPerformance.cxx:2299 AliAnalysisTaskMuonPerformance.cxx:2300 AliAnalysisTaskMuonPerformance.cxx:2301 AliAnalysisTaskMuonPerformance.cxx:2302 AliAnalysisTaskMuonPerformance.cxx:2303 AliAnalysisTaskMuonPerformance.cxx:2304 AliAnalysisTaskMuonPerformance.cxx:2305 AliAnalysisTaskMuonPerformance.cxx:2306 AliAnalysisTaskMuonPerformance.cxx:2307 AliAnalysisTaskMuonPerformance.cxx:2308 AliAnalysisTaskMuonPerformance.cxx:2309 AliAnalysisTaskMuonPerformance.cxx:2310 AliAnalysisTaskMuonPerformance.cxx:2311 AliAnalysisTaskMuonPerformance.cxx:2312 AliAnalysisTaskMuonPerformance.cxx:2313 AliAnalysisTaskMuonPerformance.cxx:2314 AliAnalysisTaskMuonPerformance.cxx:2315 AliAnalysisTaskMuonPerformance.cxx:2316 AliAnalysisTaskMuonPerformance.cxx:2317 AliAnalysisTaskMuonPerformance.cxx:2318 AliAnalysisTaskMuonPerformance.cxx:2319 AliAnalysisTaskMuonPerformance.cxx:2320 AliAnalysisTaskMuonPerformance.cxx:2321 AliAnalysisTaskMuonPerformance.cxx:2322 AliAnalysisTaskMuonPerformance.cxx:2323 AliAnalysisTaskMuonPerformance.cxx:2324 AliAnalysisTaskMuonPerformance.cxx:2325 AliAnalysisTaskMuonPerformance.cxx:2326 AliAnalysisTaskMuonPerformance.cxx:2327 AliAnalysisTaskMuonPerformance.cxx:2328 AliAnalysisTaskMuonPerformance.cxx:2329 AliAnalysisTaskMuonPerformance.cxx:2330 AliAnalysisTaskMuonPerformance.cxx:2331 AliAnalysisTaskMuonPerformance.cxx:2332 AliAnalysisTaskMuonPerformance.cxx:2333 AliAnalysisTaskMuonPerformance.cxx:2334 AliAnalysisTaskMuonPerformance.cxx:2335 AliAnalysisTaskMuonPerformance.cxx:2336 AliAnalysisTaskMuonPerformance.cxx:2337 AliAnalysisTaskMuonPerformance.cxx:2338 AliAnalysisTaskMuonPerformance.cxx:2339 AliAnalysisTaskMuonPerformance.cxx:2340 AliAnalysisTaskMuonPerformance.cxx:2341 AliAnalysisTaskMuonPerformance.cxx:2342 AliAnalysisTaskMuonPerformance.cxx:2343 AliAnalysisTaskMuonPerformance.cxx:2344 AliAnalysisTaskMuonPerformance.cxx:2345 AliAnalysisTaskMuonPerformance.cxx:2346 AliAnalysisTaskMuonPerformance.cxx:2347 AliAnalysisTaskMuonPerformance.cxx:2348 AliAnalysisTaskMuonPerformance.cxx:2349 AliAnalysisTaskMuonPerformance.cxx:2350 AliAnalysisTaskMuonPerformance.cxx:2351 AliAnalysisTaskMuonPerformance.cxx:2352 AliAnalysisTaskMuonPerformance.cxx:2353 AliAnalysisTaskMuonPerformance.cxx:2354 AliAnalysisTaskMuonPerformance.cxx:2355 AliAnalysisTaskMuonPerformance.cxx:2356 AliAnalysisTaskMuonPerformance.cxx:2357 AliAnalysisTaskMuonPerformance.cxx:2358 AliAnalysisTaskMuonPerformance.cxx:2359 AliAnalysisTaskMuonPerformance.cxx:2360 AliAnalysisTaskMuonPerformance.cxx:2361 AliAnalysisTaskMuonPerformance.cxx:2362 AliAnalysisTaskMuonPerformance.cxx:2363 AliAnalysisTaskMuonPerformance.cxx:2364 AliAnalysisTaskMuonPerformance.cxx:2365 AliAnalysisTaskMuonPerformance.cxx:2366 AliAnalysisTaskMuonPerformance.cxx:2367 AliAnalysisTaskMuonPerformance.cxx:2368 AliAnalysisTaskMuonPerformance.cxx:2369 AliAnalysisTaskMuonPerformance.cxx:2370 AliAnalysisTaskMuonPerformance.cxx:2371 AliAnalysisTaskMuonPerformance.cxx:2372 AliAnalysisTaskMuonPerformance.cxx:2373 AliAnalysisTaskMuonPerformance.cxx:2374 AliAnalysisTaskMuonPerformance.cxx:2375 AliAnalysisTaskMuonPerformance.cxx:2376 AliAnalysisTaskMuonPerformance.cxx:2377 AliAnalysisTaskMuonPerformance.cxx:2378 AliAnalysisTaskMuonPerformance.cxx:2379 AliAnalysisTaskMuonPerformance.cxx:2380 AliAnalysisTaskMuonPerformance.cxx:2381 AliAnalysisTaskMuonPerformance.cxx:2382 AliAnalysisTaskMuonPerformance.cxx:2383 AliAnalysisTaskMuonPerformance.cxx:2384 AliAnalysisTaskMuonPerformance.cxx:2385 AliAnalysisTaskMuonPerformance.cxx:2386 AliAnalysisTaskMuonPerformance.cxx:2387 AliAnalysisTaskMuonPerformance.cxx:2388 AliAnalysisTaskMuonPerformance.cxx:2389 AliAnalysisTaskMuonPerformance.cxx:2390 AliAnalysisTaskMuonPerformance.cxx:2391 AliAnalysisTaskMuonPerformance.cxx:2392 AliAnalysisTaskMuonPerformance.cxx:2393 AliAnalysisTaskMuonPerformance.cxx:2394 AliAnalysisTaskMuonPerformance.cxx:2395 AliAnalysisTaskMuonPerformance.cxx:2396 AliAnalysisTaskMuonPerformance.cxx:2397 AliAnalysisTaskMuonPerformance.cxx:2398 AliAnalysisTaskMuonPerformance.cxx:2399 AliAnalysisTaskMuonPerformance.cxx:2400 AliAnalysisTaskMuonPerformance.cxx:2401 AliAnalysisTaskMuonPerformance.cxx:2402 AliAnalysisTaskMuonPerformance.cxx:2403 AliAnalysisTaskMuonPerformance.cxx:2404 AliAnalysisTaskMuonPerformance.cxx:2405 AliAnalysisTaskMuonPerformance.cxx:2406 AliAnalysisTaskMuonPerformance.cxx:2407 AliAnalysisTaskMuonPerformance.cxx:2408 AliAnalysisTaskMuonPerformance.cxx:2409 AliAnalysisTaskMuonPerformance.cxx:2410 AliAnalysisTaskMuonPerformance.cxx:2411 AliAnalysisTaskMuonPerformance.cxx:2412 AliAnalysisTaskMuonPerformance.cxx:2413 AliAnalysisTaskMuonPerformance.cxx:2414 AliAnalysisTaskMuonPerformance.cxx:2415 AliAnalysisTaskMuonPerformance.cxx:2416 AliAnalysisTaskMuonPerformance.cxx:2417 AliAnalysisTaskMuonPerformance.cxx:2418 AliAnalysisTaskMuonPerformance.cxx:2419 AliAnalysisTaskMuonPerformance.cxx:2420 AliAnalysisTaskMuonPerformance.cxx:2421 AliAnalysisTaskMuonPerformance.cxx:2422 AliAnalysisTaskMuonPerformance.cxx:2423 AliAnalysisTaskMuonPerformance.cxx:2424 AliAnalysisTaskMuonPerformance.cxx:2425 AliAnalysisTaskMuonPerformance.cxx:2426 AliAnalysisTaskMuonPerformance.cxx:2427 AliAnalysisTaskMuonPerformance.cxx:2428 AliAnalysisTaskMuonPerformance.cxx:2429 AliAnalysisTaskMuonPerformance.cxx:2430 AliAnalysisTaskMuonPerformance.cxx:2431 AliAnalysisTaskMuonPerformance.cxx:2432 AliAnalysisTaskMuonPerformance.cxx:2433 AliAnalysisTaskMuonPerformance.cxx:2434 AliAnalysisTaskMuonPerformance.cxx:2435 AliAnalysisTaskMuonPerformance.cxx:2436 AliAnalysisTaskMuonPerformance.cxx:2437 AliAnalysisTaskMuonPerformance.cxx:2438 AliAnalysisTaskMuonPerformance.cxx:2439 AliAnalysisTaskMuonPerformance.cxx:2440 AliAnalysisTaskMuonPerformance.cxx:2441 AliAnalysisTaskMuonPerformance.cxx:2442 AliAnalysisTaskMuonPerformance.cxx:2443 AliAnalysisTaskMuonPerformance.cxx:2444 AliAnalysisTaskMuonPerformance.cxx:2445 AliAnalysisTaskMuonPerformance.cxx:2446 AliAnalysisTaskMuonPerformance.cxx:2447 AliAnalysisTaskMuonPerformance.cxx:2448 AliAnalysisTaskMuonPerformance.cxx:2449 AliAnalysisTaskMuonPerformance.cxx:2450 AliAnalysisTaskMuonPerformance.cxx:2451 AliAnalysisTaskMuonPerformance.cxx:2452 AliAnalysisTaskMuonPerformance.cxx:2453 AliAnalysisTaskMuonPerformance.cxx:2454 AliAnalysisTaskMuonPerformance.cxx:2455 AliAnalysisTaskMuonPerformance.cxx:2456 AliAnalysisTaskMuonPerformance.cxx:2457 AliAnalysisTaskMuonPerformance.cxx:2458 AliAnalysisTaskMuonPerformance.cxx:2459 AliAnalysisTaskMuonPerformance.cxx:2460 AliAnalysisTaskMuonPerformance.cxx:2461 AliAnalysisTaskMuonPerformance.cxx:2462 AliAnalysisTaskMuonPerformance.cxx:2463 AliAnalysisTaskMuonPerformance.cxx:2464 AliAnalysisTaskMuonPerformance.cxx:2465 AliAnalysisTaskMuonPerformance.cxx:2466 AliAnalysisTaskMuonPerformance.cxx:2467 AliAnalysisTaskMuonPerformance.cxx:2468 AliAnalysisTaskMuonPerformance.cxx:2469 AliAnalysisTaskMuonPerformance.cxx:2470 AliAnalysisTaskMuonPerformance.cxx:2471 AliAnalysisTaskMuonPerformance.cxx:2472 AliAnalysisTaskMuonPerformance.cxx:2473 AliAnalysisTaskMuonPerformance.cxx:2474 AliAnalysisTaskMuonPerformance.cxx:2475 AliAnalysisTaskMuonPerformance.cxx:2476 AliAnalysisTaskMuonPerformance.cxx:2477 AliAnalysisTaskMuonPerformance.cxx:2478 AliAnalysisTaskMuonPerformance.cxx:2479 AliAnalysisTaskMuonPerformance.cxx:2480 AliAnalysisTaskMuonPerformance.cxx:2481 AliAnalysisTaskMuonPerformance.cxx:2482 AliAnalysisTaskMuonPerformance.cxx:2483 AliAnalysisTaskMuonPerformance.cxx:2484 AliAnalysisTaskMuonPerformance.cxx:2485 AliAnalysisTaskMuonPerformance.cxx:2486 AliAnalysisTaskMuonPerformance.cxx:2487 AliAnalysisTaskMuonPerformance.cxx:2488 AliAnalysisTaskMuonPerformance.cxx:2489 AliAnalysisTaskMuonPerformance.cxx:2490 AliAnalysisTaskMuonPerformance.cxx:2491 AliAnalysisTaskMuonPerformance.cxx:2492 AliAnalysisTaskMuonPerformance.cxx:2493 AliAnalysisTaskMuonPerformance.cxx:2494 AliAnalysisTaskMuonPerformance.cxx:2495 AliAnalysisTaskMuonPerformance.cxx:2496 AliAnalysisTaskMuonPerformance.cxx:2497 AliAnalysisTaskMuonPerformance.cxx:2498 AliAnalysisTaskMuonPerformance.cxx:2499 AliAnalysisTaskMuonPerformance.cxx:2500 AliAnalysisTaskMuonPerformance.cxx:2501 AliAnalysisTaskMuonPerformance.cxx:2502 AliAnalysisTaskMuonPerformance.cxx:2503 AliAnalysisTaskMuonPerformance.cxx:2504 AliAnalysisTaskMuonPerformance.cxx:2505 AliAnalysisTaskMuonPerformance.cxx:2506 AliAnalysisTaskMuonPerformance.cxx:2507 AliAnalysisTaskMuonPerformance.cxx:2508 AliAnalysisTaskMuonPerformance.cxx:2509 AliAnalysisTaskMuonPerformance.cxx:2510 AliAnalysisTaskMuonPerformance.cxx:2511 AliAnalysisTaskMuonPerformance.cxx:2512 AliAnalysisTaskMuonPerformance.cxx:2513 AliAnalysisTaskMuonPerformance.cxx:2514 AliAnalysisTaskMuonPerformance.cxx:2515 AliAnalysisTaskMuonPerformance.cxx:2516 AliAnalysisTaskMuonPerformance.cxx:2517 AliAnalysisTaskMuonPerformance.cxx:2518 AliAnalysisTaskMuonPerformance.cxx:2519 AliAnalysisTaskMuonPerformance.cxx:2520 AliAnalysisTaskMuonPerformance.cxx:2521 AliAnalysisTaskMuonPerformance.cxx:2522 AliAnalysisTaskMuonPerformance.cxx:2523 AliAnalysisTaskMuonPerformance.cxx:2524 AliAnalysisTaskMuonPerformance.cxx:2525 AliAnalysisTaskMuonPerformance.cxx:2526 AliAnalysisTaskMuonPerformance.cxx:2527 AliAnalysisTaskMuonPerformance.cxx:2528 AliAnalysisTaskMuonPerformance.cxx:2529 AliAnalysisTaskMuonPerformance.cxx:2530 AliAnalysisTaskMuonPerformance.cxx:2531 AliAnalysisTaskMuonPerformance.cxx:2532 AliAnalysisTaskMuonPerformance.cxx:2533 AliAnalysisTaskMuonPerformance.cxx:2534 AliAnalysisTaskMuonPerformance.cxx:2535 AliAnalysisTaskMuonPerformance.cxx:2536 AliAnalysisTaskMuonPerformance.cxx:2537 AliAnalysisTaskMuonPerformance.cxx:2538 AliAnalysisTaskMuonPerformance.cxx:2539 AliAnalysisTaskMuonPerformance.cxx:2540 AliAnalysisTaskMuonPerformance.cxx:2541 AliAnalysisTaskMuonPerformance.cxx:2542 AliAnalysisTaskMuonPerformance.cxx:2543 AliAnalysisTaskMuonPerformance.cxx:2544 AliAnalysisTaskMuonPerformance.cxx:2545 AliAnalysisTaskMuonPerformance.cxx:2546 AliAnalysisTaskMuonPerformance.cxx:2547 AliAnalysisTaskMuonPerformance.cxx:2548 AliAnalysisTaskMuonPerformance.cxx:2549 AliAnalysisTaskMuonPerformance.cxx:2550 AliAnalysisTaskMuonPerformance.cxx:2551 AliAnalysisTaskMuonPerformance.cxx:2552 AliAnalysisTaskMuonPerformance.cxx:2553 AliAnalysisTaskMuonPerformance.cxx:2554 AliAnalysisTaskMuonPerformance.cxx:2555 AliAnalysisTaskMuonPerformance.cxx:2556 AliAnalysisTaskMuonPerformance.cxx:2557 AliAnalysisTaskMuonPerformance.cxx:2558 AliAnalysisTaskMuonPerformance.cxx:2559 AliAnalysisTaskMuonPerformance.cxx:2560 AliAnalysisTaskMuonPerformance.cxx:2561 AliAnalysisTaskMuonPerformance.cxx:2562 AliAnalysisTaskMuonPerformance.cxx:2563 AliAnalysisTaskMuonPerformance.cxx:2564 AliAnalysisTaskMuonPerformance.cxx:2565 AliAnalysisTaskMuonPerformance.cxx:2566 AliAnalysisTaskMuonPerformance.cxx:2567 AliAnalysisTaskMuonPerformance.cxx:2568 AliAnalysisTaskMuonPerformance.cxx:2569 AliAnalysisTaskMuonPerformance.cxx:2570 AliAnalysisTaskMuonPerformance.cxx:2571 AliAnalysisTaskMuonPerformance.cxx:2572 AliAnalysisTaskMuonPerformance.cxx:2573 AliAnalysisTaskMuonPerformance.cxx:2574 AliAnalysisTaskMuonPerformance.cxx:2575 AliAnalysisTaskMuonPerformance.cxx:2576 AliAnalysisTaskMuonPerformance.cxx:2577 AliAnalysisTaskMuonPerformance.cxx:2578 AliAnalysisTaskMuonPerformance.cxx:2579 AliAnalysisTaskMuonPerformance.cxx:2580 AliAnalysisTaskMuonPerformance.cxx:2581 AliAnalysisTaskMuonPerformance.cxx:2582 AliAnalysisTaskMuonPerformance.cxx:2583 AliAnalysisTaskMuonPerformance.cxx:2584 AliAnalysisTaskMuonPerformance.cxx:2585 AliAnalysisTaskMuonPerformance.cxx:2586 AliAnalysisTaskMuonPerformance.cxx:2587 AliAnalysisTaskMuonPerformance.cxx:2588 AliAnalysisTaskMuonPerformance.cxx:2589