#include "TChain.h"
#include "TList.h"
#include "TCanvas.h"
#include "TLorentzVector.h"
#include "TGraphErrors.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TArrayF.h"
#include "TF1.h"
#include "TRandom.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODInputHandler.h"
#include "AliGenEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliESDtrackCuts.h"
#include "AliLog.h"
#include "TH2D.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliPIDCombined.h"
#include "AliAnalysisTaskBF.h"
#include "AliBalance.h"
ClassImp(AliAnalysisTaskBF)
AliAnalysisTaskBF::AliAnalysisTaskBF(const char *name)
: AliAnalysisTaskSE(name),
fBalance(0),
fRunShuffling(kFALSE),
fShuffledBalance(0),
fList(0),
fListBF(0),
fListBFS(0),
fHistListPIDQA(0),
fHistEventStats(0),
fHistCentStats(0),
fHistTriggerStats(0),
fHistTrackStats(0),
fHistVx(0),
fHistVy(0),
fHistVz(0),
fHistClus(0),
fHistDCA(0),
fHistChi2(0),
fHistPt(0),
fHistEta(0),
fHistRapidity(0),
fHistPhi(0),
fHistPhiBefore(0),
fHistPhiAfter(0),
fHistPhiPos(0),
fHistPhiNeg(0),
fHistV0M(0),
fHistRefTracks(0),
fHistdEdxVsPTPCbeforePID(NULL),
fHistBetavsPTOFbeforePID(NULL),
fHistProbTPCvsPtbeforePID(NULL),
fHistProbTOFvsPtbeforePID(NULL),
fHistProbTPCTOFvsPtbeforePID(NULL),
fHistNSigmaTPCvsPtbeforePID(NULL),
fHistNSigmaTOFvsPtbeforePID(NULL),
fHistdEdxVsPTPCafterPID(NULL),
fHistBetavsPTOFafterPID(NULL),
fHistProbTPCvsPtafterPID(NULL),
fHistProbTOFvsPtafterPID(NULL),
fHistProbTPCTOFvsPtafterPID(NULL),
fHistNSigmaTPCvsPtafterPID(NULL),
fHistNSigmaTOFvsPtafterPID(NULL),
fPIDResponse(0x0),
fPIDCombined(0x0),
fParticleOfInterest(kPion),
fPidDetectorConfig(kTPCTOF),
fUsePID(kFALSE),
fUsePIDnSigma(kTRUE),
fUsePIDPropabilities(kFALSE),
fPIDNSigma(3.),
fMinAcceptedPIDProbability(0.8),
fESDtrackCuts(0),
fCentralityEstimator("V0M"),
fUseCentrality(kFALSE),
fCentralityPercentileMin(0.),
fCentralityPercentileMax(5.),
fImpactParameterMin(0.),
fImpactParameterMax(20.),
fUseMultiplicity(kFALSE),
fNumberOfAcceptedTracksMin(0),
fNumberOfAcceptedTracksMax(10000),
fHistNumberOfAcceptedTracks(0),
fUseOfflineTrigger(kFALSE),
fVxMax(0.3),
fVyMax(0.3),
fVzMax(10.),
fAODtrackCutBit(128),
fPtMin(0.3),
fPtMax(1.5),
fEtaMin(-0.8),
fEtaMax(-0.8),
fDCAxyCut(-1),
fDCAzCut(-1),
fTPCchi2Cut(-1),
fNClustersTPCCut(-1),
fAcceptanceParameterization(0),
fDifferentialV2(0),
fUseFlowAfterBurner(kFALSE),
fExcludeResonancesInMC(kFALSE),
fUseMCPdgCode(kFALSE),
fPDGCodeToBeAnalyzed(-1) {
DefineInput(0, TChain::Class());
DefineOutput(1, TList::Class());
DefineOutput(2, TList::Class());
DefineOutput(3, TList::Class());
DefineOutput(4, TList::Class());
}
AliAnalysisTaskBF::~AliAnalysisTaskBF() {
}
void AliAnalysisTaskBF::UserCreateOutputObjects() {
Bool_t oldStatus = TH1::AddDirectoryStatus();
TH1::AddDirectory(kFALSE);
if(!fBalance) {
fBalance = new AliBalance();
fBalance->SetAnalysisLevel("ESD");
fBalance->SetInterval(-1,-0.8,0.8,16,0.,1.6);
}
if(fRunShuffling) {
if(!fShuffledBalance) {
fShuffledBalance = new AliBalance();
fShuffledBalance->SetAnalysisLevel("ESD");
fShuffledBalance->SetInterval(-1,-0.8,0.8,16,0.,1.6);
}
}
fList = new TList();
fList->SetName("listQA");
fList->SetOwner();
fListBF = new TList();
fListBF->SetName("listBF");
fListBF->SetOwner();
if(fRunShuffling) {
fListBFS = new TList();
fListBFS->SetName("listBFShuffled");
fListBFS->SetOwner();
}
if(fUsePID) {
fHistListPIDQA = new TList();
fHistListPIDQA->SetName("listQAPID");
fHistListPIDQA->SetOwner();
}
TString gCutName[4] = {"Total","Offline trigger",
"Vertex","Analyzed"};
TString gAnalysisLevel = fBalance->GetAnalysisLevel();
if ((gAnalysisLevel == "ESD") || (gAnalysisLevel == "AOD") || (gAnalysisLevel == "MCESD")) {
fHistEventStats = new TH2D("fHistEventStats",
"Event statistics;;Centrality",
4,0.5,4.5, 100,0,100);
}
if (gAnalysisLevel == "MC"){
fHistEventStats = new TH2D("fHistEventStats",
"Event statistics;;Centrality",
4,0.5,4.5, 10000,0,15);
}
for(Int_t i = 1; i <= 4; i++)
fHistEventStats->GetXaxis()->SetBinLabel(i,gCutName[i-1].Data());
fList->Add(fHistEventStats);
TString gCentName[9] = {"V0M","FMD","TRK","TKL","CL0","CL1","V0MvsFMD","TKLvsV0M","ZEMvsZDC"};
fHistCentStats = new TH2F("fHistCentStats",
"Centrality statistics;;Cent percentile",
9,-0.5,8.5,220,-5,105);
for(Int_t i = 1; i <= 9; i++)
fHistCentStats->GetXaxis()->SetBinLabel(i,gCentName[i-1].Data());
fList->Add(fHistCentStats);
fHistTriggerStats = new TH1F("fHistTriggerStats","Trigger statistics;TriggerBit;N_{events}",130,0,130);
fList->Add(fHistTriggerStats);
fHistTrackStats = new TH1F("fHistTrackStats","Event statistics;TrackFilterBit;N_{events}",130,0,130);
fList->Add(fHistTrackStats);
fHistNumberOfAcceptedTracks = new TH2D("fHistNumberOfAcceptedTracks",";N_{acc.};;Centrality",4001,-0.5,4000.5,100,0,100);
fList->Add(fHistNumberOfAcceptedTracks);
fHistVx = new TH1F("fHistVx","Primary vertex distribution - x coordinate;V_{x} (cm);Entries",100,-0.5,0.5);
fList->Add(fHistVx);
fHistVy = new TH1F("fHistVy","Primary vertex distribution - y coordinate;V_{y} (cm);Entries",100,-0.5,0.5);
fList->Add(fHistVy);
fHistVz = new TH1F("fHistVz","Primary vertex distribution - z coordinate;V_{z} (cm);Entries",100,-20.,20.);
fList->Add(fHistVz);
fHistClus = new TH2F("fHistClus","# Cluster (TPC vs. ITS)",10,0,10,200,0,200);
fList->Add(fHistClus);
fHistChi2 = new TH1F("fHistChi2","Chi2/NDF distribution",200,0,10);
fList->Add(fHistChi2);
fHistDCA = new TH2F("fHistDCA","DCA (xy vs. z)",400,-5,5,400,-5,5);
fList->Add(fHistDCA);
fHistPt = new TH1F("fHistPt","p_{T} distribution",200,0,10);
fList->Add(fHistPt);
fHistEta = new TH1F("fHistEta","#eta distribution",200,-2,2);
fList->Add(fHistEta);
fHistRapidity = new TH1F("fHistRapidity","y distribution",200,-2,2);
fList->Add(fHistRapidity);
fHistPhi = new TH1F("fHistPhi","#phi distribution",200,-20,380);
fList->Add(fHistPhi);
fHistPhiBefore = new TH1F("fHistPhiBefore","#phi distribution",200,0.,2*TMath::Pi());
fList->Add(fHistPhiBefore);
fHistPhiAfter = new TH1F("fHistPhiAfter","#phi distribution",200,0.,2*TMath::Pi());
fList->Add(fHistPhiAfter);
fHistPhiPos = new TH1F("fHistPhiPos","#phi distribution for positive particles",200,-20,380);
fList->Add(fHistPhiPos);
fHistPhiNeg = new TH1F("fHistPhiNeg","#phi distribution for negative particles",200,-20,380);
fList->Add(fHistPhiNeg);
fHistV0M = new TH2F("fHistV0M","V0 Multiplicity C vs. A",500, 0, 20000, 500, 0, 20000);
fList->Add(fHistV0M);
TString gRefTrackName[6] = {"tracks","tracksPos","tracksNeg","tracksTPConly","clusITS0","clusITS1"};
fHistRefTracks = new TH2F("fHistRefTracks","Nr of Ref tracks/event vs. ref track estimator;;Nr of tracks",6, 0, 6, 400, 0, 20000);
for(Int_t i = 1; i <= 6; i++)
fHistRefTracks->GetXaxis()->SetBinLabel(i,gRefTrackName[i-1].Data());
fList->Add(fHistRefTracks);
fList->Add(fBalance->GetQAHistHBTbefore());
fList->Add(fBalance->GetQAHistHBTafter());
fList->Add(fBalance->GetQAHistConversionbefore());
fList->Add(fBalance->GetQAHistConversionafter());
if(!fBalance->GetHistNp(0)){
AliWarning("Histograms not yet initialized! --> Will be done now");
AliWarning("--> Add 'gBalance->InitHistograms()' in your configBalanceFunction");
fBalance->InitHistograms();
}
if(fRunShuffling) {
if(!fShuffledBalance->GetHistNp(0)) {
AliWarning("Histograms (shuffling) not yet initialized! --> Will be done now");
AliWarning("--> Add 'gBalance->InitHistograms()' in your configBalanceFunction");
fShuffledBalance->InitHistograms();
}
}
for(Int_t a = 0; a < ANALYSIS_TYPES; a++){
fListBF->Add(fBalance->GetHistNp(a));
fListBF->Add(fBalance->GetHistNn(a));
fListBF->Add(fBalance->GetHistNpn(a));
fListBF->Add(fBalance->GetHistNnn(a));
fListBF->Add(fBalance->GetHistNpp(a));
fListBF->Add(fBalance->GetHistNnp(a));
if(fRunShuffling) {
fListBFS->Add(fShuffledBalance->GetHistNp(a));
fListBFS->Add(fShuffledBalance->GetHistNn(a));
fListBFS->Add(fShuffledBalance->GetHistNpn(a));
fListBFS->Add(fShuffledBalance->GetHistNnn(a));
fListBFS->Add(fShuffledBalance->GetHistNpp(a));
fListBFS->Add(fShuffledBalance->GetHistNnp(a));
}
}
if(fESDtrackCuts) fList->Add(fESDtrackCuts);
if(fUsePID) {
fPIDCombined = new AliPIDCombined();
fPIDCombined->SetDefaultTPCPriors();
fHistdEdxVsPTPCbeforePID = new TH2D ("dEdxVsPTPCbefore","dEdxVsPTPCbefore", 1000, -10.0, 10.0, 1000, 0, 1000);
fHistListPIDQA->Add(fHistdEdxVsPTPCbeforePID);
fHistBetavsPTOFbeforePID = new TH2D ("BetavsPTOFbefore","BetavsPTOFbefore", 1000, -10.0, 10., 1000, 0, 1.2);
fHistListPIDQA->Add(fHistBetavsPTOFbeforePID);
fHistProbTPCvsPtbeforePID = new TH2D ("ProbTPCvsPtbefore","ProbTPCvsPtbefore", 1000, -10.0,10.0, 1000, 0, 2.0);
fHistListPIDQA->Add(fHistProbTPCvsPtbeforePID);
fHistProbTOFvsPtbeforePID = new TH2D ("ProbTOFvsPtbefore","ProbTOFvsPtbefore", 1000, -50, 50, 1000, 0, 2.0);
fHistListPIDQA->Add(fHistProbTOFvsPtbeforePID);
fHistProbTPCTOFvsPtbeforePID =new TH2D ("ProbTPCTOFvsPtbefore","ProbTPCTOFvsPtbefore", 1000, -50, 50, 1000, 0, 2.0);
fHistListPIDQA->Add(fHistProbTPCTOFvsPtbeforePID);
fHistNSigmaTPCvsPtbeforePID = new TH2D ("NSigmaTPCvsPtbefore","NSigmaTPCvsPtbefore", 1000, -10, 10, 1000, 0, 500);
fHistListPIDQA->Add(fHistNSigmaTPCvsPtbeforePID);
fHistNSigmaTOFvsPtbeforePID = new TH2D ("NSigmaTOFvsPtbefore","NSigmaTOFvsPtbefore", 1000, -10, 10, 1000, 0, 500);
fHistListPIDQA->Add(fHistNSigmaTOFvsPtbeforePID);
fHistdEdxVsPTPCafterPID = new TH2D ("dEdxVsPTPCafter","dEdxVsPTPCafter", 1000, -10, 10, 1000, 0, 1000);
fHistListPIDQA->Add(fHistdEdxVsPTPCafterPID);
fHistBetavsPTOFafterPID = new TH2D ("BetavsPTOFafter","BetavsPTOFafter", 1000, -10, 10, 1000, 0, 1.2);
fHistListPIDQA->Add(fHistBetavsPTOFafterPID);
fHistProbTPCvsPtafterPID = new TH2D ("ProbTPCvsPtafter","ProbTPCvsPtafter", 1000, -10, 10, 1000, 0, 2);
fHistListPIDQA->Add(fHistProbTPCvsPtafterPID);
fHistProbTOFvsPtafterPID = new TH2D ("ProbTOFvsPtafter","ProbTOFvsPtafter", 1000, -10, 10, 1000, 0, 2);
fHistListPIDQA->Add(fHistProbTOFvsPtafterPID);
fHistProbTPCTOFvsPtafterPID =new TH2D ("ProbTPCTOFvsPtafter","ProbTPCTOFvsPtafter", 1000, -50, 50, 1000, 0, 2.0);
fHistListPIDQA->Add(fHistProbTPCTOFvsPtafterPID);
fHistNSigmaTPCvsPtafterPID = new TH2D ("NSigmaTPCvsPtafter","NSigmaTPCvsPtafter", 1000, -10, 10, 1000, 0, 500);
fHistListPIDQA->Add(fHistNSigmaTPCvsPtafterPID);
fHistNSigmaTOFvsPtafterPID = new TH2D ("NSigmaTOFvsPtafter","NSigmaTOFvsPtafter", 1000, -10, 10, 1000, 0, 500);
fHistListPIDQA->Add(fHistNSigmaTOFvsPtafterPID);
}
PostData(1, fList);
PostData(2, fListBF);
if(fRunShuffling) PostData(3, fListBFS);
if(fUsePID) PostData(4, fHistListPIDQA);
TH1::AddDirectory(oldStatus);
}
void AliAnalysisTaskBF::UserExec(Option_t *) {
TString gAnalysisLevel = fBalance->GetAnalysisLevel();
AliESDtrack *trackTPC = NULL;
Int_t gNumberOfAcceptedTracks = 0;
Float_t fCentrality = -999.;
Float_t bSign = 0;
vector<Double_t> *chargeVectorShuffle[9];
vector<Double_t> *chargeVector[9];
for(Int_t i = 0; i < 9; i++){
chargeVectorShuffle[i] = new vector<Double_t>;
chargeVector[i] = new vector<Double_t>;
}
Double_t vCharge;
Double_t vY;
Double_t vEta;
Double_t vPhi;
Double_t vP[3];
Double_t vPt;
Double_t vE;
if(fUsePID) {
fPIDResponse = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->GetPIDResponse();
if (!fPIDResponse) AliFatal("This Task needs the PID response attached to the inputHandler");
}
if(gAnalysisLevel == "ESD") {
AliESDEvent* gESD = dynamic_cast<AliESDEvent*>(InputEvent());
if (!gESD) {
AliError("ERROR: gESD not available");
return;
}
fHistTriggerStats->Fill(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected());
AliCentrality *centrality = 0x0;
if(fUseCentrality) {
centrality = gESD->GetCentrality();
fCentrality = centrality->GetCentralityPercentile(fCentralityEstimator.Data());
}
fHistEventStats->Fill(1,fCentrality);
Bool_t isSelected = kTRUE;
if(fUseOfflineTrigger)
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
if(isSelected) {
fHistEventStats->Fill(2,fCentrality);
if(fUseCentrality) {
if(!centrality->IsEventInCentralityClass(fCentralityPercentileMin,
fCentralityPercentileMax,
fCentralityEstimator.Data()))
return;
fHistV0M->Fill(gESD->GetVZEROData()->GetMTotV0A(), gESD->GetVZEROData()->GetMTotV0C());
}
const AliESDVertex *vertex = gESD->GetPrimaryVertex();
if(vertex) {
if(vertex->GetNContributors() > 0) {
if(vertex->GetZRes() != 0) {
fHistEventStats->Fill(3,fCentrality);
if(TMath::Abs(vertex->GetX()) < fVxMax) {
if(TMath::Abs(vertex->GetY()) < fVyMax) {
if(TMath::Abs(vertex->GetZ()) < fVzMax) {
fHistEventStats->Fill(4,fCentrality);
fHistVx->Fill(vertex->GetX());
fHistVy->Fill(vertex->GetY());
fHistVz->Fill(vertex->GetZ());
for (Int_t iTracks = 0; iTracks < gESD->GetNumberOfTracks(); iTracks++) {
AliESDtrack* track = dynamic_cast<AliESDtrack *>(gESD->GetTrack(iTracks));
if (!track) {
AliError(Form("ERROR: Could not receive track %d", iTracks));
continue;
}
trackTPC = new AliESDtrack();
if(!track->FillTPCOnlyTrack(*trackTPC)) continue;
if(fESDtrackCuts)
if(!fESDtrackCuts->AcceptTrack(trackTPC)) continue;
Float_t b[2];
Float_t bCov[3];
trackTPC->GetImpactParameters(b,bCov);
if (bCov[0]<=0 || bCov[2]<=0) {
AliDebug(1, "Estimated b resolution lower or equal zero!");
bCov[0]=0; bCov[2]=0;
}
Int_t nClustersTPC = -1;
nClustersTPC = trackTPC->GetTPCNclsIter1();
Float_t chi2PerClusterTPC = -1;
if (nClustersTPC!=0) {
chi2PerClusterTPC = trackTPC->GetTPCchi2Iter1()/Float_t(nClustersTPC);
}
if(fUsePID) {
Double_t prob[AliPID::kSPECIES]={0.};
Double_t probTPC[AliPID::kSPECIES]={0.};
Double_t probTOF[AliPID::kSPECIES]={0.};
Double_t probTPCTOF[AliPID::kSPECIES]={0.};
Double_t nSigma = 0.;
UInt_t detUsedTPC = 0;
UInt_t detUsedTOF = 0;
UInt_t detUsedTPCTOF = 0;
switch(fPidDetectorConfig) {
case kTPCpid:
fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
nSigma = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType)fParticleOfInterest));
detUsedTPC = fPIDCombined->ComputeProbabilities(track, fPIDResponse, probTPC);
for(Int_t iSpecies = 0; iSpecies < AliPID::kSPECIES; iSpecies++)
prob[iSpecies] = probTPC[iSpecies];
break;
case kTOFpid:
fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTOF);
nSigma = TMath::Abs(fPIDResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType)fParticleOfInterest));
detUsedTOF = fPIDCombined->ComputeProbabilities(track, fPIDResponse, probTOF);
for(Int_t iSpecies = 0; iSpecies < AliPID::kSPECIES; iSpecies++)
prob[iSpecies] = probTOF[iSpecies];
break;
case kTPCTOF:
fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTOF|AliPIDResponse::kDetTPC);
detUsedTPCTOF = fPIDCombined->ComputeProbabilities(track, fPIDResponse, probTPCTOF);
for(Int_t iSpecies = 0; iSpecies < AliPID::kSPECIES; iSpecies++)
prob[iSpecies] = probTPCTOF[iSpecies];
break;
default:
break;
}
Double_t tofTime = -999., length = 999., tof = -999.;
Double_t c = TMath::C()*1.E-9;
Double_t beta = -999.;
Double_t nSigmaTOFForParticleOfInterest = -999.;
if ( (track->IsOn(AliESDtrack::kTOFin)) &&
(track->IsOn(AliESDtrack::kTIME)) ) {
tofTime = track->GetTOFsignal();
length = track->GetIntegratedLength();
tof = tofTime*1E-3;
if (tof <= 0) {
continue;
}
if (length <= 0){
continue;
}
length = length*0.01;
tof = tof*c;
beta = length/tof;
nSigmaTOFForParticleOfInterest = fPIDResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType)fParticleOfInterest);
fHistBetavsPTOFbeforePID ->Fill(track->P()*track->Charge(),beta);
fHistProbTOFvsPtbeforePID ->Fill(track->Pt(),probTOF[fParticleOfInterest]);
fHistNSigmaTOFvsPtbeforePID ->Fill(track->Pt(),nSigmaTOFForParticleOfInterest);
}
Double_t nSigmaTPCForParticleOfInterest = fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType)fParticleOfInterest);
fHistdEdxVsPTPCbeforePID -> Fill(track->P()*track->Charge(),track->GetTPCsignal());
fHistProbTPCvsPtbeforePID -> Fill(track->Pt(),probTPC[fParticleOfInterest]);
fHistNSigmaTPCvsPtbeforePID -> Fill(track->Pt(),nSigmaTPCForParticleOfInterest);
fHistProbTPCTOFvsPtbeforePID -> Fill(track->Pt(),probTPCTOF[fParticleOfInterest]);
if ((detUsedTPC != 0)||(detUsedTOF != 0)||(detUsedTPCTOF != 0)) {
if(fUsePIDnSigma) {
if(nSigma > fPIDNSigma) continue;}
else if(fUsePIDPropabilities) {
if(fParticleOfInterest != TMath::LocMax(AliPID::kSPECIES,prob)) continue;
if (prob[fParticleOfInterest] < fMinAcceptedPIDProbability) continue;
}
fHistBetavsPTOFafterPID ->Fill(track->P()*track->Charge(),beta);
fHistProbTOFvsPtafterPID ->Fill(track->Pt(),probTOF[fParticleOfInterest]);
fHistNSigmaTOFvsPtafterPID ->Fill(track->Pt(),nSigmaTOFForParticleOfInterest);
fHistdEdxVsPTPCafterPID -> Fill(track->P()*track->Charge(),track->GetTPCsignal());
fHistProbTPCvsPtafterPID -> Fill(track->Pt(),probTPC[fParticleOfInterest]);
fHistProbTPCTOFvsPtafterPID -> Fill(track->Pt(),probTPCTOF[fParticleOfInterest]);
fHistNSigmaTPCvsPtafterPID -> Fill(track->Pt(),nSigmaTPCForParticleOfInterest);
}
PostData(4, fHistListPIDQA);
}
vCharge = trackTPC->Charge();
vY = trackTPC->Y();
vEta = trackTPC->Eta();
vPhi = trackTPC->Phi() * TMath::RadToDeg();
vE = trackTPC->E();
vPt = trackTPC->Pt();
trackTPC->PxPyPz(vP);
fHistClus->Fill(trackTPC->GetITSclusters(0),nClustersTPC);
fHistDCA->Fill(b[1],b[0]);
fHistChi2->Fill(chi2PerClusterTPC);
fHistPt->Fill(vPt);
fHistEta->Fill(vEta);
fHistPhi->Fill(vPhi);
fHistRapidity->Fill(vY);
if(vCharge > 0) fHistPhiPos->Fill(vPhi);
else if(vCharge < 0) fHistPhiNeg->Fill(vPhi);
chargeVector[0]->push_back(vCharge);
chargeVector[1]->push_back(vY);
chargeVector[2]->push_back(vEta);
chargeVector[3]->push_back(vPhi);
chargeVector[4]->push_back(vP[0]);
chargeVector[5]->push_back(vP[1]);
chargeVector[6]->push_back(vP[2]);
chargeVector[7]->push_back(vPt);
chargeVector[8]->push_back(vE);
if(fRunShuffling) {
chargeVectorShuffle[0]->push_back(vCharge);
chargeVectorShuffle[1]->push_back(vY);
chargeVectorShuffle[2]->push_back(vEta);
chargeVectorShuffle[3]->push_back(vPhi);
chargeVectorShuffle[4]->push_back(vP[0]);
chargeVectorShuffle[5]->push_back(vP[1]);
chargeVectorShuffle[6]->push_back(vP[2]);
chargeVectorShuffle[7]->push_back(vPt);
chargeVectorShuffle[8]->push_back(vE);
}
delete trackTPC;
gNumberOfAcceptedTracks += 1;
}
}
}
}
}
}
}
}
}
else if(gAnalysisLevel == "AOD") {
AliAODEvent* gAOD = dynamic_cast<AliAODEvent*>(InputEvent());
if(!gAOD) {
AliError("ERROR: gAOD not available");
return;
}
bSign = (gAOD->GetMagneticField() > 0) ? 1 : -1;
AliAODHeader *aodHeader = dynamic_cast<AliAODHeader*>(gAOD->GetHeader());
if(!aodHeader) AliFatal("Not a standard AOD");
fHistTriggerStats->Fill(aodHeader->GetOfflineTrigger());
if(fUseCentrality) {
fCentrality = aodHeader->GetCentralityP()->GetCentralityPercentile(fCentralityEstimator.Data());
}
fHistEventStats->Fill(1,fCentrality);
Bool_t isSelected = kTRUE;
if(fUseOfflineTrigger)
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
if(isSelected) {
fHistEventStats->Fill(2,fCentrality);
if(fUseCentrality) {
if(fCentrality == 0)
return;
fHistCentStats->Fill(0.,aodHeader->GetCentralityP()->GetCentralityPercentile("V0M"));
fHistCentStats->Fill(1.,aodHeader->GetCentralityP()->GetCentralityPercentile("FMD"));
fHistCentStats->Fill(2.,aodHeader->GetCentralityP()->GetCentralityPercentile("TRK"));
fHistCentStats->Fill(3.,aodHeader->GetCentralityP()->GetCentralityPercentile("TKL"));
fHistCentStats->Fill(4.,aodHeader->GetCentralityP()->GetCentralityPercentile("CL0"));
fHistCentStats->Fill(5.,aodHeader->GetCentralityP()->GetCentralityPercentile("CL1"));
fHistCentStats->Fill(6.,aodHeader->GetCentralityP()->GetCentralityPercentile("V0MvsFMD"));
fHistCentStats->Fill(7.,aodHeader->GetCentralityP()->GetCentralityPercentile("TKLvsV0M"));
fHistCentStats->Fill(8.,aodHeader->GetCentralityP()->GetCentralityPercentile("ZEMvsZDC"));
if((fCentrality < fCentralityPercentileMin) || (fCentrality > fCentralityPercentileMax))
return;
fHistV0M->Fill(gAOD->GetVZEROData()->GetMTotV0A(), gAOD->GetVZEROData()->GetMTotV0C());
fHistRefTracks->Fill(0.,aodHeader->GetRefMultiplicity());
fHistRefTracks->Fill(1.,aodHeader->GetRefMultiplicityPos());
fHistRefTracks->Fill(2.,aodHeader->GetRefMultiplicityNeg());
fHistRefTracks->Fill(3.,aodHeader->GetTPConlyRefMultiplicity());
fHistRefTracks->Fill(4.,aodHeader->GetNumberOfITSClusters(0));
fHistRefTracks->Fill(5.,aodHeader->GetNumberOfITSClusters(1));
fHistRefTracks->Fill(6.,aodHeader->GetNumberOfITSClusters(2));
fHistRefTracks->Fill(7.,aodHeader->GetNumberOfITSClusters(3));
fHistRefTracks->Fill(8.,aodHeader->GetNumberOfITSClusters(4));
}
const AliAODVertex *vertex = gAOD->GetPrimaryVertex();
if(vertex) {
Double32_t fCov[6];
vertex->GetCovarianceMatrix(fCov);
if(vertex->GetNContributors() > 0) {
if(fCov[5] != 0) {
fHistEventStats->Fill(3,fCentrality);
if(TMath::Abs(vertex->GetX()) < fVxMax) {
if(TMath::Abs(vertex->GetY()) < fVyMax) {
if(TMath::Abs(vertex->GetZ()) < fVzMax) {
fHistEventStats->Fill(4,fCentrality);
fHistVx->Fill(vertex->GetX());
fHistVy->Fill(vertex->GetY());
fHistVz->Fill(vertex->GetZ());
TExMap *trackMap = new TExMap();
for (Int_t iTracks = 0; iTracks < gAOD->GetNumberOfTracks(); iTracks++) {
AliAODTrack* aodTrack = dynamic_cast<AliAODTrack *>(gAOD->GetTrack(iTracks));
if (!aodTrack) {
AliError(Form("ERROR: Could not receive track %d", iTracks));
continue;
}
Int_t gID = aodTrack->GetID();
if (aodTrack->TestFilterBit(1)) trackMap->Add(gID, iTracks);
}
AliAODTrack* newAodTrack;
for (Int_t iTracks = 0; iTracks < gAOD->GetNumberOfTracks(); iTracks++) {
AliAODTrack* aodTrack = dynamic_cast<AliAODTrack *>(gAOD->GetTrack(iTracks));
if (!aodTrack) {
AliError(Form("ERROR: Could not receive track %d", iTracks));
continue;
}
fHistTrackStats->Fill(aodTrack->GetFilterMap());
if(!aodTrack->TestFilterBit(fAODtrackCutBit)) continue;
Int_t gID = aodTrack->GetID();
newAodTrack = gID >= 0 ? aodTrack : dynamic_cast<AliAODTrack*>(gAOD->GetTrack(trackMap->GetValue(-1-gID)));
if(!newAodTrack) AliFatal("Not a standard AOD");
vCharge = aodTrack->Charge();
vY = aodTrack->Y();
vEta = aodTrack->Eta();
vPhi = aodTrack->Phi() * TMath::RadToDeg();
vE = aodTrack->E();
vPt = aodTrack->Pt();
aodTrack->PxPyPz(vP);
Float_t dcaXY = aodTrack->DCA();
Float_t dcaZ = aodTrack->ZAtDCA();
if( vPt < fPtMin || vPt > fPtMax) continue;
if (!fUsePID) {
if( vEta < fEtaMin || vEta > fEtaMax) continue;
}
else if (fUsePID){
if( vY < fEtaMin || vY > fEtaMax) continue;
}
if( fDCAxyCut != -1 && fDCAzCut != -1){
if(TMath::Sqrt((dcaXY*dcaXY)/(fDCAxyCut*fDCAxyCut)+(dcaZ*dcaZ)/(fDCAzCut*fDCAzCut)) > 1 ){
continue;
}
}
if( fTPCchi2Cut != -1 && aodTrack->Chi2perNDF() > fTPCchi2Cut){
continue;
}
if( fNClustersTPCCut != -1 && aodTrack->GetTPCNcls() < fNClustersTPCCut){
continue;
}
if(fUsePID) {
Double_t prob[AliPID::kSPECIES]={0.};
Double_t probTPC[AliPID::kSPECIES]={0.};
Double_t probTOF[AliPID::kSPECIES]={0.};
Double_t probTPCTOF[AliPID::kSPECIES]={0.};
Double_t nSigma = 0.;
UInt_t detUsedTPC = 0;
UInt_t detUsedTOF = 0;
UInt_t detUsedTPCTOF = 0;
switch(fPidDetectorConfig) {
case kTPCpid:
fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
nSigma = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)fParticleOfInterest));
detUsedTPC = (AliPIDResponse::kDetTPC);
for(Int_t iSpecies = 0; iSpecies < AliPID::kSPECIES; iSpecies++)
prob[iSpecies] = probTPC[iSpecies];
break;
case kTOFpid:
fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTOF);
nSigma = TMath::Abs(fPIDResponse->NumberOfSigmasTOF(newAodTrack,(AliPID::EParticleType)fParticleOfInterest));
detUsedTPC = (AliPIDResponse::kDetTPC);
for(Int_t iSpecies = 0; iSpecies < AliPID::kSPECIES; iSpecies++)
prob[iSpecies] = probTOF[iSpecies];
break;
case kTPCTOF:
fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTOF|AliPIDResponse::kDetTPC);
detUsedTPC = (AliPIDResponse::kDetTPC);
for(Int_t iSpecies = 0; iSpecies < AliPID::kSPECIES; iSpecies++)
prob[iSpecies] = probTPCTOF[iSpecies];
break;
default:
break;
}
Double_t tofTime = -999., tof = -999.;
Double_t nSigmaTOFForParticleOfInterest = -999.;
if ( (newAodTrack->IsOn(AliAODTrack::kTOFin)) &&
(newAodTrack->IsOn(AliAODTrack::kTIME)) ) {
tofTime = newAodTrack->GetTOFsignal();
tof = tofTime*1E-3;
if (tof <= 0) {
continue;
}
nSigmaTOFForParticleOfInterest = fPIDResponse->NumberOfSigmasTOF(newAodTrack,(AliPID::EParticleType)fParticleOfInterest);
fHistProbTOFvsPtbeforePID ->Fill(newAodTrack->Pt(),probTOF[fParticleOfInterest]);
fHistNSigmaTOFvsPtbeforePID ->Fill(newAodTrack->Pt(),nSigmaTOFForParticleOfInterest);
}
Double_t nSigmaTPCForParticleOfInterest = fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)fParticleOfInterest);
fHistdEdxVsPTPCbeforePID -> Fill(newAodTrack->P()*newAodTrack->Charge(),newAodTrack->GetTPCsignal());
fHistProbTPCvsPtbeforePID -> Fill(newAodTrack->Pt(),probTPC[fParticleOfInterest]);
fHistNSigmaTPCvsPtbeforePID -> Fill(newAodTrack->Pt(),nSigmaTPCForParticleOfInterest);
fHistProbTPCTOFvsPtbeforePID -> Fill(newAodTrack->Pt(),probTPCTOF[fParticleOfInterest]);
if ((detUsedTPC != 0)||(detUsedTOF != 0)||(detUsedTPCTOF != 0)) {
if(fUsePIDnSigma) {
if(nSigma > fPIDNSigma) continue;}
else if(fUsePIDPropabilities) {
if(fParticleOfInterest != TMath::LocMax(AliPID::kSPECIES,prob)) continue;
if (prob[fParticleOfInterest] < fMinAcceptedPIDProbability) continue;
}
fHistProbTOFvsPtafterPID ->Fill(newAodTrack->Pt(),probTOF[fParticleOfInterest]);
fHistNSigmaTOFvsPtafterPID ->Fill(newAodTrack->Pt(),nSigmaTOFForParticleOfInterest);
fHistdEdxVsPTPCafterPID -> Fill(newAodTrack->P()*newAodTrack->Charge(),newAodTrack->GetTPCsignal());
fHistProbTPCvsPtafterPID -> Fill(newAodTrack->Pt(),probTPC[fParticleOfInterest]);
fHistProbTPCTOFvsPtafterPID -> Fill(newAodTrack->Pt(),probTPCTOF[fParticleOfInterest]);
fHistNSigmaTPCvsPtafterPID -> Fill(newAodTrack->Pt(),nSigmaTPCForParticleOfInterest);
}
PostData(4, fHistListPIDQA);
}
fHistClus->Fill(aodTrack->GetITSNcls(),aodTrack->GetTPCNcls());
fHistDCA->Fill(dcaZ,dcaXY);
fHistChi2->Fill(aodTrack->Chi2perNDF());
fHistPt->Fill(vPt);
fHistEta->Fill(vEta);
fHistPhi->Fill(vPhi);
fHistRapidity->Fill(vY);
if(vCharge > 0) fHistPhiPos->Fill(vPhi);
else if(vCharge < 0) fHistPhiNeg->Fill(vPhi);
chargeVector[0]->push_back(vCharge);
chargeVector[1]->push_back(vY);
chargeVector[2]->push_back(vEta);
chargeVector[3]->push_back(vPhi);
chargeVector[4]->push_back(vP[0]);
chargeVector[5]->push_back(vP[1]);
chargeVector[6]->push_back(vP[2]);
chargeVector[7]->push_back(vPt);
chargeVector[8]->push_back(vE);
if(fRunShuffling) {
chargeVectorShuffle[0]->push_back(vCharge);
chargeVectorShuffle[1]->push_back(vY);
chargeVectorShuffle[2]->push_back(vEta);
chargeVectorShuffle[3]->push_back(vPhi);
chargeVectorShuffle[4]->push_back(vP[0]);
chargeVectorShuffle[5]->push_back(vP[1]);
chargeVectorShuffle[6]->push_back(vP[2]);
chargeVectorShuffle[7]->push_back(vPt);
chargeVectorShuffle[8]->push_back(vE);
}
gNumberOfAcceptedTracks += 1;
}
}
}
}
}
}
}
}
}
if(gAnalysisLevel == "MCESD") {
AliMCEvent* mcEvent = MCEvent();
if (!mcEvent) {
AliError("ERROR: mcEvent not available");
return;
}
AliESDEvent* gESD = dynamic_cast<AliESDEvent*>(InputEvent());
if (!gESD) {
AliError("ERROR: gESD not available");
return;
}
fHistTriggerStats->Fill(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected());
AliCentrality *centrality = 0x0;
if(fUseCentrality) {
centrality = gESD->GetCentrality();
fCentrality = centrality->GetCentralityPercentile(fCentralityEstimator.Data());
}
fHistEventStats->Fill(1,fCentrality);
Bool_t isSelected = kTRUE;
if(fUseOfflineTrigger)
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
if(isSelected) {
fHistEventStats->Fill(2,fCentrality);
if(fUseCentrality) {
if(!centrality->IsEventInCentralityClass(fCentralityPercentileMin,
fCentralityPercentileMax,
fCentralityEstimator.Data()))
return;
fHistV0M->Fill(gESD->GetVZEROData()->GetMTotV0A(), gESD->GetVZEROData()->GetMTotV0C());
}
const AliESDVertex *vertex = gESD->GetPrimaryVertex();
if(vertex) {
if(vertex->GetNContributors() > 0) {
if(vertex->GetZRes() != 0) {
fHistEventStats->Fill(3,fCentrality);
if(TMath::Abs(vertex->GetX()) < fVxMax) {
if(TMath::Abs(vertex->GetY()) < fVyMax) {
if(TMath::Abs(vertex->GetZ()) < fVzMax) {
fHistEventStats->Fill(4,fCentrality);
fHistVx->Fill(vertex->GetX());
fHistVy->Fill(vertex->GetY());
fHistVz->Fill(vertex->GetZ());
for (Int_t iTracks = 0; iTracks < gESD->GetNumberOfTracks(); iTracks++) {
AliESDtrack* track = dynamic_cast<AliESDtrack *>(gESD->GetTrack(iTracks));
if (!track) {
AliError(Form("ERROR: Could not receive track %d", iTracks));
continue;
}
Int_t label = TMath::Abs(track->GetLabel());
if(label > mcEvent->GetNumberOfTracks()) continue;
if(label > mcEvent->GetNumberOfPrimaries()) continue;
AliMCParticle* mcTrack = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(label));
if(!mcTrack) continue;
trackTPC = new AliESDtrack();
if(!track->FillTPCOnlyTrack(*trackTPC)) continue;
if(fESDtrackCuts)
if(!fESDtrackCuts->AcceptTrack(trackTPC)) continue;
Float_t b[2];
Float_t bCov[3];
trackTPC->GetImpactParameters(b,bCov);
if (bCov[0]<=0 || bCov[2]<=0) {
AliDebug(1, "Estimated b resolution lower or equal zero!");
bCov[0]=0; bCov[2]=0;
}
Int_t nClustersTPC = -1;
nClustersTPC = trackTPC->GetTPCNclsIter1();
Float_t chi2PerClusterTPC = -1;
if (nClustersTPC!=0) {
chi2PerClusterTPC = trackTPC->GetTPCchi2Iter1()/Float_t(nClustersTPC);
}
vCharge = trackTPC->Charge();
vY = trackTPC->Y();
vEta = trackTPC->Eta();
vPhi = trackTPC->Phi() * TMath::RadToDeg();
vE = trackTPC->E();
vPt = trackTPC->Pt();
trackTPC->PxPyPz(vP);
fHistClus->Fill(trackTPC->GetITSclusters(0),nClustersTPC);
fHistDCA->Fill(b[1],b[0]);
fHistChi2->Fill(chi2PerClusterTPC);
fHistPt->Fill(vPt);
fHistEta->Fill(vEta);
fHistPhi->Fill(vPhi);
fHistRapidity->Fill(vY);
if(vCharge > 0) fHistPhiPos->Fill(vPhi);
else if(vCharge < 0) fHistPhiNeg->Fill(vPhi);
chargeVector[0]->push_back(vCharge);
chargeVector[1]->push_back(vY);
chargeVector[2]->push_back(vEta);
chargeVector[3]->push_back(vPhi);
chargeVector[4]->push_back(vP[0]);
chargeVector[5]->push_back(vP[1]);
chargeVector[6]->push_back(vP[2]);
chargeVector[7]->push_back(vPt);
chargeVector[8]->push_back(vE);
if(fRunShuffling) {
chargeVectorShuffle[0]->push_back(vCharge);
chargeVectorShuffle[1]->push_back(vY);
chargeVectorShuffle[2]->push_back(vEta);
chargeVectorShuffle[3]->push_back(vPhi);
chargeVectorShuffle[4]->push_back(vP[0]);
chargeVectorShuffle[5]->push_back(vP[1]);
chargeVectorShuffle[6]->push_back(vP[2]);
chargeVectorShuffle[7]->push_back(vPt);
chargeVectorShuffle[8]->push_back(vE);
}
delete trackTPC;
gNumberOfAcceptedTracks += 1;
}
}
}
}
}
}
}
}
}
else if(gAnalysisLevel == "MC") {
AliMCEvent* mcEvent = MCEvent();
if (!mcEvent) {
AliError("ERROR: mcEvent not available");
return;
}
Double_t gReactionPlane = 0., gImpactParameter = 0.;
if(fUseCentrality) {
AliGenHijingEventHeader* headerH = dynamic_cast<AliGenHijingEventHeader*>(mcEvent->GenEventHeader());
if (headerH) {
gReactionPlane = headerH->ReactionPlaneAngle();
gImpactParameter = headerH->ImpactParameter();
fCentrality = gImpactParameter;
}
fCentrality = gImpactParameter;
if((fImpactParameterMin > gImpactParameter) || (fImpactParameterMax < gImpactParameter))
return;
}
fHistEventStats->Fill(1,fCentrality);
fHistEventStats->Fill(2,fCentrality);
AliGenEventHeader *header = mcEvent->GenEventHeader();
if(!header) return;
TArrayF gVertexArray;
header->PrimaryVertex(gVertexArray);
fHistEventStats->Fill(3,fCentrality);
if(TMath::Abs(gVertexArray.At(0)) < fVxMax) {
if(TMath::Abs(gVertexArray.At(1)) < fVyMax) {
if(TMath::Abs(gVertexArray.At(2)) < fVzMax) {
fHistEventStats->Fill(4,fCentrality);
fHistVx->Fill(gVertexArray.At(0));
fHistVy->Fill(gVertexArray.At(1));
fHistVz->Fill(gVertexArray.At(2));
AliInfo(Form("There are %d tracks in this event", mcEvent->GetNumberOfPrimaries()));
for (Int_t iTracks = 0; iTracks < mcEvent->GetNumberOfPrimaries(); iTracks++) {
AliMCParticle* track = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(iTracks));
if (!track) {
AliError(Form("ERROR: Could not receive particle %d", iTracks));
continue;
}
if(!mcEvent->IsPhysicalPrimary(iTracks)) continue;
vEta = track->Eta();
vPt = track->Pt();
vY = track->Y();
if( vPt < fPtMin || vPt > fPtMax)
continue;
if (!fUsePID) {
if( vEta < fEtaMin || vEta > fEtaMax) continue;
}
else if (fUsePID){
if( vY < fEtaMin || vY > fEtaMax) continue;
}
if(fUseMCPdgCode) {
TParticle *particle = track->Particle();
if(!particle) continue;
Int_t gPdgCode = particle->GetPdgCode();
if(TMath::Abs(fPDGCodeToBeAnalyzed) != TMath::Abs(gPdgCode))
continue;
}
if(fAcceptanceParameterization) {
Double_t gRandomNumber = gRandom->Rndm();
if(gRandomNumber > fAcceptanceParameterization->Eval(track->Pt()))
continue;
}
if(fExcludeResonancesInMC) {
TParticle *particle = track->Particle();
if(!particle) continue;
Bool_t kExcludeParticle = kFALSE;
Int_t gMotherIndex = particle->GetFirstMother();
if(gMotherIndex != -1) {
AliMCParticle* motherTrack = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(gMotherIndex));
if(motherTrack) {
TParticle *motherParticle = motherTrack->Particle();
if(motherParticle) {
Int_t pdgCodeOfMother = motherParticle->GetPdgCode();
if(pdgCodeOfMother == 113) {
kExcludeParticle = kTRUE;
}
}
}
}
if(kExcludeParticle) continue;
}
vCharge = track->Charge();
vPhi = track->Phi();
vE = track->E();
track->PxPyPz(vP);
fHistPt->Fill(vPt);
fHistEta->Fill(vEta);
fHistPhi->Fill(vPhi);
fHistRapidity->Fill(vY);
if(vCharge > 0) fHistPhiPos->Fill(vPhi);
else if(vCharge < 0) fHistPhiNeg->Fill(vPhi);
if(fUseFlowAfterBurner) {
Double_t precisionPhi = 0.001;
Int_t maxNumberOfIterations = 100;
Double_t phi0 = vPhi;
Double_t gV2 = fDifferentialV2->Eval(vPt);
for (Int_t j = 0; j < maxNumberOfIterations; j++) {
Double_t phiprev = vPhi;
Double_t fl = vPhi - phi0 + gV2*TMath::Sin(2.*(vPhi - gReactionPlane));
Double_t fp = 1.0 + 2.0*gV2*TMath::Cos(2.*(vPhi - gReactionPlane));
vPhi -= fl/fp;
if (TMath::AreEqualAbs(phiprev,vPhi,precisionPhi)) break;
}
Double_t vDeltaphiBefore = phi0 - gReactionPlane;
if(vDeltaphiBefore < 0) vDeltaphiBefore += 2*TMath::Pi();
fHistPhiBefore->Fill(vDeltaphiBefore);
Double_t vDeltaphiAfter = vPhi - gReactionPlane;
if(vDeltaphiAfter < 0) vDeltaphiAfter += 2*TMath::Pi();
fHistPhiAfter->Fill(vDeltaphiAfter);
}
vPhi *= TMath::RadToDeg();
chargeVector[0]->push_back(vCharge);
chargeVector[1]->push_back(vY);
chargeVector[2]->push_back(vEta);
chargeVector[3]->push_back(vPhi);
chargeVector[4]->push_back(vP[0]);
chargeVector[5]->push_back(vP[1]);
chargeVector[6]->push_back(vP[2]);
chargeVector[7]->push_back(vPt);
chargeVector[8]->push_back(vE);
if(fRunShuffling) {
chargeVectorShuffle[0]->push_back(vCharge);
chargeVectorShuffle[1]->push_back(vY);
chargeVectorShuffle[2]->push_back(vEta);
chargeVectorShuffle[3]->push_back(vPhi);
chargeVectorShuffle[4]->push_back(vP[0]);
chargeVectorShuffle[5]->push_back(vP[1]);
chargeVectorShuffle[6]->push_back(vP[2]);
chargeVectorShuffle[7]->push_back(vPt);
chargeVectorShuffle[8]->push_back(vE);
}
gNumberOfAcceptedTracks += 1;
}
}
}
}
}
if(fUseMultiplicity) {
if((gNumberOfAcceptedTracks < fNumberOfAcceptedTracksMin)||(gNumberOfAcceptedTracks > fNumberOfAcceptedTracksMax))
return;
}
fHistNumberOfAcceptedTracks->Fill(gNumberOfAcceptedTracks, fCentrality);
if(fUseMultiplicity)
fBalance->CalculateBalance(gNumberOfAcceptedTracks,chargeVector,bSign);
else
fBalance->CalculateBalance(fCentrality,chargeVector,bSign);
if(fRunShuffling) {
random_shuffle( chargeVectorShuffle[0]->begin(), chargeVectorShuffle[0]->end() );
if(fUseMultiplicity)
fShuffledBalance->CalculateBalance(gNumberOfAcceptedTracks,chargeVectorShuffle,bSign);
else
fShuffledBalance->CalculateBalance(fCentrality,chargeVectorShuffle,bSign);
}
}
void AliAnalysisTaskBF::FinishTaskOutput(){
if (!fBalance) {
AliError("ERROR: fBalance not available");
return;
}
if(fRunShuffling) {
if (!fShuffledBalance) {
AliError("ERROR: fShuffledBalance not available");
return;
}
}
}
void AliAnalysisTaskBF::Terminate(Option_t *) {
}
AliAnalysisTaskBF.cxx:100 AliAnalysisTaskBF.cxx:101 AliAnalysisTaskBF.cxx:102 AliAnalysisTaskBF.cxx:103 AliAnalysisTaskBF.cxx:104 AliAnalysisTaskBF.cxx:105 AliAnalysisTaskBF.cxx:106 AliAnalysisTaskBF.cxx:107 AliAnalysisTaskBF.cxx:108 AliAnalysisTaskBF.cxx:109 AliAnalysisTaskBF.cxx:110 AliAnalysisTaskBF.cxx:111 AliAnalysisTaskBF.cxx:112 AliAnalysisTaskBF.cxx:113 AliAnalysisTaskBF.cxx:114 AliAnalysisTaskBF.cxx:115 AliAnalysisTaskBF.cxx:116 AliAnalysisTaskBF.cxx:117 AliAnalysisTaskBF.cxx:118 AliAnalysisTaskBF.cxx:119 AliAnalysisTaskBF.cxx:120 AliAnalysisTaskBF.cxx:121 AliAnalysisTaskBF.cxx:122 AliAnalysisTaskBF.cxx:123 AliAnalysisTaskBF.cxx:124 AliAnalysisTaskBF.cxx:125 AliAnalysisTaskBF.cxx:126 AliAnalysisTaskBF.cxx:127 AliAnalysisTaskBF.cxx:128 AliAnalysisTaskBF.cxx:129 AliAnalysisTaskBF.cxx:130 AliAnalysisTaskBF.cxx:131 AliAnalysisTaskBF.cxx:132 AliAnalysisTaskBF.cxx:133 AliAnalysisTaskBF.cxx:134 AliAnalysisTaskBF.cxx:135 AliAnalysisTaskBF.cxx:136 AliAnalysisTaskBF.cxx:137 AliAnalysisTaskBF.cxx:138 AliAnalysisTaskBF.cxx:139 AliAnalysisTaskBF.cxx:140 AliAnalysisTaskBF.cxx:141 AliAnalysisTaskBF.cxx:142 AliAnalysisTaskBF.cxx:143 AliAnalysisTaskBF.cxx:144 AliAnalysisTaskBF.cxx:145 AliAnalysisTaskBF.cxx:146 AliAnalysisTaskBF.cxx:147 AliAnalysisTaskBF.cxx:148 AliAnalysisTaskBF.cxx:149 AliAnalysisTaskBF.cxx:150 AliAnalysisTaskBF.cxx:151 AliAnalysisTaskBF.cxx:152 AliAnalysisTaskBF.cxx:153 AliAnalysisTaskBF.cxx:154 AliAnalysisTaskBF.cxx:155 AliAnalysisTaskBF.cxx:156 AliAnalysisTaskBF.cxx:157 AliAnalysisTaskBF.cxx:158 AliAnalysisTaskBF.cxx:159 AliAnalysisTaskBF.cxx:160 AliAnalysisTaskBF.cxx:161 AliAnalysisTaskBF.cxx:162 AliAnalysisTaskBF.cxx:163 AliAnalysisTaskBF.cxx:164 AliAnalysisTaskBF.cxx:165 AliAnalysisTaskBF.cxx:166 AliAnalysisTaskBF.cxx:167 AliAnalysisTaskBF.cxx:168 AliAnalysisTaskBF.cxx:169 AliAnalysisTaskBF.cxx:170 AliAnalysisTaskBF.cxx:171 AliAnalysisTaskBF.cxx:172 AliAnalysisTaskBF.cxx:173 AliAnalysisTaskBF.cxx:174 AliAnalysisTaskBF.cxx:175 AliAnalysisTaskBF.cxx:176 AliAnalysisTaskBF.cxx:177 AliAnalysisTaskBF.cxx:178 AliAnalysisTaskBF.cxx:179 AliAnalysisTaskBF.cxx:180 AliAnalysisTaskBF.cxx:181 AliAnalysisTaskBF.cxx:182 AliAnalysisTaskBF.cxx:183 AliAnalysisTaskBF.cxx:184 AliAnalysisTaskBF.cxx:185 AliAnalysisTaskBF.cxx:186 AliAnalysisTaskBF.cxx:187 AliAnalysisTaskBF.cxx:188 AliAnalysisTaskBF.cxx:189 AliAnalysisTaskBF.cxx:190 AliAnalysisTaskBF.cxx:191 AliAnalysisTaskBF.cxx:192 AliAnalysisTaskBF.cxx:193 AliAnalysisTaskBF.cxx:194 AliAnalysisTaskBF.cxx:195 AliAnalysisTaskBF.cxx:196 AliAnalysisTaskBF.cxx:197 AliAnalysisTaskBF.cxx:198 AliAnalysisTaskBF.cxx:199 AliAnalysisTaskBF.cxx:200 AliAnalysisTaskBF.cxx:201 AliAnalysisTaskBF.cxx:202 AliAnalysisTaskBF.cxx:203 AliAnalysisTaskBF.cxx:204 AliAnalysisTaskBF.cxx:205 AliAnalysisTaskBF.cxx:206 AliAnalysisTaskBF.cxx:207 AliAnalysisTaskBF.cxx:208 AliAnalysisTaskBF.cxx:209 AliAnalysisTaskBF.cxx:210 AliAnalysisTaskBF.cxx:211 AliAnalysisTaskBF.cxx:212 AliAnalysisTaskBF.cxx:213 AliAnalysisTaskBF.cxx:214 AliAnalysisTaskBF.cxx:215 AliAnalysisTaskBF.cxx:216 AliAnalysisTaskBF.cxx:217 AliAnalysisTaskBF.cxx:218 AliAnalysisTaskBF.cxx:219 AliAnalysisTaskBF.cxx:220 AliAnalysisTaskBF.cxx:221 AliAnalysisTaskBF.cxx:222 AliAnalysisTaskBF.cxx:223 AliAnalysisTaskBF.cxx:224 AliAnalysisTaskBF.cxx:225 AliAnalysisTaskBF.cxx:226 AliAnalysisTaskBF.cxx:227 AliAnalysisTaskBF.cxx:228 AliAnalysisTaskBF.cxx:229 AliAnalysisTaskBF.cxx:230 AliAnalysisTaskBF.cxx:231 AliAnalysisTaskBF.cxx:232 AliAnalysisTaskBF.cxx:233 AliAnalysisTaskBF.cxx:234 AliAnalysisTaskBF.cxx:235 AliAnalysisTaskBF.cxx:236 AliAnalysisTaskBF.cxx:237 AliAnalysisTaskBF.cxx:238 AliAnalysisTaskBF.cxx:239 AliAnalysisTaskBF.cxx:240 AliAnalysisTaskBF.cxx:241 AliAnalysisTaskBF.cxx:242 AliAnalysisTaskBF.cxx:243 AliAnalysisTaskBF.cxx:244 AliAnalysisTaskBF.cxx:245 AliAnalysisTaskBF.cxx:246 AliAnalysisTaskBF.cxx:247 AliAnalysisTaskBF.cxx:248 AliAnalysisTaskBF.cxx:249 AliAnalysisTaskBF.cxx:250 AliAnalysisTaskBF.cxx:251 AliAnalysisTaskBF.cxx:252 AliAnalysisTaskBF.cxx:253 AliAnalysisTaskBF.cxx:254 AliAnalysisTaskBF.cxx:255 AliAnalysisTaskBF.cxx:256 AliAnalysisTaskBF.cxx:257 AliAnalysisTaskBF.cxx:258 AliAnalysisTaskBF.cxx:259 AliAnalysisTaskBF.cxx:260 AliAnalysisTaskBF.cxx:261 AliAnalysisTaskBF.cxx:262 AliAnalysisTaskBF.cxx:263 AliAnalysisTaskBF.cxx:264 AliAnalysisTaskBF.cxx:265 AliAnalysisTaskBF.cxx:266 AliAnalysisTaskBF.cxx:267 AliAnalysisTaskBF.cxx:268 AliAnalysisTaskBF.cxx:269 AliAnalysisTaskBF.cxx:270 AliAnalysisTaskBF.cxx:271 AliAnalysisTaskBF.cxx:272 AliAnalysisTaskBF.cxx:273 AliAnalysisTaskBF.cxx:274 AliAnalysisTaskBF.cxx:275 AliAnalysisTaskBF.cxx:276 AliAnalysisTaskBF.cxx:277 AliAnalysisTaskBF.cxx:278 AliAnalysisTaskBF.cxx:279 AliAnalysisTaskBF.cxx:280 AliAnalysisTaskBF.cxx:281 AliAnalysisTaskBF.cxx:282 AliAnalysisTaskBF.cxx:283 AliAnalysisTaskBF.cxx:284 AliAnalysisTaskBF.cxx:285 AliAnalysisTaskBF.cxx:286 AliAnalysisTaskBF.cxx:287 AliAnalysisTaskBF.cxx:288 AliAnalysisTaskBF.cxx:289 AliAnalysisTaskBF.cxx:290 AliAnalysisTaskBF.cxx:291 AliAnalysisTaskBF.cxx:292 AliAnalysisTaskBF.cxx:293 AliAnalysisTaskBF.cxx:294 AliAnalysisTaskBF.cxx:295 AliAnalysisTaskBF.cxx:296 AliAnalysisTaskBF.cxx:297 AliAnalysisTaskBF.cxx:298 AliAnalysisTaskBF.cxx:299 AliAnalysisTaskBF.cxx:300 AliAnalysisTaskBF.cxx:301 AliAnalysisTaskBF.cxx:302 AliAnalysisTaskBF.cxx:303 AliAnalysisTaskBF.cxx:304 AliAnalysisTaskBF.cxx:305 AliAnalysisTaskBF.cxx:306 AliAnalysisTaskBF.cxx:307 AliAnalysisTaskBF.cxx:308 AliAnalysisTaskBF.cxx:309 AliAnalysisTaskBF.cxx:310 AliAnalysisTaskBF.cxx:311 AliAnalysisTaskBF.cxx:312 AliAnalysisTaskBF.cxx:313 AliAnalysisTaskBF.cxx:314 AliAnalysisTaskBF.cxx:315 AliAnalysisTaskBF.cxx:316 AliAnalysisTaskBF.cxx:317 AliAnalysisTaskBF.cxx:318 AliAnalysisTaskBF.cxx:319 AliAnalysisTaskBF.cxx:320 AliAnalysisTaskBF.cxx:321 AliAnalysisTaskBF.cxx:322 AliAnalysisTaskBF.cxx:323 AliAnalysisTaskBF.cxx:324 AliAnalysisTaskBF.cxx:325 AliAnalysisTaskBF.cxx:326 AliAnalysisTaskBF.cxx:327 AliAnalysisTaskBF.cxx:328 AliAnalysisTaskBF.cxx:329 AliAnalysisTaskBF.cxx:330 AliAnalysisTaskBF.cxx:331 AliAnalysisTaskBF.cxx:332 AliAnalysisTaskBF.cxx:333 AliAnalysisTaskBF.cxx:334 AliAnalysisTaskBF.cxx:335 AliAnalysisTaskBF.cxx:336 AliAnalysisTaskBF.cxx:337 AliAnalysisTaskBF.cxx:338 AliAnalysisTaskBF.cxx:339 AliAnalysisTaskBF.cxx:340 AliAnalysisTaskBF.cxx:341 AliAnalysisTaskBF.cxx:342 AliAnalysisTaskBF.cxx:343 AliAnalysisTaskBF.cxx:344 AliAnalysisTaskBF.cxx:345 AliAnalysisTaskBF.cxx:346 AliAnalysisTaskBF.cxx:347 AliAnalysisTaskBF.cxx:348 AliAnalysisTaskBF.cxx:349 AliAnalysisTaskBF.cxx:350 AliAnalysisTaskBF.cxx:351 AliAnalysisTaskBF.cxx:352 AliAnalysisTaskBF.cxx:353 AliAnalysisTaskBF.cxx:354 AliAnalysisTaskBF.cxx:355 AliAnalysisTaskBF.cxx:356 AliAnalysisTaskBF.cxx:357 AliAnalysisTaskBF.cxx:358 AliAnalysisTaskBF.cxx:359 AliAnalysisTaskBF.cxx:360 AliAnalysisTaskBF.cxx:361 AliAnalysisTaskBF.cxx:362 AliAnalysisTaskBF.cxx:363 AliAnalysisTaskBF.cxx:364 AliAnalysisTaskBF.cxx:365 AliAnalysisTaskBF.cxx:366 AliAnalysisTaskBF.cxx:367 AliAnalysisTaskBF.cxx:368 AliAnalysisTaskBF.cxx:369 AliAnalysisTaskBF.cxx:370 AliAnalysisTaskBF.cxx:371 AliAnalysisTaskBF.cxx:372 AliAnalysisTaskBF.cxx:373 AliAnalysisTaskBF.cxx:374 AliAnalysisTaskBF.cxx:375 AliAnalysisTaskBF.cxx:376 AliAnalysisTaskBF.cxx:377 AliAnalysisTaskBF.cxx:378 AliAnalysisTaskBF.cxx:379 AliAnalysisTaskBF.cxx:380 AliAnalysisTaskBF.cxx:381 AliAnalysisTaskBF.cxx:382 AliAnalysisTaskBF.cxx:383 AliAnalysisTaskBF.cxx:384 AliAnalysisTaskBF.cxx:385 AliAnalysisTaskBF.cxx:386 AliAnalysisTaskBF.cxx:387 AliAnalysisTaskBF.cxx:388 AliAnalysisTaskBF.cxx:389 AliAnalysisTaskBF.cxx:390 AliAnalysisTaskBF.cxx:391 AliAnalysisTaskBF.cxx:392 AliAnalysisTaskBF.cxx:393 AliAnalysisTaskBF.cxx:394 AliAnalysisTaskBF.cxx:395 AliAnalysisTaskBF.cxx:396 AliAnalysisTaskBF.cxx:397 AliAnalysisTaskBF.cxx:398 AliAnalysisTaskBF.cxx:399 AliAnalysisTaskBF.cxx:400 AliAnalysisTaskBF.cxx:401 AliAnalysisTaskBF.cxx:402 AliAnalysisTaskBF.cxx:403 AliAnalysisTaskBF.cxx:404 AliAnalysisTaskBF.cxx:405 AliAnalysisTaskBF.cxx:406 AliAnalysisTaskBF.cxx:407 AliAnalysisTaskBF.cxx:408 AliAnalysisTaskBF.cxx:409 AliAnalysisTaskBF.cxx:410 AliAnalysisTaskBF.cxx:411 AliAnalysisTaskBF.cxx:412 AliAnalysisTaskBF.cxx:413 AliAnalysisTaskBF.cxx:414 AliAnalysisTaskBF.cxx:415 AliAnalysisTaskBF.cxx:416 AliAnalysisTaskBF.cxx:417 AliAnalysisTaskBF.cxx:418 AliAnalysisTaskBF.cxx:419 AliAnalysisTaskBF.cxx:420 AliAnalysisTaskBF.cxx:421 AliAnalysisTaskBF.cxx:422 AliAnalysisTaskBF.cxx:423 AliAnalysisTaskBF.cxx:424 AliAnalysisTaskBF.cxx:425 AliAnalysisTaskBF.cxx:426 AliAnalysisTaskBF.cxx:427 AliAnalysisTaskBF.cxx:428 AliAnalysisTaskBF.cxx:429 AliAnalysisTaskBF.cxx:430 AliAnalysisTaskBF.cxx:431 AliAnalysisTaskBF.cxx:432 AliAnalysisTaskBF.cxx:433 AliAnalysisTaskBF.cxx:434 AliAnalysisTaskBF.cxx:435 AliAnalysisTaskBF.cxx:436 AliAnalysisTaskBF.cxx:437 AliAnalysisTaskBF.cxx:438 AliAnalysisTaskBF.cxx:439 AliAnalysisTaskBF.cxx:440 AliAnalysisTaskBF.cxx:441 AliAnalysisTaskBF.cxx:442 AliAnalysisTaskBF.cxx:443 AliAnalysisTaskBF.cxx:444 AliAnalysisTaskBF.cxx:445 AliAnalysisTaskBF.cxx:446 AliAnalysisTaskBF.cxx:447 AliAnalysisTaskBF.cxx:448 AliAnalysisTaskBF.cxx:449 AliAnalysisTaskBF.cxx:450 AliAnalysisTaskBF.cxx:451 AliAnalysisTaskBF.cxx:452 AliAnalysisTaskBF.cxx:453 AliAnalysisTaskBF.cxx:454 AliAnalysisTaskBF.cxx:455 AliAnalysisTaskBF.cxx:456 AliAnalysisTaskBF.cxx:457 AliAnalysisTaskBF.cxx:458 AliAnalysisTaskBF.cxx:459 AliAnalysisTaskBF.cxx:460 AliAnalysisTaskBF.cxx:461 AliAnalysisTaskBF.cxx:462 AliAnalysisTaskBF.cxx:463 AliAnalysisTaskBF.cxx:464 AliAnalysisTaskBF.cxx:465 AliAnalysisTaskBF.cxx:466 AliAnalysisTaskBF.cxx:467 AliAnalysisTaskBF.cxx:468 AliAnalysisTaskBF.cxx:469 AliAnalysisTaskBF.cxx:470 AliAnalysisTaskBF.cxx:471 AliAnalysisTaskBF.cxx:472 AliAnalysisTaskBF.cxx:473 AliAnalysisTaskBF.cxx:474 AliAnalysisTaskBF.cxx:475 AliAnalysisTaskBF.cxx:476 AliAnalysisTaskBF.cxx:477 AliAnalysisTaskBF.cxx:478 AliAnalysisTaskBF.cxx:479 AliAnalysisTaskBF.cxx:480 AliAnalysisTaskBF.cxx:481 AliAnalysisTaskBF.cxx:482 AliAnalysisTaskBF.cxx:483 AliAnalysisTaskBF.cxx:484 AliAnalysisTaskBF.cxx:485 AliAnalysisTaskBF.cxx:486 AliAnalysisTaskBF.cxx:487 AliAnalysisTaskBF.cxx:488 AliAnalysisTaskBF.cxx:489 AliAnalysisTaskBF.cxx:490 AliAnalysisTaskBF.cxx:491 AliAnalysisTaskBF.cxx:492 AliAnalysisTaskBF.cxx:493 AliAnalysisTaskBF.cxx:494 AliAnalysisTaskBF.cxx:495 AliAnalysisTaskBF.cxx:496 AliAnalysisTaskBF.cxx:497 AliAnalysisTaskBF.cxx:498 AliAnalysisTaskBF.cxx:499 AliAnalysisTaskBF.cxx:500 AliAnalysisTaskBF.cxx:501 AliAnalysisTaskBF.cxx:502 AliAnalysisTaskBF.cxx:503 AliAnalysisTaskBF.cxx:504 AliAnalysisTaskBF.cxx:505 AliAnalysisTaskBF.cxx:506 AliAnalysisTaskBF.cxx:507 AliAnalysisTaskBF.cxx:508 AliAnalysisTaskBF.cxx:509 AliAnalysisTaskBF.cxx:510 AliAnalysisTaskBF.cxx:511 AliAnalysisTaskBF.cxx:512 AliAnalysisTaskBF.cxx:513 AliAnalysisTaskBF.cxx:514 AliAnalysisTaskBF.cxx:515 AliAnalysisTaskBF.cxx:516 AliAnalysisTaskBF.cxx:517 AliAnalysisTaskBF.cxx:518 AliAnalysisTaskBF.cxx:519 AliAnalysisTaskBF.cxx:520 AliAnalysisTaskBF.cxx:521 AliAnalysisTaskBF.cxx:522 AliAnalysisTaskBF.cxx:523 AliAnalysisTaskBF.cxx:524 AliAnalysisTaskBF.cxx:525 AliAnalysisTaskBF.cxx:526 AliAnalysisTaskBF.cxx:527 AliAnalysisTaskBF.cxx:528 AliAnalysisTaskBF.cxx:529 AliAnalysisTaskBF.cxx:530 AliAnalysisTaskBF.cxx:531 AliAnalysisTaskBF.cxx:532 AliAnalysisTaskBF.cxx:533 AliAnalysisTaskBF.cxx:534 AliAnalysisTaskBF.cxx:535 AliAnalysisTaskBF.cxx:536 AliAnalysisTaskBF.cxx:537 AliAnalysisTaskBF.cxx:538 AliAnalysisTaskBF.cxx:539 AliAnalysisTaskBF.cxx:540 AliAnalysisTaskBF.cxx:541 AliAnalysisTaskBF.cxx:542 AliAnalysisTaskBF.cxx:543 AliAnalysisTaskBF.cxx:544 AliAnalysisTaskBF.cxx:545 AliAnalysisTaskBF.cxx:546 AliAnalysisTaskBF.cxx:547 AliAnalysisTaskBF.cxx:548 AliAnalysisTaskBF.cxx:549 AliAnalysisTaskBF.cxx:550 AliAnalysisTaskBF.cxx:551 AliAnalysisTaskBF.cxx:552 AliAnalysisTaskBF.cxx:553 AliAnalysisTaskBF.cxx:554 AliAnalysisTaskBF.cxx:555 AliAnalysisTaskBF.cxx:556 AliAnalysisTaskBF.cxx:557 AliAnalysisTaskBF.cxx:558 AliAnalysisTaskBF.cxx:559 AliAnalysisTaskBF.cxx:560 AliAnalysisTaskBF.cxx:561 AliAnalysisTaskBF.cxx:562 AliAnalysisTaskBF.cxx:563 AliAnalysisTaskBF.cxx:564 AliAnalysisTaskBF.cxx:565 AliAnalysisTaskBF.cxx:566 AliAnalysisTaskBF.cxx:567 AliAnalysisTaskBF.cxx:568 AliAnalysisTaskBF.cxx:569 AliAnalysisTaskBF.cxx:570 AliAnalysisTaskBF.cxx:571 AliAnalysisTaskBF.cxx:572 AliAnalysisTaskBF.cxx:573 AliAnalysisTaskBF.cxx:574 AliAnalysisTaskBF.cxx:575 AliAnalysisTaskBF.cxx:576 AliAnalysisTaskBF.cxx:577 AliAnalysisTaskBF.cxx:578 AliAnalysisTaskBF.cxx:579 AliAnalysisTaskBF.cxx:580 AliAnalysisTaskBF.cxx:581 AliAnalysisTaskBF.cxx:582 AliAnalysisTaskBF.cxx:583 AliAnalysisTaskBF.cxx:584 AliAnalysisTaskBF.cxx:585 AliAnalysisTaskBF.cxx:586 AliAnalysisTaskBF.cxx:587 AliAnalysisTaskBF.cxx:588 AliAnalysisTaskBF.cxx:589 AliAnalysisTaskBF.cxx:590 AliAnalysisTaskBF.cxx:591 AliAnalysisTaskBF.cxx:592 AliAnalysisTaskBF.cxx:593 AliAnalysisTaskBF.cxx:594 AliAnalysisTaskBF.cxx:595 AliAnalysisTaskBF.cxx:596 AliAnalysisTaskBF.cxx:597 AliAnalysisTaskBF.cxx:598 AliAnalysisTaskBF.cxx:599 AliAnalysisTaskBF.cxx:600 AliAnalysisTaskBF.cxx:601 AliAnalysisTaskBF.cxx:602 AliAnalysisTaskBF.cxx:603 AliAnalysisTaskBF.cxx:604 AliAnalysisTaskBF.cxx:605 AliAnalysisTaskBF.cxx:606 AliAnalysisTaskBF.cxx:607 AliAnalysisTaskBF.cxx:608 AliAnalysisTaskBF.cxx:609 AliAnalysisTaskBF.cxx:610 AliAnalysisTaskBF.cxx:611 AliAnalysisTaskBF.cxx:612 AliAnalysisTaskBF.cxx:613 AliAnalysisTaskBF.cxx:614 AliAnalysisTaskBF.cxx:615 AliAnalysisTaskBF.cxx:616 AliAnalysisTaskBF.cxx:617 AliAnalysisTaskBF.cxx:618 AliAnalysisTaskBF.cxx:619 AliAnalysisTaskBF.cxx:620 AliAnalysisTaskBF.cxx:621 AliAnalysisTaskBF.cxx:622 AliAnalysisTaskBF.cxx:623 AliAnalysisTaskBF.cxx:624 AliAnalysisTaskBF.cxx:625 AliAnalysisTaskBF.cxx:626 AliAnalysisTaskBF.cxx:627 AliAnalysisTaskBF.cxx:628 AliAnalysisTaskBF.cxx:629 AliAnalysisTaskBF.cxx:630 AliAnalysisTaskBF.cxx:631 AliAnalysisTaskBF.cxx:632 AliAnalysisTaskBF.cxx:633 AliAnalysisTaskBF.cxx:634 AliAnalysisTaskBF.cxx:635 AliAnalysisTaskBF.cxx:636 AliAnalysisTaskBF.cxx:637 AliAnalysisTaskBF.cxx:638 AliAnalysisTaskBF.cxx:639 AliAnalysisTaskBF.cxx:640 AliAnalysisTaskBF.cxx:641 AliAnalysisTaskBF.cxx:642 AliAnalysisTaskBF.cxx:643 AliAnalysisTaskBF.cxx:644 AliAnalysisTaskBF.cxx:645 AliAnalysisTaskBF.cxx:646 AliAnalysisTaskBF.cxx:647 AliAnalysisTaskBF.cxx:648 AliAnalysisTaskBF.cxx:649 AliAnalysisTaskBF.cxx:650 AliAnalysisTaskBF.cxx:651 AliAnalysisTaskBF.cxx:652 AliAnalysisTaskBF.cxx:653 AliAnalysisTaskBF.cxx:654 AliAnalysisTaskBF.cxx:655 AliAnalysisTaskBF.cxx:656 AliAnalysisTaskBF.cxx:657 AliAnalysisTaskBF.cxx:658 AliAnalysisTaskBF.cxx:659 AliAnalysisTaskBF.cxx:660 AliAnalysisTaskBF.cxx:661 AliAnalysisTaskBF.cxx:662 AliAnalysisTaskBF.cxx:663 AliAnalysisTaskBF.cxx:664 AliAnalysisTaskBF.cxx:665 AliAnalysisTaskBF.cxx:666 AliAnalysisTaskBF.cxx:667 AliAnalysisTaskBF.cxx:668 AliAnalysisTaskBF.cxx:669 AliAnalysisTaskBF.cxx:670 AliAnalysisTaskBF.cxx:671 AliAnalysisTaskBF.cxx:672 AliAnalysisTaskBF.cxx:673 AliAnalysisTaskBF.cxx:674 AliAnalysisTaskBF.cxx:675 AliAnalysisTaskBF.cxx:676 AliAnalysisTaskBF.cxx:677 AliAnalysisTaskBF.cxx:678 AliAnalysisTaskBF.cxx:679 AliAnalysisTaskBF.cxx:680 AliAnalysisTaskBF.cxx:681 AliAnalysisTaskBF.cxx:682 AliAnalysisTaskBF.cxx:683 AliAnalysisTaskBF.cxx:684 AliAnalysisTaskBF.cxx:685 AliAnalysisTaskBF.cxx:686 AliAnalysisTaskBF.cxx:687 AliAnalysisTaskBF.cxx:688 AliAnalysisTaskBF.cxx:689 AliAnalysisTaskBF.cxx:690 AliAnalysisTaskBF.cxx:691 AliAnalysisTaskBF.cxx:692 AliAnalysisTaskBF.cxx:693 AliAnalysisTaskBF.cxx:694 AliAnalysisTaskBF.cxx:695 AliAnalysisTaskBF.cxx:696 AliAnalysisTaskBF.cxx:697 AliAnalysisTaskBF.cxx:698 AliAnalysisTaskBF.cxx:699 AliAnalysisTaskBF.cxx:700 AliAnalysisTaskBF.cxx:701 AliAnalysisTaskBF.cxx:702 AliAnalysisTaskBF.cxx:703 AliAnalysisTaskBF.cxx:704 AliAnalysisTaskBF.cxx:705 AliAnalysisTaskBF.cxx:706 AliAnalysisTaskBF.cxx:707 AliAnalysisTaskBF.cxx:708 AliAnalysisTaskBF.cxx:709 AliAnalysisTaskBF.cxx:710 AliAnalysisTaskBF.cxx:711 AliAnalysisTaskBF.cxx:712 AliAnalysisTaskBF.cxx:713 AliAnalysisTaskBF.cxx:714 AliAnalysisTaskBF.cxx:715 AliAnalysisTaskBF.cxx:716 AliAnalysisTaskBF.cxx:717 AliAnalysisTaskBF.cxx:718 AliAnalysisTaskBF.cxx:719 AliAnalysisTaskBF.cxx:720 AliAnalysisTaskBF.cxx:721 AliAnalysisTaskBF.cxx:722 AliAnalysisTaskBF.cxx:723 AliAnalysisTaskBF.cxx:724 AliAnalysisTaskBF.cxx:725 AliAnalysisTaskBF.cxx:726 AliAnalysisTaskBF.cxx:727 AliAnalysisTaskBF.cxx:728 AliAnalysisTaskBF.cxx:729 AliAnalysisTaskBF.cxx:730 AliAnalysisTaskBF.cxx:731 AliAnalysisTaskBF.cxx:732 AliAnalysisTaskBF.cxx:733 AliAnalysisTaskBF.cxx:734 AliAnalysisTaskBF.cxx:735 AliAnalysisTaskBF.cxx:736 AliAnalysisTaskBF.cxx:737 AliAnalysisTaskBF.cxx:738 AliAnalysisTaskBF.cxx:739 AliAnalysisTaskBF.cxx:740 AliAnalysisTaskBF.cxx:741 AliAnalysisTaskBF.cxx:742 AliAnalysisTaskBF.cxx:743 AliAnalysisTaskBF.cxx:744 AliAnalysisTaskBF.cxx:745 AliAnalysisTaskBF.cxx:746 AliAnalysisTaskBF.cxx:747 AliAnalysisTaskBF.cxx:748 AliAnalysisTaskBF.cxx:749 AliAnalysisTaskBF.cxx:750 AliAnalysisTaskBF.cxx:751 AliAnalysisTaskBF.cxx:752 AliAnalysisTaskBF.cxx:753 AliAnalysisTaskBF.cxx:754 AliAnalysisTaskBF.cxx:755 AliAnalysisTaskBF.cxx:756 AliAnalysisTaskBF.cxx:757 AliAnalysisTaskBF.cxx:758 AliAnalysisTaskBF.cxx:759 AliAnalysisTaskBF.cxx:760 AliAnalysisTaskBF.cxx:761 AliAnalysisTaskBF.cxx:762 AliAnalysisTaskBF.cxx:763 AliAnalysisTaskBF.cxx:764 AliAnalysisTaskBF.cxx:765 AliAnalysisTaskBF.cxx:766 AliAnalysisTaskBF.cxx:767 AliAnalysisTaskBF.cxx:768 AliAnalysisTaskBF.cxx:769 AliAnalysisTaskBF.cxx:770 AliAnalysisTaskBF.cxx:771 AliAnalysisTaskBF.cxx:772 AliAnalysisTaskBF.cxx:773 AliAnalysisTaskBF.cxx:774 AliAnalysisTaskBF.cxx:775 AliAnalysisTaskBF.cxx:776 AliAnalysisTaskBF.cxx:777 AliAnalysisTaskBF.cxx:778 AliAnalysisTaskBF.cxx:779 AliAnalysisTaskBF.cxx:780 AliAnalysisTaskBF.cxx:781 AliAnalysisTaskBF.cxx:782 AliAnalysisTaskBF.cxx:783 AliAnalysisTaskBF.cxx:784 AliAnalysisTaskBF.cxx:785 AliAnalysisTaskBF.cxx:786 AliAnalysisTaskBF.cxx:787 AliAnalysisTaskBF.cxx:788 AliAnalysisTaskBF.cxx:789 AliAnalysisTaskBF.cxx:790 AliAnalysisTaskBF.cxx:791 AliAnalysisTaskBF.cxx:792 AliAnalysisTaskBF.cxx:793 AliAnalysisTaskBF.cxx:794 AliAnalysisTaskBF.cxx:795 AliAnalysisTaskBF.cxx:796 AliAnalysisTaskBF.cxx:797 AliAnalysisTaskBF.cxx:798 AliAnalysisTaskBF.cxx:799 AliAnalysisTaskBF.cxx:800 AliAnalysisTaskBF.cxx:801 AliAnalysisTaskBF.cxx:802 AliAnalysisTaskBF.cxx:803 AliAnalysisTaskBF.cxx:804 AliAnalysisTaskBF.cxx:805 AliAnalysisTaskBF.cxx:806 AliAnalysisTaskBF.cxx:807 AliAnalysisTaskBF.cxx:808 AliAnalysisTaskBF.cxx:809 AliAnalysisTaskBF.cxx:810 AliAnalysisTaskBF.cxx:811 AliAnalysisTaskBF.cxx:812 AliAnalysisTaskBF.cxx:813 AliAnalysisTaskBF.cxx:814 AliAnalysisTaskBF.cxx:815 AliAnalysisTaskBF.cxx:816 AliAnalysisTaskBF.cxx:817 AliAnalysisTaskBF.cxx:818 AliAnalysisTaskBF.cxx:819 AliAnalysisTaskBF.cxx:820 AliAnalysisTaskBF.cxx:821 AliAnalysisTaskBF.cxx:822 AliAnalysisTaskBF.cxx:823 AliAnalysisTaskBF.cxx:824 AliAnalysisTaskBF.cxx:825 AliAnalysisTaskBF.cxx:826 AliAnalysisTaskBF.cxx:827 AliAnalysisTaskBF.cxx:828 AliAnalysisTaskBF.cxx:829 AliAnalysisTaskBF.cxx:830 AliAnalysisTaskBF.cxx:831 AliAnalysisTaskBF.cxx:832 AliAnalysisTaskBF.cxx:833 AliAnalysisTaskBF.cxx:834 AliAnalysisTaskBF.cxx:835 AliAnalysisTaskBF.cxx:836 AliAnalysisTaskBF.cxx:837 AliAnalysisTaskBF.cxx:838 AliAnalysisTaskBF.cxx:839 AliAnalysisTaskBF.cxx:840 AliAnalysisTaskBF.cxx:841 AliAnalysisTaskBF.cxx:842 AliAnalysisTaskBF.cxx:843 AliAnalysisTaskBF.cxx:844 AliAnalysisTaskBF.cxx:845 AliAnalysisTaskBF.cxx:846 AliAnalysisTaskBF.cxx:847 AliAnalysisTaskBF.cxx:848 AliAnalysisTaskBF.cxx:849 AliAnalysisTaskBF.cxx:850 AliAnalysisTaskBF.cxx:851 AliAnalysisTaskBF.cxx:852 AliAnalysisTaskBF.cxx:853 AliAnalysisTaskBF.cxx:854 AliAnalysisTaskBF.cxx:855 AliAnalysisTaskBF.cxx:856 AliAnalysisTaskBF.cxx:857 AliAnalysisTaskBF.cxx:858 AliAnalysisTaskBF.cxx:859 AliAnalysisTaskBF.cxx:860 AliAnalysisTaskBF.cxx:861 AliAnalysisTaskBF.cxx:862 AliAnalysisTaskBF.cxx:863 AliAnalysisTaskBF.cxx:864 AliAnalysisTaskBF.cxx:865 AliAnalysisTaskBF.cxx:866 AliAnalysisTaskBF.cxx:867 AliAnalysisTaskBF.cxx:868 AliAnalysisTaskBF.cxx:869 AliAnalysisTaskBF.cxx:870 AliAnalysisTaskBF.cxx:871 AliAnalysisTaskBF.cxx:872 AliAnalysisTaskBF.cxx:873 AliAnalysisTaskBF.cxx:874 AliAnalysisTaskBF.cxx:875 AliAnalysisTaskBF.cxx:876 AliAnalysisTaskBF.cxx:877 AliAnalysisTaskBF.cxx:878 AliAnalysisTaskBF.cxx:879 AliAnalysisTaskBF.cxx:880 AliAnalysisTaskBF.cxx:881 AliAnalysisTaskBF.cxx:882 AliAnalysisTaskBF.cxx:883 AliAnalysisTaskBF.cxx:884 AliAnalysisTaskBF.cxx:885 AliAnalysisTaskBF.cxx:886 AliAnalysisTaskBF.cxx:887 AliAnalysisTaskBF.cxx:888 AliAnalysisTaskBF.cxx:889 AliAnalysisTaskBF.cxx:890 AliAnalysisTaskBF.cxx:891 AliAnalysisTaskBF.cxx:892 AliAnalysisTaskBF.cxx:893 AliAnalysisTaskBF.cxx:894 AliAnalysisTaskBF.cxx:895 AliAnalysisTaskBF.cxx:896 AliAnalysisTaskBF.cxx:897 AliAnalysisTaskBF.cxx:898 AliAnalysisTaskBF.cxx:899 AliAnalysisTaskBF.cxx:900 AliAnalysisTaskBF.cxx:901 AliAnalysisTaskBF.cxx:902 AliAnalysisTaskBF.cxx:903 AliAnalysisTaskBF.cxx:904 AliAnalysisTaskBF.cxx:905 AliAnalysisTaskBF.cxx:906 AliAnalysisTaskBF.cxx:907 AliAnalysisTaskBF.cxx:908 AliAnalysisTaskBF.cxx:909 AliAnalysisTaskBF.cxx:910 AliAnalysisTaskBF.cxx:911 AliAnalysisTaskBF.cxx:912 AliAnalysisTaskBF.cxx:913 AliAnalysisTaskBF.cxx:914 AliAnalysisTaskBF.cxx:915 AliAnalysisTaskBF.cxx:916 AliAnalysisTaskBF.cxx:917 AliAnalysisTaskBF.cxx:918 AliAnalysisTaskBF.cxx:919 AliAnalysisTaskBF.cxx:920 AliAnalysisTaskBF.cxx:921 AliAnalysisTaskBF.cxx:922 AliAnalysisTaskBF.cxx:923 AliAnalysisTaskBF.cxx:924 AliAnalysisTaskBF.cxx:925 AliAnalysisTaskBF.cxx:926 AliAnalysisTaskBF.cxx:927 AliAnalysisTaskBF.cxx:928 AliAnalysisTaskBF.cxx:929 AliAnalysisTaskBF.cxx:930 AliAnalysisTaskBF.cxx:931 AliAnalysisTaskBF.cxx:932 AliAnalysisTaskBF.cxx:933 AliAnalysisTaskBF.cxx:934 AliAnalysisTaskBF.cxx:935 AliAnalysisTaskBF.cxx:936 AliAnalysisTaskBF.cxx:937 AliAnalysisTaskBF.cxx:938 AliAnalysisTaskBF.cxx:939 AliAnalysisTaskBF.cxx:940 AliAnalysisTaskBF.cxx:941 AliAnalysisTaskBF.cxx:942 AliAnalysisTaskBF.cxx:943 AliAnalysisTaskBF.cxx:944 AliAnalysisTaskBF.cxx:945 AliAnalysisTaskBF.cxx:946 AliAnalysisTaskBF.cxx:947 AliAnalysisTaskBF.cxx:948 AliAnalysisTaskBF.cxx:949 AliAnalysisTaskBF.cxx:950 AliAnalysisTaskBF.cxx:951 AliAnalysisTaskBF.cxx:952 AliAnalysisTaskBF.cxx:953 AliAnalysisTaskBF.cxx:954 AliAnalysisTaskBF.cxx:955 AliAnalysisTaskBF.cxx:956 AliAnalysisTaskBF.cxx:957 AliAnalysisTaskBF.cxx:958 AliAnalysisTaskBF.cxx:959 AliAnalysisTaskBF.cxx:960 AliAnalysisTaskBF.cxx:961 AliAnalysisTaskBF.cxx:962 AliAnalysisTaskBF.cxx:963 AliAnalysisTaskBF.cxx:964 AliAnalysisTaskBF.cxx:965 AliAnalysisTaskBF.cxx:966 AliAnalysisTaskBF.cxx:967 AliAnalysisTaskBF.cxx:968 AliAnalysisTaskBF.cxx:969 AliAnalysisTaskBF.cxx:970 AliAnalysisTaskBF.cxx:971 AliAnalysisTaskBF.cxx:972 AliAnalysisTaskBF.cxx:973 AliAnalysisTaskBF.cxx:974 AliAnalysisTaskBF.cxx:975 AliAnalysisTaskBF.cxx:976 AliAnalysisTaskBF.cxx:977 AliAnalysisTaskBF.cxx:978 AliAnalysisTaskBF.cxx:979 AliAnalysisTaskBF.cxx:980 AliAnalysisTaskBF.cxx:981 AliAnalysisTaskBF.cxx:982 AliAnalysisTaskBF.cxx:983 AliAnalysisTaskBF.cxx:984 AliAnalysisTaskBF.cxx:985 AliAnalysisTaskBF.cxx:986 AliAnalysisTaskBF.cxx:987 AliAnalysisTaskBF.cxx:988 AliAnalysisTaskBF.cxx:989 AliAnalysisTaskBF.cxx:990 AliAnalysisTaskBF.cxx:991 AliAnalysisTaskBF.cxx:992 AliAnalysisTaskBF.cxx:993 AliAnalysisTaskBF.cxx:994 AliAnalysisTaskBF.cxx:995 AliAnalysisTaskBF.cxx:996 AliAnalysisTaskBF.cxx:997 AliAnalysisTaskBF.cxx:998 AliAnalysisTaskBF.cxx:999 AliAnalysisTaskBF.cxx:1000 AliAnalysisTaskBF.cxx:1001 AliAnalysisTaskBF.cxx:1002 AliAnalysisTaskBF.cxx:1003 AliAnalysisTaskBF.cxx:1004 AliAnalysisTaskBF.cxx:1005 AliAnalysisTaskBF.cxx:1006 AliAnalysisTaskBF.cxx:1007 AliAnalysisTaskBF.cxx:1008 AliAnalysisTaskBF.cxx:1009 AliAnalysisTaskBF.cxx:1010 AliAnalysisTaskBF.cxx:1011 AliAnalysisTaskBF.cxx:1012 AliAnalysisTaskBF.cxx:1013 AliAnalysisTaskBF.cxx:1014 AliAnalysisTaskBF.cxx:1015 AliAnalysisTaskBF.cxx:1016 AliAnalysisTaskBF.cxx:1017 AliAnalysisTaskBF.cxx:1018 AliAnalysisTaskBF.cxx:1019 AliAnalysisTaskBF.cxx:1020 AliAnalysisTaskBF.cxx:1021 AliAnalysisTaskBF.cxx:1022 AliAnalysisTaskBF.cxx:1023 AliAnalysisTaskBF.cxx:1024 AliAnalysisTaskBF.cxx:1025 AliAnalysisTaskBF.cxx:1026 AliAnalysisTaskBF.cxx:1027 AliAnalysisTaskBF.cxx:1028 AliAnalysisTaskBF.cxx:1029 AliAnalysisTaskBF.cxx:1030 AliAnalysisTaskBF.cxx:1031 AliAnalysisTaskBF.cxx:1032 AliAnalysisTaskBF.cxx:1033 AliAnalysisTaskBF.cxx:1034 AliAnalysisTaskBF.cxx:1035 AliAnalysisTaskBF.cxx:1036 AliAnalysisTaskBF.cxx:1037 AliAnalysisTaskBF.cxx:1038 AliAnalysisTaskBF.cxx:1039 AliAnalysisTaskBF.cxx:1040 AliAnalysisTaskBF.cxx:1041 AliAnalysisTaskBF.cxx:1042 AliAnalysisTaskBF.cxx:1043 AliAnalysisTaskBF.cxx:1044 AliAnalysisTaskBF.cxx:1045 AliAnalysisTaskBF.cxx:1046 AliAnalysisTaskBF.cxx:1047 AliAnalysisTaskBF.cxx:1048 AliAnalysisTaskBF.cxx:1049 AliAnalysisTaskBF.cxx:1050 AliAnalysisTaskBF.cxx:1051 AliAnalysisTaskBF.cxx:1052 AliAnalysisTaskBF.cxx:1053 AliAnalysisTaskBF.cxx:1054 AliAnalysisTaskBF.cxx:1055 AliAnalysisTaskBF.cxx:1056 AliAnalysisTaskBF.cxx:1057 AliAnalysisTaskBF.cxx:1058 AliAnalysisTaskBF.cxx:1059 AliAnalysisTaskBF.cxx:1060 AliAnalysisTaskBF.cxx:1061 AliAnalysisTaskBF.cxx:1062 AliAnalysisTaskBF.cxx:1063 AliAnalysisTaskBF.cxx:1064 AliAnalysisTaskBF.cxx:1065 AliAnalysisTaskBF.cxx:1066 AliAnalysisTaskBF.cxx:1067 AliAnalysisTaskBF.cxx:1068 AliAnalysisTaskBF.cxx:1069 AliAnalysisTaskBF.cxx:1070 AliAnalysisTaskBF.cxx:1071 AliAnalysisTaskBF.cxx:1072 AliAnalysisTaskBF.cxx:1073 AliAnalysisTaskBF.cxx:1074 AliAnalysisTaskBF.cxx:1075 AliAnalysisTaskBF.cxx:1076 AliAnalysisTaskBF.cxx:1077 AliAnalysisTaskBF.cxx:1078 AliAnalysisTaskBF.cxx:1079 AliAnalysisTaskBF.cxx:1080 AliAnalysisTaskBF.cxx:1081 AliAnalysisTaskBF.cxx:1082 AliAnalysisTaskBF.cxx:1083 AliAnalysisTaskBF.cxx:1084 AliAnalysisTaskBF.cxx:1085 AliAnalysisTaskBF.cxx:1086 AliAnalysisTaskBF.cxx:1087 AliAnalysisTaskBF.cxx:1088 AliAnalysisTaskBF.cxx:1089 AliAnalysisTaskBF.cxx:1090 AliAnalysisTaskBF.cxx:1091 AliAnalysisTaskBF.cxx:1092 AliAnalysisTaskBF.cxx:1093 AliAnalysisTaskBF.cxx:1094 AliAnalysisTaskBF.cxx:1095 AliAnalysisTaskBF.cxx:1096 AliAnalysisTaskBF.cxx:1097 AliAnalysisTaskBF.cxx:1098 AliAnalysisTaskBF.cxx:1099 AliAnalysisTaskBF.cxx:1100 AliAnalysisTaskBF.cxx:1101 AliAnalysisTaskBF.cxx:1102 AliAnalysisTaskBF.cxx:1103 AliAnalysisTaskBF.cxx:1104 AliAnalysisTaskBF.cxx:1105 AliAnalysisTaskBF.cxx:1106 AliAnalysisTaskBF.cxx:1107 AliAnalysisTaskBF.cxx:1108 AliAnalysisTaskBF.cxx:1109 AliAnalysisTaskBF.cxx:1110 AliAnalysisTaskBF.cxx:1111 AliAnalysisTaskBF.cxx:1112 AliAnalysisTaskBF.cxx:1113 AliAnalysisTaskBF.cxx:1114 AliAnalysisTaskBF.cxx:1115 AliAnalysisTaskBF.cxx:1116 AliAnalysisTaskBF.cxx:1117 AliAnalysisTaskBF.cxx:1118 AliAnalysisTaskBF.cxx:1119 AliAnalysisTaskBF.cxx:1120 AliAnalysisTaskBF.cxx:1121 AliAnalysisTaskBF.cxx:1122 AliAnalysisTaskBF.cxx:1123 AliAnalysisTaskBF.cxx:1124 AliAnalysisTaskBF.cxx:1125 AliAnalysisTaskBF.cxx:1126 AliAnalysisTaskBF.cxx:1127 AliAnalysisTaskBF.cxx:1128 AliAnalysisTaskBF.cxx:1129 AliAnalysisTaskBF.cxx:1130 AliAnalysisTaskBF.cxx:1131 AliAnalysisTaskBF.cxx:1132 AliAnalysisTaskBF.cxx:1133 AliAnalysisTaskBF.cxx:1134 AliAnalysisTaskBF.cxx:1135 AliAnalysisTaskBF.cxx:1136 AliAnalysisTaskBF.cxx:1137 AliAnalysisTaskBF.cxx:1138 AliAnalysisTaskBF.cxx:1139 AliAnalysisTaskBF.cxx:1140 AliAnalysisTaskBF.cxx:1141 AliAnalysisTaskBF.cxx:1142 AliAnalysisTaskBF.cxx:1143 AliAnalysisTaskBF.cxx:1144 AliAnalysisTaskBF.cxx:1145 AliAnalysisTaskBF.cxx:1146 AliAnalysisTaskBF.cxx:1147 AliAnalysisTaskBF.cxx:1148 AliAnalysisTaskBF.cxx:1149 AliAnalysisTaskBF.cxx:1150 AliAnalysisTaskBF.cxx:1151 AliAnalysisTaskBF.cxx:1152 AliAnalysisTaskBF.cxx:1153 AliAnalysisTaskBF.cxx:1154 AliAnalysisTaskBF.cxx:1155 AliAnalysisTaskBF.cxx:1156 AliAnalysisTaskBF.cxx:1157 AliAnalysisTaskBF.cxx:1158 AliAnalysisTaskBF.cxx:1159 AliAnalysisTaskBF.cxx:1160 AliAnalysisTaskBF.cxx:1161 AliAnalysisTaskBF.cxx:1162 AliAnalysisTaskBF.cxx:1163 AliAnalysisTaskBF.cxx:1164 AliAnalysisTaskBF.cxx:1165 AliAnalysisTaskBF.cxx:1166 AliAnalysisTaskBF.cxx:1167 AliAnalysisTaskBF.cxx:1168 AliAnalysisTaskBF.cxx:1169 AliAnalysisTaskBF.cxx:1170 AliAnalysisTaskBF.cxx:1171 AliAnalysisTaskBF.cxx:1172 AliAnalysisTaskBF.cxx:1173 AliAnalysisTaskBF.cxx:1174 AliAnalysisTaskBF.cxx:1175 AliAnalysisTaskBF.cxx:1176 AliAnalysisTaskBF.cxx:1177 AliAnalysisTaskBF.cxx:1178 AliAnalysisTaskBF.cxx:1179 AliAnalysisTaskBF.cxx:1180 AliAnalysisTaskBF.cxx:1181 AliAnalysisTaskBF.cxx:1182 AliAnalysisTaskBF.cxx:1183 AliAnalysisTaskBF.cxx:1184 AliAnalysisTaskBF.cxx:1185 AliAnalysisTaskBF.cxx:1186 AliAnalysisTaskBF.cxx:1187 AliAnalysisTaskBF.cxx:1188 AliAnalysisTaskBF.cxx:1189 AliAnalysisTaskBF.cxx:1190 AliAnalysisTaskBF.cxx:1191 AliAnalysisTaskBF.cxx:1192 AliAnalysisTaskBF.cxx:1193 AliAnalysisTaskBF.cxx:1194 AliAnalysisTaskBF.cxx:1195 AliAnalysisTaskBF.cxx:1196 AliAnalysisTaskBF.cxx:1197 AliAnalysisTaskBF.cxx:1198 AliAnalysisTaskBF.cxx:1199 AliAnalysisTaskBF.cxx:1200 AliAnalysisTaskBF.cxx:1201 AliAnalysisTaskBF.cxx:1202 AliAnalysisTaskBF.cxx:1203 AliAnalysisTaskBF.cxx:1204 AliAnalysisTaskBF.cxx:1205 AliAnalysisTaskBF.cxx:1206 AliAnalysisTaskBF.cxx:1207 AliAnalysisTaskBF.cxx:1208 AliAnalysisTaskBF.cxx:1209 AliAnalysisTaskBF.cxx:1210 AliAnalysisTaskBF.cxx:1211 AliAnalysisTaskBF.cxx:1212 AliAnalysisTaskBF.cxx:1213 AliAnalysisTaskBF.cxx:1214 AliAnalysisTaskBF.cxx:1215 AliAnalysisTaskBF.cxx:1216 AliAnalysisTaskBF.cxx:1217 AliAnalysisTaskBF.cxx:1218 AliAnalysisTaskBF.cxx:1219 AliAnalysisTaskBF.cxx:1220 AliAnalysisTaskBF.cxx:1221 AliAnalysisTaskBF.cxx:1222 AliAnalysisTaskBF.cxx:1223 AliAnalysisTaskBF.cxx:1224 AliAnalysisTaskBF.cxx:1225 AliAnalysisTaskBF.cxx:1226 AliAnalysisTaskBF.cxx:1227 AliAnalysisTaskBF.cxx:1228 AliAnalysisTaskBF.cxx:1229 AliAnalysisTaskBF.cxx:1230 AliAnalysisTaskBF.cxx:1231 AliAnalysisTaskBF.cxx:1232 AliAnalysisTaskBF.cxx:1233 AliAnalysisTaskBF.cxx:1234 AliAnalysisTaskBF.cxx:1235 AliAnalysisTaskBF.cxx:1236 AliAnalysisTaskBF.cxx:1237 AliAnalysisTaskBF.cxx:1238 AliAnalysisTaskBF.cxx:1239 AliAnalysisTaskBF.cxx:1240 AliAnalysisTaskBF.cxx:1241 AliAnalysisTaskBF.cxx:1242 AliAnalysisTaskBF.cxx:1243 AliAnalysisTaskBF.cxx:1244 AliAnalysisTaskBF.cxx:1245 AliAnalysisTaskBF.cxx:1246 AliAnalysisTaskBF.cxx:1247 AliAnalysisTaskBF.cxx:1248 AliAnalysisTaskBF.cxx:1249 AliAnalysisTaskBF.cxx:1250 AliAnalysisTaskBF.cxx:1251 AliAnalysisTaskBF.cxx:1252 AliAnalysisTaskBF.cxx:1253 AliAnalysisTaskBF.cxx:1254 AliAnalysisTaskBF.cxx:1255 AliAnalysisTaskBF.cxx:1256 AliAnalysisTaskBF.cxx:1257 AliAnalysisTaskBF.cxx:1258 AliAnalysisTaskBF.cxx:1259 AliAnalysisTaskBF.cxx:1260 AliAnalysisTaskBF.cxx:1261 AliAnalysisTaskBF.cxx:1262 AliAnalysisTaskBF.cxx:1263 AliAnalysisTaskBF.cxx:1264 AliAnalysisTaskBF.cxx:1265 AliAnalysisTaskBF.cxx:1266 AliAnalysisTaskBF.cxx:1267 AliAnalysisTaskBF.cxx:1268 AliAnalysisTaskBF.cxx:1269 AliAnalysisTaskBF.cxx:1270 AliAnalysisTaskBF.cxx:1271 AliAnalysisTaskBF.cxx:1272 AliAnalysisTaskBF.cxx:1273 AliAnalysisTaskBF.cxx:1274 AliAnalysisTaskBF.cxx:1275 AliAnalysisTaskBF.cxx:1276 AliAnalysisTaskBF.cxx:1277 AliAnalysisTaskBF.cxx:1278 AliAnalysisTaskBF.cxx:1279 AliAnalysisTaskBF.cxx:1280 AliAnalysisTaskBF.cxx:1281 AliAnalysisTaskBF.cxx:1282 AliAnalysisTaskBF.cxx:1283 AliAnalysisTaskBF.cxx:1284 AliAnalysisTaskBF.cxx:1285 AliAnalysisTaskBF.cxx:1286 AliAnalysisTaskBF.cxx:1287 AliAnalysisTaskBF.cxx:1288 AliAnalysisTaskBF.cxx:1289 AliAnalysisTaskBF.cxx:1290 AliAnalysisTaskBF.cxx:1291 AliAnalysisTaskBF.cxx:1292 AliAnalysisTaskBF.cxx:1293 AliAnalysisTaskBF.cxx:1294 AliAnalysisTaskBF.cxx:1295 AliAnalysisTaskBF.cxx:1296 AliAnalysisTaskBF.cxx:1297 AliAnalysisTaskBF.cxx:1298 AliAnalysisTaskBF.cxx:1299 AliAnalysisTaskBF.cxx:1300 AliAnalysisTaskBF.cxx:1301 AliAnalysisTaskBF.cxx:1302 AliAnalysisTaskBF.cxx:1303 AliAnalysisTaskBF.cxx:1304 AliAnalysisTaskBF.cxx:1305 AliAnalysisTaskBF.cxx:1306 AliAnalysisTaskBF.cxx:1307 AliAnalysisTaskBF.cxx:1308 AliAnalysisTaskBF.cxx:1309 AliAnalysisTaskBF.cxx:1310 AliAnalysisTaskBF.cxx:1311 AliAnalysisTaskBF.cxx:1312 AliAnalysisTaskBF.cxx:1313 AliAnalysisTaskBF.cxx:1314 AliAnalysisTaskBF.cxx:1315 AliAnalysisTaskBF.cxx:1316 AliAnalysisTaskBF.cxx:1317 AliAnalysisTaskBF.cxx:1318 AliAnalysisTaskBF.cxx:1319 AliAnalysisTaskBF.cxx:1320 AliAnalysisTaskBF.cxx:1321 AliAnalysisTaskBF.cxx:1322 AliAnalysisTaskBF.cxx:1323 AliAnalysisTaskBF.cxx:1324 AliAnalysisTaskBF.cxx:1325 AliAnalysisTaskBF.cxx:1326 AliAnalysisTaskBF.cxx:1327 AliAnalysisTaskBF.cxx:1328 AliAnalysisTaskBF.cxx:1329 AliAnalysisTaskBF.cxx:1330 AliAnalysisTaskBF.cxx:1331 AliAnalysisTaskBF.cxx:1332 AliAnalysisTaskBF.cxx:1333 AliAnalysisTaskBF.cxx:1334 AliAnalysisTaskBF.cxx:1335 AliAnalysisTaskBF.cxx:1336 AliAnalysisTaskBF.cxx:1337 AliAnalysisTaskBF.cxx:1338 AliAnalysisTaskBF.cxx:1339 AliAnalysisTaskBF.cxx:1340 AliAnalysisTaskBF.cxx:1341 AliAnalysisTaskBF.cxx:1342 AliAnalysisTaskBF.cxx:1343 AliAnalysisTaskBF.cxx:1344 AliAnalysisTaskBF.cxx:1345 AliAnalysisTaskBF.cxx:1346 AliAnalysisTaskBF.cxx:1347 AliAnalysisTaskBF.cxx:1348 AliAnalysisTaskBF.cxx:1349 AliAnalysisTaskBF.cxx:1350 AliAnalysisTaskBF.cxx:1351 AliAnalysisTaskBF.cxx:1352 AliAnalysisTaskBF.cxx:1353 AliAnalysisTaskBF.cxx:1354 AliAnalysisTaskBF.cxx:1355 AliAnalysisTaskBF.cxx:1356 AliAnalysisTaskBF.cxx:1357 AliAnalysisTaskBF.cxx:1358 AliAnalysisTaskBF.cxx:1359 AliAnalysisTaskBF.cxx:1360