#include <TObjArray.h>
#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TCanvas.h>
#include <TArrayI.h>
#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliESDInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliCDBManager.h"
#include "AliCentrality.h"
#include "AliMCParticle.h"
#include "AliMCEvent.h"
#include "AliCounterCollection.h"
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisDataContainer.h"
#include "AliAnalysisManager.h"
#include "AliMUONCDB.h"
#include "AliMUONRecoParam.h"
#include "AliMUONRecoCheck.h"
#include "AliMUONVCluster.h"
#include "AliMUONVTrackStore.h"
#include "AliMUONVTriggerTrackStore.h"
#include "AliMUONTrack.h"
#include "AliMUONTrackParam.h"
#include "AliMUONESDInterface.h"
#include "AliMUONTriggerTrack.h"
#include "AliAnalysisTaskMuonFakes.h"
using std::cout;
using std::endl;
using std::flush;
ClassImp(AliAnalysisTaskMuonFakes)
AliAnalysisTaskMuonFakes::AliAnalysisTaskMuonFakes() :
AliAnalysisTaskSE(),
fList(0x0),
fList2(0x0),
fCanvases(0x0),
fTrackCounters(0x0),
fFakeTrackCounters(0x0),
fMatchedTrackCounters(0x0),
fEventCounters(0x0),
fPairCounters(0x0),
fCurrentFileName(""),
fRequestedStationMask(0),
fRequest2ChInSameSt45(kFALSE),
fSigmaCut(-1.),
fNEvents(0),
fShowProgressBar(kFALSE),
fUseLabel(kFALSE),
fCombineMCId(kFALSE),
fExternalSigmaCut(-1.),
fMatchTrig(kFALSE),
fApplyAccCut(kFALSE),
fChi2Cut(-1.),
fPtCut(-1.),
fRecoParamLocation(""),
fDecayAsFake(kFALSE),
fPrintDecayChain(kFALSE),
fDisableDetailedCounters(kFALSE),
fMuonTrackCuts(0x0)
{
}
AliAnalysisTaskMuonFakes::AliAnalysisTaskMuonFakes(const char *name) :
AliAnalysisTaskSE(name),
fList(0x0),
fList2(0x0),
fCanvases(0x0),
fTrackCounters(0x0),
fFakeTrackCounters(0x0),
fMatchedTrackCounters(0x0),
fEventCounters(0x0),
fPairCounters(0x0),
fCurrentFileName(""),
fRequestedStationMask(0),
fRequest2ChInSameSt45(kFALSE),
fSigmaCut(-1.),
fNEvents(0),
fShowProgressBar(kFALSE),
fUseLabel(kFALSE),
fCombineMCId(kFALSE),
fExternalSigmaCut(-1.),
fMatchTrig(kFALSE),
fApplyAccCut(kFALSE),
fChi2Cut(-1.),
fPtCut(-1.),
fRecoParamLocation("raw://"),
fDecayAsFake(kFALSE),
fPrintDecayChain(kFALSE),
fDisableDetailedCounters(kFALSE),
fMuonTrackCuts(0x0)
{
DefineOutput(1,TObjArray::Class());
DefineOutput(2,AliCounterCollection::Class());
DefineOutput(3,AliCounterCollection::Class());
DefineOutput(4,AliCounterCollection::Class());
DefineOutput(5,AliCounterCollection::Class());
DefineOutput(6,TObjArray::Class());
DefineOutput(7,AliCounterCollection::Class());
}
AliAnalysisTaskMuonFakes::~AliAnalysisTaskMuonFakes()
{
if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
delete fList;
delete fList2;
delete fTrackCounters;
delete fFakeTrackCounters;
delete fMatchedTrackCounters;
delete fEventCounters;
delete fPairCounters;
}
delete fCanvases;
delete fMuonTrackCuts;
}
void AliAnalysisTaskMuonFakes::UserCreateOutputObjects()
{
fList = new TObjArray(100);
fList->SetOwner();
TH1F *h = 0x0;
TH2F *h2 = 0x0;
TString nameSuffix0[2] = {"", "S"};
TString nameSuffixT[6] = {"", "M", "MY", "D", "DY", "F"};
TString titlePrefix0[2] = {"", "selected "};
TString titlePrefixT[6] = {"", "matched ", "not reconstructible matched ", "decay ", "not reconstructible decay ", "fake "};
for (Int_t i = 0; i < 2; i++) {
for (Int_t j = 0; j < 6; j++) {
h = new TH1F(Form("hNumberOfClusters%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("nb of clusters /%s%strack",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 21, -0.5, 20.5);
fList->AddAtAndExpand(h, kNumberOfClusters+i*kNhistTrack+j);
h = new TH1F(Form("hNumberOfChamberHit%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("nb of chambers hit /%s%strack",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 16, -0.5, 15.5);
fList->AddAtAndExpand(h, kNumberOfChamberHit+i*kNhistTrack+j);
h = new TH1F(Form("hChi2PerDof%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack chi2/d.o.f.",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 200, 0., 20.);
fList->AddAtAndExpand(h, kChi2PerDof+i*kNhistTrack+j);
h2 = new TH2F(Form("hChi2PerDofVsNClusters%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack chi2/d.o.f. versus nb of clusters",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 21, -0.5, 20.5, 100, 0., 20.);
fList->AddAtAndExpand(h2, kChi2PerDofVsNClusters+i*kNhistTrack+j);
h2 = new TH2F(Form("hChi2PerDofVsNChamberHit%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack chi2/d.o.f. versus nb of fired chambers",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 16, -0.5, 15.5, 100, 0., 20.);
fList->AddAtAndExpand(h2, kChi2PerDofVsNChamberHit+i*kNhistTrack+j);
h = new TH1F(Form("hP%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack P distribution (GeV/c)",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 100, 0., 200.);
fList->AddAtAndExpand(h, kP+i*kNhistTrack+j);
h = new TH1F(Form("hPt%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack Pt distribution (GeV/c)",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 100, 0., 20.);
fList->AddAtAndExpand(h, kPt+i*kNhistTrack+j);
h = new TH1F(Form("hEta%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack pseudo-rapidity distribution",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 200, -10., 0.);
fList->AddAtAndExpand(h , kEta+i*kNhistTrack+j);
h = new TH1F(Form("hPhi%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack phi distribution",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 100, -1., 9.);
fList->AddAtAndExpand(h, kPhi+i*kNhistTrack+j);
h = new TH1F(Form("hDCA%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack DCA distribution",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 250, 0., 500.);
fList->AddAtAndExpand(h, kDCA+i*kNhistTrack+j);
h = new TH1F(Form("hPDCA23%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack P*DCA distribution in 2-3 deg",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 250, 0., 5000.);
fList->AddAtAndExpand(h, kPDCA23+i*kNhistTrack+j);
h = new TH1F(Form("hPDCA310%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack P*DCA distribution in 3-10 deg",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 250, 0., 5000.);
fList->AddAtAndExpand(h, kPDCA310+i*kNhistTrack+j);
h = new TH1F(Form("hRAbs%s%s",nameSuffix0[i].Data(),nameSuffixT[j].Data()),
Form("%s%strack R_{Abs} distribution",titlePrefix0[i].Data(),titlePrefixT[j].Data()), 200, 0., 100.);
fList->AddAtAndExpand(h, kRAbs+i*kNhistTrack+j);
}
}
TH1F *hNumberOfTracks = new TH1F("hNumberOfTracks", "nb of tracks /evt", 21, -0.5, 20.5);
fList->AddAtAndExpand(hNumberOfTracks, 2*kNhistTrack+kNumberOfTracks);
TH1F *hNumberOfAdditionalTracks = new TH1F("hNumberOfAdditionalTracks", "nb of fake - nb of missing track", 21, -0.5, 20.5);
fList->AddAtAndExpand(hNumberOfAdditionalTracks, 2*kNhistTrack+kNumberOfAdditionalTracks);
TH1F *hNumberOfClustersMC = new TH1F("hNumberOfClustersMC", "nb of clusters /MC track", 21, -0.5, 20.5);
fList->AddAtAndExpand(hNumberOfClustersMC, 2*kNhistTrack+kNumberOfClustersMC);
TH1F *hFractionOfMatchedClusters = new TH1F("hFractionOfMatchedClusters", "nb of matched clusters / nb of clusters", 110, 0., 1.1);
fList->AddAtAndExpand(hFractionOfMatchedClusters, 2*kNhistTrack+kFractionOfMatchedClusters);
TH1F *hFractionOfConnectedClusters = new TH1F("hFractionOfConnectedClusters", "nb of connected clusters / nb of clusters in fake tracks", 110, 0., 1.1);
fList->AddAtAndExpand(hFractionOfConnectedClusters, 2*kNhistTrack+kFractionOfConnectedClusters);
fList2 = new TObjArray(100);
fList2->SetOwner();
TString nameSuffix[4] = {"", "M", "F1", "F2"};
TString titlePrefix[4] = {"dimuon ", "matched-matched pair ", "matched-fake pair ", "fake-fake pair "};
for (Int_t i = 0; i < 2; i++) {
for (Int_t j = 0; j < 4; j++) {
h = new TH1F(Form("h2Mass%s%s",nameSuffix0[i].Data(),nameSuffix[j].Data()),
Form("%s%smass distribution (GeV/c^{2})",titlePrefix0[i].Data(),titlePrefix[j].Data()), 300, 0., 15.);
fList2->AddAtAndExpand(h, k2Mass+i*kNhistPair+j);
h = new TH1F(Form("h2P%s%s",nameSuffix0[i].Data(),nameSuffix[j].Data()),
Form("%s%sP distribution (GeV/c)",titlePrefix0[i].Data(),titlePrefix[j].Data()), 100, 0., 200.);
fList2->AddAtAndExpand(h, k2P+i*kNhistPair+j);
h = new TH1F(Form("h2Pt%s%s",nameSuffix0[i].Data(),nameSuffix[j].Data()),
Form("%s%sPt distribution (GeV/c)",titlePrefix0[i].Data(),titlePrefix[j].Data()), 100, 0., 20.);
fList2->AddAtAndExpand(h, k2Pt+i*kNhistPair+j);
h = new TH1F(Form("h2Y%s%s",nameSuffix0[i].Data(),nameSuffix[j].Data()),
Form("%s%srapidity distribution",titlePrefix0[i].Data(),titlePrefix[j].Data()), 200, -10., 0.);
fList2->AddAtAndExpand(h, k2Y+i*kNhistPair+j);
h = new TH1F(Form("h2Eta%s%s",nameSuffix0[i].Data(),nameSuffix[j].Data()),
Form("%s%spseudo-rapidity distribution",titlePrefix0[i].Data(),titlePrefix[j].Data()), 200, -10., 0.);
fList2->AddAtAndExpand(h, k2Eta+i*kNhistPair+j);
h = new TH1F(Form("h2Phi%s%s",nameSuffix0[i].Data(),nameSuffix[j].Data()),
Form("%s%sphi distribution",titlePrefix0[i].Data(),titlePrefix[j].Data()), 100, -1., 9.);
fList2->AddAtAndExpand(h, k2Phi+i*kNhistPair+j);
}
}
fTrackCounters = new AliCounterCollection(GetOutputSlot(2)->GetContainer()->GetName());
fTrackCounters->AddRubric("track", "reconstructible/reconstructed/matched/matchedyet/decay/decayyet/fake/connected/additional");
fTrackCounters->AddRubric("run", 1000000);
fTrackCounters->AddRubric("trig", "yes/no/unknown");
fTrackCounters->AddRubric("selected", "yes/no");
fTrackCounters->AddRubric("acc", "in/out/unknown");
TString centralityClasses = "5/10/15/20/25/30/35/40/45/50/55/60/65/70/75/80/85/90/95/100";
fTrackCounters->AddRubric("cent", centralityClasses.Data());
fTrackCounters->Init();
fFakeTrackCounters = new AliCounterCollection(GetOutputSlot(3)->GetContainer()->GetName());
fFakeTrackCounters->AddRubric("position", "matched/decay/decayyet/matchedyet/fake/connected/additional");
fFakeTrackCounters->AddRubric("label", "matched/decay/decayyet/matchedyet/fake/connected/additional");
fFakeTrackCounters->AddRubric("run", 1000000);
fFakeTrackCounters->AddRubric("file", 1000000);
fFakeTrackCounters->AddRubric("event", 1000000);
fFakeTrackCounters->AddRubric("trig", "yes/no/unknown");
fFakeTrackCounters->AddRubric("selected", "yes/no");
fFakeTrackCounters->AddRubric("acc", "in/out/unknown");
fFakeTrackCounters->AddRubric("cent", centralityClasses.Data());
fFakeTrackCounters->Init();
fMatchedTrackCounters = new AliCounterCollection(GetOutputSlot(4)->GetContainer()->GetName());
fMatchedTrackCounters->AddRubric("position", "matched/decay/decayyet/matchedyet/fake");
fMatchedTrackCounters->AddRubric("label", "matched/decay/decayyet/matchedyet/fake/matchedother");
fMatchedTrackCounters->AddRubric("run", 1000000);
fMatchedTrackCounters->AddRubric("trig", "yes/no");
fMatchedTrackCounters->AddRubric("selected", "yes/no");
fMatchedTrackCounters->AddRubric("acc", "in/out");
fMatchedTrackCounters->AddRubric("cent", centralityClasses.Data());
fMatchedTrackCounters->Init();
fEventCounters = new AliCounterCollection(GetOutputSlot(5)->GetContainer()->GetName());
fEventCounters->AddRubric("event", "any/fake/notconnected/additional/matchedyet");
fEventCounters->AddRubric("run", 1000000);
fEventCounters->AddRubric("trig", "any/yes");
fEventCounters->AddRubric("selected", "yes/no");
fEventCounters->AddRubric("cent", centralityClasses.Data());
fEventCounters->Init();
fPairCounters = new AliCounterCollection(GetOutputSlot(7)->GetContainer()->GetName());
fPairCounters->AddRubric("pair", "reconstructible/reconstructed/matched/1fake/2fakes");
fPairCounters->AddRubric("run", 1000000);
fPairCounters->AddRubric("trig", "0/1/2");
fPairCounters->AddRubric("selected", "yes/no");
fPairCounters->AddRubric("acc", "in/out/unknown");
fPairCounters->AddRubric("cent", centralityClasses.Data());
fPairCounters->Init();
AliLog::SetClassDebugLevel("AliMCEvent",-1);
PostData(1, fList);
PostData(2, fTrackCounters);
PostData(3, fFakeTrackCounters);
PostData(4, fMatchedTrackCounters);
PostData(5, fEventCounters);
PostData(6, fList2);
PostData(7, fPairCounters);
}
void AliAnalysisTaskMuonFakes::UserExec(Option_t *)
{
if (fSigmaCut < 0) return;
if (fShowProgressBar && (++fNEvents)%100 == 0) cout<<"\rEvent processing... "<<fNEvents<<"\r"<<flush;
TString selected = (fInputHandler && fInputHandler->IsEventSelected() != 0) ? "selected:yes" : "selected:no";
if (fDisableDetailedCounters) fCurrentFileName = "any";
else {
fCurrentFileName = CurrentFileName();
fCurrentFileName.ReplaceAll("alien://","");
fCurrentFileName.ReplaceAll("/","\\");
fCurrentFileName.ReplaceAll(":",";");
}
AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
if (!esd) {
AliError("Cannot get input event");
return;
}
TString eventNumberInFile = (fDisableDetailedCounters) ? "event:any" : Form("event:%d",esd->GetEventNumberInFile());
TString centrality = "cent:";
Double_t centralityValue = esd->GetCentrality()->GetCentralityPercentile("V0M");
TObjArray* centralylimits = fTrackCounters->GetKeyWords("cent").Tokenize(",");
TObjString* limit = 0x0;
TIter nextLimit(centralylimits);
while ((limit = static_cast<TObjString*>(nextLimit()))) {
if (centralityValue < limit->String().Atoi()) {
centrality += limit->GetName();
break;
}
}
if (!limit) centrality += static_cast<TObjString*>(centralylimits->Last())->GetName();
delete centralylimits;
AliMCEventHandler *mcH = 0;
if(MCEvent()) mcH = static_cast<AliMCEventHandler*>((AliAnalysisManager::GetAnalysisManager())->GetMCtruthEventHandler());
AliMUONRecoCheck rc(esd,mcH);
AliMUONVTrackStore* muonTrackStore = rc.ReconstructedTracks(-1, kFALSE);
AliMUONVTrackStore* trackRefStore = rc.TrackRefs(-1);
AliMUONVTriggerTrackStore* triggerTrackRefStore = rc.TriggerableTracks(-1);
if (!muonTrackStore || !trackRefStore) return;
Int_t nMuPlus[2] = {0, 0};
Int_t nMuMinus[2] = {0, 0};
TIter next(trackRefStore->CreateIterator());
AliMUONTrack* trackRef;
while ( ( trackRef = static_cast<AliMUONTrack*>(next()) ) ) {
if (!trackRef->IsValid(fRequestedStationMask, fRequest2ChInSameSt45)) continue;
AliMUONTriggerTrack *trigRef = static_cast<AliMUONTriggerTrack*>(triggerTrackRefStore->FindObject(trackRef->GetUniqueID()));
Bool_t trigger = (trigRef && trigRef->GetPtCutLevel() > 0);
Int_t iTrig = trigger ? 1 : 0;
TString trig = trigger ? "trig:yes" : "trig:no";
if (trackRef->GetTrackParamAtVertex()->GetCharge() > 0) nMuPlus[iTrig]++;
else nMuMinus[iTrig]++;
fTrackCounters->Count(Form("track:reconstructible/run:%d/%s/%s/acc:unknown/%s", fCurrentRunNumber, trig.Data(), selected.Data(), centrality.Data()));
}
fPairCounters->Count(Form("pair:reconstructible/run:%d/trig:0/%s/acc:unknown/%s", fCurrentRunNumber, selected.Data(), centrality.Data()), nMuPlus[0]*nMuMinus[0]);
fPairCounters->Count(Form("pair:reconstructible/run:%d/trig:1/%s/acc:unknown/%s", fCurrentRunNumber, selected.Data(), centrality.Data()), nMuPlus[1]*nMuMinus[0]+nMuPlus[0]*nMuMinus[1]);
fPairCounters->Count(Form("pair:reconstructible/run:%d/trig:2/%s/acc:unknown/%s", fCurrentRunNumber, selected.Data(), centrality.Data()), nMuPlus[1]*nMuMinus[1]);
Int_t nTrackerTracks = 0;
Bool_t containTrack[2] = {kFALSE, kFALSE};
Bool_t containFakeTrack[2] = {kFALSE, kFALSE};
Bool_t containMatchedYetTrack[2] = {kFALSE, kFALSE};
AliMUONVTrackStore *usedTrackRefStore = AliMUONESDInterface::NewTrackStore();
AliMUONVTrackStore *fakeTrackStore = AliMUONESDInterface::NewTrackStore();
Int_t nTracks = (Int_t)esd->GetNumberOfMuonTracks();
TArrayI mcLabels(nTracks);
for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) {
AliESDMuonTrack* esdTrack = esd->GetMuonTrack(iTrack);
if (!IsSelected(*esdTrack)) continue;
containTrack[0] = kTRUE;
Bool_t trigger = esdTrack->ContainTriggerData();
TString trig = trigger ? "trig:yes" : "trig:no";
if (trigger) containTrack[1] = kTRUE;
Double_t rAbs = esdTrack->GetRAtAbsorberEnd();
Double_t thetaTrackAbsEnd = TMath::ATan(rAbs/505.) * TMath::RadToDeg();
Double_t eta = esdTrack->Eta();
Bool_t inAcc = (thetaTrackAbsEnd >= 2. && thetaTrackAbsEnd <= 10. && eta >= -4. && eta <= -2.5);
TString acc = inAcc ? "acc:in" : "acc:out";
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc)) nTrackerTracks++;
fTrackCounters->Count(Form("track:reconstructed/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
AliMUONTrack* muonTrack = static_cast<AliMUONTrack*>(muonTrackStore->FindObject(esdTrack->GetUniqueID()));
Int_t nClusters = esdTrack->GetNClusters();
Int_t nChamberHit = 0;
for (Int_t ich=0; ich<10; ich++) if (esdTrack->IsInMuonClusterMap(ich)) nChamberHit++;
Double_t normalizedChi2 = esdTrack->GetChi2() / (2. * esdTrack->GetNHit() - 5);
Double_t p = esdTrack->P();
Double_t pT = esdTrack->Pt();
Double_t phi = esdTrack->Phi();
Double_t dca = esdTrack->GetDCA();
Double_t pU = esdTrack->PUncorrected();
Double_t pdca = 0.5*(p+pU)*dca;
FillHistoTrack(0, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc))
FillHistoTrack(kNhistTrack, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
Int_t nMatchClustersByPosition = 0;
AliMUONTrack* matchedTrackRefByPosition = rc.FindCompatibleTrack(*muonTrack, *trackRefStore, nMatchClustersByPosition, kFALSE, fSigmaCut);
Bool_t isMatchedYetByPosition = kFALSE;
Bool_t isRecoDecayByPosition = kFALSE;
Int_t decayLabelByPosition = -1, lastChDecayByPosition = 0;
if (!matchedTrackRefByPosition || !matchedTrackRefByPosition->IsValid(fRequestedStationMask, fRequest2ChInSameSt45)) {
decayLabelByPosition = IsDecayByPosition(*muonTrack, *trackRefStore, *usedTrackRefStore, isRecoDecayByPosition, lastChDecayByPosition);
if (decayLabelByPosition >= 0) matchedTrackRefByPosition = 0x0;
else if (matchedTrackRefByPosition) isMatchedYetByPosition = kTRUE;
}
Bool_t isFakeByPosition = (!matchedTrackRefByPosition && decayLabelByPosition < 0);
Int_t nMatchClustersByLabel = 0;
AliMUONTrack* matchedTrackRefByLabel = rc.FindCompatibleTrack(*muonTrack, *trackRefStore, nMatchClustersByLabel, kTRUE, fSigmaCut);
Bool_t isMatchedYetByLabel = kFALSE;
Bool_t isRecoDecayByLabel = kFALSE;
Int_t decayLabelByLabel = -1, lastChDecayByLabel = 0;
if (!matchedTrackRefByLabel || !matchedTrackRefByLabel->IsValid(fRequestedStationMask, fRequest2ChInSameSt45)) {
decayLabelByLabel = IsDecayByLabel(*muonTrack, isRecoDecayByLabel, lastChDecayByLabel);
if (decayLabelByLabel >= 0) matchedTrackRefByLabel = 0x0;
else if (matchedTrackRefByLabel) isMatchedYetByLabel = kTRUE;
}
Bool_t isFakeByLabel = (!matchedTrackRefByLabel && decayLabelByLabel < 0);
TString positionCase = "position:";
if (isMatchedYetByPosition) positionCase += "matchedyet";
else if (isRecoDecayByPosition) positionCase += "decay";
else if (decayLabelByPosition >= 0) positionCase += "decayyet";
else if (isFakeByPosition) positionCase += "fake";
else positionCase += "matched";
TString labelCase = "label:";
if (isMatchedYetByLabel) labelCase += "matchedyet";
else if (isRecoDecayByLabel) labelCase += "decay";
else if (decayLabelByLabel >= 0) labelCase += "decayyet";
else if (isFakeByLabel) labelCase += "fake";
else labelCase += "matched";
if (!matchedTrackRefByPosition || isMatchedYetByPosition || !matchedTrackRefByLabel || isMatchedYetByLabel)
fFakeTrackCounters->Count(Form("%s/%s/run:%d/file:%s/%s/%s/%s/%s/%s", positionCase.Data(), labelCase.Data(), fCurrentRunNumber,
fCurrentFileName.Data(), eventNumberInFile.Data(), trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
if (matchedTrackRefByLabel && matchedTrackRefByPosition &&
matchedTrackRefByLabel->GetUniqueID() != matchedTrackRefByPosition->GetUniqueID()) labelCase = "label:matchedother";
fMatchedTrackCounters->Count(Form("%s/%s/run:%d/%s/%s/%s/%s", positionCase.Data(), labelCase.Data(),
fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
Int_t nMatchClusters = 0;
AliMUONTrack* matchedTrackRef = 0x0;
Bool_t isFake = kFALSE, isMatchedYet = kFALSE, isRecoDecay = kFALSE;
Int_t decayLabel = -1;
if (fCombineMCId) {
if (matchedTrackRefByPosition && matchedTrackRefByLabel && ((!isMatchedYetByPosition && !isMatchedYetByLabel) ||
(isMatchedYetByPosition && isMatchedYetByLabel))) {
nMatchClusters = TMath::Max(nMatchClustersByPosition, nMatchClustersByLabel);
matchedTrackRef = (nMatchClusters == nMatchClustersByPosition) ? matchedTrackRefByPosition : matchedTrackRefByLabel;
isMatchedYet = isMatchedYetByPosition;
} else if (matchedTrackRefByPosition && (!isMatchedYetByPosition || isFakeByLabel)) {
nMatchClusters = nMatchClustersByPosition;
matchedTrackRef = matchedTrackRefByPosition;
isMatchedYet = isMatchedYetByPosition;
} else if (matchedTrackRefByLabel && (!isMatchedYetByLabel || isFakeByPosition)) {
nMatchClusters = nMatchClustersByLabel;
matchedTrackRef = matchedTrackRefByLabel;
isMatchedYet = isMatchedYetByLabel;
} else if (decayLabelByPosition >= 0 && decayLabelByLabel >= 0 && ((isRecoDecayByPosition && isRecoDecayByLabel) ||
(!isRecoDecayByPosition && !isRecoDecayByLabel))) {
decayLabel = (lastChDecayByLabel > lastChDecayByPosition) ? decayLabelByLabel : decayLabelByPosition;
isRecoDecay = isRecoDecayByPosition;
} else if (decayLabelByPosition >= 0 && (isRecoDecayByPosition || decayLabelByLabel < 0)) {
decayLabel = decayLabelByPosition;
isRecoDecay = isRecoDecayByPosition;
} else if (decayLabelByLabel >= 0) {
decayLabel = decayLabelByLabel;
isRecoDecay = isRecoDecayByLabel;
} else isFake = kTRUE;
} else if (fUseLabel) {
nMatchClusters = nMatchClustersByLabel;
matchedTrackRef = matchedTrackRefByLabel;
isMatchedYet = isMatchedYetByLabel;
decayLabel = decayLabelByLabel;
isRecoDecay = isRecoDecayByLabel;
isFake = isFakeByLabel;
} else {
nMatchClusters = nMatchClustersByPosition;
matchedTrackRef = matchedTrackRefByPosition;
isMatchedYet = isMatchedYetByPosition;
decayLabel = decayLabelByPosition;
isRecoDecay = isRecoDecayByPosition;
isFake = isFakeByPosition;
}
if (matchedTrackRef) {
fTrackCounters->Count(Form("track:matched/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
if (isMatchedYet) {
containMatchedYetTrack[0] = kTRUE;
if (trigger) containMatchedYetTrack[1] = kTRUE;
fTrackCounters->Count(Form("track:matchedyet/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
FillHistoTrack(2, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc))
FillHistoTrack(2+kNhistTrack, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
}
if (nClusters > 0) ((TH1F*)fList->UncheckedAt(2*kNhistTrack+kFractionOfMatchedClusters))->Fill(((Float_t) nMatchClusters) / ((Float_t) nClusters));
((TH1F*)fList->UncheckedAt(2*kNhistTrack+kNumberOfClustersMC))->Fill(matchedTrackRef->GetNClusters());
FillHistoTrack(1, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc))
FillHistoTrack(1+kNhistTrack, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
mcLabels[iTrack] = matchedTrackRef->GetUniqueID();
usedTrackRefStore->Add(*matchedTrackRef);
trackRefStore->Remove(*matchedTrackRef);
} else {
if (decayLabel >= 0) {
fTrackCounters->Count(Form("track:decay/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
if (!isRecoDecay) {
fTrackCounters->Count(Form("track:decayyet/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
FillHistoTrack(4, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc))
FillHistoTrack(4+kNhistTrack, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
}
FillHistoTrack(3, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc))
FillHistoTrack(3+kNhistTrack, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
mcLabels[iTrack] = decayLabel;
}
if (isFake || fDecayAsFake) {
containFakeTrack[0] = kTRUE;
if (trigger) containFakeTrack[1] = kTRUE;
fTrackCounters->Count(Form("track:fake/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
FillHistoTrack(5, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
if ((!fMatchTrig || trigger) && (!fApplyAccCut || inAcc))
FillHistoTrack(5+kNhistTrack, nClusters, nChamberHit, normalizedChi2, p, pT, eta, phi, dca, thetaTrackAbsEnd, pdca, rAbs);
mcLabels[iTrack] = -1;
fakeTrackStore->Add(*muonTrack);
}
}
}
((TH1F*)fList->UncheckedAt(2*kNhistTrack+kNumberOfTracks))->Fill(nTrackerTracks);
if (containTrack[0]) fEventCounters->Count(Form("event:any/run:%d/trig:any/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (containTrack[1]) fEventCounters->Count(Form("event:any/run:%d/trig:yes/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (containFakeTrack[0]) fEventCounters->Count(Form("event:fake/run:%d/trig:any/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (containFakeTrack[1]) fEventCounters->Count(Form("event:fake/run:%d/trig:yes/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (containMatchedYetTrack[0]) fEventCounters->Count(Form("event:matchedyet/run:%d/trig:any/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (containMatchedYetTrack[1]) fEventCounters->Count(Form("event:matchedyet/run:%d/trig:yes/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (fakeTrackStore->GetSize() > 0) {
Int_t nFreeMissingTracks = RemoveConnectedFakes(*fakeTrackStore, *trackRefStore, selected, centrality);
if (fakeTrackStore->GetSize() > 0) {
fEventCounters->Count(Form("event:notconnected/run:%d/trig:any/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
Bool_t containMatchedFake = kFALSE;
Bool_t containUnmatchedFake = kFALSE;
AliMUONTrack* fakeTrack = 0x0;
TIter next3(fakeTrackStore->CreateIterator());
while ( ( fakeTrack = static_cast<AliMUONTrack*>(next3()) ) ) {
if (fakeTrack->GetMatchTrigger() > 0) containMatchedFake = kTRUE;
else containUnmatchedFake = kTRUE;
}
if (containMatchedFake) fEventCounters->Count(Form("event:notconnected/run:%d/trig:yes/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
Int_t nAdditionalTracks = fakeTrackStore->GetSize() - nFreeMissingTracks;
if (nAdditionalTracks > 0) {
((TH1F*)fList->UncheckedAt(2*kNhistTrack+kNumberOfAdditionalTracks))->Fill(nAdditionalTracks);
fEventCounters->Count(Form("event:additional/run:%d/trig:any/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
if (!containUnmatchedFake) {
fEventCounters->Count(Form("event:additional/run:%d/trig:yes/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
fTrackCounters->Count(Form("track:additional/run:%d/trig:yes/%s/acc:unknown/%s", fCurrentRunNumber, selected.Data(), centrality.Data()), nAdditionalTracks);
fFakeTrackCounters->Count(Form("position:additional/label:additional/run:%d/file:%s/%s/trig:yes/%s/acc:unknown/%s", fCurrentRunNumber,
fCurrentFileName.Data(), eventNumberInFile.Data(), selected.Data(), centrality.Data()), nAdditionalTracks);
} else if (!containMatchedFake) {
fTrackCounters->Count(Form("track:additional/run:%d/trig:no/%s/acc:unknown/%s", fCurrentRunNumber, selected.Data(), centrality.Data()), nAdditionalTracks);
fFakeTrackCounters->Count(Form("position:additional/label:additional/run:%d/file:%s/%s/trig:no/%s/acc:unknown/%s", fCurrentRunNumber,
fCurrentFileName.Data(), eventNumberInFile.Data(), selected.Data(), centrality.Data()), nAdditionalTracks);
} else {
fEventCounters->Count(Form("event:additional/run:%d/trig:yes/%s/%s", fCurrentRunNumber, selected.Data(), centrality.Data()));
fTrackCounters->Count(Form("track:additional/run:%d/trig:unknown/%s/acc:unknown/%s", fCurrentRunNumber, selected.Data(), centrality.Data()), nAdditionalTracks);
fFakeTrackCounters->Count(Form("position:additional/label:additional/run:%d/file:%s/%s/trig:unknown/%s/acc:unknown/%s", fCurrentRunNumber,
fCurrentFileName.Data(), eventNumberInFile.Data(), selected.Data(), centrality.Data()), nAdditionalTracks);
}
}
}
}
delete usedTrackRefStore;
delete fakeTrackStore;
TLorentzVector vMu1, vMu2, vDiMu;
for (Int_t iTrack1 = 0; iTrack1 < nTracks; iTrack1++) {
AliESDMuonTrack* muonTrack1 = esd->GetMuonTrack(iTrack1);
if (!IsSelected(*muonTrack1)) continue;
Bool_t trigger1 = muonTrack1->ContainTriggerData();
Double_t thetaAbs1 = TMath::ATan(muonTrack1->GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
Double_t eta1 = muonTrack1->Eta();
Bool_t acc1 = (thetaAbs1 >= 2. && thetaAbs1 <= 10. && eta1 >= -4. && eta1 <= -2.5);
Short_t charge1 = muonTrack1->Charge();
Int_t label1 = mcLabels[iTrack1];
muonTrack1->LorentzP(vMu1);
for (Int_t iTrack2 = iTrack1+1; iTrack2 < nTracks; iTrack2++) {
AliESDMuonTrack* muonTrack2 = esd->GetMuonTrack(iTrack2);
if (!IsSelected(*muonTrack2)) continue;
Short_t charge2 = muonTrack2->Charge();
if (charge1*charge2 > 0) continue;
Bool_t trigger2 = muonTrack2->ContainTriggerData();
Double_t thetaAbs2 = TMath::ATan(muonTrack2->GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
Double_t eta2 = muonTrack2->Eta();
Bool_t acc2 = (thetaAbs2 >= 2. && thetaAbs2 <= 10. && eta2 >= -4. && eta2 <= -2.5);
Int_t label2 = mcLabels[iTrack2];
muonTrack2->LorentzP(vMu2);
vDiMu = vMu1 + vMu2;
Float_t mass = vDiMu.M();
Float_t p = vDiMu.P();
Float_t pt = vDiMu.Pt();
Float_t y = vDiMu.Rapidity();
Float_t eta = vDiMu.Eta();
Float_t phi = vDiMu.Phi();
if (phi < 0) phi += 2.*TMath::Pi();
TString trig = "trig:";
if (trigger1 && trigger2) trig += "2";
else if (trigger1 || trigger2) trig += "1";
else trig += "0";
Bool_t inAcc = (acc1 && acc2 && y >= -4. && y <= -2.5);
TString acc = inAcc ? "acc:in" : "acc:out";
FillHistoPair(0, mass, p, pt, y, eta, phi);
if ((!fMatchTrig || (trigger1 && trigger2)) && (!fApplyAccCut || inAcc))
FillHistoPair(kNhistPair, mass, p, pt, y, eta, phi);
TString pair = "pair:";
if (label1 >= 0 && label2 >= 0) {
pair += "matched";
FillHistoPair(1, mass, p, pt, y, eta, phi);
if ((!fMatchTrig || (trigger1 && trigger2)) && (!fApplyAccCut || inAcc))
FillHistoPair(1+kNhistPair, mass, p, pt, y, eta, phi);
} else if (label1 >= 0 || label2 >= 0) {
pair += "1fake";
FillHistoPair(2, mass, p, pt, y, eta, phi);
if ((!fMatchTrig || (trigger1 && trigger2)) && (!fApplyAccCut || inAcc))
FillHistoPair(2+kNhistPair, mass, p, pt, y, eta, phi);
} else {
pair += "2fakes";
FillHistoPair(3, mass, p, pt, y, eta, phi);
if ((!fMatchTrig || (trigger1 && trigger2)) && (!fApplyAccCut || inAcc))
FillHistoPair(3+kNhistPair, mass, p, pt, y, eta, phi);
}
fPairCounters->Count(Form("pair:reconstructed/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
fPairCounters->Count(Form("%s/run:%d/%s/%s/%s/%s", pair.Data(), fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
}
}
PostData(1, fList);
PostData(2, fTrackCounters);
PostData(3, fFakeTrackCounters);
PostData(4, fMatchedTrackCounters);
PostData(5, fEventCounters);
PostData(6, fList2);
PostData(7, fPairCounters);
}
void AliAnalysisTaskMuonFakes::NotifyRun()
{
if (fSigmaCut > 0) return;
AliCDBManager* cdbm = AliCDBManager::Instance();
if (cdbm->IsDefaultStorageSet()) printf("FakeTask: CDB default storage already set!\n");
else cdbm->SetDefaultStorage(fRecoParamLocation.Data());
if (cdbm->GetRun() > -1) printf("FakeTask: run number already set!\n");
else cdbm->SetRun(fCurrentRunNumber);
AliMUONRecoParam* recoParam = AliMUONCDB::LoadRecoParam();
if (!recoParam) {
fRequestedStationMask = 0;
fRequest2ChInSameSt45 = kFALSE;
fSigmaCut = -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();
if (fExternalSigmaCut > 0) fSigmaCut = fExternalSigmaCut;
else if (recoParam->ImproveTracks()) fSigmaCut = recoParam->GetSigmaCutForImprovement();
else fSigmaCut = recoParam->GetSigmaCutForTracking();
if (fMuonTrackCuts) fMuonTrackCuts->SetRun(fInputHandler);
}
void AliAnalysisTaskMuonFakes::Terminate(Option_t *)
{
fList = static_cast<TObjArray*> (GetOutputData(1));
fList2 = static_cast<TObjArray*> (GetOutputData(6));
if (!fList || !fList2) return;
fTrackCounters = static_cast<AliCounterCollection*> (GetOutputData(2));
fFakeTrackCounters = static_cast<AliCounterCollection*> (GetOutputData(3));
fMatchedTrackCounters = static_cast<AliCounterCollection*> (GetOutputData(4));
fEventCounters = static_cast<AliCounterCollection*> (GetOutputData(5));
fPairCounters = static_cast<AliCounterCollection*> (GetOutputData(7));
TString extention = GetName();
extention.ReplaceAll("MUONFakes","");
fCanvases = new TObjArray(13);
fCanvases->SetOwner();
TString nameSuffix[2] = {"", "S"};
TString titleSuffix[2] = {"", "selected "};
for (Int_t j = 0; j < 2; j++) {
TCanvas *cFakesSummary11 = new TCanvas(Form("cTracks11%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("distributions of %stracks (%s)",titleSuffix[j].Data(),extention.Data()),900,900);
fCanvases->AddAtAndExpand(cFakesSummary11, 0+7*j);
TCanvas *cFakesSummary12 = new TCanvas(Form("cTracks12%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("detailled distributions of %stracks (%s)",titleSuffix[j].Data(),extention.Data()),900,900);
fCanvases->AddAtAndExpand(cFakesSummary12, 1+7*j);
TCanvas *cFakesSummary13 = new TCanvas(Form("cTracks13%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("p*DCA distributions of %stracks (%s)",titleSuffix[j].Data(),extention.Data()),600,300);
fCanvases->AddAtAndExpand(cFakesSummary13, 2+7*j);
TCanvas *cFakesSummary14 = new TCanvas(Form("cTracks14%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("detailled p*DCA distributions of %stracks (%s)",titleSuffix[j].Data(),extention.Data()),600,300);
fCanvases->AddAtAndExpand(cFakesSummary14, 3+7*j);
TCanvas *cFakesSummary21 = new TCanvas(Form("cTracks21%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("correlations at the %strack level (%s)",titleSuffix[j].Data(),extention.Data()),1200,600);
fCanvases->AddAtAndExpand(cFakesSummary21, 4+7*j);
TCanvas *cFakesSummary22 = new TCanvas(Form("cTracks22%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("detailled correlations at the %strack level (%s)",titleSuffix[j].Data(),extention.Data()),1200,600);
fCanvases->AddAtAndExpand(cFakesSummary22, 5+7*j);
TCanvas *cFakesSummary3 = new TCanvas(Form("cPairs%s_%s",nameSuffix[j].Data(),extention.Data()),
Form("distributions of %spairs (%s)",titleSuffix[j].Data(),extention.Data()),900,600);
fCanvases->AddAtAndExpand(cFakesSummary3, 6+7*j);
Int_t iHist1[9] = {kNumberOfClusters, kNumberOfChamberHit, kChi2PerDof, kDCA, kRAbs, kEta, kP, kPt, kPhi};
cFakesSummary11->Divide(3,3);
for (Int_t i=0; i<9; i++) {
cFakesSummary11->cd(i+1);
cFakesSummary11->GetPad(i+1)->SetLogy();
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack))->SetMinimum(0.5);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack))->DrawCopy();
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+1))->SetLineColor(4);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+1))->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+3))->SetLineColor(kViolet-3);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+3))->SetFillColor(kViolet-3);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+3))->SetFillStyle(3018);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+3))->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->SetLineColor(2);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->SetFillColor(2);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->SetFillStyle(3017);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->DrawCopy("sames");
}
cFakesSummary12->Divide(3,3);
for (Int_t i=0; i<9; i++) {
cFakesSummary12->cd(i+1);
cFakesSummary12->GetPad(i+1)->SetLogy();
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack))->SetMinimum(0.5);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack))->DrawCopy();
TH1F *hClone = (TH1F*) fList->UncheckedAt(iHist1[i]+j*kNhistTrack+1)->Clone();
hClone->Add(((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+2)), -1);
hClone->SetLineColor(4);
hClone->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+2))->SetLineColor(7);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+2))->DrawCopy("sames");
hClone = (TH1F*) fList->UncheckedAt(iHist1[i]+j*kNhistTrack+3)->Clone();
hClone->Add(((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+4)), -1);
hClone->SetLineColor(3);
hClone->SetFillStyle(0);
hClone->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+4))->SetLineColor(32);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+4))->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->SetLineColor(2);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->SetFillStyle(0);
((TH1F*)fList->UncheckedAt(iHist1[i]+j*kNhistTrack+5))->DrawCopy("sames");
}
Int_t iHist2[2] = {kPDCA23, kPDCA310};
cFakesSummary13->Divide(2,1);
for (Int_t i=0; i<2; i++) {
cFakesSummary13->cd(i+1);
cFakesSummary13->GetPad(i+1)->SetLogy();
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack))->SetMinimum(0.5);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack))->DrawCopy();
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+1))->SetLineColor(4);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+1))->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+3))->SetLineColor(kViolet-3);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+3))->SetFillColor(kViolet-3);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+3))->SetFillStyle(3018);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+3))->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->SetLineColor(2);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->SetFillColor(2);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->SetFillStyle(3017);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->DrawCopy("sames");
}
cFakesSummary14->Divide(2,1);
for (Int_t i=0; i<2; i++) {
cFakesSummary14->cd(i+1);
cFakesSummary14->GetPad(i+1)->SetLogy();
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack))->SetMinimum(0.5);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack))->DrawCopy();
TH1F *hClone = (TH1F*) fList->UncheckedAt(iHist2[i]+j*kNhistTrack+1)->Clone();
hClone->Add(((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+2)), -1);
hClone->SetLineColor(4);
hClone->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+2))->SetLineColor(7);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+2))->DrawCopy("sames");
hClone = (TH1F*) fList->UncheckedAt(iHist2[i]+j*kNhistTrack+3)->Clone();
hClone->Add(((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+4)), -1);
hClone->SetLineColor(3);
hClone->SetFillStyle(0);
hClone->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+4))->SetLineColor(32);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+4))->DrawCopy("sames");
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->SetLineColor(2);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->SetFillStyle(0);
((TH1F*)fList->UncheckedAt(iHist2[i]+j*kNhistTrack+5))->DrawCopy("sames");
}
Int_t iHist3[2] = {kChi2PerDofVsNClusters, kChi2PerDofVsNChamberHit};
cFakesSummary21->Divide(2);
for (Int_t i=0; i<2; i++) {
cFakesSummary21->cd(i+1);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+1))->SetMarkerColor(4);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+1))->DrawCopy();
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+3))->SetMarkerColor(kViolet-3);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+3))->SetMarkerStyle(6);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+3))->DrawCopy("sames");
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+5))->SetMarkerColor(2);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+5))->SetMarkerStyle(7);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+5))->DrawCopy("sames");
}
cFakesSummary22->Divide(2);
for (Int_t i=0; i<2; i++) {
cFakesSummary22->cd(i+1);
TH2F *hClone = (TH2F*) fList->UncheckedAt(iHist3[i]+j*kNhistTrack+1)->Clone();
hClone->Add(((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+2)), -1);
hClone->SetMarkerColor(4);
hClone->DrawCopy();
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+2))->SetMarkerColor(7);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+2))->SetMarkerStyle(6);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+2))->DrawCopy("sames");
hClone = (TH2F*) fList->UncheckedAt(iHist3[i]+j*kNhistTrack+3)->Clone();
hClone->Add(((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+4)), -1);
hClone->SetMarkerColor(kViolet-3);
hClone->SetMarkerStyle(6);
hClone->DrawCopy("sames");
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+4))->SetLineColor(32);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+4))->SetMarkerStyle(6);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+4))->DrawCopy("sames");
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+5))->SetMarkerColor(2);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+5))->SetMarkerStyle(7);
((TH2F*)fList->UncheckedAt(iHist3[i]+j*kNhistTrack+5))->DrawCopy("sames");
}
Int_t iHist4[6] = {k2Mass, k2P, k2Pt, k2Y, k2Eta, k2Phi};
cFakesSummary3->Divide(3,2);
for (Int_t i=0; i<6; i++) {
cFakesSummary3->cd(i+1);
cFakesSummary3->GetPad(i+1)->SetLogy();
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair))->SetMinimum(0.5);
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair))->DrawCopy();
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+1))->SetLineColor(4);
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+1))->DrawCopy("sames");
TH1F* hClone = (TH1F*) fList2->UncheckedAt(iHist4[i]+j*kNhistPair+2)->Clone();
hClone->Add((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+3));
hClone->SetLineColor(2);
hClone->SetFillColor(2);
hClone->SetFillStyle(3017);
hClone->DrawCopy("sames");
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+3))->SetLineColor(6);
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+3))->SetFillColor(6);
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+3))->SetFillStyle(3018);
((TH1F*)fList2->UncheckedAt(iHist4[i]+j*kNhistPair+3))->DrawCopy("sames");
}
}
if (fTrackCounters && fFakeTrackCounters && fMatchedTrackCounters && fEventCounters) {
printf("\nGlobal statistics of reconstructed tracks matched or not with the trigger:\n");
fTrackCounters->Print("track/trig");
printf("\nGlobal statistics of pathological tracks matched or not with the trigger:\n");
fFakeTrackCounters->Print("label/position/trig");
printf("\nDetailled statistics of tracks matched per label vs position:\n");
fMatchedTrackCounters->Print("label/position");
printf("\nGlobal statistics of events containing pathological tracks:\n");
fEventCounters->Print("event/trig");
}
if (fPairCounters) {
printf("\nGlobal statistics of reconstructed track pairs matched or not with the trigger:\n");
fPairCounters->Print("pair/trig");
}
printf("\nREMINDER: results are relevent provided that you use the same recoParams as for the reconstruction\n\n");
}
Bool_t AliAnalysisTaskMuonFakes::IsSelected(AliESDMuonTrack &esdTrack)
{
if (!esdTrack.ContainTrackerData()) return kFALSE;
if (fMuonTrackCuts && !fMuonTrackCuts->IsSelected(&esdTrack)) return kFALSE;
if (fChi2Cut > 0. && esdTrack.GetNormalizedChi2() > fChi2Cut) return kFALSE;
if (fPtCut > 0. && esdTrack.Pt() < fPtCut) return kFALSE;
return kTRUE;
}
void AliAnalysisTaskMuonFakes::FillHistoTrack(Int_t histShift, Int_t nClusters, Int_t nChamberHit, Double_t normalizedChi2,
Double_t p, Double_t pT, Double_t eta, Double_t phi, Double_t dca,
Double_t thetaTrackAbsEnd, Double_t pdca, Double_t rAbs)
{
((TH1F*)fList->UncheckedAt(kNumberOfClusters+histShift))->Fill(nClusters);
((TH1F*)fList->UncheckedAt(kNumberOfChamberHit+histShift))->Fill(nChamberHit);
((TH1F*)fList->UncheckedAt(kChi2PerDof+histShift))->Fill(normalizedChi2);
((TH1F*)fList->UncheckedAt(kP+histShift))->Fill(p);
((TH1F*)fList->UncheckedAt(kPt+histShift))->Fill(pT);
((TH1F*)fList->UncheckedAt(kEta+histShift))->Fill(eta);
((TH1F*)fList->UncheckedAt(kPhi+histShift))->Fill(phi);
((TH1F*)fList->UncheckedAt(kDCA+histShift))->Fill(dca);
if (thetaTrackAbsEnd > 2 && thetaTrackAbsEnd <= 3) ((TH1F*)fList->UncheckedAt(kPDCA23+histShift))->Fill(pdca);
else if (thetaTrackAbsEnd > 3 && thetaTrackAbsEnd < 10) ((TH1F*)fList->UncheckedAt(kPDCA310+histShift))->Fill(pdca);
((TH1F*)fList->UncheckedAt(kRAbs+histShift))->Fill(rAbs);
((TH2F*)fList->UncheckedAt(kChi2PerDofVsNClusters+histShift))->Fill(nClusters,normalizedChi2);
((TH2F*)fList->UncheckedAt(kChi2PerDofVsNChamberHit+histShift))->Fill(nChamberHit,normalizedChi2);
}
void AliAnalysisTaskMuonFakes::FillHistoPair(Int_t histShift, Double_t mass, Double_t p, Double_t pt,
Double_t y, Double_t eta, Double_t phi)
{
((TH1F*)fList2->UncheckedAt(k2Mass+histShift))->Fill(mass);
((TH1F*)fList2->UncheckedAt(k2P+histShift))->Fill(p);
((TH1F*)fList2->UncheckedAt(k2Pt+histShift))->Fill(pt);
((TH1F*)fList2->UncheckedAt(k2Y+histShift))->Fill(y);
((TH1F*)fList2->UncheckedAt(k2Eta+histShift))->Fill(eta);
((TH1F*)fList2->UncheckedAt(k2Phi+histShift))->Fill(phi);
}
Int_t AliAnalysisTaskMuonFakes::RemoveConnectedFakes(AliMUONVTrackStore &fakeTrackStore, AliMUONVTrackStore &trackRefStore,
TString &selected, TString ¢rality)
{
Int_t nFreeMissingTracks = 0;
TIter next(trackRefStore.CreateIterator());
AliMUONTrack* trackRef;
while ( ( trackRef = static_cast<AliMUONTrack*>(next()) ) ) {
if (!trackRef->IsValid(fRequestedStationMask, fRequest2ChInSameSt45)) continue;
Int_t label = trackRef->GetUniqueID();
AliMUONTrack *connectedFake = 0x0;
Double_t fractionOfConnectedClusters = 0.;
TIter next2(fakeTrackStore.CreateIterator());
AliMUONTrack* fakeTrack;
while ( ( fakeTrack = static_cast<AliMUONTrack*>(next2()) ) ) {
Int_t nConnectedClusters = 0;
if (fUseLabel || fCombineMCId) {
for (Int_t iCl = 0; iCl < fakeTrack->GetNClusters(); iCl++)
if (((AliMUONTrackParam*) fakeTrack->GetTrackParamAtCluster()->UncheckedAt(iCl))->GetClusterPtr()->GetMCLabel() == label)
nConnectedClusters++;
}
if (!fUseLabel || fCombineMCId) {
Bool_t compTrack[10];
nConnectedClusters = TMath::Max(nConnectedClusters, fakeTrack->FindCompatibleClusters(*trackRef, fSigmaCut, compTrack));
}
if (nConnectedClusters == 0) continue;
Double_t f = ((Double_t)nConnectedClusters) / ((Double_t)fakeTrack->GetNClusters());
if (f > fractionOfConnectedClusters) {
connectedFake = fakeTrack;
fractionOfConnectedClusters = f;
}
}
if (connectedFake) {
AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
if (!esd) {
AliError("Cannot get input event");
return nFreeMissingTracks;
}
TIter next3(static_cast<TClonesArray*>(esd->FindListObject("MuonTracks")));
AliESDMuonTrack* esdTrack = 0x0;
while ((esdTrack = static_cast<AliESDMuonTrack*>(next3())) && esdTrack->GetUniqueID() != connectedFake->GetUniqueID()) {}
if (!esdTrack) {
AliError("unable to find the corresponding ESD track???");
continue;
}
TString trig = (esdTrack->ContainTriggerData()) ? "trig:yes" : "trig:no";
Double_t thetaTrackAbsEnd = TMath::ATan(esdTrack->GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
Double_t eta = esdTrack->Eta();
TString acc = (thetaTrackAbsEnd >= 2. && thetaTrackAbsEnd <= 10. && eta >= -4. && eta <= -2.5) ? "acc:in" : "acc:out";
TString eventNumberInFile = (fDisableDetailedCounters) ? "event:any" : Form("event:%d",esd->GetEventNumberInFile());
((TH1F*)fList->UncheckedAt(2*kNhistTrack+kFractionOfConnectedClusters))->Fill(fractionOfConnectedClusters);
fTrackCounters->Count(Form("track:connected/run:%d/%s/%s/%s/%s", fCurrentRunNumber, trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
fFakeTrackCounters->Count(Form("position:connected/label:connected/run:%d/file:%s/%s/%s/%s/%s/%s", fCurrentRunNumber, fCurrentFileName.Data(),
eventNumberInFile.Data(), trig.Data(), selected.Data(), acc.Data(), centrality.Data()));
fakeTrackStore.Remove(*connectedFake);
} else nFreeMissingTracks++;
}
return nFreeMissingTracks;
}
Int_t AliAnalysisTaskMuonFakes::IsDecay(Int_t nClusters, Int_t *chId, Int_t *labels,
Bool_t &isReconstructible, Int_t &lastCh) const
{
Int_t halfCluster = nClusters/2;
Int_t firstLabel = -1, decayLabel = -1;
isReconstructible = kFALSE;
for (Int_t iCluster1 = nClusters-1; iCluster1 >= halfCluster; iCluster1--) {
if (chId[iCluster1] < 6) break;
if (labels[iCluster1] < 0 || labels[iCluster1] == firstLabel) continue;
Int_t stationId = chId[iCluster1]/2;
Int_t stationMask = 1 << stationId;
Int_t requestedStations = fRequestedStationMask >> stationId;
Bool_t isValid = ((1 & requestedStations) == requestedStations);
if (!isValid && chId[iCluster1] <= lastCh) break;
Int_t nChHitInSt45[2] = {0, 0};
nChHitInSt45[stationId-3] = 1;
Int_t currentCh = chId[iCluster1];
TArrayI chainLabels(100);
Int_t nParticles = 0;
Int_t currentLabel = labels[iCluster1];
do {
chainLabels[nParticles++] = currentLabel;
if (nParticles >= chainLabels.GetSize()) chainLabels.Set(2*chainLabels.GetSize());
AliMCParticle* currentParticle = static_cast<AliMCParticle*>(fMCEvent->GetTrack(currentLabel));
currentLabel = (currentParticle) ? currentParticle->GetMother() : -1;
} while (currentLabel >= 0);
firstLabel = labels[iCluster1];
Int_t nCompatibleLabel = 1;
Int_t currentParticle = 0;
for (Int_t iCluster2 = iCluster1-1; iCluster2 >= 0; iCluster2--) {
if (iCluster2 < halfCluster-nCompatibleLabel) break;
if (labels[iCluster2] < 0) continue;
Bool_t matchFound = kFALSE;
for (Int_t iParticle = currentParticle; iParticle < nParticles; iParticle++) {
if (labels[iCluster2] == chainLabels[iParticle]) {
currentParticle = iParticle;
matchFound = kTRUE;
break;
}
}
if (matchFound) nCompatibleLabel++;
else continue;
stationId = chId[iCluster2]/2;
stationMask |= 1 << stationId;
if (stationId > 2 && chId[iCluster2] < currentCh) {
nChHitInSt45[stationId-3]++;
currentCh = chId[iCluster2];
}
if (nCompatibleLabel <= halfCluster || chId[iCluster2] > 3 || chainLabels[currentParticle] == firstLabel) continue;
if (chId[iCluster1] > lastCh) {
decayLabel = firstLabel;
lastCh = chId[iCluster1];
}
Bool_t isEnoughClOnSt45 = fRequest2ChInSameSt45 ? (nChHitInSt45[0] == 2 || nChHitInSt45[1] == 2)
: (nChHitInSt45[0]+nChHitInSt45[1] >= 2);
requestedStations = fRequestedStationMask >> stationId;
isValid = (((stationMask >> stationId) & requestedStations) == requestedStations &&
(chId[iCluster2] > 5 || isEnoughClOnSt45));
if (!isValid) break;
if (((stationMask & fRequestedStationMask) == fRequestedStationMask) && isEnoughClOnSt45) {
lastCh = chId[iCluster1];
isReconstructible = kTRUE;
return firstLabel;
}
}
}
return decayLabel;
}
void AliAnalysisTaskMuonFakes::AddCompatibleClusters(const AliMUONTrack &track, const AliMUONTrack &trackRef,
TArrayI *labels, Int_t *nLabels) const
{
Double_t chi2Max = 2. * fSigmaCut * fSigmaCut;
Int_t nCl1 = track.GetNClusters();
for(Int_t iCl1 = 0; iCl1 < nCl1; iCl1++) {
AliMUONVCluster *cluster1 = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->UncheckedAt(iCl1))->GetClusterPtr();
Int_t nCl2 = trackRef.GetNClusters();
for(Int_t iCl2 = 0; iCl2 < nCl2; iCl2++) {
AliMUONVCluster *cluster2 = static_cast<AliMUONTrackParam*>(trackRef.GetTrackParamAtCluster()->UncheckedAt(iCl2))->GetClusterPtr();
if (cluster1->GetDetElemId() != cluster2->GetDetElemId()) continue;
Double_t dX = cluster1->GetX() - cluster2->GetX();
Double_t dY = cluster1->GetY() - cluster2->GetY();
Double_t chi2 = dX * dX / (cluster1->GetErrX2() + cluster2->GetErrX2()) + dY * dY / (cluster1->GetErrY2() + cluster2->GetErrY2());
if (chi2 > chi2Max) continue;
if (nLabels[iCl1] >= labels[iCl1].GetSize()) labels[iCl1].Set(2*labels[iCl1].GetSize());
labels[iCl1][nLabels[iCl1]] = static_cast<Int_t>(trackRef.GetUniqueID());
nLabels[iCl1]++;
break;
}
}
}
Int_t AliAnalysisTaskMuonFakes::IsDecayByLabel(const AliMUONTrack &track, Bool_t &isReconstructible,
Int_t &lastCh) const
{
if (fPrintDecayChain) printf("\nBY LABEL\n");
Int_t nClusters = track.GetNClusters();
if (nClusters <= 0) return -1;
Int_t *chId = new Int_t[nClusters];
Int_t *labels = new Int_t[nClusters];
for (Int_t iCluster = 0; iCluster < nClusters; iCluster++) {
AliMUONVCluster* cluster = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->UncheckedAt(iCluster))->GetClusterPtr();
chId[iCluster] = cluster->GetChamberId();
labels[iCluster] = cluster->GetMCLabel();
if (fPrintDecayChain) {
printf("ch%d: %d",chId[iCluster],labels[iCluster]);
Int_t currentLabel = labels[iCluster];
while (currentLabel >= 0) {
AliMCParticle* currentParticle = static_cast<AliMCParticle*>(fMCEvent->GetTrack(currentLabel));
printf("(%s)",(currentParticle) ? currentParticle->Particle()->GetName() : "");
if (currentLabel == labels[iCluster]) printf(" (");
currentLabel = (currentParticle) ? currentParticle->GetMother() : -1;
if (currentLabel >= 0) printf(" %d",currentLabel);
}
printf(" )\n");
}
}
lastCh = 0;
Int_t decayLabel = IsDecay(nClusters, chId, labels, isReconstructible, lastCh);
if (fPrintDecayChain) printf("---> decayLabel = %d (reco = %d / lastCh = %d)\n",decayLabel,isReconstructible,lastCh);
delete[] chId;
delete[] labels;
return decayLabel;
}
Int_t AliAnalysisTaskMuonFakes::IsDecayByPosition(const AliMUONTrack &track, const AliMUONVTrackStore &trackRefStore,
const AliMUONVTrackStore &usedTrackRefStore, Bool_t &isReconstructible,
Int_t &lastCh) const
{
if (fPrintDecayChain) printf("\nBY POSITION\n");
Int_t nClusters = track.GetNClusters();
if (nClusters <= 0) return -1;
Int_t *chId = new Int_t[nClusters];
Int_t *nLabels = new Int_t[nClusters];
TArrayI *labels = new TArrayI[nClusters];
for (Int_t iCluster = 0; iCluster < nClusters; iCluster++) {
AliMUONVCluster* cluster = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->UncheckedAt(iCluster))->GetClusterPtr();
chId[iCluster] = cluster->GetChamberId();
nLabels[iCluster] = 0;
labels[iCluster].Set(100);
}
TIter next1(trackRefStore.CreateIterator());
AliMUONTrack* trackRef;
while ( ( trackRef = static_cast<AliMUONTrack*>(next1()) ) )
AddCompatibleClusters(track, *trackRef, labels, nLabels);
TIter next2(usedTrackRefStore.CreateIterator());
while ( ( trackRef = static_cast<AliMUONTrack*>(next2()) ) )
AddCompatibleClusters(track, *trackRef, labels, nLabels);
for (Int_t iCluster = 0; iCluster < nClusters; iCluster++) {
if (nLabels[iCluster] == 0) {
labels[iCluster][0] = -1;
nLabels[iCluster]++;
}
}
Int_t *iLabel = new Int_t[nClusters];
memset(iLabel,0,nClusters*sizeof(Int_t));
iLabel[nClusters-1] = -1;
Int_t *currentLabels = new Int_t[nClusters];
Int_t decayLabel = -1;
lastCh = 0;
isReconstructible = kFALSE;
while (kTRUE) {
Int_t iCl = nClusters-1;
while (++iLabel[iCl] >= nLabels[iCl] && iCl > 0) iLabel[iCl--] = 0;
if (iLabel[iCl] >= nLabels[iCl]) break;
if (fPrintDecayChain) printf("\n");
for (Int_t iCluster = 0; iCluster < nClusters; iCluster++) {
currentLabels[iCluster] = labels[iCluster][iLabel[iCluster]];
if (fPrintDecayChain) {
printf("ch%d: %d",chId[iCluster],currentLabels[iCluster]);
Int_t currentLabel = currentLabels[iCluster];
while (currentLabel >= 0) {
AliMCParticle* currentParticle = static_cast<AliMCParticle*>(fMCEvent->GetTrack(currentLabel));
printf("(%s)",(currentParticle) ? currentParticle->Particle()->GetName() : "");
if (currentLabel == currentLabels[iCluster]) printf(" (");
currentLabel = (currentParticle) ? currentParticle->GetMother() : -1;
if (currentLabel >= 0) printf(" %d",currentLabel);
}
printf(" )\n");
}
}
Int_t currentDecayLabel = IsDecay(nClusters, chId, currentLabels, isReconstructible, lastCh);
if (fPrintDecayChain) printf("---> decayLabel = %d (reco = %d / lastCh = %d)\n",currentDecayLabel,isReconstructible,lastCh);
if (currentDecayLabel >= 0) {
decayLabel = currentDecayLabel;
if (isReconstructible) break;
}
}
if (fPrintDecayChain) printf("------> decayLabel = %d (reco = %d / lastCh = %d)\n",decayLabel,isReconstructible,lastCh);
delete[] chId;
delete[] nLabels;
delete[] labels;
delete[] iLabel;
delete[] currentLabels;
return decayLabel;
}
AliAnalysisTaskMuonFakes.cxx:1 AliAnalysisTaskMuonFakes.cxx:2 AliAnalysisTaskMuonFakes.cxx:3 AliAnalysisTaskMuonFakes.cxx:4 AliAnalysisTaskMuonFakes.cxx:5 AliAnalysisTaskMuonFakes.cxx:6 AliAnalysisTaskMuonFakes.cxx:7 AliAnalysisTaskMuonFakes.cxx:8 AliAnalysisTaskMuonFakes.cxx:9 AliAnalysisTaskMuonFakes.cxx:10 AliAnalysisTaskMuonFakes.cxx:11 AliAnalysisTaskMuonFakes.cxx:12 AliAnalysisTaskMuonFakes.cxx:13 AliAnalysisTaskMuonFakes.cxx:14 AliAnalysisTaskMuonFakes.cxx:15 AliAnalysisTaskMuonFakes.cxx:16 AliAnalysisTaskMuonFakes.cxx:17 AliAnalysisTaskMuonFakes.cxx:18 AliAnalysisTaskMuonFakes.cxx:19 AliAnalysisTaskMuonFakes.cxx:20 AliAnalysisTaskMuonFakes.cxx:21 AliAnalysisTaskMuonFakes.cxx:22 AliAnalysisTaskMuonFakes.cxx:23 AliAnalysisTaskMuonFakes.cxx:24 AliAnalysisTaskMuonFakes.cxx:25 AliAnalysisTaskMuonFakes.cxx:26 AliAnalysisTaskMuonFakes.cxx:27 AliAnalysisTaskMuonFakes.cxx:28 AliAnalysisTaskMuonFakes.cxx:29 AliAnalysisTaskMuonFakes.cxx:30 AliAnalysisTaskMuonFakes.cxx:31 AliAnalysisTaskMuonFakes.cxx:32 AliAnalysisTaskMuonFakes.cxx:33 AliAnalysisTaskMuonFakes.cxx:34 AliAnalysisTaskMuonFakes.cxx:35 AliAnalysisTaskMuonFakes.cxx:36 AliAnalysisTaskMuonFakes.cxx:37 AliAnalysisTaskMuonFakes.cxx:38 AliAnalysisTaskMuonFakes.cxx:39 AliAnalysisTaskMuonFakes.cxx:40 AliAnalysisTaskMuonFakes.cxx:41 AliAnalysisTaskMuonFakes.cxx:42 AliAnalysisTaskMuonFakes.cxx:43 AliAnalysisTaskMuonFakes.cxx:44 AliAnalysisTaskMuonFakes.cxx:45 AliAnalysisTaskMuonFakes.cxx:46 AliAnalysisTaskMuonFakes.cxx:47 AliAnalysisTaskMuonFakes.cxx:48 AliAnalysisTaskMuonFakes.cxx:49 AliAnalysisTaskMuonFakes.cxx:50 AliAnalysisTaskMuonFakes.cxx:51 AliAnalysisTaskMuonFakes.cxx:52 AliAnalysisTaskMuonFakes.cxx:53 AliAnalysisTaskMuonFakes.cxx:54 AliAnalysisTaskMuonFakes.cxx:55 AliAnalysisTaskMuonFakes.cxx:56 AliAnalysisTaskMuonFakes.cxx:57 AliAnalysisTaskMuonFakes.cxx:58 AliAnalysisTaskMuonFakes.cxx:59 AliAnalysisTaskMuonFakes.cxx:60 AliAnalysisTaskMuonFakes.cxx:61 AliAnalysisTaskMuonFakes.cxx:62 AliAnalysisTaskMuonFakes.cxx:63 AliAnalysisTaskMuonFakes.cxx:64 AliAnalysisTaskMuonFakes.cxx:65 AliAnalysisTaskMuonFakes.cxx:66 AliAnalysisTaskMuonFakes.cxx:67 AliAnalysisTaskMuonFakes.cxx:68 AliAnalysisTaskMuonFakes.cxx:69 AliAnalysisTaskMuonFakes.cxx:70 AliAnalysisTaskMuonFakes.cxx:71 AliAnalysisTaskMuonFakes.cxx:72 AliAnalysisTaskMuonFakes.cxx:73 AliAnalysisTaskMuonFakes.cxx:74 AliAnalysisTaskMuonFakes.cxx:75 AliAnalysisTaskMuonFakes.cxx:76 AliAnalysisTaskMuonFakes.cxx:77 AliAnalysisTaskMuonFakes.cxx:78 AliAnalysisTaskMuonFakes.cxx:79 AliAnalysisTaskMuonFakes.cxx:80 AliAnalysisTaskMuonFakes.cxx:81 AliAnalysisTaskMuonFakes.cxx:82 AliAnalysisTaskMuonFakes.cxx:83 AliAnalysisTaskMuonFakes.cxx:84 AliAnalysisTaskMuonFakes.cxx:85 AliAnalysisTaskMuonFakes.cxx:86 AliAnalysisTaskMuonFakes.cxx:87 AliAnalysisTaskMuonFakes.cxx:88 AliAnalysisTaskMuonFakes.cxx:89 AliAnalysisTaskMuonFakes.cxx:90 AliAnalysisTaskMuonFakes.cxx:91 AliAnalysisTaskMuonFakes.cxx:92 AliAnalysisTaskMuonFakes.cxx:93 AliAnalysisTaskMuonFakes.cxx:94 AliAnalysisTaskMuonFakes.cxx:95 AliAnalysisTaskMuonFakes.cxx:96 AliAnalysisTaskMuonFakes.cxx:97 AliAnalysisTaskMuonFakes.cxx:98 AliAnalysisTaskMuonFakes.cxx:99 AliAnalysisTaskMuonFakes.cxx:100 AliAnalysisTaskMuonFakes.cxx:101 AliAnalysisTaskMuonFakes.cxx:102 AliAnalysisTaskMuonFakes.cxx:103 AliAnalysisTaskMuonFakes.cxx:104 AliAnalysisTaskMuonFakes.cxx:105 AliAnalysisTaskMuonFakes.cxx:106 AliAnalysisTaskMuonFakes.cxx:107 AliAnalysisTaskMuonFakes.cxx:108 AliAnalysisTaskMuonFakes.cxx:109 AliAnalysisTaskMuonFakes.cxx:110 AliAnalysisTaskMuonFakes.cxx:111 AliAnalysisTaskMuonFakes.cxx:112 AliAnalysisTaskMuonFakes.cxx:113 AliAnalysisTaskMuonFakes.cxx:114 AliAnalysisTaskMuonFakes.cxx:115 AliAnalysisTaskMuonFakes.cxx:116 AliAnalysisTaskMuonFakes.cxx:117 AliAnalysisTaskMuonFakes.cxx:118 AliAnalysisTaskMuonFakes.cxx:119 AliAnalysisTaskMuonFakes.cxx:120 AliAnalysisTaskMuonFakes.cxx:121 AliAnalysisTaskMuonFakes.cxx:122 AliAnalysisTaskMuonFakes.cxx:123 AliAnalysisTaskMuonFakes.cxx:124 AliAnalysisTaskMuonFakes.cxx:125 AliAnalysisTaskMuonFakes.cxx:126 AliAnalysisTaskMuonFakes.cxx:127 AliAnalysisTaskMuonFakes.cxx:128 AliAnalysisTaskMuonFakes.cxx:129 AliAnalysisTaskMuonFakes.cxx:130 AliAnalysisTaskMuonFakes.cxx:131 AliAnalysisTaskMuonFakes.cxx:132 AliAnalysisTaskMuonFakes.cxx:133 AliAnalysisTaskMuonFakes.cxx:134 AliAnalysisTaskMuonFakes.cxx:135 AliAnalysisTaskMuonFakes.cxx:136 AliAnalysisTaskMuonFakes.cxx:137 AliAnalysisTaskMuonFakes.cxx:138 AliAnalysisTaskMuonFakes.cxx:139 AliAnalysisTaskMuonFakes.cxx:140 AliAnalysisTaskMuonFakes.cxx:141 AliAnalysisTaskMuonFakes.cxx:142 AliAnalysisTaskMuonFakes.cxx:143 AliAnalysisTaskMuonFakes.cxx:144 AliAnalysisTaskMuonFakes.cxx:145 AliAnalysisTaskMuonFakes.cxx:146 AliAnalysisTaskMuonFakes.cxx:147 AliAnalysisTaskMuonFakes.cxx:148 AliAnalysisTaskMuonFakes.cxx:149 AliAnalysisTaskMuonFakes.cxx:150 AliAnalysisTaskMuonFakes.cxx:151 AliAnalysisTaskMuonFakes.cxx:152 AliAnalysisTaskMuonFakes.cxx:153 AliAnalysisTaskMuonFakes.cxx:154 AliAnalysisTaskMuonFakes.cxx:155 AliAnalysisTaskMuonFakes.cxx:156 AliAnalysisTaskMuonFakes.cxx:157 AliAnalysisTaskMuonFakes.cxx:158 AliAnalysisTaskMuonFakes.cxx:159 AliAnalysisTaskMuonFakes.cxx:160 AliAnalysisTaskMuonFakes.cxx:161 AliAnalysisTaskMuonFakes.cxx:162 AliAnalysisTaskMuonFakes.cxx:163 AliAnalysisTaskMuonFakes.cxx:164 AliAnalysisTaskMuonFakes.cxx:165 AliAnalysisTaskMuonFakes.cxx:166 AliAnalysisTaskMuonFakes.cxx:167 AliAnalysisTaskMuonFakes.cxx:168 AliAnalysisTaskMuonFakes.cxx:169 AliAnalysisTaskMuonFakes.cxx:170 AliAnalysisTaskMuonFakes.cxx:171 AliAnalysisTaskMuonFakes.cxx:172 AliAnalysisTaskMuonFakes.cxx:173 AliAnalysisTaskMuonFakes.cxx:174 AliAnalysisTaskMuonFakes.cxx:175 AliAnalysisTaskMuonFakes.cxx:176 AliAnalysisTaskMuonFakes.cxx:177 AliAnalysisTaskMuonFakes.cxx:178 AliAnalysisTaskMuonFakes.cxx:179 AliAnalysisTaskMuonFakes.cxx:180 AliAnalysisTaskMuonFakes.cxx:181 AliAnalysisTaskMuonFakes.cxx:182 AliAnalysisTaskMuonFakes.cxx:183 AliAnalysisTaskMuonFakes.cxx:184 AliAnalysisTaskMuonFakes.cxx:185 AliAnalysisTaskMuonFakes.cxx:186 AliAnalysisTaskMuonFakes.cxx:187 AliAnalysisTaskMuonFakes.cxx:188 AliAnalysisTaskMuonFakes.cxx:189 AliAnalysisTaskMuonFakes.cxx:190 AliAnalysisTaskMuonFakes.cxx:191 AliAnalysisTaskMuonFakes.cxx:192 AliAnalysisTaskMuonFakes.cxx:193 AliAnalysisTaskMuonFakes.cxx:194 AliAnalysisTaskMuonFakes.cxx:195 AliAnalysisTaskMuonFakes.cxx:196 AliAnalysisTaskMuonFakes.cxx:197 AliAnalysisTaskMuonFakes.cxx:198 AliAnalysisTaskMuonFakes.cxx:199 AliAnalysisTaskMuonFakes.cxx:200 AliAnalysisTaskMuonFakes.cxx:201 AliAnalysisTaskMuonFakes.cxx:202 AliAnalysisTaskMuonFakes.cxx:203 AliAnalysisTaskMuonFakes.cxx:204 AliAnalysisTaskMuonFakes.cxx:205 AliAnalysisTaskMuonFakes.cxx:206 AliAnalysisTaskMuonFakes.cxx:207 AliAnalysisTaskMuonFakes.cxx:208 AliAnalysisTaskMuonFakes.cxx:209 AliAnalysisTaskMuonFakes.cxx:210 AliAnalysisTaskMuonFakes.cxx:211 AliAnalysisTaskMuonFakes.cxx:212 AliAnalysisTaskMuonFakes.cxx:213 AliAnalysisTaskMuonFakes.cxx:214 AliAnalysisTaskMuonFakes.cxx:215 AliAnalysisTaskMuonFakes.cxx:216 AliAnalysisTaskMuonFakes.cxx:217 AliAnalysisTaskMuonFakes.cxx:218 AliAnalysisTaskMuonFakes.cxx:219 AliAnalysisTaskMuonFakes.cxx:220 AliAnalysisTaskMuonFakes.cxx:221 AliAnalysisTaskMuonFakes.cxx:222 AliAnalysisTaskMuonFakes.cxx:223 AliAnalysisTaskMuonFakes.cxx:224 AliAnalysisTaskMuonFakes.cxx:225 AliAnalysisTaskMuonFakes.cxx:226 AliAnalysisTaskMuonFakes.cxx:227 AliAnalysisTaskMuonFakes.cxx:228 AliAnalysisTaskMuonFakes.cxx:229 AliAnalysisTaskMuonFakes.cxx:230 AliAnalysisTaskMuonFakes.cxx:231 AliAnalysisTaskMuonFakes.cxx:232 AliAnalysisTaskMuonFakes.cxx:233 AliAnalysisTaskMuonFakes.cxx:234 AliAnalysisTaskMuonFakes.cxx:235 AliAnalysisTaskMuonFakes.cxx:236 AliAnalysisTaskMuonFakes.cxx:237 AliAnalysisTaskMuonFakes.cxx:238 AliAnalysisTaskMuonFakes.cxx:239 AliAnalysisTaskMuonFakes.cxx:240 AliAnalysisTaskMuonFakes.cxx:241 AliAnalysisTaskMuonFakes.cxx:242 AliAnalysisTaskMuonFakes.cxx:243 AliAnalysisTaskMuonFakes.cxx:244 AliAnalysisTaskMuonFakes.cxx:245 AliAnalysisTaskMuonFakes.cxx:246 AliAnalysisTaskMuonFakes.cxx:247 AliAnalysisTaskMuonFakes.cxx:248 AliAnalysisTaskMuonFakes.cxx:249 AliAnalysisTaskMuonFakes.cxx:250 AliAnalysisTaskMuonFakes.cxx:251 AliAnalysisTaskMuonFakes.cxx:252 AliAnalysisTaskMuonFakes.cxx:253 AliAnalysisTaskMuonFakes.cxx:254 AliAnalysisTaskMuonFakes.cxx:255 AliAnalysisTaskMuonFakes.cxx:256 AliAnalysisTaskMuonFakes.cxx:257 AliAnalysisTaskMuonFakes.cxx:258 AliAnalysisTaskMuonFakes.cxx:259 AliAnalysisTaskMuonFakes.cxx:260 AliAnalysisTaskMuonFakes.cxx:261 AliAnalysisTaskMuonFakes.cxx:262 AliAnalysisTaskMuonFakes.cxx:263 AliAnalysisTaskMuonFakes.cxx:264 AliAnalysisTaskMuonFakes.cxx:265 AliAnalysisTaskMuonFakes.cxx:266 AliAnalysisTaskMuonFakes.cxx:267 AliAnalysisTaskMuonFakes.cxx:268 AliAnalysisTaskMuonFakes.cxx:269 AliAnalysisTaskMuonFakes.cxx:270 AliAnalysisTaskMuonFakes.cxx:271 AliAnalysisTaskMuonFakes.cxx:272 AliAnalysisTaskMuonFakes.cxx:273 AliAnalysisTaskMuonFakes.cxx:274 AliAnalysisTaskMuonFakes.cxx:275 AliAnalysisTaskMuonFakes.cxx:276 AliAnalysisTaskMuonFakes.cxx:277 AliAnalysisTaskMuonFakes.cxx:278 AliAnalysisTaskMuonFakes.cxx:279 AliAnalysisTaskMuonFakes.cxx:280 AliAnalysisTaskMuonFakes.cxx:281 AliAnalysisTaskMuonFakes.cxx:282 AliAnalysisTaskMuonFakes.cxx:283 AliAnalysisTaskMuonFakes.cxx:284 AliAnalysisTaskMuonFakes.cxx:285 AliAnalysisTaskMuonFakes.cxx:286 AliAnalysisTaskMuonFakes.cxx:287 AliAnalysisTaskMuonFakes.cxx:288 AliAnalysisTaskMuonFakes.cxx:289 AliAnalysisTaskMuonFakes.cxx:290 AliAnalysisTaskMuonFakes.cxx:291 AliAnalysisTaskMuonFakes.cxx:292 AliAnalysisTaskMuonFakes.cxx:293 AliAnalysisTaskMuonFakes.cxx:294 AliAnalysisTaskMuonFakes.cxx:295 AliAnalysisTaskMuonFakes.cxx:296 AliAnalysisTaskMuonFakes.cxx:297 AliAnalysisTaskMuonFakes.cxx:298 AliAnalysisTaskMuonFakes.cxx:299 AliAnalysisTaskMuonFakes.cxx:300 AliAnalysisTaskMuonFakes.cxx:301 AliAnalysisTaskMuonFakes.cxx:302 AliAnalysisTaskMuonFakes.cxx:303 AliAnalysisTaskMuonFakes.cxx:304 AliAnalysisTaskMuonFakes.cxx:305 AliAnalysisTaskMuonFakes.cxx:306 AliAnalysisTaskMuonFakes.cxx:307 AliAnalysisTaskMuonFakes.cxx:308 AliAnalysisTaskMuonFakes.cxx:309 AliAnalysisTaskMuonFakes.cxx:310 AliAnalysisTaskMuonFakes.cxx:311 AliAnalysisTaskMuonFakes.cxx:312 AliAnalysisTaskMuonFakes.cxx:313 AliAnalysisTaskMuonFakes.cxx:314 AliAnalysisTaskMuonFakes.cxx:315 AliAnalysisTaskMuonFakes.cxx:316 AliAnalysisTaskMuonFakes.cxx:317 AliAnalysisTaskMuonFakes.cxx:318 AliAnalysisTaskMuonFakes.cxx:319 AliAnalysisTaskMuonFakes.cxx:320 AliAnalysisTaskMuonFakes.cxx:321 AliAnalysisTaskMuonFakes.cxx:322 AliAnalysisTaskMuonFakes.cxx:323 AliAnalysisTaskMuonFakes.cxx:324 AliAnalysisTaskMuonFakes.cxx:325 AliAnalysisTaskMuonFakes.cxx:326 AliAnalysisTaskMuonFakes.cxx:327 AliAnalysisTaskMuonFakes.cxx:328 AliAnalysisTaskMuonFakes.cxx:329 AliAnalysisTaskMuonFakes.cxx:330 AliAnalysisTaskMuonFakes.cxx:331 AliAnalysisTaskMuonFakes.cxx:332 AliAnalysisTaskMuonFakes.cxx:333 AliAnalysisTaskMuonFakes.cxx:334 AliAnalysisTaskMuonFakes.cxx:335 AliAnalysisTaskMuonFakes.cxx:336 AliAnalysisTaskMuonFakes.cxx:337 AliAnalysisTaskMuonFakes.cxx:338 AliAnalysisTaskMuonFakes.cxx:339 AliAnalysisTaskMuonFakes.cxx:340 AliAnalysisTaskMuonFakes.cxx:341 AliAnalysisTaskMuonFakes.cxx:342 AliAnalysisTaskMuonFakes.cxx:343 AliAnalysisTaskMuonFakes.cxx:344 AliAnalysisTaskMuonFakes.cxx:345 AliAnalysisTaskMuonFakes.cxx:346 AliAnalysisTaskMuonFakes.cxx:347 AliAnalysisTaskMuonFakes.cxx:348 AliAnalysisTaskMuonFakes.cxx:349 AliAnalysisTaskMuonFakes.cxx:350 AliAnalysisTaskMuonFakes.cxx:351 AliAnalysisTaskMuonFakes.cxx:352 AliAnalysisTaskMuonFakes.cxx:353 AliAnalysisTaskMuonFakes.cxx:354 AliAnalysisTaskMuonFakes.cxx:355 AliAnalysisTaskMuonFakes.cxx:356 AliAnalysisTaskMuonFakes.cxx:357 AliAnalysisTaskMuonFakes.cxx:358 AliAnalysisTaskMuonFakes.cxx:359 AliAnalysisTaskMuonFakes.cxx:360 AliAnalysisTaskMuonFakes.cxx:361 AliAnalysisTaskMuonFakes.cxx:362 AliAnalysisTaskMuonFakes.cxx:363 AliAnalysisTaskMuonFakes.cxx:364 AliAnalysisTaskMuonFakes.cxx:365 AliAnalysisTaskMuonFakes.cxx:366 AliAnalysisTaskMuonFakes.cxx:367 AliAnalysisTaskMuonFakes.cxx:368 AliAnalysisTaskMuonFakes.cxx:369 AliAnalysisTaskMuonFakes.cxx:370 AliAnalysisTaskMuonFakes.cxx:371 AliAnalysisTaskMuonFakes.cxx:372 AliAnalysisTaskMuonFakes.cxx:373 AliAnalysisTaskMuonFakes.cxx:374 AliAnalysisTaskMuonFakes.cxx:375 AliAnalysisTaskMuonFakes.cxx:376 AliAnalysisTaskMuonFakes.cxx:377 AliAnalysisTaskMuonFakes.cxx:378 AliAnalysisTaskMuonFakes.cxx:379 AliAnalysisTaskMuonFakes.cxx:380 AliAnalysisTaskMuonFakes.cxx:381 AliAnalysisTaskMuonFakes.cxx:382 AliAnalysisTaskMuonFakes.cxx:383 AliAnalysisTaskMuonFakes.cxx:384 AliAnalysisTaskMuonFakes.cxx:385 AliAnalysisTaskMuonFakes.cxx:386 AliAnalysisTaskMuonFakes.cxx:387 AliAnalysisTaskMuonFakes.cxx:388 AliAnalysisTaskMuonFakes.cxx:389 AliAnalysisTaskMuonFakes.cxx:390 AliAnalysisTaskMuonFakes.cxx:391 AliAnalysisTaskMuonFakes.cxx:392 AliAnalysisTaskMuonFakes.cxx:393 AliAnalysisTaskMuonFakes.cxx:394 AliAnalysisTaskMuonFakes.cxx:395 AliAnalysisTaskMuonFakes.cxx:396 AliAnalysisTaskMuonFakes.cxx:397 AliAnalysisTaskMuonFakes.cxx:398 AliAnalysisTaskMuonFakes.cxx:399 AliAnalysisTaskMuonFakes.cxx:400 AliAnalysisTaskMuonFakes.cxx:401 AliAnalysisTaskMuonFakes.cxx:402 AliAnalysisTaskMuonFakes.cxx:403 AliAnalysisTaskMuonFakes.cxx:404 AliAnalysisTaskMuonFakes.cxx:405 AliAnalysisTaskMuonFakes.cxx:406 AliAnalysisTaskMuonFakes.cxx:407 AliAnalysisTaskMuonFakes.cxx:408 AliAnalysisTaskMuonFakes.cxx:409 AliAnalysisTaskMuonFakes.cxx:410 AliAnalysisTaskMuonFakes.cxx:411 AliAnalysisTaskMuonFakes.cxx:412 AliAnalysisTaskMuonFakes.cxx:413 AliAnalysisTaskMuonFakes.cxx:414 AliAnalysisTaskMuonFakes.cxx:415 AliAnalysisTaskMuonFakes.cxx:416 AliAnalysisTaskMuonFakes.cxx:417 AliAnalysisTaskMuonFakes.cxx:418 AliAnalysisTaskMuonFakes.cxx:419 AliAnalysisTaskMuonFakes.cxx:420 AliAnalysisTaskMuonFakes.cxx:421 AliAnalysisTaskMuonFakes.cxx:422 AliAnalysisTaskMuonFakes.cxx:423 AliAnalysisTaskMuonFakes.cxx:424 AliAnalysisTaskMuonFakes.cxx:425 AliAnalysisTaskMuonFakes.cxx:426 AliAnalysisTaskMuonFakes.cxx:427 AliAnalysisTaskMuonFakes.cxx:428 AliAnalysisTaskMuonFakes.cxx:429 AliAnalysisTaskMuonFakes.cxx:430 AliAnalysisTaskMuonFakes.cxx:431 AliAnalysisTaskMuonFakes.cxx:432 AliAnalysisTaskMuonFakes.cxx:433 AliAnalysisTaskMuonFakes.cxx:434 AliAnalysisTaskMuonFakes.cxx:435 AliAnalysisTaskMuonFakes.cxx:436 AliAnalysisTaskMuonFakes.cxx:437 AliAnalysisTaskMuonFakes.cxx:438 AliAnalysisTaskMuonFakes.cxx:439 AliAnalysisTaskMuonFakes.cxx:440 AliAnalysisTaskMuonFakes.cxx:441 AliAnalysisTaskMuonFakes.cxx:442 AliAnalysisTaskMuonFakes.cxx:443 AliAnalysisTaskMuonFakes.cxx:444 AliAnalysisTaskMuonFakes.cxx:445 AliAnalysisTaskMuonFakes.cxx:446 AliAnalysisTaskMuonFakes.cxx:447 AliAnalysisTaskMuonFakes.cxx:448 AliAnalysisTaskMuonFakes.cxx:449 AliAnalysisTaskMuonFakes.cxx:450 AliAnalysisTaskMuonFakes.cxx:451 AliAnalysisTaskMuonFakes.cxx:452 AliAnalysisTaskMuonFakes.cxx:453 AliAnalysisTaskMuonFakes.cxx:454 AliAnalysisTaskMuonFakes.cxx:455 AliAnalysisTaskMuonFakes.cxx:456 AliAnalysisTaskMuonFakes.cxx:457 AliAnalysisTaskMuonFakes.cxx:458 AliAnalysisTaskMuonFakes.cxx:459 AliAnalysisTaskMuonFakes.cxx:460 AliAnalysisTaskMuonFakes.cxx:461 AliAnalysisTaskMuonFakes.cxx:462 AliAnalysisTaskMuonFakes.cxx:463 AliAnalysisTaskMuonFakes.cxx:464 AliAnalysisTaskMuonFakes.cxx:465 AliAnalysisTaskMuonFakes.cxx:466 AliAnalysisTaskMuonFakes.cxx:467 AliAnalysisTaskMuonFakes.cxx:468 AliAnalysisTaskMuonFakes.cxx:469 AliAnalysisTaskMuonFakes.cxx:470 AliAnalysisTaskMuonFakes.cxx:471 AliAnalysisTaskMuonFakes.cxx:472 AliAnalysisTaskMuonFakes.cxx:473 AliAnalysisTaskMuonFakes.cxx:474 AliAnalysisTaskMuonFakes.cxx:475 AliAnalysisTaskMuonFakes.cxx:476 AliAnalysisTaskMuonFakes.cxx:477 AliAnalysisTaskMuonFakes.cxx:478 AliAnalysisTaskMuonFakes.cxx:479 AliAnalysisTaskMuonFakes.cxx:480 AliAnalysisTaskMuonFakes.cxx:481 AliAnalysisTaskMuonFakes.cxx:482 AliAnalysisTaskMuonFakes.cxx:483 AliAnalysisTaskMuonFakes.cxx:484 AliAnalysisTaskMuonFakes.cxx:485 AliAnalysisTaskMuonFakes.cxx:486 AliAnalysisTaskMuonFakes.cxx:487 AliAnalysisTaskMuonFakes.cxx:488 AliAnalysisTaskMuonFakes.cxx:489 AliAnalysisTaskMuonFakes.cxx:490 AliAnalysisTaskMuonFakes.cxx:491 AliAnalysisTaskMuonFakes.cxx:492 AliAnalysisTaskMuonFakes.cxx:493 AliAnalysisTaskMuonFakes.cxx:494 AliAnalysisTaskMuonFakes.cxx:495 AliAnalysisTaskMuonFakes.cxx:496 AliAnalysisTaskMuonFakes.cxx:497 AliAnalysisTaskMuonFakes.cxx:498 AliAnalysisTaskMuonFakes.cxx:499 AliAnalysisTaskMuonFakes.cxx:500 AliAnalysisTaskMuonFakes.cxx:501 AliAnalysisTaskMuonFakes.cxx:502 AliAnalysisTaskMuonFakes.cxx:503 AliAnalysisTaskMuonFakes.cxx:504 AliAnalysisTaskMuonFakes.cxx:505 AliAnalysisTaskMuonFakes.cxx:506 AliAnalysisTaskMuonFakes.cxx:507 AliAnalysisTaskMuonFakes.cxx:508 AliAnalysisTaskMuonFakes.cxx:509 AliAnalysisTaskMuonFakes.cxx:510 AliAnalysisTaskMuonFakes.cxx:511 AliAnalysisTaskMuonFakes.cxx:512 AliAnalysisTaskMuonFakes.cxx:513 AliAnalysisTaskMuonFakes.cxx:514 AliAnalysisTaskMuonFakes.cxx:515 AliAnalysisTaskMuonFakes.cxx:516 AliAnalysisTaskMuonFakes.cxx:517 AliAnalysisTaskMuonFakes.cxx:518 AliAnalysisTaskMuonFakes.cxx:519 AliAnalysisTaskMuonFakes.cxx:520 AliAnalysisTaskMuonFakes.cxx:521 AliAnalysisTaskMuonFakes.cxx:522 AliAnalysisTaskMuonFakes.cxx:523 AliAnalysisTaskMuonFakes.cxx:524 AliAnalysisTaskMuonFakes.cxx:525 AliAnalysisTaskMuonFakes.cxx:526 AliAnalysisTaskMuonFakes.cxx:527 AliAnalysisTaskMuonFakes.cxx:528 AliAnalysisTaskMuonFakes.cxx:529 AliAnalysisTaskMuonFakes.cxx:530 AliAnalysisTaskMuonFakes.cxx:531 AliAnalysisTaskMuonFakes.cxx:532 AliAnalysisTaskMuonFakes.cxx:533 AliAnalysisTaskMuonFakes.cxx:534 AliAnalysisTaskMuonFakes.cxx:535 AliAnalysisTaskMuonFakes.cxx:536 AliAnalysisTaskMuonFakes.cxx:537 AliAnalysisTaskMuonFakes.cxx:538 AliAnalysisTaskMuonFakes.cxx:539 AliAnalysisTaskMuonFakes.cxx:540 AliAnalysisTaskMuonFakes.cxx:541 AliAnalysisTaskMuonFakes.cxx:542 AliAnalysisTaskMuonFakes.cxx:543 AliAnalysisTaskMuonFakes.cxx:544 AliAnalysisTaskMuonFakes.cxx:545 AliAnalysisTaskMuonFakes.cxx:546 AliAnalysisTaskMuonFakes.cxx:547 AliAnalysisTaskMuonFakes.cxx:548 AliAnalysisTaskMuonFakes.cxx:549 AliAnalysisTaskMuonFakes.cxx:550 AliAnalysisTaskMuonFakes.cxx:551 AliAnalysisTaskMuonFakes.cxx:552 AliAnalysisTaskMuonFakes.cxx:553 AliAnalysisTaskMuonFakes.cxx:554 AliAnalysisTaskMuonFakes.cxx:555 AliAnalysisTaskMuonFakes.cxx:556 AliAnalysisTaskMuonFakes.cxx:557 AliAnalysisTaskMuonFakes.cxx:558 AliAnalysisTaskMuonFakes.cxx:559 AliAnalysisTaskMuonFakes.cxx:560 AliAnalysisTaskMuonFakes.cxx:561 AliAnalysisTaskMuonFakes.cxx:562 AliAnalysisTaskMuonFakes.cxx:563 AliAnalysisTaskMuonFakes.cxx:564 AliAnalysisTaskMuonFakes.cxx:565 AliAnalysisTaskMuonFakes.cxx:566 AliAnalysisTaskMuonFakes.cxx:567 AliAnalysisTaskMuonFakes.cxx:568 AliAnalysisTaskMuonFakes.cxx:569 AliAnalysisTaskMuonFakes.cxx:570 AliAnalysisTaskMuonFakes.cxx:571 AliAnalysisTaskMuonFakes.cxx:572 AliAnalysisTaskMuonFakes.cxx:573 AliAnalysisTaskMuonFakes.cxx:574 AliAnalysisTaskMuonFakes.cxx:575 AliAnalysisTaskMuonFakes.cxx:576 AliAnalysisTaskMuonFakes.cxx:577 AliAnalysisTaskMuonFakes.cxx:578 AliAnalysisTaskMuonFakes.cxx:579 AliAnalysisTaskMuonFakes.cxx:580 AliAnalysisTaskMuonFakes.cxx:581 AliAnalysisTaskMuonFakes.cxx:582 AliAnalysisTaskMuonFakes.cxx:583 AliAnalysisTaskMuonFakes.cxx:584 AliAnalysisTaskMuonFakes.cxx:585 AliAnalysisTaskMuonFakes.cxx:586 AliAnalysisTaskMuonFakes.cxx:587 AliAnalysisTaskMuonFakes.cxx:588 AliAnalysisTaskMuonFakes.cxx:589 AliAnalysisTaskMuonFakes.cxx:590 AliAnalysisTaskMuonFakes.cxx:591 AliAnalysisTaskMuonFakes.cxx:592 AliAnalysisTaskMuonFakes.cxx:593 AliAnalysisTaskMuonFakes.cxx:594 AliAnalysisTaskMuonFakes.cxx:595 AliAnalysisTaskMuonFakes.cxx:596 AliAnalysisTaskMuonFakes.cxx:597 AliAnalysisTaskMuonFakes.cxx:598 AliAnalysisTaskMuonFakes.cxx:599 AliAnalysisTaskMuonFakes.cxx:600 AliAnalysisTaskMuonFakes.cxx:601 AliAnalysisTaskMuonFakes.cxx:602 AliAnalysisTaskMuonFakes.cxx:603 AliAnalysisTaskMuonFakes.cxx:604 AliAnalysisTaskMuonFakes.cxx:605 AliAnalysisTaskMuonFakes.cxx:606 AliAnalysisTaskMuonFakes.cxx:607 AliAnalysisTaskMuonFakes.cxx:608 AliAnalysisTaskMuonFakes.cxx:609 AliAnalysisTaskMuonFakes.cxx:610 AliAnalysisTaskMuonFakes.cxx:611 AliAnalysisTaskMuonFakes.cxx:612 AliAnalysisTaskMuonFakes.cxx:613 AliAnalysisTaskMuonFakes.cxx:614 AliAnalysisTaskMuonFakes.cxx:615 AliAnalysisTaskMuonFakes.cxx:616 AliAnalysisTaskMuonFakes.cxx:617 AliAnalysisTaskMuonFakes.cxx:618 AliAnalysisTaskMuonFakes.cxx:619 AliAnalysisTaskMuonFakes.cxx:620 AliAnalysisTaskMuonFakes.cxx:621 AliAnalysisTaskMuonFakes.cxx:622 AliAnalysisTaskMuonFakes.cxx:623 AliAnalysisTaskMuonFakes.cxx:624 AliAnalysisTaskMuonFakes.cxx:625 AliAnalysisTaskMuonFakes.cxx:626 AliAnalysisTaskMuonFakes.cxx:627 AliAnalysisTaskMuonFakes.cxx:628 AliAnalysisTaskMuonFakes.cxx:629 AliAnalysisTaskMuonFakes.cxx:630 AliAnalysisTaskMuonFakes.cxx:631 AliAnalysisTaskMuonFakes.cxx:632 AliAnalysisTaskMuonFakes.cxx:633 AliAnalysisTaskMuonFakes.cxx:634 AliAnalysisTaskMuonFakes.cxx:635 AliAnalysisTaskMuonFakes.cxx:636 AliAnalysisTaskMuonFakes.cxx:637 AliAnalysisTaskMuonFakes.cxx:638 AliAnalysisTaskMuonFakes.cxx:639 AliAnalysisTaskMuonFakes.cxx:640 AliAnalysisTaskMuonFakes.cxx:641 AliAnalysisTaskMuonFakes.cxx:642 AliAnalysisTaskMuonFakes.cxx:643 AliAnalysisTaskMuonFakes.cxx:644 AliAnalysisTaskMuonFakes.cxx:645 AliAnalysisTaskMuonFakes.cxx:646 AliAnalysisTaskMuonFakes.cxx:647 AliAnalysisTaskMuonFakes.cxx:648 AliAnalysisTaskMuonFakes.cxx:649 AliAnalysisTaskMuonFakes.cxx:650 AliAnalysisTaskMuonFakes.cxx:651 AliAnalysisTaskMuonFakes.cxx:652 AliAnalysisTaskMuonFakes.cxx:653 AliAnalysisTaskMuonFakes.cxx:654 AliAnalysisTaskMuonFakes.cxx:655 AliAnalysisTaskMuonFakes.cxx:656 AliAnalysisTaskMuonFakes.cxx:657 AliAnalysisTaskMuonFakes.cxx:658 AliAnalysisTaskMuonFakes.cxx:659 AliAnalysisTaskMuonFakes.cxx:660 AliAnalysisTaskMuonFakes.cxx:661 AliAnalysisTaskMuonFakes.cxx:662 AliAnalysisTaskMuonFakes.cxx:663 AliAnalysisTaskMuonFakes.cxx:664 AliAnalysisTaskMuonFakes.cxx:665 AliAnalysisTaskMuonFakes.cxx:666 AliAnalysisTaskMuonFakes.cxx:667 AliAnalysisTaskMuonFakes.cxx:668 AliAnalysisTaskMuonFakes.cxx:669 AliAnalysisTaskMuonFakes.cxx:670 AliAnalysisTaskMuonFakes.cxx:671 AliAnalysisTaskMuonFakes.cxx:672 AliAnalysisTaskMuonFakes.cxx:673 AliAnalysisTaskMuonFakes.cxx:674 AliAnalysisTaskMuonFakes.cxx:675 AliAnalysisTaskMuonFakes.cxx:676 AliAnalysisTaskMuonFakes.cxx:677 AliAnalysisTaskMuonFakes.cxx:678 AliAnalysisTaskMuonFakes.cxx:679 AliAnalysisTaskMuonFakes.cxx:680 AliAnalysisTaskMuonFakes.cxx:681 AliAnalysisTaskMuonFakes.cxx:682 AliAnalysisTaskMuonFakes.cxx:683 AliAnalysisTaskMuonFakes.cxx:684 AliAnalysisTaskMuonFakes.cxx:685 AliAnalysisTaskMuonFakes.cxx:686 AliAnalysisTaskMuonFakes.cxx:687 AliAnalysisTaskMuonFakes.cxx:688 AliAnalysisTaskMuonFakes.cxx:689 AliAnalysisTaskMuonFakes.cxx:690 AliAnalysisTaskMuonFakes.cxx:691 AliAnalysisTaskMuonFakes.cxx:692 AliAnalysisTaskMuonFakes.cxx:693 AliAnalysisTaskMuonFakes.cxx:694 AliAnalysisTaskMuonFakes.cxx:695 AliAnalysisTaskMuonFakes.cxx:696 AliAnalysisTaskMuonFakes.cxx:697 AliAnalysisTaskMuonFakes.cxx:698 AliAnalysisTaskMuonFakes.cxx:699 AliAnalysisTaskMuonFakes.cxx:700 AliAnalysisTaskMuonFakes.cxx:701 AliAnalysisTaskMuonFakes.cxx:702 AliAnalysisTaskMuonFakes.cxx:703 AliAnalysisTaskMuonFakes.cxx:704 AliAnalysisTaskMuonFakes.cxx:705 AliAnalysisTaskMuonFakes.cxx:706 AliAnalysisTaskMuonFakes.cxx:707 AliAnalysisTaskMuonFakes.cxx:708 AliAnalysisTaskMuonFakes.cxx:709 AliAnalysisTaskMuonFakes.cxx:710 AliAnalysisTaskMuonFakes.cxx:711 AliAnalysisTaskMuonFakes.cxx:712 AliAnalysisTaskMuonFakes.cxx:713 AliAnalysisTaskMuonFakes.cxx:714 AliAnalysisTaskMuonFakes.cxx:715 AliAnalysisTaskMuonFakes.cxx:716 AliAnalysisTaskMuonFakes.cxx:717 AliAnalysisTaskMuonFakes.cxx:718 AliAnalysisTaskMuonFakes.cxx:719 AliAnalysisTaskMuonFakes.cxx:720 AliAnalysisTaskMuonFakes.cxx:721 AliAnalysisTaskMuonFakes.cxx:722 AliAnalysisTaskMuonFakes.cxx:723 AliAnalysisTaskMuonFakes.cxx:724 AliAnalysisTaskMuonFakes.cxx:725 AliAnalysisTaskMuonFakes.cxx:726 AliAnalysisTaskMuonFakes.cxx:727 AliAnalysisTaskMuonFakes.cxx:728 AliAnalysisTaskMuonFakes.cxx:729 AliAnalysisTaskMuonFakes.cxx:730 AliAnalysisTaskMuonFakes.cxx:731 AliAnalysisTaskMuonFakes.cxx:732 AliAnalysisTaskMuonFakes.cxx:733 AliAnalysisTaskMuonFakes.cxx:734 AliAnalysisTaskMuonFakes.cxx:735 AliAnalysisTaskMuonFakes.cxx:736 AliAnalysisTaskMuonFakes.cxx:737 AliAnalysisTaskMuonFakes.cxx:738 AliAnalysisTaskMuonFakes.cxx:739 AliAnalysisTaskMuonFakes.cxx:740 AliAnalysisTaskMuonFakes.cxx:741 AliAnalysisTaskMuonFakes.cxx:742 AliAnalysisTaskMuonFakes.cxx:743 AliAnalysisTaskMuonFakes.cxx:744 AliAnalysisTaskMuonFakes.cxx:745 AliAnalysisTaskMuonFakes.cxx:746 AliAnalysisTaskMuonFakes.cxx:747 AliAnalysisTaskMuonFakes.cxx:748 AliAnalysisTaskMuonFakes.cxx:749 AliAnalysisTaskMuonFakes.cxx:750 AliAnalysisTaskMuonFakes.cxx:751 AliAnalysisTaskMuonFakes.cxx:752 AliAnalysisTaskMuonFakes.cxx:753 AliAnalysisTaskMuonFakes.cxx:754 AliAnalysisTaskMuonFakes.cxx:755 AliAnalysisTaskMuonFakes.cxx:756 AliAnalysisTaskMuonFakes.cxx:757 AliAnalysisTaskMuonFakes.cxx:758 AliAnalysisTaskMuonFakes.cxx:759 AliAnalysisTaskMuonFakes.cxx:760 AliAnalysisTaskMuonFakes.cxx:761 AliAnalysisTaskMuonFakes.cxx:762 AliAnalysisTaskMuonFakes.cxx:763 AliAnalysisTaskMuonFakes.cxx:764 AliAnalysisTaskMuonFakes.cxx:765 AliAnalysisTaskMuonFakes.cxx:766 AliAnalysisTaskMuonFakes.cxx:767 AliAnalysisTaskMuonFakes.cxx:768 AliAnalysisTaskMuonFakes.cxx:769 AliAnalysisTaskMuonFakes.cxx:770 AliAnalysisTaskMuonFakes.cxx:771 AliAnalysisTaskMuonFakes.cxx:772 AliAnalysisTaskMuonFakes.cxx:773 AliAnalysisTaskMuonFakes.cxx:774 AliAnalysisTaskMuonFakes.cxx:775 AliAnalysisTaskMuonFakes.cxx:776 AliAnalysisTaskMuonFakes.cxx:777 AliAnalysisTaskMuonFakes.cxx:778 AliAnalysisTaskMuonFakes.cxx:779 AliAnalysisTaskMuonFakes.cxx:780 AliAnalysisTaskMuonFakes.cxx:781 AliAnalysisTaskMuonFakes.cxx:782 AliAnalysisTaskMuonFakes.cxx:783 AliAnalysisTaskMuonFakes.cxx:784 AliAnalysisTaskMuonFakes.cxx:785 AliAnalysisTaskMuonFakes.cxx:786 AliAnalysisTaskMuonFakes.cxx:787 AliAnalysisTaskMuonFakes.cxx:788 AliAnalysisTaskMuonFakes.cxx:789 AliAnalysisTaskMuonFakes.cxx:790 AliAnalysisTaskMuonFakes.cxx:791 AliAnalysisTaskMuonFakes.cxx:792 AliAnalysisTaskMuonFakes.cxx:793 AliAnalysisTaskMuonFakes.cxx:794 AliAnalysisTaskMuonFakes.cxx:795 AliAnalysisTaskMuonFakes.cxx:796 AliAnalysisTaskMuonFakes.cxx:797 AliAnalysisTaskMuonFakes.cxx:798 AliAnalysisTaskMuonFakes.cxx:799 AliAnalysisTaskMuonFakes.cxx:800 AliAnalysisTaskMuonFakes.cxx:801 AliAnalysisTaskMuonFakes.cxx:802 AliAnalysisTaskMuonFakes.cxx:803 AliAnalysisTaskMuonFakes.cxx:804 AliAnalysisTaskMuonFakes.cxx:805 AliAnalysisTaskMuonFakes.cxx:806 AliAnalysisTaskMuonFakes.cxx:807 AliAnalysisTaskMuonFakes.cxx:808 AliAnalysisTaskMuonFakes.cxx:809 AliAnalysisTaskMuonFakes.cxx:810 AliAnalysisTaskMuonFakes.cxx:811 AliAnalysisTaskMuonFakes.cxx:812 AliAnalysisTaskMuonFakes.cxx:813 AliAnalysisTaskMuonFakes.cxx:814 AliAnalysisTaskMuonFakes.cxx:815 AliAnalysisTaskMuonFakes.cxx:816 AliAnalysisTaskMuonFakes.cxx:817 AliAnalysisTaskMuonFakes.cxx:818 AliAnalysisTaskMuonFakes.cxx:819 AliAnalysisTaskMuonFakes.cxx:820 AliAnalysisTaskMuonFakes.cxx:821 AliAnalysisTaskMuonFakes.cxx:822 AliAnalysisTaskMuonFakes.cxx:823 AliAnalysisTaskMuonFakes.cxx:824 AliAnalysisTaskMuonFakes.cxx:825 AliAnalysisTaskMuonFakes.cxx:826 AliAnalysisTaskMuonFakes.cxx:827 AliAnalysisTaskMuonFakes.cxx:828 AliAnalysisTaskMuonFakes.cxx:829 AliAnalysisTaskMuonFakes.cxx:830 AliAnalysisTaskMuonFakes.cxx:831 AliAnalysisTaskMuonFakes.cxx:832 AliAnalysisTaskMuonFakes.cxx:833 AliAnalysisTaskMuonFakes.cxx:834 AliAnalysisTaskMuonFakes.cxx:835 AliAnalysisTaskMuonFakes.cxx:836 AliAnalysisTaskMuonFakes.cxx:837 AliAnalysisTaskMuonFakes.cxx:838 AliAnalysisTaskMuonFakes.cxx:839 AliAnalysisTaskMuonFakes.cxx:840 AliAnalysisTaskMuonFakes.cxx:841 AliAnalysisTaskMuonFakes.cxx:842 AliAnalysisTaskMuonFakes.cxx:843 AliAnalysisTaskMuonFakes.cxx:844 AliAnalysisTaskMuonFakes.cxx:845 AliAnalysisTaskMuonFakes.cxx:846 AliAnalysisTaskMuonFakes.cxx:847 AliAnalysisTaskMuonFakes.cxx:848 AliAnalysisTaskMuonFakes.cxx:849 AliAnalysisTaskMuonFakes.cxx:850 AliAnalysisTaskMuonFakes.cxx:851 AliAnalysisTaskMuonFakes.cxx:852 AliAnalysisTaskMuonFakes.cxx:853 AliAnalysisTaskMuonFakes.cxx:854 AliAnalysisTaskMuonFakes.cxx:855 AliAnalysisTaskMuonFakes.cxx:856 AliAnalysisTaskMuonFakes.cxx:857 AliAnalysisTaskMuonFakes.cxx:858 AliAnalysisTaskMuonFakes.cxx:859 AliAnalysisTaskMuonFakes.cxx:860 AliAnalysisTaskMuonFakes.cxx:861 AliAnalysisTaskMuonFakes.cxx:862 AliAnalysisTaskMuonFakes.cxx:863 AliAnalysisTaskMuonFakes.cxx:864 AliAnalysisTaskMuonFakes.cxx:865 AliAnalysisTaskMuonFakes.cxx:866 AliAnalysisTaskMuonFakes.cxx:867 AliAnalysisTaskMuonFakes.cxx:868 AliAnalysisTaskMuonFakes.cxx:869 AliAnalysisTaskMuonFakes.cxx:870 AliAnalysisTaskMuonFakes.cxx:871 AliAnalysisTaskMuonFakes.cxx:872 AliAnalysisTaskMuonFakes.cxx:873 AliAnalysisTaskMuonFakes.cxx:874 AliAnalysisTaskMuonFakes.cxx:875 AliAnalysisTaskMuonFakes.cxx:876 AliAnalysisTaskMuonFakes.cxx:877 AliAnalysisTaskMuonFakes.cxx:878 AliAnalysisTaskMuonFakes.cxx:879 AliAnalysisTaskMuonFakes.cxx:880 AliAnalysisTaskMuonFakes.cxx:881 AliAnalysisTaskMuonFakes.cxx:882 AliAnalysisTaskMuonFakes.cxx:883 AliAnalysisTaskMuonFakes.cxx:884 AliAnalysisTaskMuonFakes.cxx:885 AliAnalysisTaskMuonFakes.cxx:886 AliAnalysisTaskMuonFakes.cxx:887 AliAnalysisTaskMuonFakes.cxx:888 AliAnalysisTaskMuonFakes.cxx:889 AliAnalysisTaskMuonFakes.cxx:890 AliAnalysisTaskMuonFakes.cxx:891 AliAnalysisTaskMuonFakes.cxx:892 AliAnalysisTaskMuonFakes.cxx:893 AliAnalysisTaskMuonFakes.cxx:894 AliAnalysisTaskMuonFakes.cxx:895 AliAnalysisTaskMuonFakes.cxx:896 AliAnalysisTaskMuonFakes.cxx:897 AliAnalysisTaskMuonFakes.cxx:898 AliAnalysisTaskMuonFakes.cxx:899 AliAnalysisTaskMuonFakes.cxx:900 AliAnalysisTaskMuonFakes.cxx:901 AliAnalysisTaskMuonFakes.cxx:902 AliAnalysisTaskMuonFakes.cxx:903 AliAnalysisTaskMuonFakes.cxx:904 AliAnalysisTaskMuonFakes.cxx:905 AliAnalysisTaskMuonFakes.cxx:906 AliAnalysisTaskMuonFakes.cxx:907 AliAnalysisTaskMuonFakes.cxx:908 AliAnalysisTaskMuonFakes.cxx:909 AliAnalysisTaskMuonFakes.cxx:910 AliAnalysisTaskMuonFakes.cxx:911 AliAnalysisTaskMuonFakes.cxx:912 AliAnalysisTaskMuonFakes.cxx:913 AliAnalysisTaskMuonFakes.cxx:914 AliAnalysisTaskMuonFakes.cxx:915 AliAnalysisTaskMuonFakes.cxx:916 AliAnalysisTaskMuonFakes.cxx:917 AliAnalysisTaskMuonFakes.cxx:918 AliAnalysisTaskMuonFakes.cxx:919 AliAnalysisTaskMuonFakes.cxx:920 AliAnalysisTaskMuonFakes.cxx:921 AliAnalysisTaskMuonFakes.cxx:922 AliAnalysisTaskMuonFakes.cxx:923 AliAnalysisTaskMuonFakes.cxx:924 AliAnalysisTaskMuonFakes.cxx:925 AliAnalysisTaskMuonFakes.cxx:926 AliAnalysisTaskMuonFakes.cxx:927 AliAnalysisTaskMuonFakes.cxx:928 AliAnalysisTaskMuonFakes.cxx:929 AliAnalysisTaskMuonFakes.cxx:930 AliAnalysisTaskMuonFakes.cxx:931 AliAnalysisTaskMuonFakes.cxx:932 AliAnalysisTaskMuonFakes.cxx:933 AliAnalysisTaskMuonFakes.cxx:934 AliAnalysisTaskMuonFakes.cxx:935 AliAnalysisTaskMuonFakes.cxx:936 AliAnalysisTaskMuonFakes.cxx:937 AliAnalysisTaskMuonFakes.cxx:938 AliAnalysisTaskMuonFakes.cxx:939 AliAnalysisTaskMuonFakes.cxx:940 AliAnalysisTaskMuonFakes.cxx:941 AliAnalysisTaskMuonFakes.cxx:942 AliAnalysisTaskMuonFakes.cxx:943 AliAnalysisTaskMuonFakes.cxx:944 AliAnalysisTaskMuonFakes.cxx:945 AliAnalysisTaskMuonFakes.cxx:946 AliAnalysisTaskMuonFakes.cxx:947 AliAnalysisTaskMuonFakes.cxx:948 AliAnalysisTaskMuonFakes.cxx:949 AliAnalysisTaskMuonFakes.cxx:950 AliAnalysisTaskMuonFakes.cxx:951 AliAnalysisTaskMuonFakes.cxx:952 AliAnalysisTaskMuonFakes.cxx:953 AliAnalysisTaskMuonFakes.cxx:954 AliAnalysisTaskMuonFakes.cxx:955 AliAnalysisTaskMuonFakes.cxx:956 AliAnalysisTaskMuonFakes.cxx:957 AliAnalysisTaskMuonFakes.cxx:958 AliAnalysisTaskMuonFakes.cxx:959 AliAnalysisTaskMuonFakes.cxx:960 AliAnalysisTaskMuonFakes.cxx:961 AliAnalysisTaskMuonFakes.cxx:962 AliAnalysisTaskMuonFakes.cxx:963 AliAnalysisTaskMuonFakes.cxx:964 AliAnalysisTaskMuonFakes.cxx:965 AliAnalysisTaskMuonFakes.cxx:966 AliAnalysisTaskMuonFakes.cxx:967 AliAnalysisTaskMuonFakes.cxx:968 AliAnalysisTaskMuonFakes.cxx:969 AliAnalysisTaskMuonFakes.cxx:970 AliAnalysisTaskMuonFakes.cxx:971 AliAnalysisTaskMuonFakes.cxx:972 AliAnalysisTaskMuonFakes.cxx:973 AliAnalysisTaskMuonFakes.cxx:974 AliAnalysisTaskMuonFakes.cxx:975 AliAnalysisTaskMuonFakes.cxx:976 AliAnalysisTaskMuonFakes.cxx:977 AliAnalysisTaskMuonFakes.cxx:978 AliAnalysisTaskMuonFakes.cxx:979 AliAnalysisTaskMuonFakes.cxx:980 AliAnalysisTaskMuonFakes.cxx:981 AliAnalysisTaskMuonFakes.cxx:982 AliAnalysisTaskMuonFakes.cxx:983 AliAnalysisTaskMuonFakes.cxx:984 AliAnalysisTaskMuonFakes.cxx:985 AliAnalysisTaskMuonFakes.cxx:986 AliAnalysisTaskMuonFakes.cxx:987 AliAnalysisTaskMuonFakes.cxx:988 AliAnalysisTaskMuonFakes.cxx:989 AliAnalysisTaskMuonFakes.cxx:990 AliAnalysisTaskMuonFakes.cxx:991 AliAnalysisTaskMuonFakes.cxx:992 AliAnalysisTaskMuonFakes.cxx:993 AliAnalysisTaskMuonFakes.cxx:994 AliAnalysisTaskMuonFakes.cxx:995 AliAnalysisTaskMuonFakes.cxx:996 AliAnalysisTaskMuonFakes.cxx:997 AliAnalysisTaskMuonFakes.cxx:998 AliAnalysisTaskMuonFakes.cxx:999 AliAnalysisTaskMuonFakes.cxx:1000 AliAnalysisTaskMuonFakes.cxx:1001 AliAnalysisTaskMuonFakes.cxx:1002 AliAnalysisTaskMuonFakes.cxx:1003 AliAnalysisTaskMuonFakes.cxx:1004 AliAnalysisTaskMuonFakes.cxx:1005 AliAnalysisTaskMuonFakes.cxx:1006 AliAnalysisTaskMuonFakes.cxx:1007 AliAnalysisTaskMuonFakes.cxx:1008 AliAnalysisTaskMuonFakes.cxx:1009 AliAnalysisTaskMuonFakes.cxx:1010 AliAnalysisTaskMuonFakes.cxx:1011 AliAnalysisTaskMuonFakes.cxx:1012 AliAnalysisTaskMuonFakes.cxx:1013 AliAnalysisTaskMuonFakes.cxx:1014 AliAnalysisTaskMuonFakes.cxx:1015 AliAnalysisTaskMuonFakes.cxx:1016 AliAnalysisTaskMuonFakes.cxx:1017 AliAnalysisTaskMuonFakes.cxx:1018 AliAnalysisTaskMuonFakes.cxx:1019 AliAnalysisTaskMuonFakes.cxx:1020 AliAnalysisTaskMuonFakes.cxx:1021 AliAnalysisTaskMuonFakes.cxx:1022 AliAnalysisTaskMuonFakes.cxx:1023 AliAnalysisTaskMuonFakes.cxx:1024 AliAnalysisTaskMuonFakes.cxx:1025 AliAnalysisTaskMuonFakes.cxx:1026 AliAnalysisTaskMuonFakes.cxx:1027 AliAnalysisTaskMuonFakes.cxx:1028 AliAnalysisTaskMuonFakes.cxx:1029 AliAnalysisTaskMuonFakes.cxx:1030 AliAnalysisTaskMuonFakes.cxx:1031 AliAnalysisTaskMuonFakes.cxx:1032 AliAnalysisTaskMuonFakes.cxx:1033 AliAnalysisTaskMuonFakes.cxx:1034 AliAnalysisTaskMuonFakes.cxx:1035 AliAnalysisTaskMuonFakes.cxx:1036 AliAnalysisTaskMuonFakes.cxx:1037 AliAnalysisTaskMuonFakes.cxx:1038 AliAnalysisTaskMuonFakes.cxx:1039 AliAnalysisTaskMuonFakes.cxx:1040 AliAnalysisTaskMuonFakes.cxx:1041 AliAnalysisTaskMuonFakes.cxx:1042 AliAnalysisTaskMuonFakes.cxx:1043 AliAnalysisTaskMuonFakes.cxx:1044 AliAnalysisTaskMuonFakes.cxx:1045 AliAnalysisTaskMuonFakes.cxx:1046 AliAnalysisTaskMuonFakes.cxx:1047 AliAnalysisTaskMuonFakes.cxx:1048 AliAnalysisTaskMuonFakes.cxx:1049 AliAnalysisTaskMuonFakes.cxx:1050 AliAnalysisTaskMuonFakes.cxx:1051 AliAnalysisTaskMuonFakes.cxx:1052 AliAnalysisTaskMuonFakes.cxx:1053 AliAnalysisTaskMuonFakes.cxx:1054 AliAnalysisTaskMuonFakes.cxx:1055 AliAnalysisTaskMuonFakes.cxx:1056 AliAnalysisTaskMuonFakes.cxx:1057 AliAnalysisTaskMuonFakes.cxx:1058 AliAnalysisTaskMuonFakes.cxx:1059 AliAnalysisTaskMuonFakes.cxx:1060 AliAnalysisTaskMuonFakes.cxx:1061 AliAnalysisTaskMuonFakes.cxx:1062 AliAnalysisTaskMuonFakes.cxx:1063 AliAnalysisTaskMuonFakes.cxx:1064 AliAnalysisTaskMuonFakes.cxx:1065 AliAnalysisTaskMuonFakes.cxx:1066 AliAnalysisTaskMuonFakes.cxx:1067 AliAnalysisTaskMuonFakes.cxx:1068 AliAnalysisTaskMuonFakes.cxx:1069 AliAnalysisTaskMuonFakes.cxx:1070 AliAnalysisTaskMuonFakes.cxx:1071 AliAnalysisTaskMuonFakes.cxx:1072 AliAnalysisTaskMuonFakes.cxx:1073 AliAnalysisTaskMuonFakes.cxx:1074 AliAnalysisTaskMuonFakes.cxx:1075 AliAnalysisTaskMuonFakes.cxx:1076 AliAnalysisTaskMuonFakes.cxx:1077 AliAnalysisTaskMuonFakes.cxx:1078 AliAnalysisTaskMuonFakes.cxx:1079 AliAnalysisTaskMuonFakes.cxx:1080 AliAnalysisTaskMuonFakes.cxx:1081 AliAnalysisTaskMuonFakes.cxx:1082 AliAnalysisTaskMuonFakes.cxx:1083 AliAnalysisTaskMuonFakes.cxx:1084 AliAnalysisTaskMuonFakes.cxx:1085 AliAnalysisTaskMuonFakes.cxx:1086 AliAnalysisTaskMuonFakes.cxx:1087 AliAnalysisTaskMuonFakes.cxx:1088 AliAnalysisTaskMuonFakes.cxx:1089 AliAnalysisTaskMuonFakes.cxx:1090 AliAnalysisTaskMuonFakes.cxx:1091 AliAnalysisTaskMuonFakes.cxx:1092 AliAnalysisTaskMuonFakes.cxx:1093 AliAnalysisTaskMuonFakes.cxx:1094 AliAnalysisTaskMuonFakes.cxx:1095 AliAnalysisTaskMuonFakes.cxx:1096 AliAnalysisTaskMuonFakes.cxx:1097 AliAnalysisTaskMuonFakes.cxx:1098 AliAnalysisTaskMuonFakes.cxx:1099 AliAnalysisTaskMuonFakes.cxx:1100 AliAnalysisTaskMuonFakes.cxx:1101 AliAnalysisTaskMuonFakes.cxx:1102 AliAnalysisTaskMuonFakes.cxx:1103 AliAnalysisTaskMuonFakes.cxx:1104 AliAnalysisTaskMuonFakes.cxx:1105 AliAnalysisTaskMuonFakes.cxx:1106 AliAnalysisTaskMuonFakes.cxx:1107 AliAnalysisTaskMuonFakes.cxx:1108 AliAnalysisTaskMuonFakes.cxx:1109 AliAnalysisTaskMuonFakes.cxx:1110 AliAnalysisTaskMuonFakes.cxx:1111 AliAnalysisTaskMuonFakes.cxx:1112 AliAnalysisTaskMuonFakes.cxx:1113 AliAnalysisTaskMuonFakes.cxx:1114 AliAnalysisTaskMuonFakes.cxx:1115 AliAnalysisTaskMuonFakes.cxx:1116 AliAnalysisTaskMuonFakes.cxx:1117 AliAnalysisTaskMuonFakes.cxx:1118 AliAnalysisTaskMuonFakes.cxx:1119 AliAnalysisTaskMuonFakes.cxx:1120 AliAnalysisTaskMuonFakes.cxx:1121 AliAnalysisTaskMuonFakes.cxx:1122 AliAnalysisTaskMuonFakes.cxx:1123 AliAnalysisTaskMuonFakes.cxx:1124 AliAnalysisTaskMuonFakes.cxx:1125 AliAnalysisTaskMuonFakes.cxx:1126 AliAnalysisTaskMuonFakes.cxx:1127 AliAnalysisTaskMuonFakes.cxx:1128 AliAnalysisTaskMuonFakes.cxx:1129 AliAnalysisTaskMuonFakes.cxx:1130 AliAnalysisTaskMuonFakes.cxx:1131 AliAnalysisTaskMuonFakes.cxx:1132 AliAnalysisTaskMuonFakes.cxx:1133 AliAnalysisTaskMuonFakes.cxx:1134 AliAnalysisTaskMuonFakes.cxx:1135 AliAnalysisTaskMuonFakes.cxx:1136 AliAnalysisTaskMuonFakes.cxx:1137 AliAnalysisTaskMuonFakes.cxx:1138 AliAnalysisTaskMuonFakes.cxx:1139 AliAnalysisTaskMuonFakes.cxx:1140 AliAnalysisTaskMuonFakes.cxx:1141 AliAnalysisTaskMuonFakes.cxx:1142 AliAnalysisTaskMuonFakes.cxx:1143 AliAnalysisTaskMuonFakes.cxx:1144 AliAnalysisTaskMuonFakes.cxx:1145 AliAnalysisTaskMuonFakes.cxx:1146 AliAnalysisTaskMuonFakes.cxx:1147 AliAnalysisTaskMuonFakes.cxx:1148 AliAnalysisTaskMuonFakes.cxx:1149 AliAnalysisTaskMuonFakes.cxx:1150 AliAnalysisTaskMuonFakes.cxx:1151 AliAnalysisTaskMuonFakes.cxx:1152 AliAnalysisTaskMuonFakes.cxx:1153 AliAnalysisTaskMuonFakes.cxx:1154 AliAnalysisTaskMuonFakes.cxx:1155 AliAnalysisTaskMuonFakes.cxx:1156 AliAnalysisTaskMuonFakes.cxx:1157 AliAnalysisTaskMuonFakes.cxx:1158 AliAnalysisTaskMuonFakes.cxx:1159 AliAnalysisTaskMuonFakes.cxx:1160 AliAnalysisTaskMuonFakes.cxx:1161 AliAnalysisTaskMuonFakes.cxx:1162 AliAnalysisTaskMuonFakes.cxx:1163 AliAnalysisTaskMuonFakes.cxx:1164 AliAnalysisTaskMuonFakes.cxx:1165 AliAnalysisTaskMuonFakes.cxx:1166 AliAnalysisTaskMuonFakes.cxx:1167 AliAnalysisTaskMuonFakes.cxx:1168 AliAnalysisTaskMuonFakes.cxx:1169 AliAnalysisTaskMuonFakes.cxx:1170 AliAnalysisTaskMuonFakes.cxx:1171 AliAnalysisTaskMuonFakes.cxx:1172 AliAnalysisTaskMuonFakes.cxx:1173 AliAnalysisTaskMuonFakes.cxx:1174 AliAnalysisTaskMuonFakes.cxx:1175 AliAnalysisTaskMuonFakes.cxx:1176 AliAnalysisTaskMuonFakes.cxx:1177 AliAnalysisTaskMuonFakes.cxx:1178 AliAnalysisTaskMuonFakes.cxx:1179 AliAnalysisTaskMuonFakes.cxx:1180 AliAnalysisTaskMuonFakes.cxx:1181 AliAnalysisTaskMuonFakes.cxx:1182 AliAnalysisTaskMuonFakes.cxx:1183 AliAnalysisTaskMuonFakes.cxx:1184 AliAnalysisTaskMuonFakes.cxx:1185 AliAnalysisTaskMuonFakes.cxx:1186 AliAnalysisTaskMuonFakes.cxx:1187 AliAnalysisTaskMuonFakes.cxx:1188 AliAnalysisTaskMuonFakes.cxx:1189 AliAnalysisTaskMuonFakes.cxx:1190 AliAnalysisTaskMuonFakes.cxx:1191 AliAnalysisTaskMuonFakes.cxx:1192 AliAnalysisTaskMuonFakes.cxx:1193 AliAnalysisTaskMuonFakes.cxx:1194 AliAnalysisTaskMuonFakes.cxx:1195 AliAnalysisTaskMuonFakes.cxx:1196 AliAnalysisTaskMuonFakes.cxx:1197 AliAnalysisTaskMuonFakes.cxx:1198 AliAnalysisTaskMuonFakes.cxx:1199 AliAnalysisTaskMuonFakes.cxx:1200 AliAnalysisTaskMuonFakes.cxx:1201 AliAnalysisTaskMuonFakes.cxx:1202 AliAnalysisTaskMuonFakes.cxx:1203 AliAnalysisTaskMuonFakes.cxx:1204 AliAnalysisTaskMuonFakes.cxx:1205 AliAnalysisTaskMuonFakes.cxx:1206 AliAnalysisTaskMuonFakes.cxx:1207 AliAnalysisTaskMuonFakes.cxx:1208 AliAnalysisTaskMuonFakes.cxx:1209 AliAnalysisTaskMuonFakes.cxx:1210 AliAnalysisTaskMuonFakes.cxx:1211 AliAnalysisTaskMuonFakes.cxx:1212 AliAnalysisTaskMuonFakes.cxx:1213 AliAnalysisTaskMuonFakes.cxx:1214 AliAnalysisTaskMuonFakes.cxx:1215 AliAnalysisTaskMuonFakes.cxx:1216 AliAnalysisTaskMuonFakes.cxx:1217 AliAnalysisTaskMuonFakes.cxx:1218 AliAnalysisTaskMuonFakes.cxx:1219 AliAnalysisTaskMuonFakes.cxx:1220 AliAnalysisTaskMuonFakes.cxx:1221 AliAnalysisTaskMuonFakes.cxx:1222 AliAnalysisTaskMuonFakes.cxx:1223 AliAnalysisTaskMuonFakes.cxx:1224 AliAnalysisTaskMuonFakes.cxx:1225 AliAnalysisTaskMuonFakes.cxx:1226 AliAnalysisTaskMuonFakes.cxx:1227 AliAnalysisTaskMuonFakes.cxx:1228 AliAnalysisTaskMuonFakes.cxx:1229 AliAnalysisTaskMuonFakes.cxx:1230 AliAnalysisTaskMuonFakes.cxx:1231 AliAnalysisTaskMuonFakes.cxx:1232 AliAnalysisTaskMuonFakes.cxx:1233 AliAnalysisTaskMuonFakes.cxx:1234 AliAnalysisTaskMuonFakes.cxx:1235 AliAnalysisTaskMuonFakes.cxx:1236 AliAnalysisTaskMuonFakes.cxx:1237 AliAnalysisTaskMuonFakes.cxx:1238 AliAnalysisTaskMuonFakes.cxx:1239 AliAnalysisTaskMuonFakes.cxx:1240 AliAnalysisTaskMuonFakes.cxx:1241 AliAnalysisTaskMuonFakes.cxx:1242 AliAnalysisTaskMuonFakes.cxx:1243 AliAnalysisTaskMuonFakes.cxx:1244 AliAnalysisTaskMuonFakes.cxx:1245 AliAnalysisTaskMuonFakes.cxx:1246 AliAnalysisTaskMuonFakes.cxx:1247 AliAnalysisTaskMuonFakes.cxx:1248 AliAnalysisTaskMuonFakes.cxx:1249 AliAnalysisTaskMuonFakes.cxx:1250 AliAnalysisTaskMuonFakes.cxx:1251 AliAnalysisTaskMuonFakes.cxx:1252 AliAnalysisTaskMuonFakes.cxx:1253 AliAnalysisTaskMuonFakes.cxx:1254 AliAnalysisTaskMuonFakes.cxx:1255 AliAnalysisTaskMuonFakes.cxx:1256 AliAnalysisTaskMuonFakes.cxx:1257 AliAnalysisTaskMuonFakes.cxx:1258 AliAnalysisTaskMuonFakes.cxx:1259 AliAnalysisTaskMuonFakes.cxx:1260 AliAnalysisTaskMuonFakes.cxx:1261 AliAnalysisTaskMuonFakes.cxx:1262 AliAnalysisTaskMuonFakes.cxx:1263 AliAnalysisTaskMuonFakes.cxx:1264 AliAnalysisTaskMuonFakes.cxx:1265 AliAnalysisTaskMuonFakes.cxx:1266 AliAnalysisTaskMuonFakes.cxx:1267 AliAnalysisTaskMuonFakes.cxx:1268 AliAnalysisTaskMuonFakes.cxx:1269 AliAnalysisTaskMuonFakes.cxx:1270 AliAnalysisTaskMuonFakes.cxx:1271 AliAnalysisTaskMuonFakes.cxx:1272 AliAnalysisTaskMuonFakes.cxx:1273 AliAnalysisTaskMuonFakes.cxx:1274 AliAnalysisTaskMuonFakes.cxx:1275 AliAnalysisTaskMuonFakes.cxx:1276 AliAnalysisTaskMuonFakes.cxx:1277 AliAnalysisTaskMuonFakes.cxx:1278 AliAnalysisTaskMuonFakes.cxx:1279 AliAnalysisTaskMuonFakes.cxx:1280 AliAnalysisTaskMuonFakes.cxx:1281 AliAnalysisTaskMuonFakes.cxx:1282 AliAnalysisTaskMuonFakes.cxx:1283 AliAnalysisTaskMuonFakes.cxx:1284 AliAnalysisTaskMuonFakes.cxx:1285 AliAnalysisTaskMuonFakes.cxx:1286 AliAnalysisTaskMuonFakes.cxx:1287 AliAnalysisTaskMuonFakes.cxx:1288 AliAnalysisTaskMuonFakes.cxx:1289 AliAnalysisTaskMuonFakes.cxx:1290 AliAnalysisTaskMuonFakes.cxx:1291 AliAnalysisTaskMuonFakes.cxx:1292 AliAnalysisTaskMuonFakes.cxx:1293 AliAnalysisTaskMuonFakes.cxx:1294 AliAnalysisTaskMuonFakes.cxx:1295 AliAnalysisTaskMuonFakes.cxx:1296 AliAnalysisTaskMuonFakes.cxx:1297 AliAnalysisTaskMuonFakes.cxx:1298 AliAnalysisTaskMuonFakes.cxx:1299 AliAnalysisTaskMuonFakes.cxx:1300 AliAnalysisTaskMuonFakes.cxx:1301 AliAnalysisTaskMuonFakes.cxx:1302 AliAnalysisTaskMuonFakes.cxx:1303 AliAnalysisTaskMuonFakes.cxx:1304 AliAnalysisTaskMuonFakes.cxx:1305 AliAnalysisTaskMuonFakes.cxx:1306 AliAnalysisTaskMuonFakes.cxx:1307 AliAnalysisTaskMuonFakes.cxx:1308 AliAnalysisTaskMuonFakes.cxx:1309 AliAnalysisTaskMuonFakes.cxx:1310 AliAnalysisTaskMuonFakes.cxx:1311 AliAnalysisTaskMuonFakes.cxx:1312 AliAnalysisTaskMuonFakes.cxx:1313 AliAnalysisTaskMuonFakes.cxx:1314 AliAnalysisTaskMuonFakes.cxx:1315 AliAnalysisTaskMuonFakes.cxx:1316 AliAnalysisTaskMuonFakes.cxx:1317 AliAnalysisTaskMuonFakes.cxx:1318 AliAnalysisTaskMuonFakes.cxx:1319 AliAnalysisTaskMuonFakes.cxx:1320 AliAnalysisTaskMuonFakes.cxx:1321 AliAnalysisTaskMuonFakes.cxx:1322 AliAnalysisTaskMuonFakes.cxx:1323 AliAnalysisTaskMuonFakes.cxx:1324 AliAnalysisTaskMuonFakes.cxx:1325 AliAnalysisTaskMuonFakes.cxx:1326 AliAnalysisTaskMuonFakes.cxx:1327 AliAnalysisTaskMuonFakes.cxx:1328 AliAnalysisTaskMuonFakes.cxx:1329 AliAnalysisTaskMuonFakes.cxx:1330 AliAnalysisTaskMuonFakes.cxx:1331 AliAnalysisTaskMuonFakes.cxx:1332 AliAnalysisTaskMuonFakes.cxx:1333 AliAnalysisTaskMuonFakes.cxx:1334 AliAnalysisTaskMuonFakes.cxx:1335 AliAnalysisTaskMuonFakes.cxx:1336 AliAnalysisTaskMuonFakes.cxx:1337 AliAnalysisTaskMuonFakes.cxx:1338 AliAnalysisTaskMuonFakes.cxx:1339 AliAnalysisTaskMuonFakes.cxx:1340 AliAnalysisTaskMuonFakes.cxx:1341 AliAnalysisTaskMuonFakes.cxx:1342 AliAnalysisTaskMuonFakes.cxx:1343 AliAnalysisTaskMuonFakes.cxx:1344 AliAnalysisTaskMuonFakes.cxx:1345 AliAnalysisTaskMuonFakes.cxx:1346 AliAnalysisTaskMuonFakes.cxx:1347 AliAnalysisTaskMuonFakes.cxx:1348 AliAnalysisTaskMuonFakes.cxx:1349 AliAnalysisTaskMuonFakes.cxx:1350 AliAnalysisTaskMuonFakes.cxx:1351 AliAnalysisTaskMuonFakes.cxx:1352 AliAnalysisTaskMuonFakes.cxx:1353 AliAnalysisTaskMuonFakes.cxx:1354 AliAnalysisTaskMuonFakes.cxx:1355 AliAnalysisTaskMuonFakes.cxx:1356 AliAnalysisTaskMuonFakes.cxx:1357 AliAnalysisTaskMuonFakes.cxx:1358 AliAnalysisTaskMuonFakes.cxx:1359 AliAnalysisTaskMuonFakes.cxx:1360 AliAnalysisTaskMuonFakes.cxx:1361 AliAnalysisTaskMuonFakes.cxx:1362 AliAnalysisTaskMuonFakes.cxx:1363 AliAnalysisTaskMuonFakes.cxx:1364 AliAnalysisTaskMuonFakes.cxx:1365 AliAnalysisTaskMuonFakes.cxx:1366 AliAnalysisTaskMuonFakes.cxx:1367 AliAnalysisTaskMuonFakes.cxx:1368 AliAnalysisTaskMuonFakes.cxx:1369 AliAnalysisTaskMuonFakes.cxx:1370 AliAnalysisTaskMuonFakes.cxx:1371 AliAnalysisTaskMuonFakes.cxx:1372 AliAnalysisTaskMuonFakes.cxx:1373 AliAnalysisTaskMuonFakes.cxx:1374 AliAnalysisTaskMuonFakes.cxx:1375 AliAnalysisTaskMuonFakes.cxx:1376 AliAnalysisTaskMuonFakes.cxx:1377 AliAnalysisTaskMuonFakes.cxx:1378 AliAnalysisTaskMuonFakes.cxx:1379 AliAnalysisTaskMuonFakes.cxx:1380 AliAnalysisTaskMuonFakes.cxx:1381 AliAnalysisTaskMuonFakes.cxx:1382 AliAnalysisTaskMuonFakes.cxx:1383 AliAnalysisTaskMuonFakes.cxx:1384 AliAnalysisTaskMuonFakes.cxx:1385 AliAnalysisTaskMuonFakes.cxx:1386 AliAnalysisTaskMuonFakes.cxx:1387 AliAnalysisTaskMuonFakes.cxx:1388 AliAnalysisTaskMuonFakes.cxx:1389 AliAnalysisTaskMuonFakes.cxx:1390 AliAnalysisTaskMuonFakes.cxx:1391 AliAnalysisTaskMuonFakes.cxx:1392 AliAnalysisTaskMuonFakes.cxx:1393 AliAnalysisTaskMuonFakes.cxx:1394 AliAnalysisTaskMuonFakes.cxx:1395 AliAnalysisTaskMuonFakes.cxx:1396 AliAnalysisTaskMuonFakes.cxx:1397 AliAnalysisTaskMuonFakes.cxx:1398 AliAnalysisTaskMuonFakes.cxx:1399 AliAnalysisTaskMuonFakes.cxx:1400 AliAnalysisTaskMuonFakes.cxx:1401 AliAnalysisTaskMuonFakes.cxx:1402 AliAnalysisTaskMuonFakes.cxx:1403 AliAnalysisTaskMuonFakes.cxx:1404 AliAnalysisTaskMuonFakes.cxx:1405 AliAnalysisTaskMuonFakes.cxx:1406 AliAnalysisTaskMuonFakes.cxx:1407 AliAnalysisTaskMuonFakes.cxx:1408 AliAnalysisTaskMuonFakes.cxx:1409 AliAnalysisTaskMuonFakes.cxx:1410 AliAnalysisTaskMuonFakes.cxx:1411 AliAnalysisTaskMuonFakes.cxx:1412 AliAnalysisTaskMuonFakes.cxx:1413 AliAnalysisTaskMuonFakes.cxx:1414 AliAnalysisTaskMuonFakes.cxx:1415 AliAnalysisTaskMuonFakes.cxx:1416 AliAnalysisTaskMuonFakes.cxx:1417 AliAnalysisTaskMuonFakes.cxx:1418 AliAnalysisTaskMuonFakes.cxx:1419 AliAnalysisTaskMuonFakes.cxx:1420 AliAnalysisTaskMuonFakes.cxx:1421 AliAnalysisTaskMuonFakes.cxx:1422 AliAnalysisTaskMuonFakes.cxx:1423 AliAnalysisTaskMuonFakes.cxx:1424 AliAnalysisTaskMuonFakes.cxx:1425 AliAnalysisTaskMuonFakes.cxx:1426 AliAnalysisTaskMuonFakes.cxx:1427 AliAnalysisTaskMuonFakes.cxx:1428 AliAnalysisTaskMuonFakes.cxx:1429 AliAnalysisTaskMuonFakes.cxx:1430 AliAnalysisTaskMuonFakes.cxx:1431 AliAnalysisTaskMuonFakes.cxx:1432 AliAnalysisTaskMuonFakes.cxx:1433 AliAnalysisTaskMuonFakes.cxx:1434 AliAnalysisTaskMuonFakes.cxx:1435 AliAnalysisTaskMuonFakes.cxx:1436 AliAnalysisTaskMuonFakes.cxx:1437 AliAnalysisTaskMuonFakes.cxx:1438 AliAnalysisTaskMuonFakes.cxx:1439 AliAnalysisTaskMuonFakes.cxx:1440 AliAnalysisTaskMuonFakes.cxx:1441 AliAnalysisTaskMuonFakes.cxx:1442 AliAnalysisTaskMuonFakes.cxx:1443 AliAnalysisTaskMuonFakes.cxx:1444 AliAnalysisTaskMuonFakes.cxx:1445 AliAnalysisTaskMuonFakes.cxx:1446 AliAnalysisTaskMuonFakes.cxx:1447 AliAnalysisTaskMuonFakes.cxx:1448 AliAnalysisTaskMuonFakes.cxx:1449 AliAnalysisTaskMuonFakes.cxx:1450 AliAnalysisTaskMuonFakes.cxx:1451 AliAnalysisTaskMuonFakes.cxx:1452 AliAnalysisTaskMuonFakes.cxx:1453 AliAnalysisTaskMuonFakes.cxx:1454 AliAnalysisTaskMuonFakes.cxx:1455 AliAnalysisTaskMuonFakes.cxx:1456 AliAnalysisTaskMuonFakes.cxx:1457 AliAnalysisTaskMuonFakes.cxx:1458 AliAnalysisTaskMuonFakes.cxx:1459 AliAnalysisTaskMuonFakes.cxx:1460 AliAnalysisTaskMuonFakes.cxx:1461 AliAnalysisTaskMuonFakes.cxx:1462 AliAnalysisTaskMuonFakes.cxx:1463 AliAnalysisTaskMuonFakes.cxx:1464 AliAnalysisTaskMuonFakes.cxx:1465 AliAnalysisTaskMuonFakes.cxx:1466 AliAnalysisTaskMuonFakes.cxx:1467 AliAnalysisTaskMuonFakes.cxx:1468 AliAnalysisTaskMuonFakes.cxx:1469 AliAnalysisTaskMuonFakes.cxx:1470 AliAnalysisTaskMuonFakes.cxx:1471 AliAnalysisTaskMuonFakes.cxx:1472 AliAnalysisTaskMuonFakes.cxx:1473 AliAnalysisTaskMuonFakes.cxx:1474 AliAnalysisTaskMuonFakes.cxx:1475 AliAnalysisTaskMuonFakes.cxx:1476 AliAnalysisTaskMuonFakes.cxx:1477 AliAnalysisTaskMuonFakes.cxx:1478 AliAnalysisTaskMuonFakes.cxx:1479 AliAnalysisTaskMuonFakes.cxx:1480 AliAnalysisTaskMuonFakes.cxx:1481 AliAnalysisTaskMuonFakes.cxx:1482 AliAnalysisTaskMuonFakes.cxx:1483 AliAnalysisTaskMuonFakes.cxx:1484 AliAnalysisTaskMuonFakes.cxx:1485 AliAnalysisTaskMuonFakes.cxx:1486 AliAnalysisTaskMuonFakes.cxx:1487 AliAnalysisTaskMuonFakes.cxx:1488 AliAnalysisTaskMuonFakes.cxx:1489 AliAnalysisTaskMuonFakes.cxx:1490 AliAnalysisTaskMuonFakes.cxx:1491 AliAnalysisTaskMuonFakes.cxx:1492 AliAnalysisTaskMuonFakes.cxx:1493 AliAnalysisTaskMuonFakes.cxx:1494 AliAnalysisTaskMuonFakes.cxx:1495 AliAnalysisTaskMuonFakes.cxx:1496 AliAnalysisTaskMuonFakes.cxx:1497 AliAnalysisTaskMuonFakes.cxx:1498 AliAnalysisTaskMuonFakes.cxx:1499 AliAnalysisTaskMuonFakes.cxx:1500 AliAnalysisTaskMuonFakes.cxx:1501 AliAnalysisTaskMuonFakes.cxx:1502 AliAnalysisTaskMuonFakes.cxx:1503 AliAnalysisTaskMuonFakes.cxx:1504 AliAnalysisTaskMuonFakes.cxx:1505 AliAnalysisTaskMuonFakes.cxx:1506 AliAnalysisTaskMuonFakes.cxx:1507 AliAnalysisTaskMuonFakes.cxx:1508 AliAnalysisTaskMuonFakes.cxx:1509 AliAnalysisTaskMuonFakes.cxx:1510 AliAnalysisTaskMuonFakes.cxx:1511 AliAnalysisTaskMuonFakes.cxx:1512 AliAnalysisTaskMuonFakes.cxx:1513 AliAnalysisTaskMuonFakes.cxx:1514 AliAnalysisTaskMuonFakes.cxx:1515 AliAnalysisTaskMuonFakes.cxx:1516 AliAnalysisTaskMuonFakes.cxx:1517 AliAnalysisTaskMuonFakes.cxx:1518 AliAnalysisTaskMuonFakes.cxx:1519 AliAnalysisTaskMuonFakes.cxx:1520 AliAnalysisTaskMuonFakes.cxx:1521 AliAnalysisTaskMuonFakes.cxx:1522 AliAnalysisTaskMuonFakes.cxx:1523 AliAnalysisTaskMuonFakes.cxx:1524 AliAnalysisTaskMuonFakes.cxx:1525 AliAnalysisTaskMuonFakes.cxx:1526 AliAnalysisTaskMuonFakes.cxx:1527 AliAnalysisTaskMuonFakes.cxx:1528 AliAnalysisTaskMuonFakes.cxx:1529 AliAnalysisTaskMuonFakes.cxx:1530 AliAnalysisTaskMuonFakes.cxx:1531 AliAnalysisTaskMuonFakes.cxx:1532 AliAnalysisTaskMuonFakes.cxx:1533 AliAnalysisTaskMuonFakes.cxx:1534 AliAnalysisTaskMuonFakes.cxx:1535 AliAnalysisTaskMuonFakes.cxx:1536 AliAnalysisTaskMuonFakes.cxx:1537 AliAnalysisTaskMuonFakes.cxx:1538 AliAnalysisTaskMuonFakes.cxx:1539 AliAnalysisTaskMuonFakes.cxx:1540 AliAnalysisTaskMuonFakes.cxx:1541 AliAnalysisTaskMuonFakes.cxx:1542 AliAnalysisTaskMuonFakes.cxx:1543 AliAnalysisTaskMuonFakes.cxx:1544 AliAnalysisTaskMuonFakes.cxx:1545 AliAnalysisTaskMuonFakes.cxx:1546 AliAnalysisTaskMuonFakes.cxx:1547 AliAnalysisTaskMuonFakes.cxx:1548 AliAnalysisTaskMuonFakes.cxx:1549 AliAnalysisTaskMuonFakes.cxx:1550 AliAnalysisTaskMuonFakes.cxx:1551 AliAnalysisTaskMuonFakes.cxx:1552 AliAnalysisTaskMuonFakes.cxx:1553 AliAnalysisTaskMuonFakes.cxx:1554 AliAnalysisTaskMuonFakes.cxx:1555 AliAnalysisTaskMuonFakes.cxx:1556 AliAnalysisTaskMuonFakes.cxx:1557 AliAnalysisTaskMuonFakes.cxx:1558 AliAnalysisTaskMuonFakes.cxx:1559 AliAnalysisTaskMuonFakes.cxx:1560 AliAnalysisTaskMuonFakes.cxx:1561 AliAnalysisTaskMuonFakes.cxx:1562 AliAnalysisTaskMuonFakes.cxx:1563 AliAnalysisTaskMuonFakes.cxx:1564 AliAnalysisTaskMuonFakes.cxx:1565 AliAnalysisTaskMuonFakes.cxx:1566 AliAnalysisTaskMuonFakes.cxx:1567 AliAnalysisTaskMuonFakes.cxx:1568 AliAnalysisTaskMuonFakes.cxx:1569 AliAnalysisTaskMuonFakes.cxx:1570 AliAnalysisTaskMuonFakes.cxx:1571 AliAnalysisTaskMuonFakes.cxx:1572 AliAnalysisTaskMuonFakes.cxx:1573 AliAnalysisTaskMuonFakes.cxx:1574 AliAnalysisTaskMuonFakes.cxx:1575 AliAnalysisTaskMuonFakes.cxx:1576 AliAnalysisTaskMuonFakes.cxx:1577 AliAnalysisTaskMuonFakes.cxx:1578 AliAnalysisTaskMuonFakes.cxx:1579 AliAnalysisTaskMuonFakes.cxx:1580 AliAnalysisTaskMuonFakes.cxx:1581 AliAnalysisTaskMuonFakes.cxx:1582 AliAnalysisTaskMuonFakes.cxx:1583 AliAnalysisTaskMuonFakes.cxx:1584 AliAnalysisTaskMuonFakes.cxx:1585 AliAnalysisTaskMuonFakes.cxx:1586 AliAnalysisTaskMuonFakes.cxx:1587 AliAnalysisTaskMuonFakes.cxx:1588 AliAnalysisTaskMuonFakes.cxx:1589