#include <TROOT.h>
#include <TSystem.h>
#include <TInterpreter.h>
#include <TChain.h>
#include <TFile.h>
#include <TList.h>
#include <TMath.h>
#include <TH3D.h>
#include <TProfile2D.h>
#include <TParameter.h>
#include <TMatrixD.h>
#include <TVectorD.h>
#include <TGraph.h>
#include "AliLog.h"
#include "AliForwardFlowTaskQC.h"
#include "AliAnalysisManager.h"
#include "AliAODHandler.h"
#include "AliAODInputHandler.h"
#include "AliAODForwardMult.h"
#include "AliAODCentralMult.h"
#include "AliAODEvent.h"
#include "AliForwardUtil.h"
#include "AliVVZERO.h"
#include "AliAODVertex.h"
#include "AliCentrality.h"
#include "AliESDEvent.h"
#include "AliVTrack.h"
#include "AliESDtrack.h"
#include "AliAODTrack.h"
#include "AliAnalysisFilter.h"
#include "AliAODMCHeader.h"
#include "AliForwardFlowWeights.h"
ClassImp(AliForwardFlowTaskQC)
#if 0
;
#endif
AliForwardFlowTaskQC::AliForwardFlowTaskQC()
: AliAnalysisTaskSE(),
fVtxAxis(),
fCentAxis(),
fFMDCut(-1),
fSPDCut(-1),
fFlowFlags(0),
fEtaGap(0.),
fBinsForward(),
fBinsCentral(),
fSumList(0),
fOutputList(0),
fAOD(0),
fTrackCuts(0),
fMaxMoment(0),
fVtx(1111),
fCent(-1),
fHistdNdedpV0(),
fHistdNdedp3Cor(),
fHistFMDSPDCorr(),
fHistCent(),
fHistVertexSel(),
fHistEventSel()
{
}
AliForwardFlowTaskQC::AliForwardFlowTaskQC(const char* name)
: AliAnalysisTaskSE(name),
fVtxAxis(),
fCentAxis(),
fFMDCut(-1),
fSPDCut(-1),
fFlowFlags(0x0),
fEtaGap(0.),
fBinsForward(),
fBinsCentral(),
fSumList(0),
fOutputList(0),
fAOD(0),
fTrackCuts(0),
fMaxMoment(4),
fVtx(1111),
fCent(-1),
fHistdNdedpV0(),
fHistdNdedp3Cor(),
fHistFMDSPDCorr(),
fHistCent(),
fHistVertexSel(),
fHistEventSel()
{
DefineOutput(1, TList::Class());
DefineOutput(2, TList::Class());
}
AliForwardFlowTaskQC::AliForwardFlowTaskQC(const AliForwardFlowTaskQC& o)
: AliAnalysisTaskSE(o),
fVtxAxis(o.fVtxAxis),
fCentAxis(o.fCentAxis),
fFMDCut(o.fFMDCut),
fSPDCut(o.fSPDCut),
fFlowFlags(o.fFlowFlags),
fEtaGap(o.fEtaGap),
fBinsForward(),
fBinsCentral(),
fSumList(o.fSumList),
fOutputList(o.fOutputList),
fAOD(o.fAOD),
fTrackCuts(o.fTrackCuts),
fMaxMoment(o.fMaxMoment),
fVtx(o.fVtx),
fCent(o.fCent),
fHistdNdedpV0(o.fHistdNdedpV0),
fHistdNdedp3Cor(o.fHistdNdedp3Cor),
fHistFMDSPDCorr(o.fHistFMDSPDCorr),
fHistCent(o.fHistCent),
fHistVertexSel(o.fHistVertexSel),
fHistEventSel(o.fHistEventSel)
{
}
AliForwardFlowTaskQC&
AliForwardFlowTaskQC::operator=(const AliForwardFlowTaskQC& o)
{
if (&o == this) return *this;
fVtxAxis = o.fVtxAxis;
fCentAxis = o.fCentAxis;
fFMDCut = o.fFMDCut;
fSPDCut = o.fSPDCut;
fFlowFlags = o.fFlowFlags;
fEtaGap = o.fEtaGap;
fSumList = o.fSumList;
fOutputList = o.fOutputList;
fAOD = o.fAOD;
fTrackCuts = o.fTrackCuts;
fMaxMoment = o.fMaxMoment;
fVtx = o.fVtx;
fCent = o.fCent;
fHistdNdedpV0 = o.fHistdNdedpV0;
fHistdNdedp3Cor = o.fHistdNdedp3Cor;
fHistFMDSPDCorr = o.fHistFMDSPDCorr;
fHistCent = o.fHistCent;
fHistVertexSel = o.fHistVertexSel;
fHistEventSel = o.fHistEventSel;
return *this;
}
void AliForwardFlowTaskQC::SetFlowFlags(UShort_t flags)
{
if ((flags & kFMD) && (flags & kVZERO))
AliFatal("Cannot do analysis on more than one forward detector!");
else if (!(flags & kFMD) && !(flags & kVZERO))
AliFatal("You need to add a forward detector!");
else fFlowFlags = flags;
}
void AliForwardFlowTaskQC::UserCreateOutputObjects()
{
InitVertexBins();
InitHists();
if ((fFlowFlags & kTracks) && !fTrackCuts) AliFatal("No track cuts set!");
PrintFlowSetup();
PostData(1, fSumList);
}
void AliForwardFlowTaskQC::InitVertexBins()
{
for (Int_t v = 1; v <= fVtxAxis->GetNbins(); v++) {
Int_t vL = Int_t(fVtxAxis->GetBinLowEdge(v));
Int_t vH = Int_t(fVtxAxis->GetBinUpEdge(v));
if ((fFlowFlags & kFMD)) {
fBinsForward.Add(new VertexBin(vL, vH, fMaxMoment, "FMD", fFlowFlags, fFMDCut, fEtaGap));
if (!(fFlowFlags & k3Cor))
fBinsCentral.Add(new VertexBin(vL, vH, fMaxMoment, "SPD-FMD", fFlowFlags|kNUAcorr|kSPD, fSPDCut, fEtaGap));
}
else if ((fFlowFlags & kVZERO)) {
fBinsForward.Add(new VertexBin(vL, vH, fMaxMoment, "VZERO", fFlowFlags, 0, fEtaGap));
if ((fFlowFlags & kEtaGap) && !(fFlowFlags & kTracks))
fBinsCentral.Add(new VertexBin(vL, vH, fMaxMoment, "SPD-VZERO", fFlowFlags|kNUAcorr|kSPD, fSPDCut, fEtaGap));
}
}
}
void AliForwardFlowTaskQC::InitHists()
{
if (!fSumList)
fSumList = new TList();
fSumList->SetName("Sums");
fSumList->SetOwner();
if (!fVtxAxis) fVtxAxis = new TAxis(20, -10, 10);
fVtxAxis->SetName("VtxAxis");
if (!fCentAxis) fCentAxis = new TAxis(20, 0, 100);
fVtxAxis->SetName("CentAxis");
fHistCent = new TH1D("hCent", "Centralities", 100, 0, 100);
fHistVertexSel = new TH1D("hVertexSel", "Selected vertices", fVtxAxis->GetNbins(), fVtxAxis->GetXmin(), fVtxAxis->GetXmax());
fHistEventSel = new TH1I("hEventSel", "Event Selection", kOK, 0.5, kOK+0.5);
fHistEventSel->GetXaxis()->SetBinLabel(kNoEvent, "No AOD event");
fHistEventSel->GetXaxis()->SetBinLabel(kNoForward, "No forward det");
fHistEventSel->GetXaxis()->SetBinLabel(kNoCentral, "No central det");
fHistEventSel->GetXaxis()->SetBinLabel(kNoTrigger, "Not triggered");
fHistEventSel->GetXaxis()->SetBinLabel(kNoCent, "No centrality");
fHistEventSel->GetXaxis()->SetBinLabel(kInvCent, "Centrality outside range");
fHistEventSel->GetXaxis()->SetBinLabel(kNoVtx, "No vertex");
fHistEventSel->GetXaxis()->SetBinLabel(kInvVtx, "Vtx outside range");
fHistEventSel->GetXaxis()->SetBinLabel(kOK, "OK!");
fHistFMDSPDCorr = new TH2D("hFMDSPDCorr", "hFMDSPCCorr", 200, 0., 20000., 200, 0, 7500);
TList* dList = new TList();
dList->SetName("Diagnostics");
dList->Add(fHistCent);
dList->Add(fHistVertexSel);
dList->Add(fHistEventSel);
dList->Add(fHistFMDSPDCorr);
fSumList->Add(dList);
fHistdNdedp3Cor = TH2D(Form("hdNdedpCombined_%s", GetQCType(fFlowFlags)), Form("hdNdedpCombined_%s", GetQCType(fFlowFlags)),
200, -4., 6., 20, 0., TMath::TwoPi());
if ((fFlowFlags & kVZERO)) {
Double_t bins[12] = { -6, -3.7, -3.2, -2.7, -2.2, -1.7,
2.8, 3.4, 3.9, 4.5, 5.1, 6 };
fHistdNdedpV0 = TH2D(Form("hdNdedpv0%s", GetQCType(fFlowFlags)), Form("hdNdedpv0%s", GetQCType(fFlowFlags)),
11, -6, 6, 8, 0, TMath::TwoPi());
fHistdNdedpV0.GetXaxis()->Set(11, bins);
if ((fFlowFlags & k3Cor)) {
Double_t bins2[20] = { -6, -3.7, -3.2, -2.7, -2.2,
-2.0, -1.5, -1.0, -0.5 , 0., 0.5, 1.0, 1.5, 2.0,
2.8, 3.4, 3.9, 4.5, 5.1, 6 };
fHistdNdedp3Cor.GetXaxis()->Set(19, bins2);
fHistdNdedp3Cor.GetYaxis()->Set(8, 0., TMath::TwoPi());
}
}
TIter nextForward(&fBinsForward);
VertexBin* bin = 0;
while ((bin = static_cast<VertexBin*>(nextForward()))) {
bin->AddOutput(fSumList, fCentAxis);
}
TIter nextCentral(&fBinsCentral);
while ((bin = static_cast<VertexBin*>(nextCentral()))) {
bin->AddOutput(fSumList, fCentAxis);
}
}
void AliForwardFlowTaskQC::UserExec(Option_t *)
{
fCent = -1;
fVtx = 1111;
Analyze();
PostData(1, fSumList);
return;
}
Bool_t AliForwardFlowTaskQC::Analyze()
{
fAOD = dynamic_cast<AliAODEvent*>(AliForwardUtil::GetAODEvent(this));
if (!fAOD) {
fHistEventSel->Fill(kNoEvent);
return kFALSE;
}
AliAODForwardMult* aodfmult = static_cast<AliAODForwardMult*>(fAOD->FindListObject("Forward"));
AliAODCentralMult* aodcmult = static_cast<AliAODCentralMult*>(fAOD->FindListObject("CentralClusters"));
AliVVZERO* vzero = GetVZERO();
if ((fFlowFlags & kVZERO)) {
if (vzero) {
fHistdNdedpV0.Reset();
FillVZEROHist(vzero);
}
}
if ((fFlowFlags & kFMD) && !aodfmult) {
fHistEventSel->Fill(kNoForward);
return kFALSE;
}
else if ((fFlowFlags & kVZERO) && !vzero) {
fHistEventSel->Fill(kNoForward);
}
if (!aodcmult) fHistEventSel->Fill(kNoCentral);
if (!CheckEvent(aodfmult)) return kFALSE;
Int_t vtx = fVtxAxis->FindBin(fVtx)-1;
TH2D& forwarddNdedp = ((fFlowFlags & kFMD) ? aodfmult->GetHistogram() : fHistdNdedpV0);
TH2D& spddNdedp = aodcmult->GetHistogram();
if ((fFlowFlags & kStdQC)) {
FillVtxBinList(fBinsForward, forwarddNdedp, vtx);
} else if ((fFlowFlags & kEtaGap)) {
FillVtxBinListEtaGap(fBinsForward, forwarddNdedp, forwarddNdedp, vtx);
}
if (aodcmult) {
if ((fFlowFlags & kStdQC)) {
FillVtxBinList(fBinsCentral, spddNdedp, vtx);
} else if ((fFlowFlags & kEtaGap)) {
FillVtxBinListEtaGap(fBinsCentral, forwarddNdedp, spddNdedp, vtx);
} else if ((fFlowFlags & k3Cor)) {
FillVtxBinList3Cor(fBinsForward, spddNdedp, forwarddNdedp, vtx);
}
if (aodfmult) {
Double_t totForward = forwarddNdedp.Integral(1, forwarddNdedp.GetNbinsX(), 1, forwarddNdedp.GetNbinsY());
Double_t totSPD = spddNdedp.Integral(1, spddNdedp.GetNbinsX(), 1, spddNdedp.GetNbinsY());
fHistFMDSPDCorr->Fill(totForward, totSPD);
}
}
return kTRUE;
}
void AliForwardFlowTaskQC::FillVtxBinList(const TList& list, TH2D& h, Int_t vtx, UShort_t flags) const
{
VertexBin* bin = 0;
Int_t i = 0;
Int_t nVtxBins = fVtxAxis->GetNbins();
while ((bin = static_cast<VertexBin*>(list.At(vtx+(nVtxBins*i))))) {
i++;
if (!(fFlowFlags & kTracks) || (flags & kMC)) {
if (!bin->FillHists(h, fCent, kFillBoth|flags|kReset)) continue;
}
else if ((fFlowFlags & kTracks)) {
if (!FillTracks(bin, kFillRef|kReset|flags)) continue;
if (!bin->FillHists(h, fCent, kFillDiff|kReset|flags)) continue;
}
bin->CumulantsAccumulate(fCent);
}
return;
}
void AliForwardFlowTaskQC::FillVtxBinListEtaGap(const TList& list, TH2D& href,
TH2D& hdiff, Int_t vtx, UShort_t flags) const
{
VertexBin* bin = 0;
Int_t i = 0;
Int_t nVtxBins = fVtxAxis->GetNbins();
while ((bin = static_cast<VertexBin*>(list.At(vtx+(nVtxBins*i))))) {
i++;
if (!(fFlowFlags & kTracks) || (flags & kMC)) {
if(!bin->FillHists(href, fCent, kFillRef|flags|kReset)) continue;
}
else if ((fFlowFlags & kTracks)) {
if (!FillTracks(bin, kFillRef|kReset|flags)) continue;
}
if (!bin->FillHists(hdiff, fCent, kFillDiff|kReset|flags)) continue;
bin->CumulantsAccumulate(fCent);
}
return;
}
void AliForwardFlowTaskQC::FillVtxBinList3Cor(const TList& list, TH2D& hcent,
TH2D& hfwd, Int_t vtx, UShort_t flags)
{
VertexBin* bin = 0;
Int_t i = 0;
Int_t nVtxBins = fVtxAxis->GetNbins();
TH2D& h = CombineHists(hcent, hfwd);
while ((bin = static_cast<VertexBin*>(list.At(vtx+(nVtxBins*i))))) {
i++;
if (!bin->FillHists(h, fCent, kFillBoth|flags|kReset)) continue;
bin->CumulantsAccumulate3Cor(fCent);
}
return;
}
TH2D& AliForwardFlowTaskQC::CombineHists(TH2D& hcent, TH2D& hfwd)
{
if (&hcent == &hfwd) return hcent;
fHistdNdedp3Cor.Reset();
if ((fFlowFlags & kFMD)) {
for (Int_t e = 1; e <= fHistdNdedp3Cor.GetNbinsX(); e++) {
Double_t eta = fHistdNdedp3Cor.GetXaxis()->GetBinCenter(e);
Bool_t fwdCov = (hfwd.GetBinContent(e, 0) != 0);
Bool_t centCov = (hcent.GetBinContent(e, 0) != 0);
if (!fwdCov && !centCov) continue;
else fHistdNdedp3Cor.SetBinContent(e, 0, 1);
for (Int_t p = 1; p <= fHistdNdedp3Cor.GetNbinsY(); p++) {
Double_t phi = fHistdNdedp3Cor.GetYaxis()->GetBinCenter(p);
Int_t n = 0;
Double_t cont = 0.;
if (fwdCov) {
cont += hfwd.GetBinContent(e, p);
n++;
}
if (centCov) {
cont += hcent.GetBinContent(e, p);
n++;
}
if (cont == 0 || n == 0) continue;
cont /= n;
fHistdNdedp3Cor.Fill(eta, phi, cont);
}
}
} else if ((fFlowFlags & kVZERO)) {
for (Int_t eV = 1; eV <= hfwd.GetNbinsX(); eV++) {
Double_t eta = hfwd.GetXaxis()->GetBinLowEdge(eV)+0.1;
if (hfwd.GetBinContent(eV, 0) == 0) continue;
else {
Int_t he = fHistdNdedp3Cor.GetXaxis()->FindBin(eta);
fHistdNdedp3Cor.SetBinContent(he, 0, 1);
}
for (Int_t p = 1; p <= hfwd.GetNbinsY(); p++) {
Double_t phi = hfwd.GetYaxis()->GetBinCenter(p);
Double_t cont = hfwd.GetBinContent(eV, p);
fHistdNdedp3Cor.Fill(eta, phi, cont);
}
}
Int_t eSs = hcent.GetXaxis()->FindBin(-1.99);
Int_t eSe = hcent.GetXaxis()->FindBin(1.99);
for (Int_t eS = eSs; eS <= eSe; eS++) {
Double_t eta = hcent.GetXaxis()->GetBinCenter(eS);
if (hcent.GetBinContent(eS, 0) == 0) continue;
else {
Int_t he = fHistdNdedp3Cor.GetXaxis()->FindBin(eta);
fHistdNdedp3Cor.SetBinContent(he, 0, 1);
}
for (Int_t p = 1; p <= hcent.GetNbinsY(); p++) {
Double_t phi = hcent.GetYaxis()->GetBinCenter(p);
Double_t cont = hcent.GetBinContent(eS, p);
fHistdNdedp3Cor.Fill(eta, phi, cont);
}
}
}
return fHistdNdedp3Cor;
}
Bool_t AliForwardFlowTaskQC::FillTracks(VertexBin* bin, UShort_t mode) const
{
TObjArray* trList = 0;
AliESDEvent* esdEv = 0;
if (AliForwardUtil::CheckForAOD() == 1)
trList = static_cast<TObjArray*>(fAOD->GetTracks());
else
esdEv = dynamic_cast<AliESDEvent*>(InputEvent());
Bool_t useEvent = bin->FillTracks(trList, esdEv, fTrackCuts, mode);
return useEvent;
}
void AliForwardFlowTaskQC::Terminate(Option_t *)
{
fSumList = dynamic_cast<TList*> (GetOutputData(1));
if(!fSumList) {
AliError("Could not retrieve TList fSumList");
return;
}
if (!fOutputList)
fOutputList = new TList();
fOutputList->SetName("Results");
fOutputList->SetOwner();
if ((fFlowFlags & kEtaGap) || (fFlowFlags & kTracks)) {
TParameter<Double_t>* etaGap = new TParameter<Double_t>("EtaGap", fEtaGap);
fOutputList->Add(etaGap);
}
fVtxAxis->SetName("VtxAxis");
fOutputList->Add(fVtxAxis);
fCentAxis->SetName("CentAxis");
fOutputList->Add(fCentAxis);
Finalize();
TIter next(fOutputList);
TObject* o = 0;
TString name;
TH2D* dNdeta = 0;
TH1D* cent = 0;
while ((o = next())) {
name = o->GetName();
if (name.Contains("dNdeta")) {
dNdeta = dynamic_cast<TH2D*>(o);
name.ReplaceAll("dNdeta", "cent");
name.ReplaceAll("Ref", "");
name.ReplaceAll("Diff", "");
cent = dynamic_cast<TH1D*>(fOutputList->FindObject(name.Data()));
if (!dNdeta || !cent) continue;
for (Int_t cBin = 1; cBin <= dNdeta->GetNbinsY(); cBin++) {
Double_t nEvents = cent->GetBinContent(cBin);
if (nEvents == 0) continue;
for (Int_t eBin = 1; eBin <= dNdeta->GetNbinsX(); eBin++) {
dNdeta->SetBinContent(eBin, cBin, dNdeta->GetBinContent(eBin, cBin)/nEvents);
dNdeta->SetBinError(eBin, cBin, dNdeta->GetBinError(eBin, cBin)/nEvents);
}
}
}
}
MakeCentralityHists(fOutputList);
TList* vtxList = (TList*)fOutputList->FindObject("vtxList");
if (vtxList) MakeCentralityHists(vtxList);
TList* nuaList = (TList*)fOutputList->FindObject("NUATerms");
TIter nextNua(nuaList);
o = 0;
TH2D* h = 0;
while ((o = nextNua())) {
if (!(h = dynamic_cast<TH2D*>(o))) continue;
Double_t evts = h->GetBinContent(0, 0);
if (evts != 0) h->Scale(1./evts);
}
if (nuaList) MakeCentralityHists(nuaList);
PostData(2, fOutputList);
return;
}
void AliForwardFlowTaskQC::Finalize()
{
if (fBinsForward.GetEntries() == 0) InitVertexBins();
EndVtxBinList(fBinsForward);
EndVtxBinList(fBinsCentral);
return;
}
void AliForwardFlowTaskQC::EndVtxBinList(const TList& list) const
{
TIter next(&list);
VertexBin* bin = 0;
while ((bin = static_cast<VertexBin*>(next()))) {
bin->CumulantsTerminate(fSumList, fOutputList);
}
return;
}
void AliForwardFlowTaskQC::MakeCentralityHists(TList* list) const
{
TH2D* hist2D = 0;
TList* centList = 0;
TH1D* hist1D = 0;
TObject* helper = 0;
TIter nextHist(list);
while ((helper = dynamic_cast<TObject*>(nextHist()))) {
if (!(hist2D = dynamic_cast<TH2D*>(helper))) continue;
for (Int_t cBin = 1; cBin <= hist2D->GetNbinsY(); cBin++) {
Int_t cMin = Int_t(hist2D->GetYaxis()->GetBinLowEdge(cBin));
Int_t cMax = Int_t(hist2D->GetYaxis()->GetBinUpEdge(cBin));
TString name = Form("cent_%d-%d", cMin, cMax);
centList = (TList*)list->FindObject(name.Data());
if (!centList) {
centList = new TList();
centList->SetName(name.Data());
list->Add(centList);
}
hist1D = hist2D->ProjectionX(Form("%s_%s", hist2D->GetName(), name.Data()),
cBin, cBin, "E");
hist1D->SetTitle(hist1D->GetName());
centList->Add(hist1D);
}
}
}
Bool_t AliForwardFlowTaskQC::CheckEvent(const AliAODForwardMult* aodfm)
{
if (!CheckTrigger(aodfm)) {
fHistEventSel->Fill(kNoTrigger);
return kFALSE;
}
if (!GetCentrality(aodfm)) {
return kFALSE;
}
if (!GetVertex(aodfm)) {
return kFALSE;
}
fHistCent->Fill(fCent);
fHistVertexSel->Fill(fVtx);
fHistEventSel->Fill(kOK);
return kTRUE;
}
Bool_t AliForwardFlowTaskQC::CheckTrigger(const AliAODForwardMult* aodfm) const
{
if (aodfm) return aodfm->IsTriggerBits(AliAODForwardMult::kOffline);
else return (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))
->IsEventSelected() & AliVEvent::kMB);
}
Bool_t AliForwardFlowTaskQC::GetCentrality(const AliAODForwardMult* aodfm)
{
if (aodfm) {
if (aodfm->HasCentrality()) {
fCent = (Double_t)aodfm->GetCentrality();
if (fCentAxis->GetXmin() > fCent || fCent >= fCentAxis->GetXmax()) {
fHistEventSel->Fill(kInvCent);
return kFALSE;
}
}
else {
fCent = 97.5;
fHistEventSel->Fill(kNoCent);
}
return kTRUE;
} else {
AliCentrality* aodCent = fAOD->GetCentrality();
if (aodCent) {
fCent = (Double_t)aodCent->GetCentralityPercentile("V0M");
if (fCentAxis->GetXmin() > fCent || fCent >= fCentAxis->GetXmax()) {
fHistEventSel->Fill(kInvCent);
return kFALSE;
}
}
else {
fCent = 97.5;
fHistEventSel->Fill(kNoCent);
}
return kTRUE;
}
}
Bool_t AliForwardFlowTaskQC::GetVertex(const AliAODForwardMult* aodfm)
{
if (aodfm) {
if (aodfm->HasIpZ()) {
fVtx = aodfm->GetIpZ();
if (fVtx < fVtxAxis->GetXmin() || fVtx >= fVtxAxis->GetXmax()) {
fHistEventSel->Fill(kInvVtx);
return kFALSE;
}
} else {
fVtx = 9999;
fHistEventSel->Fill(kNoVtx);
return kFALSE;
}
return kTRUE;
} else {
AliAODVertex* aodVtx = fAOD->GetPrimaryVertex();
if (aodVtx) {
fVtx = aodVtx->GetZ();
if (fVtx < fVtxAxis->GetXmin() || fVtx >= fVtxAxis->GetXmax()) {
fHistEventSel->Fill(kInvVtx);
return kFALSE;
}
} else {
fVtx = 9999;
fHistEventSel->Fill(kNoVtx);
return kFALSE;
}
return kTRUE;
}
}
AliVVZERO* AliForwardFlowTaskQC::GetVZERO() const
{
AliVVZERO* vzero = 0;
UShort_t input = AliForwardUtil::CheckForAOD();
switch (input) {
case 1: vzero = (AliVVZERO*)fAOD->GetVZEROData();
break;
case 2: {
AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
if (!esd) return 0;
vzero = (AliVVZERO*)esd->GetVZEROData();
break;
}
default: AliFatal("Neither ESD or AOD input. This should never happen");
break;
}
return vzero;
}
void AliForwardFlowTaskQC::FillVZEROHist(AliVVZERO* vzero)
{
Int_t ring = 0;
Int_t bin = 0;
Double_t eta = 0;
Double_t eq[64] = { 1.43536, 1.45727, 1.44993, 1.30051, 1.17425, 1.2335, 1.22247, 1.14362,
1.14647, 1.25208, 1.17681, 1.21642, 1.16604, 1.05532, 1.03212, 1.1032,
1.22941, 1.36986, 1.14652, 1.20056, 0.927086, 1.10809, 1.03343, 1.29472,
1.21204, 1.29217, 1.2003, 2.10382, 1.28513, 1.40558, 1.25784, 1.21848,
0.475162, 0.50421, 0.503617, 0.512471, 0.515276, 0.39831, 0.415199, 0.444664,
0.521922, 0.785915, 0.703658, 0.832479, 0.77461, 0.73129, 0.778697, 0.710265,
0.89686, 0.967688, 0.974225, 0.873445, 0.811096, 0.828493, 0.889609, 0.586056,
1.15877, 0.954656, 0.914557, 0.979028, 1.04907, 0.748518, 0.928043, 0.98175 };
for (Int_t i = 0; i < 64; i++) {
if (i % 8 == 0) {
ring++;
bin = (ring < 5 ? ring+1 : 15-ring);
eta = fHistdNdedpV0.GetXaxis()->GetBinCenter(bin);
fHistdNdedpV0.SetBinContent(bin, 0, 1);
}
Float_t amp = vzero->GetMultiplicity(i);
amp /= eq[i];
Double_t phi = TMath::Pi()/8.+TMath::TwoPi()*i/8.;
while (phi > TMath::TwoPi()) phi -= TMath::TwoPi();
fHistdNdedpV0.Fill(eta, phi, amp);
}
}
AliForwardFlowTaskQC::VertexBin::VertexBin()
: TNamed(),
fMaxMoment(0),
fVzMin(0),
fVzMax(0),
fType(),
fFlags(0),
fSigmaCut(-1),
fEtaGap(-1),
fEtaLims(),
fCumuRef(),
fCumuDiff(),
fCumuHists(0,0),
fCumuNUARef(),
fCumuNUADiff(),
fdNdedpRefAcc(),
fdNdedpDiffAcc(),
fOutliers(),
fDebug()
{
}
AliForwardFlowTaskQC::VertexBin::VertexBin(Int_t vLow, Int_t vHigh,
UShort_t moment, TString name,
UShort_t flags, Double_t cut,
Double_t etaGap)
: TNamed("", ""),
fMaxMoment(moment),
fVzMin(vLow),
fVzMax(vHigh),
fType(name),
fFlags(flags),
fSigmaCut(cut),
fEtaGap(etaGap),
fEtaLims(),
fCumuRef(),
fCumuDiff(),
fCumuHists(moment,0),
fCumuNUARef(),
fCumuNUADiff(),
fdNdedpRefAcc(),
fdNdedpDiffAcc(),
fOutliers(),
fDebug(0)
{
fType.ToUpper();
SetName(Form("%svertexBin%d_%d_%d%s", fType.Data(), moment, vLow, vHigh, GetQCType(fFlags)));
SetTitle(Form("%svertexBin%d_%d_%d%s", fType.Data(), moment, vLow, vHigh, GetQCType(fFlags)));
fDebug = AliAnalysisManager::GetAnalysisManager()->GetDebugLevel();
if (fDebug > 0) Printf("AliForwardFlowTaskQC::VertexBin()\tDebugMode: %d", fDebug);
if ((fFlags & kFMD)) {
fEtaLims[0] = -6.;
fEtaLims[1] = -1.5;
fEtaLims[2] = -0.5;
fEtaLims[3] = 2.;
fEtaLims[4] = 3.;
fEtaLims[5] = 6.;
} else if ((fFlags & kVZERO)) {
fEtaLims[0] = -6;
fEtaLims[1] = -2.7;
fEtaLims[2] = -2.0;
fEtaLims[3] = 2.0;
fEtaLims[4] = 3.9;
fEtaLims[5] = 6;
}
}
AliForwardFlowTaskQC::VertexBin&
AliForwardFlowTaskQC::VertexBin::operator=(const AliForwardFlowTaskQC::VertexBin& o)
{
if (&o == this) return *this;
fMaxMoment = o.fMaxMoment;
fVzMin = o.fVzMin;
fVzMax = o.fVzMax;
fType = o.fType;
fFlags = o.fFlags;
fSigmaCut = o.fSigmaCut;
fEtaGap = o.fEtaGap;
fCumuRef = o.fCumuRef;
fCumuDiff = o.fCumuDiff;
fCumuHists = o.fCumuHists;
fCumuNUARef = o.fCumuNUARef;
fCumuNUADiff = o.fCumuNUADiff;
fdNdedpRefAcc = o.fdNdedpRefAcc;
fdNdedpDiffAcc = o.fdNdedpDiffAcc;
fOutliers = o.fOutliers;
fDebug = o.fDebug;
for (UInt_t i = 0; i < sizeof(fEtaLims)/sizeof(Double_t); i++) fEtaLims[i] = o.fEtaLims[i];
return *this;
}
void AliForwardFlowTaskQC::VertexBin::AddOutput(TList* outputlist, TAxis* centAxis)
{
TList* list = (TList*)outputlist->FindObject(Form("%svertex_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
if (!list) {
list = new TList();
list->SetName(Form("%svertex_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
outputlist->Add(list);
}
Int_t nHBins = GetBinNumberSin();
Int_t nEtaBins = 48;
if ((fFlags & k3Cor)) {
if ((fFlags & kFMD)) nEtaBins = 24;
else if ((fFlags & kVZERO)) nEtaBins = 19;
}
else if ((fFlags & kVZERO) && (fFlags & kEtaGap)) nEtaBins = 19;
else if ((fFlags & kVZERO)) nEtaBins = 11;
Double_t vzeroBins[12] = { -6, -3.7, -3.2, -2.7, -2.2, -1.7,
2.8, 3.4, 3.9, 4.5, 5.1, 6 };
Double_t vzeroBins2[20] = { -6, -3.7, -3.2, -2.7, -2.2,
-2.0, -1.5, -1.0, -0.5 , 0., 0.5, 1.0, 1.5, 2.0,
2.8, 3.4, 3.9, 4.5, 5.1, 6 };
Int_t nRefBins = nEtaBins;
if ((fFlags & kStdQC)) {
if ((fFlags & kSymEta) && !((fFlags & kTracks) && (fFlags & kSPD))) nRefBins = 1;
else nRefBins = 2;
} else if ((fFlags & kEtaGap )) {
nRefBins = 2;
} else if ((fFlags & k3Cor)) {
nRefBins = 24;
}
fCumuRef = new TH2D(Form("%s_%d_%d%s_ref", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("%s_%d_%d%s_ref", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
nRefBins, -6., 6.,
nHBins, 0.5, nHBins+0.5);
if ((fFlags & kVZERO) && (fFlags & k3Cor)) fCumuRef->GetXaxis()->Set(nEtaBins, vzeroBins2);
SetupNUALabels(fCumuRef->GetYaxis());
list->Add(fCumuRef);
fCumuDiff = new TH2D(Form("%s_%d_%d%s_diff", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("%s_%d_%d%s_diff", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
nEtaBins, -6., 6., nHBins, 0.5, nHBins+0.5);
if ((fFlags & kVZERO)) {
if ((fFlags & kSPD) || (fFlags & k3Cor) || (fFlags & kEtaGap))
fCumuDiff->GetXaxis()->Set(nEtaBins, vzeroBins2);
else fCumuDiff->GetXaxis()->Set(nEtaBins, vzeroBins);
}
SetupNUALabels(fCumuDiff->GetYaxis());
list->Add(fCumuDiff);
Int_t cBins = centAxis->GetNbins();
fCumuHists.ConnectList(Form("%sCumu_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)), list);
TH3D* cumuHist = 0;
Int_t nC2Bins = ((fFlags & kEtaGap) || (fFlags & k3Cor) ? kW2 : k3pWeight);
Int_t nC4Bins = ((fFlags & kEtaGap) ? kW2 : ((fFlags & k3Cor) ? kW4 : kSinphi1phi2phi3p));
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumuHist = new TH3D(Form("%sv%d_vertex_%d_%d%s_cumuRef", fType.Data(), n, fVzMin, fVzMax, GetQCType(fFlags)),
Form("%sv%d_vertex_%d_%d%s_cumuRef", fType.Data(), n, fVzMin, fVzMax, GetQCType(fFlags)),
nRefBins, -6., 6.,
cBins, 0., 100., nC2Bins, 0.5, nC2Bins+0.5);
if ((fFlags & kVZERO) && (fFlags & k3Cor)) cumuHist->GetXaxis()->Set(nEtaBins, vzeroBins2);
cumuHist->GetYaxis()->Set(cBins, centAxis->GetXbins()->GetArray());
fCumuHists.Add(cumuHist);
cumuHist = new TH3D(Form("%sv%d_vertex_%d_%d%s_cumuDiff", fType.Data(), n, fVzMin, fVzMax, GetQCType(fFlags)),
Form("%sv%d_vertex_%d_%d%s_cumuDiff", fType.Data(), n, fVzMin, fVzMax, GetQCType(fFlags)),
nEtaBins, -6., 6., cBins, 0., 100., nC4Bins, 0.5, nC4Bins+0.5);
if ((fFlags & kVZERO)) {
if ((fFlags & kSPD) || (fFlags & k3Cor) || (fFlags & kEtaGap))
cumuHist->GetXaxis()->Set(nEtaBins, vzeroBins2);
else cumuHist->GetXaxis()->Set(nEtaBins, vzeroBins);
}
cumuHist->GetYaxis()->Set(cBins, centAxis->GetXbins()->GetArray());
fCumuHists.Add(cumuHist);
}
fCumuNUARef = new TH3D(Form("%s_vertex_%d_%d%s_cumuNUARef", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("%s_vertex_%d_%d%s_cumuNUARef", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
nRefBins, -6., 6.,
cBins, 0., 100., nHBins, 0.5, nHBins+0.5);
if ((fFlags & kVZERO) && (fFlags & k3Cor)) fCumuNUARef->GetXaxis()->Set(nEtaBins, vzeroBins2);
fCumuNUARef->GetYaxis()->Set(cBins, centAxis->GetXbins()->GetArray());
SetupNUALabels(fCumuNUARef->GetZaxis());
fCumuNUARef->Sumw2();
list->Add(fCumuNUARef);
fCumuNUADiff = new TH3D(Form("%s_vertex_%d_%d%s_cumuNUADiff", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("%s_vertex_%d_%d%s_cumuNUADiff", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
nEtaBins, -6., 6., cBins, 0., 100., nHBins, 0.5, nHBins+0.5);
if ((fFlags & kVZERO)) {
if ((fFlags & kSPD) || (fFlags & k3Cor) || (fFlags & kEtaGap))
fCumuNUADiff->GetXaxis()->Set(nEtaBins, vzeroBins2);
else fCumuNUADiff->GetXaxis()->Set(nEtaBins, vzeroBins);
}
fCumuNUADiff->GetYaxis()->Set(cBins, centAxis->GetXbins()->GetArray());
SetupNUALabels(fCumuNUADiff->GetZaxis());
fCumuNUADiff->Sumw2();
list->Add(fCumuNUADiff);
TList* dList = (TList*)outputlist->FindObject("Diagnostics");
if (!dList) AliFatal("No diagnostics list found");
Int_t nPhiBins = ((fFlags & kFMD) ? 20 : 8);
fdNdedpRefAcc = new TH2F(Form("h%sdNdedpRefAcc_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("%s reference flow acceptance map for %d cm < v_{z} < %d cm", fType.Data(), fVzMin, fVzMax),
nEtaBins, -6., 6., nPhiBins, 0, TMath::TwoPi());
if ((fFlags & kVZERO)) {
if ((fFlags & kSPD) || (fFlags & k3Cor) || (fFlags & kEtaGap))
fdNdedpRefAcc->GetXaxis()->Set(nEtaBins, vzeroBins2);
else fdNdedpRefAcc->GetXaxis()->Set(nEtaBins, vzeroBins);
}
dList->Add(fdNdedpRefAcc);
fdNdedpDiffAcc = new TH2F(Form("h%sdNdedpDiffAcc_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("%s differential flow acceptance map for %d cm < v_{z} < %d cm", fType.Data(), fVzMin, fVzMax),
nEtaBins, -6., 6., nPhiBins, 0, TMath::TwoPi());
if ((fFlags & kVZERO)) {
if ((fFlags & kSPD) || (fFlags & k3Cor) || (fFlags & kEtaGap))
fdNdedpDiffAcc->GetXaxis()->Set(nEtaBins, vzeroBins2);
else fdNdedpDiffAcc->GetXaxis()->Set(nEtaBins, vzeroBins);
}
dList->Add(fdNdedpDiffAcc);
fOutliers = new TH2F(Form("hOutliers_%s_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)),
Form("Maximum #sigma from mean N_{ch} pr. bin - %s, %d < v_{z} < %d",
fType.Data(), fVzMin, fVzMax),
20, 0., 100., 500, 0., ((fFlags & kMC) ? 15. : 5.));
dList->Add(fOutliers);
return;
}
Bool_t AliForwardFlowTaskQC::VertexBin::FillHists(TH2D& dNdetadphi, Double_t cent, UShort_t mode)
{
if (!fCumuRef) AliFatal("You have not called AddOutput() - Terminating!");
Bool_t useEvent = kTRUE;
if ((mode & kReset)) {
if ((mode & kFillRef)) fCumuRef->Reset();
if ((mode & kFillDiff)) fCumuDiff->Reset();
}
Int_t nBadBins = 0;
Double_t limit = 9999.;
for (Int_t etaBin = 1; etaBin <= dNdetadphi.GetNbinsX(); etaBin++) {
Double_t eta = dNdetadphi.GetXaxis()->GetBinCenter(etaBin);
Double_t runAvg = 0;
Double_t max = 0;
Int_t nInAvg = 0;
Double_t avgSqr = 0;
for (Int_t phiBin = 0; phiBin <= dNdetadphi.GetNbinsY(); phiBin++) {
if (phiBin == 0) {
if (dNdetadphi.GetBinContent(etaBin, 0) == 0) break;
if ((fFlags & kEtaGap) && (mode & kFillRef) &&
TMath::Abs(eta) < fEtaGap) break;
if ((fFlags & kEtaGap) && (mode & kFillRef) && TMath::Abs(eta) > TMath::Abs(limit)) break;
if ((fFlags & kStdQC) && (fFlags & kMC) && !(fFlags & kTracks)) {
if (!(fFlags & kSPD) && TMath::Abs(eta) < 1.75) break;
if ((fFlags & kSPD) && TMath::Abs(eta) > 2.00) break;
}
if (limit > 1e3) limit = dNdetadphi.GetXaxis()->GetBinLowEdge(etaBin);
continue;
}
Double_t phi = dNdetadphi.GetYaxis()->GetBinCenter(phiBin);
Double_t weight = dNdetadphi.GetBinContent(etaBin, phiBin);
avgSqr += weight*weight;
runAvg += weight;
nInAvg++;
if (weight == 0) continue;
if (weight > max) max = weight;
if ((mode & kFillRef) && !((fFlags & kTracks) && (fFlags & kMC) && TMath::Abs(eta) > 0.75)) {
fCumuRef->Fill(eta, 0., weight);
fdNdedpRefAcc->Fill(eta, phi, weight);
}
if ((mode & kFillDiff)) {
fCumuDiff->Fill(eta, 0., weight);
fdNdedpDiffAcc->Fill(eta, phi, weight);
}
for (Int_t n = 1; n <= 2*fMaxMoment; n++) {
Double_t cosBin = fCumuDiff->GetYaxis()->GetBinCenter(GetBinNumberCos(n));
Double_t sinBin = fCumuDiff->GetYaxis()->GetBinCenter(GetBinNumberSin(n));
Double_t cosnPhi = weight*TMath::Cos(n*phi);
Double_t sinnPhi = weight*TMath::Sin(n*phi);
if ((mode & kFillRef) && !((fFlags & kTracks) && (fFlags & kMC) && TMath::Abs(eta) > 0.75)) {
fCumuRef->Fill(eta, cosBin, cosnPhi);
fCumuRef->Fill(eta, sinBin, sinnPhi);
}
if ((mode & kFillDiff)) {
fCumuDiff->Fill(eta, cosBin, cosnPhi);
fCumuDiff->Fill(eta, sinBin, sinnPhi);
}
}
}
if (nInAvg > 0) {
runAvg /= nInAvg;
avgSqr /= nInAvg;
Double_t stdev = (nInAvg > 1 ? TMath::Sqrt(nInAvg/(nInAvg-1))*TMath::Sqrt(avgSqr - runAvg*runAvg) : 0);
Double_t nSigma = (stdev == 0 ? 0 : (max-runAvg)/stdev);
if (fSigmaCut > 0. && nSigma >= fSigmaCut && cent < 60) nBadBins++;
else nBadBins = 0;
fOutliers->Fill(cent, nSigma);
if (nBadBins > 3) useEvent = kFALSE;
}
}
return useEvent;
}
Bool_t AliForwardFlowTaskQC::VertexBin::FillTracks(TObjArray* trList, AliESDEvent* esd,
AliAnalysisFilter* trFilter, UShort_t mode)
{
if (!fCumuRef) AliFatal("You have not called AddOutput() - Terminating!");
if (!trList && !esd) {
AliError("FillTracks: No AOD track list or ESD event - something might be wrong!");
return kFALSE;
}
if ((mode & kReset)) {
if ((mode & kFillRef)) fCumuRef->Reset();
if ((mode & kFillDiff)) fCumuDiff->Reset();
}
Int_t nTr = 0;
if (trList) nTr = trList->GetEntries();
if (esd) nTr = esd->GetNumberOfTracks();
if (nTr == 0) return kFALSE;
AliVTrack* tr = 0;
for (Int_t i = 0; i < nTr; i++) {
tr = (trList ? (AliVTrack*)trList->At(i) : (AliVTrack*)esd->GetTrack(i));
if (!tr) continue;
if (esd) {
AliESDtrack* esdTr = (AliESDtrack*)tr;
if (!trFilter->IsSelected(esdTr)) continue;
}
else if (trList) {
Double_t pTMin = 0, pTMax = 0, etaMin = 0, etaMax = 0, minNCl = 0;
UInt_t bit = 0;
if ((fFlags & kTPC) == kTPC) pTMin = 0.2, pTMax = 5., etaMin = -0.8, etaMax = 0.8, minNCl = 70, bit = 128;
if ((fFlags & kHybrid) == kHybrid) pTMin = 0.2, pTMax = 5., etaMin = -0.8, etaMax = 0.8, minNCl = 70, bit = 272;
AliAODTrack* aodTr = (AliAODTrack*)tr;
if (aodTr->GetID() > -1) continue;
if (!aodTr->TestFilterBit(bit) || aodTr->Pt() > pTMax || aodTr->Pt() < pTMin ||
aodTr->Eta() > etaMax || aodTr->Eta() < etaMin || aodTr->GetTPCNcls() < minNCl) continue;
}
Double_t eta = tr->Eta();
if (((fFlags & kSPD) || (fFlags & kEtaGap)) && TMath::Abs(eta) < fEtaGap) continue;
Double_t phi = tr->Phi();
Double_t weight = 1.;
if ((mode & kFillRef)) {
fCumuRef->Fill(eta, 0., weight);
fdNdedpRefAcc->Fill(eta, phi, weight);
}
if ((mode & kFillDiff)) {
fCumuDiff->Fill(eta, 0., weight);
fdNdedpDiffAcc->Fill(eta, phi, weight);
}
for (Int_t n = 1; n <= 2*fMaxMoment; n++) {
Double_t cosBin = fCumuDiff->GetYaxis()->GetBinCenter(GetBinNumberCos(n));
Double_t sinBin = fCumuDiff->GetYaxis()->GetBinCenter(GetBinNumberSin(n));
Double_t cosnPhi = weight*TMath::Cos(n*phi);
Double_t sinnPhi = weight*TMath::Sin(n*phi);
if ((mode & kFillRef)) {
fCumuRef->Fill(eta, cosBin, cosnPhi);
fCumuRef->Fill(eta, sinBin, sinnPhi);
}
if ((mode & kFillDiff)) {
fCumuDiff->Fill(eta, cosBin, cosnPhi);
fCumuDiff->Fill(eta, sinBin, sinnPhi);
}
}
}
return kTRUE;
}
void AliForwardFlowTaskQC::VertexBin::CumulantsAccumulate(Double_t cent)
{
if (!fCumuRef) AliFatal("You have not called AddOutput() - Terminating!");
for (Int_t etaBin = 1; etaBin <= fCumuRef->GetNbinsX(); etaBin++) {
Double_t eta = fCumuRef->GetXaxis()->GetBinCenter(etaBin);
if (fCumuRef->GetBinContent(etaBin, 0) == 0) continue;
if ((fFlags & kTracks) && (fFlags && kSPD) && !(fFlags & kEtaGap)) eta = -eta;
for (Int_t qBin = 0; qBin <= fCumuRef->GetNbinsY(); qBin++) {
fCumuNUARef->Fill(eta, cent, Double_t(qBin), fCumuRef->GetBinContent(etaBin, qBin));
}
}
for (Int_t etaBin = 1; etaBin <= fCumuDiff->GetNbinsX(); etaBin++) {
Double_t eta = fCumuDiff->GetXaxis()->GetBinCenter(etaBin);
if (fCumuDiff->GetBinContent(etaBin, 0) == 0) continue;
for (Int_t qBin = 0; qBin <= fCumuDiff->GetNbinsY(); qBin++) {
fCumuNUADiff->Fill(eta, cent, Double_t(qBin), fCumuDiff->GetBinContent(etaBin, qBin));
}
}
TH3D* cumuRef = 0;
TH3D* cumuDiff = 0;
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumuRef = (TH3D*)fCumuHists.Get('r',n);
cumuDiff = (TH3D*)fCumuHists.Get('d',n);
Int_t prevRefEtaBin = 0;
Double_t dQnReA = 0, dQnImA = 0, multA = 0;
Double_t dQnReB = 0, dQnImB = 0, multB = 0;
Double_t dQ2nReA = 0, dQ2nImA = 0;
Double_t two = 0, w2 = 0, four = 0, w4 = 0;
Double_t cosPhi1Phi2 = 0, cosPhi1Phi2Phi3m = 0;
Double_t sinPhi1Phi2 = 0, sinPhi1Phi2Phi3m = 0;
for (Int_t etaBin = 1; etaBin <= fCumuDiff->GetNbinsX(); etaBin++) {
Double_t eta = fCumuDiff->GetXaxis()->GetBinCenter(etaBin);
Double_t refEta = eta;
if ((fFlags & kTracks) && (fFlags && kSPD) && !(fFlags & kEtaGap)) refEta = -eta;
Int_t refEtaBinA = fCumuRef->GetXaxis()->FindBin(refEta);
if ((fFlags & kEtaGap)) refEta = -eta;
Int_t refEtaBinB = fCumuRef->GetXaxis()->FindBin(refEta);
if (refEtaBinA != prevRefEtaBin) {
prevRefEtaBin = refEtaBinA;
multA = fCumuRef->GetBinContent(refEtaBinA, 0);
dQnReA = fCumuRef->GetBinContent(refEtaBinA, GetBinNumberCos(n));
dQnImA = fCumuRef->GetBinContent(refEtaBinA, GetBinNumberSin(n));
dQ2nReA = fCumuRef->GetBinContent(refEtaBinA, GetBinNumberCos(n*2));
dQ2nImA = fCumuRef->GetBinContent(refEtaBinA, GetBinNumberSin(n*2));
multB = fCumuRef->GetBinContent(refEtaBinB, 0);
dQnReB = fCumuRef->GetBinContent(refEtaBinB, GetBinNumberCos(n));
dQnImB = fCumuRef->GetBinContent(refEtaBinB, GetBinNumberSin(n));
if (multA <= 3 || multB <= 3) return;
if ((fFlags & kStdQC)) {
w2 = multA * (multA - 1.);
two = dQnReA*dQnReA + dQnImA*dQnImA - multA;
} else {
w2 = multA * multB;
two = dQnReA*dQnReB + dQnImA*dQnImB;
}
cumuRef->Fill(eta, cent, kW2Two, two);
cumuRef->Fill(eta, cent, kW2, w2);
if ((fFlags & kStdQC)) {
w4 = multA * (multA - 1.) * (multA - 2.) * (multA - 3.);
four = 2.*multA*(multA-3.) + TMath::Power((TMath::Power(dQnReA,2.)+TMath::Power(dQnImA,2.)),2.)
-4.*(multA-2.)*(TMath::Power(dQnReA,2.) + TMath::Power(dQnImA,2.))
-2.*(TMath::Power(dQnReA,2.)*dQ2nReA+2.*dQnReA*dQnImA*dQ2nImA-TMath::Power(dQnImA,2.)*dQ2nReA)
+(TMath::Power(dQ2nReA,2.)+TMath::Power(dQ2nImA,2.));
cumuRef->Fill(eta, cent, kW4Four, four);
cumuRef->Fill(eta, cent, kW4, w4);
cosPhi1Phi2 = dQnReA*dQnReA - dQnImA*dQnImA - dQ2nReA;
sinPhi1Phi2 = 2.*dQnReA*dQnImA - dQ2nImA;
cosPhi1Phi2Phi3m = dQnReA*(TMath::Power(dQnReA,2)+TMath::Power(dQnImA,2))
-dQnReA*dQ2nReA-dQnImA*dQ2nImA-2.*(multA-1)*dQnReA;
sinPhi1Phi2Phi3m = -dQnImA*(TMath::Power(dQnReA,2)+TMath::Power(dQnImA,2))
+dQnReA*dQ2nImA-dQnImA*dQ2nReA+2.*(multA-1)*dQnImA;
cumuRef->Fill(eta, cent, kCosphi1phi2, cosPhi1Phi2);
cumuRef->Fill(eta, cent, kSinphi1phi2, sinPhi1Phi2);
cumuRef->Fill(eta, cent, kCosphi1phi2phi3m, cosPhi1Phi2Phi3m);
cumuRef->Fill(eta, cent, kSinphi1phi2phi3m, sinPhi1Phi2Phi3m);
cumuRef->Fill(eta, cent, k3pWeight, multA*(multA-1.)*(multA-2.));
}
}
Double_t mp = fCumuDiff->GetBinContent(etaBin, 0);
Double_t pnRe = fCumuDiff->GetBinContent(etaBin, GetBinNumberCos(n));
Double_t pnIm = fCumuDiff->GetBinContent(etaBin, GetBinNumberSin(n));
Double_t p2nRe = fCumuDiff->GetBinContent(etaBin, GetBinNumberCos(n*2));
Double_t p2nIm = fCumuDiff->GetBinContent(etaBin, GetBinNumberSin(n*2));
if (mp == 0) continue;
Double_t mq = 0;
Double_t qnRe = 0;
Double_t qnIm = 0;
Double_t q2nRe = 0;
Double_t q2nIm = 0;
if ((fFlags & kStdQC) && (!(fFlags & kTracks) || ((fFlags & kTracks) && (fFlags & kMC) && !(fFlags & kSPD) && TMath::Abs(eta) < 0.75))) {
mq = mp;
qnRe = pnRe;
qnIm = pnIm;
q2nRe = p2nRe;
q2nIm = p2nIm;
}
Double_t w2p = mp * multB - mq;
Double_t twoPrime = pnRe*dQnReB + pnIm*dQnImB - mq;
cumuDiff->Fill(eta, cent, kW2Two, twoPrime);
cumuDiff->Fill(eta, cent, kW2, w2p);
if ((fFlags & kEtaGap)) continue;
Double_t w4p = (mp * multA - 3.*mq)*(multA - 1.)*(multA - 2.);
Double_t fourPrime = (TMath::Power(dQnReA,2.)+TMath::Power(dQnImA,2.))*(pnRe*dQnReA+pnIm*dQnImA)
- q2nRe*(TMath::Power(dQnReA,2.)-TMath::Power(dQnImA,2.))
- 2.*q2nIm*dQnReA*dQnImA
- pnRe*(dQnReA*dQ2nReA+dQnImA*dQ2nImA)
+ pnIm*(dQnImA*dQ2nReA-dQnReA*dQ2nImA)
- 2.*multA*(pnRe*dQnReA+pnIm*dQnImA)
- 2.*(TMath::Power(dQnReA,2.)+TMath::Power(dQnImA,2.))*mq
+ 6.*(qnRe*dQnReA+qnIm*dQnImA)
+ 1.*(q2nRe*dQ2nReA+q2nIm*dQ2nImA)
+ 2.*(pnRe*dQnReA+pnIm*dQnImA)
+ 2.*mq*multA
- 6.*mq;
cumuDiff->Fill(eta, cent, kW4Four, fourPrime);
cumuDiff->Fill(eta, cent, kW4, w4p);
Double_t cosPsi1Phi2 = pnRe*dQnReA - pnIm*dQnImA - q2nRe;
Double_t sinPsi1Phi2 = pnRe*dQnImA + pnIm*dQnReA - q2nIm;
Double_t cosPsi1Phi2Phi3p = pnRe*(TMath::Power(dQnImA,2.)+TMath::Power(dQnReA,2.)-multA)
- 1.*(q2nRe*dQnReA+q2nIm*dQnImA)
- mq*dQnReA+2.*qnRe;
Double_t sinPsi1Phi2Phi3p = pnIm*(TMath::Power(dQnImA,2.)+TMath::Power(dQnReA,2.)-multA)
- 1.*(q2nIm*dQnReA-q2nRe*dQnImA)
- mq*dQnImA+2.*qnIm;
Double_t cosPsi1Phi2Phi3m = pnRe*(TMath::Power(dQnReA,2.)-TMath::Power(dQnImA,2.))+2.*pnIm*dQnReA*dQnImA
- 1.*(pnRe*dQ2nReA+pnIm*dQ2nImA)
- 2.*mq*dQnReA+2.*qnRe;
Double_t sinPsi1Phi2Phi3m = pnIm*(TMath::Power(dQnReA,2.)-TMath::Power(dQnImA,2.))-2.*pnRe*dQnReA*dQnImA
- 1.*(pnIm*dQ2nReA-pnRe*dQ2nImA)
+ 2.*mq*dQnImA-2.*qnIm;
cumuDiff->Fill(eta, cent, kCosphi1phi2, cosPsi1Phi2);
cumuDiff->Fill(eta, cent, kSinphi1phi2, sinPsi1Phi2);
cumuDiff->Fill(eta, cent, kCosphi1phi2phi3m, cosPsi1Phi2Phi3m);
cumuDiff->Fill(eta, cent, kSinphi1phi2phi3m, sinPsi1Phi2Phi3m);
cumuDiff->Fill(eta, cent, k3pWeight, (mp*multA-2.*mq)*(multA-1.));
cumuDiff->Fill(eta, cent, kCosphi1phi2phi3p, cosPsi1Phi2Phi3p);
cumuDiff->Fill(eta, cent, kSinphi1phi2phi3p, sinPsi1Phi2Phi3p);
}
cumuRef->Fill(-7., cent, -0.5, 1.);
}
return;
}
void AliForwardFlowTaskQC::VertexBin::GetLimits(Int_t bin, Int_t& aLow, Int_t& aHigh,
Int_t& bLow, Int_t& bHigh) const
{
if ((fFlags & kFMD)) {
switch(bin) {
case 0:
aLow = 14; aHigh = 15;
bLow = 20; bHigh = 22;
break;
case 1:
aLow = 16; aHigh = 16;
bLow = 21; bHigh = 22;
break;
case 2:
aLow = 6; aHigh = 7;
bLow = 21; bHigh = 22;
break;
case 3:
aLow = 6; aHigh = 7;
bLow = 12; bHigh = 12;
break;
case 4:
aLow = 6; aHigh = 8;
bLow = 13; bHigh = 14;
break;
default:
AliFatal(Form("No limits for this eta region! (%d)", bin));
}
}
else if ((fFlags & kVZERO)) {
switch(bin) {
case 0:
aLow = 6; aHigh = 13;
bLow = 17; bHigh = 18;
break;
case 1:
aLow = 6; aHigh = 9;
bLow = 17; bHigh = 18;
break;
case 2:
aLow = 2; aHigh = 3;
bLow = 17; bHigh = 18;
break;
case 3:
aLow = 2; aHigh = 3;
bLow = 6; bHigh = 9;
break;
case 4:
aLow = 2; aHigh = 3;
bLow = 6; bHigh = 13;
break;
default:
AliFatal(Form("No limits for this eta region! (%d)", bin));
}
}
if (aHigh > fCumuNUARef->GetNbinsX() || bHigh > fCumuNUARef->GetNbinsX())
AliFatal(Form("Limits outside vtx range! (%d) - aHigh = %d, bHigh = %d, Nbins = %d",
bin, aHigh, bHigh, fCumuNUARef->GetNbinsX()));
}
void AliForwardFlowTaskQC::VertexBin::CumulantsAccumulate3Cor(Double_t cent)
{
if (!fCumuRef) AliFatal("You have not called AddOutput() - Terminating!");
for (Int_t etaBin = 1; etaBin <= fCumuRef->GetNbinsX(); etaBin++) {
Double_t eta = fCumuRef->GetXaxis()->GetBinCenter(etaBin);
if (fCumuRef->GetBinContent(etaBin, 0) == 0) continue;
for (Int_t qBin = 0; qBin <= fCumuRef->GetNbinsY(); qBin++) {
fCumuNUARef->Fill(eta, cent, Double_t(qBin), fCumuRef->GetBinContent(etaBin, qBin));
}
}
for (Int_t etaBin = 1; etaBin <= fCumuDiff->GetNbinsX(); etaBin++) {
Double_t eta = fCumuDiff->GetXaxis()->GetBinCenter(etaBin);
if (fCumuDiff->GetBinContent(etaBin, 0) == 0) continue;
for (Int_t qBin = 0; qBin <= fCumuDiff->GetNbinsY(); qBin++) {
fCumuNUADiff->Fill(eta, cent, Double_t(qBin), fCumuDiff->GetBinContent(etaBin, qBin));
}
}
TH3D* cumuRef = 0;
TH3D* cumuDiff = 0;
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumuRef = (TH3D*)fCumuHists.Get('r',n);
cumuDiff = (TH3D*)fCumuHists.Get('d',n);
Int_t prevLim = 0;
Int_t aLow = 0, aHigh = 0, bLow = 0, bHigh = 0;
Double_t dQnReA = 0, dQnImA = 0, multA = 0;
Double_t dQnReB = 0, dQnImB = 0, multB = 0;
Double_t two = 0, w2 = 0;
for (Int_t etaBin = 1; etaBin <= fCumuDiff->GetNbinsX(); etaBin++) {
Double_t eta = fCumuDiff->GetXaxis()->GetBinCenter(etaBin);
if (fEtaLims[prevLim] < eta) {
GetLimits(prevLim, aLow, aHigh, bLow, bHigh);
prevLim++;
multA = 0; dQnReA = 0; dQnImA = 0;
multB = 0; dQnReB = 0; dQnImB = 0;
for (Int_t a = aLow; a <= aHigh; a++) {
multA += fCumuRef->GetBinContent(a, 0);
dQnReA += fCumuRef->GetBinContent(a, GetBinNumberCos(n));
dQnImA += fCumuRef->GetBinContent(a, GetBinNumberSin(n));
}
for (Int_t b = bLow; b <= bHigh; b++) {
multB += fCumuRef->GetBinContent(b, 0);
dQnReB += fCumuRef->GetBinContent(b, GetBinNumberCos(n));
dQnImB += fCumuRef->GetBinContent(b, GetBinNumberSin(n));
}
w2 = multA * multB;
two = dQnReA*dQnReB + dQnImA*dQnImB;
}
cumuRef->Fill(eta, cent, kW2Two, two);
cumuRef->Fill(eta, cent, kW2, w2);
Double_t mp = fCumuDiff->GetBinContent(etaBin, 0);
Double_t pnRe = fCumuDiff->GetBinContent(etaBin, GetBinNumberCos(n));
Double_t pnIm = fCumuDiff->GetBinContent(etaBin, GetBinNumberSin(n));
if (mp == 0) continue;
Double_t w2pA = mp * multA;
Double_t twoPrimeA = pnRe*dQnReA + pnIm*dQnImA;
cumuDiff->Fill(eta, cent, kW2Two, twoPrimeA);
cumuDiff->Fill(eta, cent, kW2, w2pA);
Double_t w2pB = mp * multB;
Double_t twoPrimeB = pnRe*dQnReB + pnIm*dQnImB;
cumuDiff->Fill(eta, cent, kW4Four, twoPrimeB);
cumuDiff->Fill(eta, cent, kW4, w2pB);
}
cumuRef->Fill(-7., cent, -0.5, 1.);
}
return;
}
void AliForwardFlowTaskQC::VertexBin::CumulantsTerminate(TList* inlist, TList* outlist)
{
if (!fCumuHists.IsConnected()) {
TList* list = (TList*)inlist->FindObject(Form("%svertex_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
fCumuHists.ConnectList(Form("%sCumu_%d_%d%s", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)), list);
if (!fCumuNUARef)
fCumuNUARef = (TH3D*)list->FindObject(Form("%s_vertex_%d_%d%s_cumuNUARef", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
if (!fCumuNUADiff)
fCumuNUADiff = (TH3D*)list->FindObject(Form("%s_vertex_%d_%d%s_cumuNUADiff", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
}
fCumuNUARef = (TH3D*)fCumuNUARef->Clone(Form("%s_vertex_%d_%d%s_cumuNUARefNorm", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
fCumuNUADiff = (TH3D*)fCumuNUADiff->Clone(Form("%s_vertex_%d_%d%s_cumuNUADiffNorm", fType.Data(), fVzMin, fVzMax, GetQCType(fFlags)));
TH2I* quality = (TH2I*)outlist->FindObject(Form("hQCQuality%s%s", fType.Data(), GetQCType(fFlags)));
if (!quality) {
quality = MakeQualityHist(Form("hQCQuality%s%s", fType.Data(), GetQCType(fFlags)));
outlist->Add(quality);
}
TH1D* cent = (TH1D*)outlist->FindObject(Form("%s%s_cent", fType.Data(), GetQCType(fFlags)));
if (!cent) {
cent = new TH1D(Form("%s%s_cent", fType.Data(), GetQCType(fFlags)),
Form("%s%s_cent", fType.Data(), GetQCType(fFlags)),
fCumuNUARef->GetNbinsY(), fCumuNUARef->GetYaxis()->GetXmin(), fCumuNUARef->GetYaxis()->GetXmax());
cent->GetXaxis()->Set(fCumuNUARef->GetNbinsY(), fCumuNUARef->GetYaxis()->GetXbins()->GetArray());
outlist->Add(cent);
}
TH2D* dNdetaRef = (TH2D*)outlist->FindObject(Form("%s%s_dNdetaRef", fType.Data(), GetQCType(fFlags)));
if (!dNdetaRef) {
dNdetaRef = new TH2D(Form("%s%s_dNdetaRef", fType.Data(), GetQCType(fFlags)),
Form("%s%s_dNdetaRef", fType.Data(), GetQCType(fFlags)),
fCumuNUARef->GetNbinsX(), fCumuNUARef->GetXaxis()->GetXmin(), fCumuNUARef->GetXaxis()->GetXmax(),
fCumuNUARef->GetNbinsY(), fCumuNUARef->GetYaxis()->GetXmin(), fCumuNUARef->GetYaxis()->GetXmax());
dNdetaRef->GetYaxis()->Set(fCumuNUARef->GetNbinsY(), fCumuNUARef->GetYaxis()->GetXbins()->GetArray());
dNdetaRef->Sumw2();
outlist->Add(dNdetaRef);
}
TH2D* dNdetaDiff = (TH2D*)outlist->FindObject(Form("%s%s_dNdetaDiff", fType.Data(), GetQCType(fFlags)));
if (!dNdetaDiff) {
dNdetaDiff = new TH2D(Form("%s%s_dNdetaDiff", fType.Data(), GetQCType(fFlags)),
Form("%s%s_dNdetaDiff", fType.Data(), GetQCType(fFlags)),
fCumuNUADiff->GetNbinsX(), fCumuNUADiff->GetXaxis()->GetXmin(), fCumuNUADiff->GetXaxis()->GetXmax(),
fCumuNUADiff->GetNbinsY(), fCumuNUADiff->GetYaxis()->GetXmin(), fCumuNUADiff->GetYaxis()->GetXmax());
dNdetaDiff->GetYaxis()->Set(fCumuNUADiff->GetNbinsY(), fCumuNUADiff->GetYaxis()->GetXbins()->GetArray());
dNdetaDiff->Sumw2();
outlist->Add(dNdetaDiff);
}
TList* vtxList = (TList*)outlist->FindObject("vtxList");
if (!vtxList) {
vtxList = new TList();
vtxList->SetName("vtxList");
outlist->Add(vtxList);
}
vtxList->Add(fCumuNUARef);
vtxList->Add(fCumuNUADiff);
CumuHistos cumu2(fMaxMoment, ((fFlags & kNUAcorr) ? 2 : 0));
CumuHistos cumu4(fMaxMoment, ((fFlags & kNUAcorr) ? 1 : 0));
cumu2.ConnectList(Form("%sQC2_Cumu%s_vtx_%d_%d", fType.Data(), GetQCType(fFlags), fVzMin, fVzMax), vtxList);
if ((fFlags & kStdQC))
cumu4.ConnectList(Form("%sQC4_Cumu%s_vtx_%d_%d", fType.Data(), GetQCType(fFlags), fVzMin, fVzMax), vtxList);
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumu2.Add(MakeOutputHist(2, n, "Ref", CumuHistos::kNoNUA));
if ((fFlags & k3Cor)){
cumu2.Add(MakeOutputHist(2, n, "DiffA", CumuHistos::kNoNUA));
cumu2.Add(MakeOutputHist(2, n, "DiffB", CumuHistos::kNoNUA));
} else {
cumu2.Add(MakeOutputHist(2, n, "Diff", CumuHistos::kNoNUA));
}
if ((fFlags & kStdQC)) {
cumu4.Add(MakeOutputHist(4, n, "Ref", CumuHistos::kNoNUA));
cumu4.Add(MakeOutputHist(4, n, "Diff", CumuHistos::kNoNUA));
}
}
if ((fFlags & kNUAcorr)) {
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumu2.Add(MakeOutputHist(2, n, "Ref", CumuHistos::kNUAOld));
if ((fFlags & k3Cor)) {
cumu2.Add(MakeOutputHist(2, n, "DiffA", CumuHistos::kNUAOld));
cumu2.Add(MakeOutputHist(2, n, "DiffB", CumuHistos::kNUAOld));
} else {
cumu2.Add(MakeOutputHist(2, n, "Diff", CumuHistos::kNUAOld));
}
if ((fFlags & kStdQC)) {
cumu4.Add(MakeOutputHist(4, n, "Ref", CumuHistos::kNUAOld));
cumu4.Add(MakeOutputHist(4, n, "Diff", CumuHistos::kNUAOld));
}
}
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumu2.Add(MakeOutputHist(2, n, "Ref", CumuHistos::kNUA));
if ((fFlags & k3Cor)) {
cumu2.Add(MakeOutputHist(2, n, "DiffA", CumuHistos::kNUA));
cumu2.Add(MakeOutputHist(2, n, "DiffB", CumuHistos::kNUA));
} else {
cumu2.Add(MakeOutputHist(2, n, "Diff", CumuHistos::kNUA));
}
}
}
if ((fFlags & k3Cor)) {
Calculate3CorFlow(cumu2, quality, cent, dNdetaRef, dNdetaDiff);
} else {
CalculateReferenceFlow(cumu2, cumu4, quality, cent, dNdetaRef);
CalculateDifferentialFlow(cumu2, cumu4, quality, dNdetaDiff);
}
if ((fFlags & kNUAcorr)) {
SolveCoupledFlowEquations(cumu2, 'r');
if ((fFlags & k3Cor)) {
SolveCoupledFlowEquations(cumu2, 'a');
SolveCoupledFlowEquations(cumu2, 'b');
} else {
SolveCoupledFlowEquations(cumu2, 'd');
}
}
AddVertexBins(cumu2, outlist, ((fFlags & kNUAcorr) ? 2 : 0));
if ((fFlags & kStdQC)) AddVertexBins(cumu4, outlist, ((fFlags & kNUAcorr) ? 1 : 0));
TList* nualist = (TList*)outlist->FindObject("NUATerms");
if (!nualist) {
nualist = new TList();
nualist->SetName("NUATerms");
outlist->Add(nualist);
}
TH2D* nuaRef = (TH2D*)nualist->FindObject(Form("%sReferenceNUA%s", fType.Data(), GetQCType(fFlags)));
TH2D* temp = 0;
if (!nuaRef) {
nuaRef = (TH2D*)fCumuNUARef->Project3D("yz");
nuaRef->Scale(1./fCumuNUARef->GetNbinsX());
nuaRef->SetName(Form("%sReferenceNUA%s", fType.Data(), GetQCType(fFlags)));
nuaRef->SetTitle(Form("%sReferenceNUA%s", fType.Data(), GetQCType(fFlags)));
nualist->Add(nuaRef);
} else {
temp = (TH2D*)fCumuNUARef->Project3D("yz");
temp->Scale(1./fCumuNUARef->GetNbinsX());
nuaRef->Add(temp);
delete temp;
}
nuaRef->Fill(0., -1., 1.);
TH2D* nuaDiff = (TH2D*)nualist->FindObject(Form("%sDifferentialNUA%s", fType.Data(), GetQCType(fFlags)));
if (!nuaDiff) {
nuaDiff = (TH2D*)fCumuNUADiff->Project3D("yz");
nuaDiff->SetName(Form("%sDifferentialNUA%s", fType.Data(), GetQCType(fFlags)));
nuaDiff->SetTitle(Form("%sDifferentialNUA%s", fType.Data(), GetQCType(fFlags)));
nualist->Add(nuaDiff);
} else {
temp = (TH2D*)fCumuNUADiff->Project3D("yz");
nuaDiff->Add(temp);
delete temp;
}
nuaDiff->Fill(0., -1., 1.);
return;
}
void AliForwardFlowTaskQC::VertexBin::CalculateReferenceFlow(CumuHistos& cumu2h, CumuHistos& cumu4h, TH2I* quality,
TH1D* chist, TH2D* dNdetaRef) const
{
for (Int_t cBin = 1; cBin <= fCumuNUARef->GetNbinsY(); cBin++) {
Double_t cent = fCumuNUARef->GetYaxis()->GetBinCenter(cBin);
for (Int_t eBin = 1; eBin <= fCumuNUARef->GetNbinsX(); eBin++) {
Double_t eta = fCumuNUARef->GetXaxis()->GetBinCenter(eBin);
Double_t mult = fCumuNUARef->GetBinContent(eBin, cBin, 0);
if (mult == 0) continue;
for (Int_t qBin = 1; qBin <= fCumuNUARef->GetNbinsZ(); qBin++) {
fCumuNUARef->SetBinContent(eBin, cBin, qBin, fCumuNUARef->GetBinContent(eBin, cBin, qBin)/mult);
fCumuNUARef->SetBinError(eBin, cBin, qBin, fCumuNUARef->GetBinError(eBin, cBin, qBin)/mult);
}
dNdetaRef->Fill(eta, cent, mult);
}
}
TH3D* cumuRef = 0;
TH2D* cumu2 = 0;
TH2D* cumu2NUAold = 0;
TH2D* cumu4 = 0;
TH2D* cumu4NUA = 0;
Int_t qualityFactor = ((fFlags & kStdQC) ? 8 : 4);
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumu2 = (TH2D*)cumu2h.Get('r', n, CumuHistos::kNoNUA);
if ((fFlags & kNUAcorr)) {
cumu2NUAold = (TH2D*)cumu2h.Get('r', n, CumuHistos::kNUAOld);
}
if ((fFlags & kStdQC)) {
cumu4 = (TH2D*)cumu4h.Get('r', n, CumuHistos::kNoNUA);
if ((fFlags & kNUAcorr)) cumu4NUA = (TH2D*)cumu4h.Get('r', n, CumuHistos::kNUAOld);
}
cumuRef = (TH3D*)fCumuHists.Get('r', n);
for (Int_t cBin = 1; cBin <= cumuRef->GetNbinsY(); cBin++) {
Double_t cent = cumuRef->GetYaxis()->GetBinCenter(cBin);
if (n == 2) chist->Fill(cent, cumuRef->GetBinContent(0, cBin, 0));
if (fDebug > 0) AliInfo(Form("%s - v_%d: centrality %3.1f:..", fType.Data(), n, cent));
for (Int_t etaBin = 1; etaBin <= cumuRef->GetNbinsX(); etaBin++) {
Double_t eta = cumuRef->GetXaxis()->GetBinCenter(etaBin);
Double_t refEta = eta;
Int_t refEtaBinA = fCumuNUARef->GetXaxis()->FindBin(refEta);
if ((fFlags & kEtaGap)) refEta = -eta;
Int_t refEtaBinB = fCumuNUARef->GetXaxis()->FindBin(refEta);
Double_t w2Two = cumuRef->GetBinContent(refEtaBinA, cBin, kW2Two);
Double_t w2 = cumuRef->GetBinContent(refEtaBinA, cBin, kW2);
if (w2 == 0) continue;
Double_t cosP1nPhiA = fCumuNUARef->GetBinContent(refEtaBinA, cBin, GetBinNumberCos(n));
Double_t sinP1nPhiA = fCumuNUARef->GetBinContent(refEtaBinA, cBin, GetBinNumberSin(n));
Double_t cosP1nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberCos(n));
Double_t sinP1nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberSin(n));
Double_t cos2nPhiA = fCumuNUARef->GetBinContent(refEtaBinA, cBin, GetBinNumberCos(2*n));
Double_t sin2nPhiA = fCumuNUARef->GetBinContent(refEtaBinA, cBin, GetBinNumberSin(2*n));
Double_t cos2nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberCos(2*n));
Double_t sin2nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberSin(2*n));
Double_t two = w2Two / w2;
Double_t qc2 = two;
if (qc2 >= 0) cumu2->Fill(eta, cent, TMath::Sqrt(qc2));
if ((fFlags & kNUAcorr)) {
qc2 -= cosP1nPhiA*cosP1nPhiB + sinP1nPhiA*sinP1nPhiB;
Double_t den = 1-(cos2nPhiA*cos2nPhiB + sin2nPhiA*sin2nPhiB);
if (den != 0) qc2 /= den;
else qc2 = 0;
}
if (qc2 <= 0) {
if (fDebug > 0)
AliInfo(Form("%s: QC_%d{2} = %1.3f for eta = %1.2f and centrality %3.1f - skipping",
fType.Data(), n, qc2, eta, cent));
quality->Fill((n-2)*qualityFactor+2, Int_t(cent));
continue;
}
Double_t vnTwo = TMath::Sqrt(qc2);
if (!TMath::IsNaN(vnTwo)) {
quality->Fill((n-2)*qualityFactor+1, Int_t(cent));
if ((fFlags & kNUAcorr)) cumu2NUAold->Fill(eta, cent, vnTwo);
}
if (!(fFlags & kStdQC)) continue;
Double_t w4Four = cumuRef->GetBinContent(refEtaBinA, cBin, kW4Four);
Double_t w4 = cumuRef->GetBinContent(refEtaBinA, cBin, kW4);
Double_t multm1m2 = cumuRef->GetBinContent(refEtaBinA, cBin, k3pWeight);
if (w4 == 0 || multm1m2 == 0) continue;
Double_t cosP1nPhi1P1nPhi2 = cumuRef->GetBinContent(refEtaBinA, cBin, kCosphi1phi2);
Double_t sinP1nPhi1P1nPhi2 = cumuRef->GetBinContent(refEtaBinA, cBin, kSinphi1phi2);
Double_t cosP1nPhi1M1nPhi2M1nPhi3 = cumuRef->GetBinContent(refEtaBinA, cBin, kCosphi1phi2phi3m);
Double_t sinP1nPhi1M1nPhi2M1nPhi3 = cumuRef->GetBinContent(refEtaBinA, cBin, kSinphi1phi2phi3m);
cosP1nPhi1P1nPhi2 /= w2;
sinP1nPhi1P1nPhi2 /= w2;
cosP1nPhi1M1nPhi2M1nPhi3 /= multm1m2;
sinP1nPhi1M1nPhi2M1nPhi3 /= multm1m2;
Double_t four = w4Four / w4;
Double_t qc4 = four-2.*TMath::Power(two,2.);
if (qc4 < 0) cumu4->Fill(eta, cent, TMath::Power(-qc4, 0.25));
if ((fFlags & kNUAcorr)) {
qc4 += - 4.*cosP1nPhiA*cosP1nPhi1M1nPhi2M1nPhi3
+ 4.*sinP1nPhiA*sinP1nPhi1M1nPhi2M1nPhi3-TMath::Power(cosP1nPhi1P1nPhi2,2.)-TMath::Power(sinP1nPhi1P1nPhi2,2.)
+ 4.*cosP1nPhi1P1nPhi2*(TMath::Power(cosP1nPhiA,2.)-TMath::Power(sinP1nPhiA,2.))
+ 8.*sinP1nPhi1P1nPhi2*sinP1nPhiA*cosP1nPhiA
+ 8.*two*(TMath::Power(cosP1nPhiA,2.)+TMath::Power(sinP1nPhiA,2.))
- 6.*TMath::Power((TMath::Power(cosP1nPhiA,2.)+TMath::Power(sinP1nPhiA,2.)),2.);
}
if (qc4 >= 0) {
if (fDebug > 0)
AliInfo(Form("%s: QC_%d{4} = %1.3f for eta = %1.2f and centrality %3.1f - skipping",
fType.Data(), n, qc2, eta, cent));
quality->Fill((n-2)*qualityFactor+6, Int_t(cent));
continue;
}
Double_t vnFour = TMath::Power(-qc4, 0.25);
if (!TMath::IsNaN(vnFour*multm1m2)) {
quality->Fill((n-2)*qualityFactor+5, Int_t(cent));
if ((fFlags & kNUAcorr)) cumu4NUA->Fill(eta, cent, vnFour);
}
}
}
}
return;
}
void AliForwardFlowTaskQC::VertexBin::CalculateDifferentialFlow(CumuHistos& cumu2h, CumuHistos& cumu4h,
TH2I* quality, TH2D* dNdetaDiff) const
{
for (Int_t cBin = 1; cBin <= fCumuNUADiff->GetNbinsY(); cBin++) {
Double_t cent = fCumuNUADiff->GetYaxis()->GetBinCenter(cBin);
for (Int_t eBin = 1; eBin <= fCumuNUADiff->GetNbinsX(); eBin++) {
Double_t eta = fCumuNUADiff->GetXaxis()->GetBinCenter(eBin);
Double_t mult = fCumuNUADiff->GetBinContent(eBin, cBin, 0);
if (mult == 0) continue;
for (Int_t qBin = 1; qBin <= fCumuNUADiff->GetNbinsZ(); qBin++) {
fCumuNUADiff->SetBinContent(eBin, cBin, qBin, fCumuNUADiff->GetBinContent(eBin, cBin, qBin)/mult);
fCumuNUADiff->SetBinError(eBin, cBin, qBin, fCumuNUADiff->GetBinError(eBin, cBin, qBin)/mult);
}
dNdetaDiff->Fill(eta, cent, mult);
}
}
TH3D* cumuRef = 0;
TH3D* cumuDiff = 0;
TH2D* cumu2 = 0;
TH2D* cumu2NUAold = 0;
TH2D* cumu4 = 0;
TH2D* cumu4NUA = 0;
Int_t qualityFactor = ((fFlags & kStdQC) ? 8 : 4);
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumu2 = (TH2D*)cumu2h.Get('d', n, CumuHistos::kNoNUA);
if ((fFlags & kNUAcorr)) {
cumu2NUAold = (TH2D*)cumu2h.Get('d', n, CumuHistos::kNUAOld);
}
if ((fFlags & kStdQC)) {
cumu4 = (TH2D*)cumu4h.Get('d',n);
if ((fFlags & kNUAcorr)) cumu4NUA = (TH2D*)cumu4h.Get('d', n, CumuHistos::kNUAOld);
}
cumuRef = (TH3D*)fCumuHists.Get('r',n);
cumuDiff = (TH3D*)fCumuHists.Get('d',n);
for (Int_t cBin = 1; cBin <= cumuDiff->GetNbinsY(); cBin++) {
Double_t cent = cumuDiff->GetYaxis()->GetBinCenter(cBin);
if (fDebug > 0) AliInfo(Form("%s - v_%d: centrality %3.1f:..", fType.Data(), n, cent));
for (Int_t etaBin = 1; etaBin <= cumuDiff->GetNbinsX(); etaBin++) {
Double_t eta = cumuDiff->GetXaxis()->GetBinCenter(etaBin);
Double_t refEta = eta;
Int_t refEtaBinA = fCumuNUARef->GetXaxis()->FindBin(refEta);
if ((fFlags & kEtaGap)) refEta = -eta;
Int_t refEtaBinB = fCumuNUARef->GetXaxis()->FindBin(refEta);
Double_t w2 = cumuRef->GetBinContent(refEtaBinA, cBin, kW2);
if (w2 == 0) continue;
Double_t two = cumuRef->GetBinContent(refEtaBinA, cBin, kW2Two);
two /= w2;
Double_t cosP1nPhiA = fCumuNUARef->GetBinContent(refEtaBinA, cBin, GetBinNumberCos(n));
Double_t sinP1nPhiA = fCumuNUARef->GetBinContent(refEtaBinA, cBin, GetBinNumberSin(n));
Double_t cosP1nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberCos(n));
Double_t sinP1nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberSin(n));
Double_t cos2nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberCos(2*n));
Double_t sin2nPhiB = fCumuNUARef->GetBinContent(refEtaBinB, cBin, GetBinNumberSin(2*n));
Double_t w2pTwoPrime = cumuDiff->GetBinContent(etaBin, cBin, kW2Two);
Double_t w2p = cumuDiff->GetBinContent(etaBin, cBin, kW2);
if (w2p == 0) continue;
Double_t cosP1nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberCos(n));
Double_t sinP1nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberSin(n));
Double_t cos2nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberCos(2*n));
Double_t sin2nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberSin(2*n));
Double_t twoPrime = w2pTwoPrime / w2p;
Double_t qc2Prime = twoPrime;
cumu2->Fill(eta, cent, qc2Prime);
if ((fFlags & kNUAcorr)) {
qc2Prime -= cosP1nPsi*cosP1nPhiB + sinP1nPsi*sinP1nPhiB;
qc2Prime /= (1.-(cos2nPsi*cos2nPhiB + sin2nPsi*sin2nPhiB));
}
if (!TMath::IsNaN(qc2Prime)) {
quality->Fill((n-2)*qualityFactor+3, Int_t(cent));
if ((fFlags & kNUAcorr)) cumu2NUAold->Fill(eta, cent, qc2Prime);
}
else
quality->Fill((n-2)*qualityFactor+4, Int_t(cent));
if (fDebug > 1)
AliInfo(Form("%s: QC'_%d{2} = %1.3f for eta = %1.2f and centrality %3.1f",
fType.Data(), n, qc2Prime, eta, cent));
if (!(fFlags & kStdQC)) continue;
Double_t cosP1nPhi1P1nPhi2 = cumuRef->GetBinContent(refEtaBinA, cBin, kCosphi1phi2);
Double_t sinP1nPhi1P1nPhi2 = cumuRef->GetBinContent(refEtaBinA, cBin, kSinphi1phi2);
Double_t cosP1nPhi1M1nPhi2M1nPhi3 = cumuRef->GetBinContent(refEtaBinA, cBin, kCosphi1phi2phi3m);
Double_t sinP1nPhi1M1nPhi2M1nPhi3 = cumuRef->GetBinContent(refEtaBinA, cBin, kSinphi1phi2phi3m);
Double_t multm1m2 = cumuRef->GetBinContent(refEtaBinA, cBin, k3pWeight);
cosP1nPhi1P1nPhi2 /= w2;
sinP1nPhi1P1nPhi2 /= w2;
cosP1nPhi1M1nPhi2M1nPhi3 /= multm1m2;
sinP1nPhi1M1nPhi2M1nPhi3 /= multm1m2;
Double_t w4pFourPrime = cumuDiff->GetBinContent(etaBin, cBin, kW4Four);
Double_t w4p = cumuDiff->GetBinContent(etaBin, cBin, kW4);
Double_t mpqMult = cumuDiff->GetBinContent(etaBin, cBin, k3pWeight);
if (w4p == 0 || mpqMult == 0) continue;
Double_t cosP1nPsi1P1nPhi2 = cumuDiff->GetBinContent(etaBin, cBin, kCosphi1phi2);
Double_t sinP1nPsi1P1nPhi2 = cumuDiff->GetBinContent(etaBin, cBin, kSinphi1phi2);
Double_t cosP1nPsi1M1nPhi2M1nPhi3 = cumuDiff->GetBinContent(etaBin, cBin, kCosphi1phi2phi3m);
Double_t sinP1nPsi1M1nPhi2M1nPhi3 = cumuDiff->GetBinContent(etaBin, cBin, kSinphi1phi2phi3m);
Double_t cosP1nPsi1P1nPhi2M1nPhi3 = cumuDiff->GetBinContent(etaBin, cBin, kCosphi1phi2phi3p);
Double_t sinP1nPsi1P1nPhi2M1nPhi3 = cumuDiff->GetBinContent(etaBin, cBin, kSinphi1phi2phi3p);
cosP1nPsi1P1nPhi2 /= w2p;
sinP1nPsi1P1nPhi2 /= w2p;
cosP1nPsi1M1nPhi2M1nPhi3 /= mpqMult;
sinP1nPsi1M1nPhi2M1nPhi3 /= mpqMult;
cosP1nPsi1P1nPhi2M1nPhi3 /= mpqMult;
sinP1nPsi1P1nPhi2M1nPhi3 /= mpqMult;
Double_t fourPrime = w4pFourPrime / w4p;
Double_t qc4Prime = fourPrime-2.*twoPrime*two;
if (cumu4) cumu4->Fill(eta, cent, qc4Prime);
if ((fFlags & kNUAcorr)) {
qc4Prime += - cosP1nPsi*cosP1nPhi1M1nPhi2M1nPhi3
+ sinP1nPsi*sinP1nPhi1M1nPhi2M1nPhi3
- cosP1nPhiA*cosP1nPsi1M1nPhi2M1nPhi3
+ sinP1nPhiA*sinP1nPsi1M1nPhi2M1nPhi3
- 2.*cosP1nPhiA*cosP1nPsi1P1nPhi2M1nPhi3
- 2.*sinP1nPhiA*sinP1nPsi1P1nPhi2M1nPhi3
- cosP1nPsi1P1nPhi2*cosP1nPhi1P1nPhi2
- sinP1nPsi1P1nPhi2*sinP1nPhi1P1nPhi2
+ 2.*cosP1nPhi1P1nPhi2*(cosP1nPsi*cosP1nPhiA-sinP1nPsi*sinP1nPhiA)
+ 2.*sinP1nPhi1P1nPhi2*(cosP1nPsi*sinP1nPhiA+sinP1nPsi*cosP1nPhiA)
+ 4.*two*(cosP1nPsi*cosP1nPhiA+sinP1nPsi*sinP1nPhiA)
+ 2.*cosP1nPsi1P1nPhi2*(TMath::Power(cosP1nPhiA,2.)-TMath::Power(sinP1nPhiA,2.))
+ 4.*sinP1nPsi1P1nPhi2*cosP1nPhiA*sinP1nPhiA
+ 4.*twoPrime*(TMath::Power(cosP1nPhiA,2.)+TMath::Power(sinP1nPhiA,2.))
- 6.*(TMath::Power(cosP1nPhiA,2.)-TMath::Power(sinP1nPhiA,2.))
* (cosP1nPsi*cosP1nPhiA-sinP1nPsi*sinP1nPhiA)
- 12.*cosP1nPhiA*sinP1nPhiA
* (sinP1nPsi*cosP1nPhiA+cosP1nPsi*sinP1nPhiA);
}
if (!TMath::IsNaN(qc4Prime*mpqMult)) {
quality->Fill((n-2)*qualityFactor+7, Int_t(cent));
if (cumu4NUA) cumu4NUA->Fill(eta, cent, qc4Prime);
}
else
quality->Fill((n-2)*qualityFactor+8, Int_t(cent));
if (fDebug > 1)
AliInfo(Form("%s: v_%d{4} = %1.3f for eta = %1.2f and centrality %3.1f",
fType.Data(), n, qc4Prime, eta, cent));
}
}
}
return;
}
void AliForwardFlowTaskQC::VertexBin::Calculate3CorFlow(CumuHistos& cumu2h, TH2I* quality, TH1D* chist,
TH2D* dNdetaRef, TH2D* dNdetaDiff) const
{
TH3D* cumuRef = 0;
TH3D* cumuDiff = 0;
TH2D* cumu2r = 0;
TH2D* cumu2rNUAold = 0;
TH2D* cumu2a = 0;
TH2D* cumu2aNUAold = 0;
TH2D* cumu2b = 0;
TH2D* cumu2bNUAold = 0;
for (Int_t n = 2; n <= fMaxMoment; n++) {
cumu2r = (TH2D*)cumu2h.Get('r', n, CumuHistos::kNoNUA);
cumu2a = (TH2D*)cumu2h.Get('a', n, CumuHistos::kNoNUA);
cumu2b = (TH2D*)cumu2h.Get('b', n, CumuHistos::kNoNUA);
if ((fFlags & kNUAcorr)) {
cumu2rNUAold = (TH2D*)cumu2h.Get('r', n, CumuHistos::kNUAOld);
cumu2aNUAold = (TH2D*)cumu2h.Get('a', n, CumuHistos::kNUAOld);
cumu2bNUAold = (TH2D*)cumu2h.Get('b', n, CumuHistos::kNUAOld);
}
cumuRef = (TH3D*)fCumuHists.Get('r',n);
cumuDiff = (TH3D*)fCumuHists.Get('d',n);
for (Int_t cBin = 1; cBin <= cumuRef->GetNbinsY(); cBin++) {
Double_t cent = cumuRef->GetYaxis()->GetBinCenter(cBin);
if (n == 2) chist->Fill(cent, cumuRef->GetBinContent(0, cBin, 0));
if (fDebug > 0) AliInfo(Form("%s - v_%d: centrality %3.1f:..", fType.Data(), n, cent));
Int_t prevLim = 0;
Int_t aLow = 0, aHigh = 0, bLow = 0, bHigh = 0;
Double_t cosP1nPhiA = 0;
Double_t sinP1nPhiA = 0;
Double_t cos2nPhiA = 0;
Double_t sin2nPhiA = 0;
Double_t cosP1nPhiB = 0;
Double_t sinP1nPhiB = 0;
Double_t cos2nPhiB = 0;
Double_t sin2nPhiB = 0;
Double_t multA = 0;
Double_t multB = 0;
for (Int_t etaBin = 1; etaBin <= cumuDiff->GetNbinsX(); etaBin++) {
Double_t eta = cumuDiff->GetXaxis()->GetBinCenter(etaBin);
Double_t w2Two = cumuRef->GetBinContent(etaBin, cBin, kW2Two);
Double_t w2 = cumuRef->GetBinContent(etaBin, cBin, kW2);
if (w2 == 0) continue;
if (fEtaLims[prevLim] < eta) {
GetLimits(prevLim, aLow, aHigh, bLow, bHigh);
prevLim++;
cosP1nPhiA = 0; sinP1nPhiA = 0; cos2nPhiA = 0; sin2nPhiA = 0; multA = 0;
cosP1nPhiB = 0; sinP1nPhiB = 0; cos2nPhiB = 0; sin2nPhiB = 0; multB = 0;
for (Int_t a = aLow; a <= aHigh; a++) {
cosP1nPhiA += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberCos(n));
sinP1nPhiA += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberSin(n));
cos2nPhiA += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberCos(2*n));
sin2nPhiA += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberSin(2*n));
multA += fCumuNUARef->GetBinContent(a, cBin, 0);
}
for (Int_t b = bLow; b <= bHigh; b++) {
cosP1nPhiB += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberCos(n));
sinP1nPhiB += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberSin(n));
cos2nPhiB += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberCos(2*n));
sin2nPhiB += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberSin(2*n));
multB += fCumuNUARef->GetBinContent(b, cBin, 0);
}
if (multA == 0 || multB == 0) {
AliWarning(Form("Empty NUA values for 3Cor! (%s)", cumuRef->GetName()));
continue;
}
cosP1nPhiA /= multA;
sinP1nPhiA /= multA;
cos2nPhiA /= multA;
sin2nPhiA /= multA;
cosP1nPhiB /= multB;
sinP1nPhiB /= multB;
cos2nPhiB /= multB;
sin2nPhiB /= multB;
dNdetaRef->Fill(eta, cent, multA+multB);
}
Double_t two = w2Two / w2;
Double_t qc2 = two;
if (qc2 >= 0) cumu2r->Fill(eta, cent, TMath::Sqrt(qc2));
if ((fFlags & kNUAcorr)) {
qc2 -= cosP1nPhiA*cosP1nPhiB + sinP1nPhiA*sinP1nPhiB;
qc2 /= (1-(cos2nPhiA*cos2nPhiB + sin2nPhiA*sin2nPhiB));
}
if (qc2 <= 0) {
if (fDebug > 0)
AliInfo(Form("%s: QC_%d{2} = %1.3f for eta = %1.2f and centrality %3.1f - skipping",
fType.Data(), n, qc2, eta, cent));
quality->Fill((n-2)*4+2, Int_t(cent));
continue;
}
Double_t vnTwo = TMath::Sqrt(qc2);
if (!TMath::IsNaN(vnTwo)) {
quality->Fill((n-2)*4+1, Int_t(cent));
if ((fFlags & kNUAcorr)) cumu2rNUAold->Fill(eta, cent, vnTwo);
}
Double_t w2pTwoPrimeA = cumuDiff->GetBinContent(etaBin, cBin, kW2Two);
Double_t w2pA = cumuDiff->GetBinContent(etaBin, cBin, kW2);
Double_t w2pTwoPrimeB = cumuDiff->GetBinContent(etaBin, cBin, kW4Four);
Double_t w2pB = cumuDiff->GetBinContent(etaBin, cBin, kW4);
if (w2pA == 0 || w2pB == 0) continue;
Double_t cosP1nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberCos(n));
Double_t sinP1nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberSin(n));
Double_t cos2nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberCos(2*n));
Double_t sin2nPsi = fCumuNUADiff->GetBinContent(etaBin, cBin, GetBinNumberSin(2*n));
Double_t mult = fCumuNUADiff->GetBinContent(etaBin, cBin, 0);
if (mult == 0) continue;
cosP1nPsi /= mult;
sinP1nPsi /= mult;
cos2nPsi /= mult;
sin2nPsi /= mult;
Double_t twoPrimeA = w2pTwoPrimeA / w2pA;
Double_t twoPrimeB = w2pTwoPrimeB / w2pB;
dNdetaDiff->Fill(eta, cent, mult);
Double_t qc2PrimeA = twoPrimeA;
Double_t qc2PrimeB = twoPrimeB;
if (qc2PrimeA*qc2PrimeB >= 0) {
cumu2a->Fill(eta, cent, qc2PrimeA);
cumu2b->Fill(eta, cent, qc2PrimeB);
}
if ((fFlags & kNUAcorr)) {
qc2PrimeA -= cosP1nPsi*cosP1nPhiA + sinP1nPsi*sinP1nPhiA;
qc2PrimeB -= cosP1nPsi*cosP1nPhiB + sinP1nPsi*sinP1nPhiB;
if (cos2nPsi*cos2nPhiA + sin2nPsi*sin2nPhiA != 1.) qc2PrimeA /= (1.-(cos2nPsi*cos2nPhiA + sin2nPsi*sin2nPhiA));
if (cos2nPsi*cos2nPhiB + sin2nPsi*sin2nPhiB != 1.) qc2PrimeB /= (1.-(cos2nPsi*cos2nPhiB + sin2nPsi*sin2nPhiB));
}
if (!TMath::IsNaN(qc2PrimeA) && !TMath::IsNaN(qc2PrimeB) && qc2 != 0) {
if (qc2PrimeA*qc2PrimeB >= 0) {
quality->Fill((n-2)*4+3, Int_t(cent));
if ((fFlags & kNUAcorr)) cumu2aNUAold->Fill(eta, cent, qc2PrimeA);
if ((fFlags & kNUAcorr)) cumu2bNUAold->Fill(eta, cent, qc2PrimeB);
}
}
else
quality->Fill((n-2)*4+4, Int_t(cent));
if (fDebug > 1)
AliInfo(Form("%s: QC'a_%d{2} = %1.3f, QC'b_%d{2} = %1.3f for eta = %1.2f and centrality %3.1f",
fType.Data(), n, qc2PrimeA, n, qc2PrimeB, eta, cent));
}
}
}
return;
}
void AliForwardFlowTaskQC::VertexBin::SolveCoupledFlowEquations(CumuHistos& cumu, const Char_t type) const
{
TMatrixD mNUA(fMaxMoment-1, fMaxMoment-1);
TVectorD vQC2(fMaxMoment-1);
for (Int_t cBin = 1; cBin <= cumu.Get(type, 2, CumuHistos::kNUAOld)->GetNbinsY(); cBin++) {
Double_t cent = cumu.Get(type, 2, CumuHistos::kNUAOld)->GetYaxis()->GetBinCenter(cBin);
for (Int_t eBin = 1; eBin <= cumu.Get(type, 2, CumuHistos::kNUAOld)->GetNbinsX(); eBin++) {
Double_t eta = cumu.Get(type, 2, CumuHistos::kNUAOld)->GetXaxis()->GetBinCenter(eBin);
mNUA.Zero();
vQC2.Zero();
for (Int_t n = 0; n < fMaxMoment-1; n++) {
vQC2(n) = static_cast<TH2D*>(cumu.Get(type, n+2, CumuHistos::kNUAOld))->GetBinContent(eBin, cBin);
if (type == 'r' || type == 'R') vQC2(n) *= vQC2(n);
for (Int_t m = 0; m < fMaxMoment-1; m++) {
mNUA(n,m) = CalculateNUAMatrixElement(n, m, type, eBin, cBin);
}
}
Double_t det = 0;
mNUA.Invert(&det);
if (det != 0 ) vQC2 = mNUA*vQC2;
else AliWarning(Form("Determinant == 0 - cent: %d-%d, eta: %f, type: '%c', data: %s, vtx: %d-%d%s",
Int_t(cumu.Get(type, 2, CumuHistos::kNUAOld)->GetYaxis()->GetBinLowEdge(cBin)),
Int_t(cumu.Get(type, 2, CumuHistos::kNUAOld)->GetYaxis()->GetBinUpEdge(cBin)),
cumu.Get(type, 2, CumuHistos::kNUAOld)->GetXaxis()->GetBinCenter(eBin),
type, fType.Data(), fVzMin, fVzMax,
GetQCType(fFlags, kTRUE)));
for (Int_t n = 0; n < fMaxMoment-1; n++) {
Double_t vnTwo = 0;
if (type == 'r' || type == 'R')
vnTwo = (vQC2(n) > 0. ? TMath::Sqrt(vQC2(n)) : 0.);
else {
vnTwo = vQC2(n);
}
if (vnTwo != 0) static_cast<TH2D*>(cumu.Get(type, n+2, CumuHistos::kNUA))->Fill(eta, cent, vnTwo);
}
}
}
return;
}
Double_t AliForwardFlowTaskQC::VertexBin::CalculateNUAMatrixElement(Int_t n, Int_t m, Char_t type, Int_t binA, Int_t cBin) const
{
if (n == m) return 1.;
n += 2;
m += 2;
Double_t cosnMmPhi1 = 0, cosnMmPhi2 = 0, sinnMmPhi1 = 0, sinnMmPhi2 = 0;
Double_t cosnPmPhi1 = 0, cosnPmPhi2 = 0, sinnPmPhi1 = 0, sinnPmPhi2 = 0;
Double_t cos2nPhi1 = 0, cos2nPhi2 = 0, sin2nPhi1 = 0, sin2nPhi2 = 0;
if (type == 'r' || type == 'R') {
if ((fFlags & k3Cor)) {
Double_t eta = fCumuNUARef->GetXaxis()->GetBinCenter(binA);
Int_t i = 0;
while (fEtaLims[i] < eta) i++;
Int_t aLow = 0, aHigh = 0, bLow = 0, bHigh = 0;
GetLimits(i-1, aLow, aHigh, bLow, bHigh);
Double_t multA = 0, multB = 0;
for (Int_t a = aLow; a <= aHigh; a++) {
cosnMmPhi1 += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberCos(n-m));
sinnMmPhi1 += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberSin(n-m));
cosnPmPhi1 += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberCos(n+m));
sinnPmPhi1 += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberSin(n+m));
cos2nPhi1 += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberCos(2*n));
sin2nPhi1 += fCumuNUARef->GetBinContent(a, cBin, GetBinNumberSin(2*n));
multA += fCumuNUARef->GetBinContent(a, cBin, 0);
}
for (Int_t b = bLow; b <= bHigh; b++) {
cosnMmPhi2 += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberCos(n-m));
sinnMmPhi2 += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberSin(n-m));
cosnPmPhi2 += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberCos(n+m));
sinnPmPhi2 += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberSin(n+m));
cos2nPhi2 += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberCos(2*n));
sin2nPhi2 += fCumuNUARef->GetBinContent(b, cBin, GetBinNumberSin(2*n));
multB += fCumuNUARef->GetBinContent(b, cBin, 0);
}
if (multA == 0 || multB == 0) {
if (fDebug > 0) AliWarning("multA or multB == 0 in matrix elements, aborting NUA");
return 0.;
}
cosnMmPhi1 /= multA;
sinnMmPhi1 /= multA;
cosnPmPhi1 /= multA;
sinnPmPhi1 /= multA;
cos2nPhi1 /= multA;
sin2nPhi1 /= multA;
cosnMmPhi2 /= multB;
sinnMmPhi2 /= multB;
cosnPmPhi2 /= multB;
sinnPmPhi2 /= multB;
cos2nPhi2 /= multB;
sin2nPhi2 /= multB;
} else {
Int_t binB = fCumuNUARef->GetXaxis()->FindBin(-fCumuNUARef->GetXaxis()->GetBinCenter(binA));
cosnMmPhi1 = fCumuNUARef->GetBinContent(binA, cBin, GetBinNumberCos(n-m));
sinnMmPhi1 = fCumuNUARef->GetBinContent(binA, cBin, GetBinNumberSin(n-m));
cosnPmPhi1 = fCumuNUARef->GetBinContent(binA, cBin, GetBinNumberCos(n+m));
sinnPmPhi1 = fCumuNUARef->GetBinContent(binA, cBin, GetBinNumberSin(n+m));
cos2nPhi1 = fCumuNUARef->GetBinContent(binA, cBin, GetBinNumberCos(2*n));
sin2nPhi1 = fCumuNUARef->GetBinContent(binA, cBin, GetBinNumberSin(2*n));
cosnMmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberCos(n-m));
sinnMmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberSin(n-m));
cosnPmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberCos(n+m));
sinnPmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberSin(n+m));
cos2nPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberCos(2*n));
sin2nPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberSin(2*n));
}
}
else if (type == 'd' || type == 'D') {
Int_t binB = fCumuNUARef->GetXaxis()->FindBin(-fCumuNUADiff->GetXaxis()->GetBinCenter(binA));
cosnMmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberCos(n-m));
sinnMmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberSin(n-m));
cosnPmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberCos(n+m));
sinnPmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberSin(n+m));
cos2nPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberCos(2*n));
sin2nPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberSin(2*n));
cosnMmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberCos(n-m));
sinnMmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberSin(n-m));
cosnPmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberCos(n+m));
sinnPmPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberSin(n+m));
cos2nPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberCos(2*n));
sin2nPhi2 = fCumuNUARef->GetBinContent(binB, cBin, GetBinNumberSin(2*n));
}
else if (type == 'a' || type == 'A' || type == 'b' || type == 'B') {
Double_t mult1 = 0, mult2 = 0;
cosnMmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberCos(n-m));
sinnMmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberSin(n-m));
cosnPmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberCos(n+m));
sinnPmPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberSin(n+m));
cos2nPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberCos(2*n));
sin2nPhi1 = fCumuNUADiff->GetBinContent(binA, cBin, GetBinNumberSin(2*n));
mult1 = fCumuNUADiff->GetBinContent(binA, cBin, 0);
Double_t eta = fCumuNUADiff->GetXaxis()->GetBinCenter(binA);
Int_t i = 0;
while (fEtaLims[i] < eta) i++;
Int_t aLow = 0, aHigh = 0, bLow = 0, bHigh = 0;
GetLimits(i-1, aLow, aHigh, bLow, bHigh);
Int_t lLow = ((type == 'a' || type == 'A') ? aLow : bLow);
Int_t lHigh = ((type == 'a' || type == 'A') ? aHigh : bHigh);
for (Int_t l = lLow; l <= lHigh; l++) {
cosnMmPhi2 += fCumuNUARef->GetBinContent(l, cBin, GetBinNumberCos(n-m));
sinnMmPhi2 += fCumuNUARef->GetBinContent(l, cBin, GetBinNumberSin(n-m));
cosnPmPhi2 += fCumuNUARef->GetBinContent(l, cBin, GetBinNumberCos(n+m));
sinnPmPhi2 += fCumuNUARef->GetBinContent(l, cBin, GetBinNumberSin(n+m));
cos2nPhi2 += fCumuNUARef->GetBinContent(l, cBin, GetBinNumberCos(2*n));
sin2nPhi2 += fCumuNUARef->GetBinContent(l, cBin, GetBinNumberSin(2*n));
mult2 += fCumuNUARef->GetBinContent(l, cBin, 0);
}
if (mult1 == 0 || mult2 == 0) {
if (fDebug > 0) AliWarning("mult1 or mult2 == 0 in matrix elements, aborting NUA");
return 0.;
}
cosnMmPhi1 /= mult1;
sinnMmPhi1 /= mult1;
cosnPmPhi1 /= mult1;
sinnPmPhi1 /= mult1;
cos2nPhi1 /= mult1;
sin2nPhi1 /= mult1;
cosnMmPhi2 /= mult2;
sinnMmPhi2 /= mult2;
cosnPmPhi2 /= mult2;
sinnPmPhi2 /= mult2;
cos2nPhi2 /= mult2;
sin2nPhi2 /= mult2;
}
Double_t e = cosnMmPhi1*cosnMmPhi2 + sinnMmPhi1*sinnMmPhi2 + cosnPmPhi1*cosnPmPhi2 + sinnPmPhi1*sinnPmPhi2;
Double_t den = 1 + cos2nPhi1*cos2nPhi2 + sin2nPhi1*sin2nPhi2;
if (den != 0) e /= den;
else return 0.;
return e;
}
void AliForwardFlowTaskQC::VertexBin::AddVertexBins(CumuHistos& cumu, TList* list, UInt_t nNUA) const
{
TH2D* vtxHist = 0;
TProfile2D* avgProf = 0;
TString name;
Int_t nT = ((fFlags & k3Cor) ? 3 : 2);
Char_t ct = '\0';
for (UInt_t nua = 0; nua <= nNUA; nua++) {
for (Int_t n = 2; n <= fMaxMoment; n++) {
for (Int_t t = 0; t < nT; t++) {
switch (t) {
case 0: ct = 'r'; break;
case 1: ct = ((fFlags & k3Cor) ? 'a' : 'd'); break;
case 2: ct = 'b'; break;
default: ct = '\0'; break;
}
vtxHist = static_cast<TH2D*>(cumu.Get(ct,n,nua));
if (!vtxHist) {
AliWarning("VertexBin::AddVertexBins: vtxHist not found!");
continue;
}
name = vtxHist->GetName();
Ssiz_t l = name.Last('x')-3;
name.Resize(l);
avgProf = (TProfile2D*)list->FindObject(name.Data());
if (!avgProf) {
avgProf = new TProfile2D(name.Data(), name.Data(),
vtxHist->GetNbinsX(), vtxHist->GetXaxis()->GetXmin(), vtxHist->GetXaxis()->GetXmax(),
vtxHist->GetNbinsY(), vtxHist->GetYaxis()->GetXmin(), vtxHist->GetYaxis()->GetXmax());
if (vtxHist->GetXaxis()->IsVariableBinSize())
avgProf->GetXaxis()->Set(vtxHist->GetNbinsX(), vtxHist->GetXaxis()->GetXbins()->GetArray());
if (vtxHist->GetYaxis()->IsVariableBinSize())
avgProf->GetYaxis()->Set(vtxHist->GetNbinsY(), vtxHist->GetYaxis()->GetXbins()->GetArray());
list->Add(avgProf);
}
for (Int_t e = 1; e <= vtxHist->GetNbinsX(); e++) {
Double_t eta = vtxHist->GetXaxis()->GetBinCenter(e);
for (Int_t c = 1; c <= vtxHist->GetNbinsY(); c++) {
Double_t cent = vtxHist->GetYaxis()->GetBinCenter(c);
Double_t cont = vtxHist->GetBinContent(e, c);
if (cont == 0) continue;
avgProf->Fill(eta, cent, cont);
}
}
}
}
}
}
Int_t AliForwardFlowTaskQC::VertexBin::GetBinNumberCos(Int_t n) const
{
Int_t bin = 0;
n = TMath::Abs(n);
if (n == 0) bin = fMaxMoment*4-1;
else bin = n*2-1;
return bin;
}
Int_t AliForwardFlowTaskQC::VertexBin::GetBinNumberSin(Int_t n) const
{
Int_t bin = 0;
n = TMath::Abs(n);
if (n == 0) bin = fMaxMoment*4;
else bin = n*2;
return bin;
}
void AliForwardFlowTaskQC::VertexBin::SetupNUALabels(TAxis* a) const
{
if (a->GetNbins() != GetBinNumberSin()) AliFatal("SetupNUALabels: Wrong number of bins on axis");
Int_t i = 1, j= 1;
while (i <= a->GetNbins()) {
a->SetBinLabel(i++, Form("<<cos(%d#varphi)>>", j));
a->SetBinLabel(i++, Form("<<sin(%d#varphi)>>", j++));
}
return;
}
TH2I* AliForwardFlowTaskQC::VertexBin::MakeQualityHist(const Char_t* name) const
{
Int_t nBins = ((fFlags & kStdQC) ? 8 : 4);
TH2I* quality = new TH2I(name, name, (fMaxMoment-1)*nBins, 1, (fMaxMoment-1)*nBins+1, fCumuNUARef->GetNbinsY(),
fCumuNUARef->GetYaxis()->GetXmin(), fCumuNUARef->GetYaxis()->GetXmax());
quality->GetYaxis()->Set(fCumuNUARef->GetNbinsY(), fCumuNUARef->GetYaxis()->GetXbins()->GetArray());
for (Int_t i = 2, j = 1; i <= fMaxMoment; i++) {
quality->GetXaxis()->SetBinLabel(j++, Form("QC_{%d}{2} > 0", i));
quality->GetXaxis()->SetBinLabel(j++, Form("QC_{%d}{2} <= 0", i));
quality->GetXaxis()->SetBinLabel(j++, Form("QC'_{%d}{2} > 0", i));
quality->GetXaxis()->SetBinLabel(j++, Form("QC'_{%d}{2} <= 0", i));
if ((fFlags & kStdQC)) {
quality->GetXaxis()->SetBinLabel(j++, Form("QC_{%d}{4} < 0", i));
quality->GetXaxis()->SetBinLabel(j++, Form("QC_{%d}{4} >= 0", i));
quality->GetXaxis()->SetBinLabel(j++, Form("QC'_{%d}{4} < 0", i));
quality->GetXaxis()->SetBinLabel(j++, Form("QC'_{%d}{4} >= 0", i));
}
}
return quality;
}
TH2D* AliForwardFlowTaskQC::VertexBin::MakeOutputHist(Int_t qc, Int_t n, const Char_t* ctype, UInt_t nua) const
{
Bool_t ref = ((ctype[0] == 'R') || (ctype[0] == 'r'));
TAxis* xAxis = (ref ? fCumuNUARef->GetXaxis() : fCumuNUADiff->GetXaxis());
TAxis* yAxis = (ref ? fCumuNUARef->GetYaxis() : fCumuNUADiff->GetYaxis());
TString ntype = "";
switch (nua) {
case CumuHistos::kNoNUA: ntype = "Un"; break;
case CumuHistos::kNUAOld: ntype = "NUAOld"; break;
case CumuHistos::kNUA: ntype = "NUA"; break;
default: break;
}
TH2D* h = new TH2D(Form("%sQC%d_v%d_%s_%sCorr%s_vtx_%d_%d",
fType.Data(), qc, n, ctype, ntype.Data(),
GetQCType(fFlags), fVzMin, fVzMax),
Form("%sQC%d_v%d_%s_%sCorr%s_vtx_%d_%d",
fType.Data(), qc, n, ctype, ntype.Data(),
GetQCType(fFlags), fVzMin, fVzMax),
xAxis->GetNbins(), xAxis->GetXmin(), xAxis->GetXmax(),
yAxis->GetNbins(), yAxis->GetXmin(), yAxis->GetXmax());
if (xAxis->IsVariableBinSize()) h->GetXaxis()->Set(xAxis->GetNbins(), xAxis->GetXbins()->GetArray());
h->GetYaxis()->Set(yAxis->GetNbins(), yAxis->GetXbins()->GetArray());
return h;
}
void AliForwardFlowTaskQC::PrintFlowSetup() const
{
Printf("=======================================================");
Printf("%s::Print", this->IsA()->GetName());
Printf("Forward detector: :\t%s", ((fFlowFlags & kFMD) ? "FMD" : "VZERO"));
Printf("Number of bins in vertex axis :\t%d", fVtxAxis->GetNbins());
Printf("Range of vertex axis :\t[%3.1f,%3.1f]",
fVtxAxis->GetXmin(), fVtxAxis->GetXmax());
Printf("Number of bins in centrality axis :\t%d", fCentAxis->GetNbins());
printf("Centrality binning :\t");
for (Int_t cBin = 1; cBin <= fCentAxis->GetNbins(); cBin++) {
printf("%02d-%02d%% ", Int_t(fCentAxis->GetBinLowEdge(cBin)), Int_t(fCentAxis->GetBinUpEdge(cBin)));
if (cBin == fCentAxis->GetNbins()) printf("\n");
else if (cBin % 4 == 0) printf("\n\t\t\t\t\t");
}
printf("Doing flow analysis for :\t");
for (Int_t n = 2; n <= fMaxMoment; n++) printf("v%d ", n);
printf("\n");
TString type = "Standard QC{2} and QC{4} calculations.";
if ((fFlowFlags & kEtaGap)) type = "QC{2} with a rapidity gap.";
if ((fFlowFlags & k3Cor)) type = "QC{2} with 3 correlators.";
if ((fFlowFlags & kTPC) == kTPC) type.ReplaceAll(".", " with TPC tracks for reference.");
if ((fFlowFlags & kHybrid) == kHybrid) type.ReplaceAll(".", " with hybrid tracks for reference.");
Printf("QC calculation type :\t%s", type.Data());
Printf("Symmetrize ref. flow wrt. eta = 0 :\t%s", ((fFlowFlags & kSymEta) ? "true" : "false"));
Printf("Apply NUA correction terms :\t%s", ((fFlowFlags & kNUAcorr) ? "true" : "false"));
Printf("Satellite vertex flag :\t%s", ((fFlowFlags & kSatVtx) ? "true" : "false"));
Printf("FMD sigma cut: :\t%f", fFMDCut);
Printf("SPD sigma cut: :\t%f", fSPDCut);
if ((fFlowFlags & kEtaGap) || (fFlowFlags & kTracks))
Printf("Eta gap: :\t%f", fEtaGap);
Printf("=======================================================");
}
const Char_t* AliForwardFlowTaskQC::GetQCType(UShort_t flags, Bool_t prependUS)
{
TString type = "";
if ((flags & kStdQC)) type = "StdQC";
else if ((flags & kEtaGap)) type = "EtaGap";
else if ((flags & k3Cor)) type = "3Cor";
else type = "UNKNOWN";
if (prependUS) type.Prepend("_");
if ((flags & kTPC) == kTPC) type.Append("TPCTr");
if ((flags & kHybrid) == kHybrid) type.Append("HybTr");
return type.Data();
}
TH1* AliForwardFlowTaskQC::CumuHistos::Get(Char_t t, Int_t n, UInt_t nua) const
{
n = GetPos(n, nua);
if (n < 0) AliFatal(Form("CumuHistos out of range: (%c,%d)", t, n));
TH1* h = 0;
Int_t pos = -1;
if (t == 'r' || t == 'R') pos = n;
else if (t == 'd' || t == 'D') pos = n;
else if (t == 'a' || t == 'A') pos = 2*n;
else if (t == 'b' || t == 'B') pos = 2*n+1;
else AliFatal(Form("CumuHistos wrong type: %c", t));
if (t == 'r' || t == 'R') {
if (pos < fRefHists->GetEntries()) {
h = (TH1*)fRefHists->At(pos);
}
} else if (pos < fDiffHists->GetEntries()) {
h = (TH1*)fDiffHists->At(pos);
}
if (!h) AliFatal(Form("No hist found in list %c at pos %d", t, pos));
return h;
}
void AliForwardFlowTaskQC::CumuHistos::ConnectList(TString name, TList* l)
{
TString ref = name;
ref.ReplaceAll("Cumu","CumuRef");
fRefHists = (TList*)l->FindObject(ref.Data());
if (!fRefHists) {
fRefHists = new TList();
fRefHists->SetName(ref.Data());
l->Add(fRefHists);
} else {
if (fRefHists->GetEntries() != (fMaxMoment-1.)*(fNUA+1))
AliError("CumuHistos::ConnectList Wrong number of hists in ref list,"
"you are doing something wrong!");
}
TString diff = name;
diff.ReplaceAll("Cumu","CumuDiff");
fDiffHists = (TList*)l->FindObject(diff.Data());
if (!fDiffHists) {
fDiffHists = new TList();
fDiffHists->SetName(diff.Data());
l->Add(fDiffHists);
} else {
if ((fDiffHists->GetEntries() != (fMaxMoment-1.)*(fNUA+1)) &&
(fDiffHists->GetEntries() != 2*(fMaxMoment-1.)*(fNUA+1)))
AliError(Form("CumuHistos::ConnectList Wrong number of hists in diff list,"
"you are doing something wrong! (%s)",name.Data()));
}
}
void AliForwardFlowTaskQC::CumuHistos::Add(TH1* h) const
{
TString name = h->GetName();
if (name.Contains("Ref")) {
if (fRefHists) fRefHists->Add(h);
else AliFatal("CumuHistos::Add() - fRefHists does not exist");
if (fRefHists->GetEntries() > (fNUA+1)*(fMaxMoment-1.))
AliError("CumuHistos::Add wrong number of hists in ref list, "
"you are doing something wrong!");
}
else if (name.Contains("Diff")) {
if (fDiffHists) fDiffHists->Add(h);
else AliFatal("CumuHistos::Add() - fDiffHists does not exist");
if (fDiffHists->GetEntries() > 2*(fNUA+1)*(fMaxMoment-1.))
AliError("CumuHistos::Add wrong number of hists in diff list, "
"you are doing something wrong!");
}
return;
}
Int_t AliForwardFlowTaskQC::CumuHistos::GetPos(Int_t n, UInt_t nua) const
{
if (n > fMaxMoment) return -1;
else return (n-2)+nua*(fMaxMoment-1);
}
AliForwardFlowTaskQC.cxx:1 AliForwardFlowTaskQC.cxx:2 AliForwardFlowTaskQC.cxx:3 AliForwardFlowTaskQC.cxx:4 AliForwardFlowTaskQC.cxx:5 AliForwardFlowTaskQC.cxx:6 AliForwardFlowTaskQC.cxx:7 AliForwardFlowTaskQC.cxx:8 AliForwardFlowTaskQC.cxx:9 AliForwardFlowTaskQC.cxx:10 AliForwardFlowTaskQC.cxx:11 AliForwardFlowTaskQC.cxx:12 AliForwardFlowTaskQC.cxx:13 AliForwardFlowTaskQC.cxx:14 AliForwardFlowTaskQC.cxx:15 AliForwardFlowTaskQC.cxx:16 AliForwardFlowTaskQC.cxx:17 AliForwardFlowTaskQC.cxx:18 AliForwardFlowTaskQC.cxx:19 AliForwardFlowTaskQC.cxx:20 AliForwardFlowTaskQC.cxx:21 AliForwardFlowTaskQC.cxx:22 AliForwardFlowTaskQC.cxx:23 AliForwardFlowTaskQC.cxx:24 AliForwardFlowTaskQC.cxx:25 AliForwardFlowTaskQC.cxx:26 AliForwardFlowTaskQC.cxx:27 AliForwardFlowTaskQC.cxx:28 AliForwardFlowTaskQC.cxx:29 AliForwardFlowTaskQC.cxx:30 AliForwardFlowTaskQC.cxx:31 AliForwardFlowTaskQC.cxx:32 AliForwardFlowTaskQC.cxx:33 AliForwardFlowTaskQC.cxx:34 AliForwardFlowTaskQC.cxx:35 AliForwardFlowTaskQC.cxx:36 AliForwardFlowTaskQC.cxx:37 AliForwardFlowTaskQC.cxx:38 AliForwardFlowTaskQC.cxx:39 AliForwardFlowTaskQC.cxx:40 AliForwardFlowTaskQC.cxx:41 AliForwardFlowTaskQC.cxx:42 AliForwardFlowTaskQC.cxx:43 AliForwardFlowTaskQC.cxx:44 AliForwardFlowTaskQC.cxx:45 AliForwardFlowTaskQC.cxx:46 AliForwardFlowTaskQC.cxx:47 AliForwardFlowTaskQC.cxx:48 AliForwardFlowTaskQC.cxx:49 AliForwardFlowTaskQC.cxx:50 AliForwardFlowTaskQC.cxx:51 AliForwardFlowTaskQC.cxx:52 AliForwardFlowTaskQC.cxx:53 AliForwardFlowTaskQC.cxx:54 AliForwardFlowTaskQC.cxx:55 AliForwardFlowTaskQC.cxx:56 AliForwardFlowTaskQC.cxx:57 AliForwardFlowTaskQC.cxx:58 AliForwardFlowTaskQC.cxx:59 AliForwardFlowTaskQC.cxx:60 AliForwardFlowTaskQC.cxx:61 AliForwardFlowTaskQC.cxx:62 AliForwardFlowTaskQC.cxx:63 AliForwardFlowTaskQC.cxx:64 AliForwardFlowTaskQC.cxx:65 AliForwardFlowTaskQC.cxx:66 AliForwardFlowTaskQC.cxx:67 AliForwardFlowTaskQC.cxx:68 AliForwardFlowTaskQC.cxx:69 AliForwardFlowTaskQC.cxx:70 AliForwardFlowTaskQC.cxx:71 AliForwardFlowTaskQC.cxx:72 AliForwardFlowTaskQC.cxx:73 AliForwardFlowTaskQC.cxx:74 AliForwardFlowTaskQC.cxx:75 AliForwardFlowTaskQC.cxx:76 AliForwardFlowTaskQC.cxx:77 AliForwardFlowTaskQC.cxx:78 AliForwardFlowTaskQC.cxx:79 AliForwardFlowTaskQC.cxx:80 AliForwardFlowTaskQC.cxx:81 AliForwardFlowTaskQC.cxx:82 AliForwardFlowTaskQC.cxx:83 AliForwardFlowTaskQC.cxx:84 AliForwardFlowTaskQC.cxx:85 AliForwardFlowTaskQC.cxx:86 AliForwardFlowTaskQC.cxx:87 AliForwardFlowTaskQC.cxx:88 AliForwardFlowTaskQC.cxx:89 AliForwardFlowTaskQC.cxx:90 AliForwardFlowTaskQC.cxx:91 AliForwardFlowTaskQC.cxx:92 AliForwardFlowTaskQC.cxx:93 AliForwardFlowTaskQC.cxx:94 AliForwardFlowTaskQC.cxx:95 AliForwardFlowTaskQC.cxx:96 AliForwardFlowTaskQC.cxx:97 AliForwardFlowTaskQC.cxx:98 AliForwardFlowTaskQC.cxx:99 AliForwardFlowTaskQC.cxx:100 AliForwardFlowTaskQC.cxx:101 AliForwardFlowTaskQC.cxx:102 AliForwardFlowTaskQC.cxx:103 AliForwardFlowTaskQC.cxx:104 AliForwardFlowTaskQC.cxx:105 AliForwardFlowTaskQC.cxx:106 AliForwardFlowTaskQC.cxx:107 AliForwardFlowTaskQC.cxx:108 AliForwardFlowTaskQC.cxx:109 AliForwardFlowTaskQC.cxx:110 AliForwardFlowTaskQC.cxx:111 AliForwardFlowTaskQC.cxx:112 AliForwardFlowTaskQC.cxx:113 AliForwardFlowTaskQC.cxx:114 AliForwardFlowTaskQC.cxx:115 AliForwardFlowTaskQC.cxx:116 AliForwardFlowTaskQC.cxx:117 AliForwardFlowTaskQC.cxx:118 AliForwardFlowTaskQC.cxx:119 AliForwardFlowTaskQC.cxx:120 AliForwardFlowTaskQC.cxx:121 AliForwardFlowTaskQC.cxx:122 AliForwardFlowTaskQC.cxx:123 AliForwardFlowTaskQC.cxx:124 AliForwardFlowTaskQC.cxx:125 AliForwardFlowTaskQC.cxx:126 AliForwardFlowTaskQC.cxx:127 AliForwardFlowTaskQC.cxx:128 AliForwardFlowTaskQC.cxx:129 AliForwardFlowTaskQC.cxx:130 AliForwardFlowTaskQC.cxx:131 AliForwardFlowTaskQC.cxx:132 AliForwardFlowTaskQC.cxx:133 AliForwardFlowTaskQC.cxx:134 AliForwardFlowTaskQC.cxx:135 AliForwardFlowTaskQC.cxx:136 AliForwardFlowTaskQC.cxx:137 AliForwardFlowTaskQC.cxx:138 AliForwardFlowTaskQC.cxx:139 AliForwardFlowTaskQC.cxx:140 AliForwardFlowTaskQC.cxx:141 AliForwardFlowTaskQC.cxx:142 AliForwardFlowTaskQC.cxx:143 AliForwardFlowTaskQC.cxx:144 AliForwardFlowTaskQC.cxx:145 AliForwardFlowTaskQC.cxx:146 AliForwardFlowTaskQC.cxx:147 AliForwardFlowTaskQC.cxx:148 AliForwardFlowTaskQC.cxx:149 AliForwardFlowTaskQC.cxx:150 AliForwardFlowTaskQC.cxx:151 AliForwardFlowTaskQC.cxx:152 AliForwardFlowTaskQC.cxx:153 AliForwardFlowTaskQC.cxx:154 AliForwardFlowTaskQC.cxx:155 AliForwardFlowTaskQC.cxx:156 AliForwardFlowTaskQC.cxx:157 AliForwardFlowTaskQC.cxx:158 AliForwardFlowTaskQC.cxx:159 AliForwardFlowTaskQC.cxx:160 AliForwardFlowTaskQC.cxx:161 AliForwardFlowTaskQC.cxx:162 AliForwardFlowTaskQC.cxx:163 AliForwardFlowTaskQC.cxx:164 AliForwardFlowTaskQC.cxx:165 AliForwardFlowTaskQC.cxx:166 AliForwardFlowTaskQC.cxx:167 AliForwardFlowTaskQC.cxx:168 AliForwardFlowTaskQC.cxx:169 AliForwardFlowTaskQC.cxx:170 AliForwardFlowTaskQC.cxx:171 AliForwardFlowTaskQC.cxx:172 AliForwardFlowTaskQC.cxx:173 AliForwardFlowTaskQC.cxx:174 AliForwardFlowTaskQC.cxx:175 AliForwardFlowTaskQC.cxx:176 AliForwardFlowTaskQC.cxx:177 AliForwardFlowTaskQC.cxx:178 AliForwardFlowTaskQC.cxx:179 AliForwardFlowTaskQC.cxx:180 AliForwardFlowTaskQC.cxx:181 AliForwardFlowTaskQC.cxx:182 AliForwardFlowTaskQC.cxx:183 AliForwardFlowTaskQC.cxx:184 AliForwardFlowTaskQC.cxx:185 AliForwardFlowTaskQC.cxx:186 AliForwardFlowTaskQC.cxx:187 AliForwardFlowTaskQC.cxx:188 AliForwardFlowTaskQC.cxx:189 AliForwardFlowTaskQC.cxx:190 AliForwardFlowTaskQC.cxx:191 AliForwardFlowTaskQC.cxx:192 AliForwardFlowTaskQC.cxx:193 AliForwardFlowTaskQC.cxx:194 AliForwardFlowTaskQC.cxx:195 AliForwardFlowTaskQC.cxx:196 AliForwardFlowTaskQC.cxx:197 AliForwardFlowTaskQC.cxx:198 AliForwardFlowTaskQC.cxx:199 AliForwardFlowTaskQC.cxx:200 AliForwardFlowTaskQC.cxx:201 AliForwardFlowTaskQC.cxx:202 AliForwardFlowTaskQC.cxx:203 AliForwardFlowTaskQC.cxx:204 AliForwardFlowTaskQC.cxx:205 AliForwardFlowTaskQC.cxx:206 AliForwardFlowTaskQC.cxx:207 AliForwardFlowTaskQC.cxx:208 AliForwardFlowTaskQC.cxx:209 AliForwardFlowTaskQC.cxx:210 AliForwardFlowTaskQC.cxx:211 AliForwardFlowTaskQC.cxx:212 AliForwardFlowTaskQC.cxx:213 AliForwardFlowTaskQC.cxx:214 AliForwardFlowTaskQC.cxx:215 AliForwardFlowTaskQC.cxx:216 AliForwardFlowTaskQC.cxx:217 AliForwardFlowTaskQC.cxx:218 AliForwardFlowTaskQC.cxx:219 AliForwardFlowTaskQC.cxx:220 AliForwardFlowTaskQC.cxx:221 AliForwardFlowTaskQC.cxx:222 AliForwardFlowTaskQC.cxx:223 AliForwardFlowTaskQC.cxx:224 AliForwardFlowTaskQC.cxx:225 AliForwardFlowTaskQC.cxx:226 AliForwardFlowTaskQC.cxx:227 AliForwardFlowTaskQC.cxx:228 AliForwardFlowTaskQC.cxx:229 AliForwardFlowTaskQC.cxx:230 AliForwardFlowTaskQC.cxx:231 AliForwardFlowTaskQC.cxx:232 AliForwardFlowTaskQC.cxx:233 AliForwardFlowTaskQC.cxx:234 AliForwardFlowTaskQC.cxx:235 AliForwardFlowTaskQC.cxx:236 AliForwardFlowTaskQC.cxx:237 AliForwardFlowTaskQC.cxx:238 AliForwardFlowTaskQC.cxx:239 AliForwardFlowTaskQC.cxx:240 AliForwardFlowTaskQC.cxx:241 AliForwardFlowTaskQC.cxx:242 AliForwardFlowTaskQC.cxx:243 AliForwardFlowTaskQC.cxx:244 AliForwardFlowTaskQC.cxx:245 AliForwardFlowTaskQC.cxx:246 AliForwardFlowTaskQC.cxx:247 AliForwardFlowTaskQC.cxx:248 AliForwardFlowTaskQC.cxx:249 AliForwardFlowTaskQC.cxx:250 AliForwardFlowTaskQC.cxx:251 AliForwardFlowTaskQC.cxx:252 AliForwardFlowTaskQC.cxx:253 AliForwardFlowTaskQC.cxx:254 AliForwardFlowTaskQC.cxx:255 AliForwardFlowTaskQC.cxx:256 AliForwardFlowTaskQC.cxx:257 AliForwardFlowTaskQC.cxx:258 AliForwardFlowTaskQC.cxx:259 AliForwardFlowTaskQC.cxx:260 AliForwardFlowTaskQC.cxx:261 AliForwardFlowTaskQC.cxx:262 AliForwardFlowTaskQC.cxx:263 AliForwardFlowTaskQC.cxx:264 AliForwardFlowTaskQC.cxx:265 AliForwardFlowTaskQC.cxx:266 AliForwardFlowTaskQC.cxx:267 AliForwardFlowTaskQC.cxx:268 AliForwardFlowTaskQC.cxx:269 AliForwardFlowTaskQC.cxx:270 AliForwardFlowTaskQC.cxx:271 AliForwardFlowTaskQC.cxx:272 AliForwardFlowTaskQC.cxx:273 AliForwardFlowTaskQC.cxx:274 AliForwardFlowTaskQC.cxx:275 AliForwardFlowTaskQC.cxx:276 AliForwardFlowTaskQC.cxx:277 AliForwardFlowTaskQC.cxx:278 AliForwardFlowTaskQC.cxx:279 AliForwardFlowTaskQC.cxx:280 AliForwardFlowTaskQC.cxx:281 AliForwardFlowTaskQC.cxx:282 AliForwardFlowTaskQC.cxx:283 AliForwardFlowTaskQC.cxx:284 AliForwardFlowTaskQC.cxx:285 AliForwardFlowTaskQC.cxx:286 AliForwardFlowTaskQC.cxx:287 AliForwardFlowTaskQC.cxx:288 AliForwardFlowTaskQC.cxx:289 AliForwardFlowTaskQC.cxx:290 AliForwardFlowTaskQC.cxx:291 AliForwardFlowTaskQC.cxx:292 AliForwardFlowTaskQC.cxx:293 AliForwardFlowTaskQC.cxx:294 AliForwardFlowTaskQC.cxx:295 AliForwardFlowTaskQC.cxx:296 AliForwardFlowTaskQC.cxx:297 AliForwardFlowTaskQC.cxx:298 AliForwardFlowTaskQC.cxx:299 AliForwardFlowTaskQC.cxx:300 AliForwardFlowTaskQC.cxx:301 AliForwardFlowTaskQC.cxx:302 AliForwardFlowTaskQC.cxx:303 AliForwardFlowTaskQC.cxx:304 AliForwardFlowTaskQC.cxx:305 AliForwardFlowTaskQC.cxx:306 AliForwardFlowTaskQC.cxx:307 AliForwardFlowTaskQC.cxx:308 AliForwardFlowTaskQC.cxx:309 AliForwardFlowTaskQC.cxx:310 AliForwardFlowTaskQC.cxx:311 AliForwardFlowTaskQC.cxx:312 AliForwardFlowTaskQC.cxx:313 AliForwardFlowTaskQC.cxx:314 AliForwardFlowTaskQC.cxx:315 AliForwardFlowTaskQC.cxx:316 AliForwardFlowTaskQC.cxx:317 AliForwardFlowTaskQC.cxx:318 AliForwardFlowTaskQC.cxx:319 AliForwardFlowTaskQC.cxx:320 AliForwardFlowTaskQC.cxx:321 AliForwardFlowTaskQC.cxx:322 AliForwardFlowTaskQC.cxx:323 AliForwardFlowTaskQC.cxx:324 AliForwardFlowTaskQC.cxx:325 AliForwardFlowTaskQC.cxx:326 AliForwardFlowTaskQC.cxx:327 AliForwardFlowTaskQC.cxx:328 AliForwardFlowTaskQC.cxx:329 AliForwardFlowTaskQC.cxx:330 AliForwardFlowTaskQC.cxx:331 AliForwardFlowTaskQC.cxx:332 AliForwardFlowTaskQC.cxx:333 AliForwardFlowTaskQC.cxx:334 AliForwardFlowTaskQC.cxx:335 AliForwardFlowTaskQC.cxx:336 AliForwardFlowTaskQC.cxx:337 AliForwardFlowTaskQC.cxx:338 AliForwardFlowTaskQC.cxx:339 AliForwardFlowTaskQC.cxx:340 AliForwardFlowTaskQC.cxx:341 AliForwardFlowTaskQC.cxx:342 AliForwardFlowTaskQC.cxx:343 AliForwardFlowTaskQC.cxx:344 AliForwardFlowTaskQC.cxx:345 AliForwardFlowTaskQC.cxx:346 AliForwardFlowTaskQC.cxx:347 AliForwardFlowTaskQC.cxx:348 AliForwardFlowTaskQC.cxx:349 AliForwardFlowTaskQC.cxx:350 AliForwardFlowTaskQC.cxx:351 AliForwardFlowTaskQC.cxx:352 AliForwardFlowTaskQC.cxx:353 AliForwardFlowTaskQC.cxx:354 AliForwardFlowTaskQC.cxx:355 AliForwardFlowTaskQC.cxx:356 AliForwardFlowTaskQC.cxx:357 AliForwardFlowTaskQC.cxx:358 AliForwardFlowTaskQC.cxx:359 AliForwardFlowTaskQC.cxx:360 AliForwardFlowTaskQC.cxx:361 AliForwardFlowTaskQC.cxx:362 AliForwardFlowTaskQC.cxx:363 AliForwardFlowTaskQC.cxx:364 AliForwardFlowTaskQC.cxx:365 AliForwardFlowTaskQC.cxx:366 AliForwardFlowTaskQC.cxx:367 AliForwardFlowTaskQC.cxx:368 AliForwardFlowTaskQC.cxx:369 AliForwardFlowTaskQC.cxx:370 AliForwardFlowTaskQC.cxx:371 AliForwardFlowTaskQC.cxx:372 AliForwardFlowTaskQC.cxx:373 AliForwardFlowTaskQC.cxx:374 AliForwardFlowTaskQC.cxx:375 AliForwardFlowTaskQC.cxx:376 AliForwardFlowTaskQC.cxx:377 AliForwardFlowTaskQC.cxx:378 AliForwardFlowTaskQC.cxx:379 AliForwardFlowTaskQC.cxx:380 AliForwardFlowTaskQC.cxx:381 AliForwardFlowTaskQC.cxx:382 AliForwardFlowTaskQC.cxx:383 AliForwardFlowTaskQC.cxx:384 AliForwardFlowTaskQC.cxx:385 AliForwardFlowTaskQC.cxx:386 AliForwardFlowTaskQC.cxx:387 AliForwardFlowTaskQC.cxx:388 AliForwardFlowTaskQC.cxx:389 AliForwardFlowTaskQC.cxx:390 AliForwardFlowTaskQC.cxx:391 AliForwardFlowTaskQC.cxx:392 AliForwardFlowTaskQC.cxx:393 AliForwardFlowTaskQC.cxx:394 AliForwardFlowTaskQC.cxx:395 AliForwardFlowTaskQC.cxx:396 AliForwardFlowTaskQC.cxx:397 AliForwardFlowTaskQC.cxx:398 AliForwardFlowTaskQC.cxx:399 AliForwardFlowTaskQC.cxx:400 AliForwardFlowTaskQC.cxx:401 AliForwardFlowTaskQC.cxx:402 AliForwardFlowTaskQC.cxx:403 AliForwardFlowTaskQC.cxx:404 AliForwardFlowTaskQC.cxx:405 AliForwardFlowTaskQC.cxx:406 AliForwardFlowTaskQC.cxx:407 AliForwardFlowTaskQC.cxx:408 AliForwardFlowTaskQC.cxx:409 AliForwardFlowTaskQC.cxx:410 AliForwardFlowTaskQC.cxx:411 AliForwardFlowTaskQC.cxx:412 AliForwardFlowTaskQC.cxx:413 AliForwardFlowTaskQC.cxx:414 AliForwardFlowTaskQC.cxx:415 AliForwardFlowTaskQC.cxx:416 AliForwardFlowTaskQC.cxx:417 AliForwardFlowTaskQC.cxx:418 AliForwardFlowTaskQC.cxx:419 AliForwardFlowTaskQC.cxx:420 AliForwardFlowTaskQC.cxx:421 AliForwardFlowTaskQC.cxx:422 AliForwardFlowTaskQC.cxx:423 AliForwardFlowTaskQC.cxx:424 AliForwardFlowTaskQC.cxx:425 AliForwardFlowTaskQC.cxx:426 AliForwardFlowTaskQC.cxx:427 AliForwardFlowTaskQC.cxx:428 AliForwardFlowTaskQC.cxx:429 AliForwardFlowTaskQC.cxx:430 AliForwardFlowTaskQC.cxx:431 AliForwardFlowTaskQC.cxx:432 AliForwardFlowTaskQC.cxx:433 AliForwardFlowTaskQC.cxx:434 AliForwardFlowTaskQC.cxx:435 AliForwardFlowTaskQC.cxx:436 AliForwardFlowTaskQC.cxx:437 AliForwardFlowTaskQC.cxx:438 AliForwardFlowTaskQC.cxx:439 AliForwardFlowTaskQC.cxx:440 AliForwardFlowTaskQC.cxx:441 AliForwardFlowTaskQC.cxx:442 AliForwardFlowTaskQC.cxx:443 AliForwardFlowTaskQC.cxx:444 AliForwardFlowTaskQC.cxx:445 AliForwardFlowTaskQC.cxx:446 AliForwardFlowTaskQC.cxx:447 AliForwardFlowTaskQC.cxx:448 AliForwardFlowTaskQC.cxx:449 AliForwardFlowTaskQC.cxx:450 AliForwardFlowTaskQC.cxx:451 AliForwardFlowTaskQC.cxx:452 AliForwardFlowTaskQC.cxx:453 AliForwardFlowTaskQC.cxx:454 AliForwardFlowTaskQC.cxx:455 AliForwardFlowTaskQC.cxx:456 AliForwardFlowTaskQC.cxx:457 AliForwardFlowTaskQC.cxx:458 AliForwardFlowTaskQC.cxx:459 AliForwardFlowTaskQC.cxx:460 AliForwardFlowTaskQC.cxx:461 AliForwardFlowTaskQC.cxx:462 AliForwardFlowTaskQC.cxx:463 AliForwardFlowTaskQC.cxx:464 AliForwardFlowTaskQC.cxx:465 AliForwardFlowTaskQC.cxx:466 AliForwardFlowTaskQC.cxx:467 AliForwardFlowTaskQC.cxx:468 AliForwardFlowTaskQC.cxx:469 AliForwardFlowTaskQC.cxx:470 AliForwardFlowTaskQC.cxx:471 AliForwardFlowTaskQC.cxx:472 AliForwardFlowTaskQC.cxx:473 AliForwardFlowTaskQC.cxx:474 AliForwardFlowTaskQC.cxx:475 AliForwardFlowTaskQC.cxx:476 AliForwardFlowTaskQC.cxx:477 AliForwardFlowTaskQC.cxx:478 AliForwardFlowTaskQC.cxx:479 AliForwardFlowTaskQC.cxx:480 AliForwardFlowTaskQC.cxx:481 AliForwardFlowTaskQC.cxx:482 AliForwardFlowTaskQC.cxx:483 AliForwardFlowTaskQC.cxx:484 AliForwardFlowTaskQC.cxx:485 AliForwardFlowTaskQC.cxx:486 AliForwardFlowTaskQC.cxx:487 AliForwardFlowTaskQC.cxx:488 AliForwardFlowTaskQC.cxx:489 AliForwardFlowTaskQC.cxx:490 AliForwardFlowTaskQC.cxx:491 AliForwardFlowTaskQC.cxx:492 AliForwardFlowTaskQC.cxx:493 AliForwardFlowTaskQC.cxx:494 AliForwardFlowTaskQC.cxx:495 AliForwardFlowTaskQC.cxx:496 AliForwardFlowTaskQC.cxx:497 AliForwardFlowTaskQC.cxx:498 AliForwardFlowTaskQC.cxx:499 AliForwardFlowTaskQC.cxx:500 AliForwardFlowTaskQC.cxx:501 AliForwardFlowTaskQC.cxx:502 AliForwardFlowTaskQC.cxx:503 AliForwardFlowTaskQC.cxx:504 AliForwardFlowTaskQC.cxx:505 AliForwardFlowTaskQC.cxx:506 AliForwardFlowTaskQC.cxx:507 AliForwardFlowTaskQC.cxx:508 AliForwardFlowTaskQC.cxx:509 AliForwardFlowTaskQC.cxx:510 AliForwardFlowTaskQC.cxx:511 AliForwardFlowTaskQC.cxx:512 AliForwardFlowTaskQC.cxx:513 AliForwardFlowTaskQC.cxx:514 AliForwardFlowTaskQC.cxx:515 AliForwardFlowTaskQC.cxx:516 AliForwardFlowTaskQC.cxx:517 AliForwardFlowTaskQC.cxx:518 AliForwardFlowTaskQC.cxx:519 AliForwardFlowTaskQC.cxx:520 AliForwardFlowTaskQC.cxx:521 AliForwardFlowTaskQC.cxx:522 AliForwardFlowTaskQC.cxx:523 AliForwardFlowTaskQC.cxx:524 AliForwardFlowTaskQC.cxx:525 AliForwardFlowTaskQC.cxx:526 AliForwardFlowTaskQC.cxx:527 AliForwardFlowTaskQC.cxx:528 AliForwardFlowTaskQC.cxx:529 AliForwardFlowTaskQC.cxx:530 AliForwardFlowTaskQC.cxx:531 AliForwardFlowTaskQC.cxx:532 AliForwardFlowTaskQC.cxx:533 AliForwardFlowTaskQC.cxx:534 AliForwardFlowTaskQC.cxx:535 AliForwardFlowTaskQC.cxx:536 AliForwardFlowTaskQC.cxx:537 AliForwardFlowTaskQC.cxx:538 AliForwardFlowTaskQC.cxx:539 AliForwardFlowTaskQC.cxx:540 AliForwardFlowTaskQC.cxx:541 AliForwardFlowTaskQC.cxx:542 AliForwardFlowTaskQC.cxx:543 AliForwardFlowTaskQC.cxx:544 AliForwardFlowTaskQC.cxx:545 AliForwardFlowTaskQC.cxx:546 AliForwardFlowTaskQC.cxx:547 AliForwardFlowTaskQC.cxx:548 AliForwardFlowTaskQC.cxx:549 AliForwardFlowTaskQC.cxx:550 AliForwardFlowTaskQC.cxx:551 AliForwardFlowTaskQC.cxx:552 AliForwardFlowTaskQC.cxx:553 AliForwardFlowTaskQC.cxx:554 AliForwardFlowTaskQC.cxx:555 AliForwardFlowTaskQC.cxx:556 AliForwardFlowTaskQC.cxx:557 AliForwardFlowTaskQC.cxx:558 AliForwardFlowTaskQC.cxx:559 AliForwardFlowTaskQC.cxx:560 AliForwardFlowTaskQC.cxx:561 AliForwardFlowTaskQC.cxx:562 AliForwardFlowTaskQC.cxx:563 AliForwardFlowTaskQC.cxx:564 AliForwardFlowTaskQC.cxx:565 AliForwardFlowTaskQC.cxx:566 AliForwardFlowTaskQC.cxx:567 AliForwardFlowTaskQC.cxx:568 AliForwardFlowTaskQC.cxx:569 AliForwardFlowTaskQC.cxx:570 AliForwardFlowTaskQC.cxx:571 AliForwardFlowTaskQC.cxx:572 AliForwardFlowTaskQC.cxx:573 AliForwardFlowTaskQC.cxx:574 AliForwardFlowTaskQC.cxx:575 AliForwardFlowTaskQC.cxx:576 AliForwardFlowTaskQC.cxx:577 AliForwardFlowTaskQC.cxx:578 AliForwardFlowTaskQC.cxx:579 AliForwardFlowTaskQC.cxx:580 AliForwardFlowTaskQC.cxx:581 AliForwardFlowTaskQC.cxx:582 AliForwardFlowTaskQC.cxx:583 AliForwardFlowTaskQC.cxx:584 AliForwardFlowTaskQC.cxx:585 AliForwardFlowTaskQC.cxx:586 AliForwardFlowTaskQC.cxx:587 AliForwardFlowTaskQC.cxx:588 AliForwardFlowTaskQC.cxx:589 AliForwardFlowTaskQC.cxx:590 AliForwardFlowTaskQC.cxx:591 AliForwardFlowTaskQC.cxx:592 AliForwardFlowTaskQC.cxx:593 AliForwardFlowTaskQC.cxx:594 AliForwardFlowTaskQC.cxx:595 AliForwardFlowTaskQC.cxx:596 AliForwardFlowTaskQC.cxx:597 AliForwardFlowTaskQC.cxx:598 AliForwardFlowTaskQC.cxx:599 AliForwardFlowTaskQC.cxx:600 AliForwardFlowTaskQC.cxx:601 AliForwardFlowTaskQC.cxx:602 AliForwardFlowTaskQC.cxx:603 AliForwardFlowTaskQC.cxx:604 AliForwardFlowTaskQC.cxx:605 AliForwardFlowTaskQC.cxx:606 AliForwardFlowTaskQC.cxx:607 AliForwardFlowTaskQC.cxx:608 AliForwardFlowTaskQC.cxx:609 AliForwardFlowTaskQC.cxx:610 AliForwardFlowTaskQC.cxx:611 AliForwardFlowTaskQC.cxx:612 AliForwardFlowTaskQC.cxx:613 AliForwardFlowTaskQC.cxx:614 AliForwardFlowTaskQC.cxx:615 AliForwardFlowTaskQC.cxx:616 AliForwardFlowTaskQC.cxx:617 AliForwardFlowTaskQC.cxx:618 AliForwardFlowTaskQC.cxx:619 AliForwardFlowTaskQC.cxx:620 AliForwardFlowTaskQC.cxx:621 AliForwardFlowTaskQC.cxx:622 AliForwardFlowTaskQC.cxx:623 AliForwardFlowTaskQC.cxx:624 AliForwardFlowTaskQC.cxx:625 AliForwardFlowTaskQC.cxx:626 AliForwardFlowTaskQC.cxx:627 AliForwardFlowTaskQC.cxx:628 AliForwardFlowTaskQC.cxx:629 AliForwardFlowTaskQC.cxx:630 AliForwardFlowTaskQC.cxx:631 AliForwardFlowTaskQC.cxx:632 AliForwardFlowTaskQC.cxx:633 AliForwardFlowTaskQC.cxx:634 AliForwardFlowTaskQC.cxx:635 AliForwardFlowTaskQC.cxx:636 AliForwardFlowTaskQC.cxx:637 AliForwardFlowTaskQC.cxx:638 AliForwardFlowTaskQC.cxx:639 AliForwardFlowTaskQC.cxx:640 AliForwardFlowTaskQC.cxx:641 AliForwardFlowTaskQC.cxx:642 AliForwardFlowTaskQC.cxx:643 AliForwardFlowTaskQC.cxx:644 AliForwardFlowTaskQC.cxx:645 AliForwardFlowTaskQC.cxx:646 AliForwardFlowTaskQC.cxx:647 AliForwardFlowTaskQC.cxx:648 AliForwardFlowTaskQC.cxx:649 AliForwardFlowTaskQC.cxx:650 AliForwardFlowTaskQC.cxx:651 AliForwardFlowTaskQC.cxx:652 AliForwardFlowTaskQC.cxx:653 AliForwardFlowTaskQC.cxx:654 AliForwardFlowTaskQC.cxx:655 AliForwardFlowTaskQC.cxx:656 AliForwardFlowTaskQC.cxx:657 AliForwardFlowTaskQC.cxx:658 AliForwardFlowTaskQC.cxx:659 AliForwardFlowTaskQC.cxx:660 AliForwardFlowTaskQC.cxx:661 AliForwardFlowTaskQC.cxx:662 AliForwardFlowTaskQC.cxx:663 AliForwardFlowTaskQC.cxx:664 AliForwardFlowTaskQC.cxx:665 AliForwardFlowTaskQC.cxx:666 AliForwardFlowTaskQC.cxx:667 AliForwardFlowTaskQC.cxx:668 AliForwardFlowTaskQC.cxx:669 AliForwardFlowTaskQC.cxx:670 AliForwardFlowTaskQC.cxx:671 AliForwardFlowTaskQC.cxx:672 AliForwardFlowTaskQC.cxx:673 AliForwardFlowTaskQC.cxx:674 AliForwardFlowTaskQC.cxx:675 AliForwardFlowTaskQC.cxx:676 AliForwardFlowTaskQC.cxx:677 AliForwardFlowTaskQC.cxx:678 AliForwardFlowTaskQC.cxx:679 AliForwardFlowTaskQC.cxx:680 AliForwardFlowTaskQC.cxx:681 AliForwardFlowTaskQC.cxx:682 AliForwardFlowTaskQC.cxx:683 AliForwardFlowTaskQC.cxx:684 AliForwardFlowTaskQC.cxx:685 AliForwardFlowTaskQC.cxx:686 AliForwardFlowTaskQC.cxx:687 AliForwardFlowTaskQC.cxx:688 AliForwardFlowTaskQC.cxx:689 AliForwardFlowTaskQC.cxx:690 AliForwardFlowTaskQC.cxx:691 AliForwardFlowTaskQC.cxx:692 AliForwardFlowTaskQC.cxx:693 AliForwardFlowTaskQC.cxx:694 AliForwardFlowTaskQC.cxx:695 AliForwardFlowTaskQC.cxx:696 AliForwardFlowTaskQC.cxx:697 AliForwardFlowTaskQC.cxx:698 AliForwardFlowTaskQC.cxx:699 AliForwardFlowTaskQC.cxx:700 AliForwardFlowTaskQC.cxx:701 AliForwardFlowTaskQC.cxx:702 AliForwardFlowTaskQC.cxx:703 AliForwardFlowTaskQC.cxx:704 AliForwardFlowTaskQC.cxx:705 AliForwardFlowTaskQC.cxx:706 AliForwardFlowTaskQC.cxx:707 AliForwardFlowTaskQC.cxx:708 AliForwardFlowTaskQC.cxx:709 AliForwardFlowTaskQC.cxx:710 AliForwardFlowTaskQC.cxx:711 AliForwardFlowTaskQC.cxx:712 AliForwardFlowTaskQC.cxx:713 AliForwardFlowTaskQC.cxx:714 AliForwardFlowTaskQC.cxx:715 AliForwardFlowTaskQC.cxx:716 AliForwardFlowTaskQC.cxx:717 AliForwardFlowTaskQC.cxx:718 AliForwardFlowTaskQC.cxx:719 AliForwardFlowTaskQC.cxx:720 AliForwardFlowTaskQC.cxx:721 AliForwardFlowTaskQC.cxx:722 AliForwardFlowTaskQC.cxx:723 AliForwardFlowTaskQC.cxx:724 AliForwardFlowTaskQC.cxx:725 AliForwardFlowTaskQC.cxx:726 AliForwardFlowTaskQC.cxx:727 AliForwardFlowTaskQC.cxx:728 AliForwardFlowTaskQC.cxx:729 AliForwardFlowTaskQC.cxx:730 AliForwardFlowTaskQC.cxx:731 AliForwardFlowTaskQC.cxx:732 AliForwardFlowTaskQC.cxx:733 AliForwardFlowTaskQC.cxx:734 AliForwardFlowTaskQC.cxx:735 AliForwardFlowTaskQC.cxx:736 AliForwardFlowTaskQC.cxx:737 AliForwardFlowTaskQC.cxx:738 AliForwardFlowTaskQC.cxx:739 AliForwardFlowTaskQC.cxx:740 AliForwardFlowTaskQC.cxx:741 AliForwardFlowTaskQC.cxx:742 AliForwardFlowTaskQC.cxx:743 AliForwardFlowTaskQC.cxx:744 AliForwardFlowTaskQC.cxx:745 AliForwardFlowTaskQC.cxx:746 AliForwardFlowTaskQC.cxx:747 AliForwardFlowTaskQC.cxx:748 AliForwardFlowTaskQC.cxx:749 AliForwardFlowTaskQC.cxx:750 AliForwardFlowTaskQC.cxx:751 AliForwardFlowTaskQC.cxx:752 AliForwardFlowTaskQC.cxx:753 AliForwardFlowTaskQC.cxx:754 AliForwardFlowTaskQC.cxx:755 AliForwardFlowTaskQC.cxx:756 AliForwardFlowTaskQC.cxx:757 AliForwardFlowTaskQC.cxx:758 AliForwardFlowTaskQC.cxx:759 AliForwardFlowTaskQC.cxx:760 AliForwardFlowTaskQC.cxx:761 AliForwardFlowTaskQC.cxx:762 AliForwardFlowTaskQC.cxx:763 AliForwardFlowTaskQC.cxx:764 AliForwardFlowTaskQC.cxx:765 AliForwardFlowTaskQC.cxx:766 AliForwardFlowTaskQC.cxx:767 AliForwardFlowTaskQC.cxx:768 AliForwardFlowTaskQC.cxx:769 AliForwardFlowTaskQC.cxx:770 AliForwardFlowTaskQC.cxx:771 AliForwardFlowTaskQC.cxx:772 AliForwardFlowTaskQC.cxx:773 AliForwardFlowTaskQC.cxx:774 AliForwardFlowTaskQC.cxx:775 AliForwardFlowTaskQC.cxx:776 AliForwardFlowTaskQC.cxx:777 AliForwardFlowTaskQC.cxx:778 AliForwardFlowTaskQC.cxx:779 AliForwardFlowTaskQC.cxx:780 AliForwardFlowTaskQC.cxx:781 AliForwardFlowTaskQC.cxx:782 AliForwardFlowTaskQC.cxx:783 AliForwardFlowTaskQC.cxx:784 AliForwardFlowTaskQC.cxx:785 AliForwardFlowTaskQC.cxx:786 AliForwardFlowTaskQC.cxx:787 AliForwardFlowTaskQC.cxx:788 AliForwardFlowTaskQC.cxx:789 AliForwardFlowTaskQC.cxx:790 AliForwardFlowTaskQC.cxx:791 AliForwardFlowTaskQC.cxx:792 AliForwardFlowTaskQC.cxx:793 AliForwardFlowTaskQC.cxx:794 AliForwardFlowTaskQC.cxx:795 AliForwardFlowTaskQC.cxx:796 AliForwardFlowTaskQC.cxx:797 AliForwardFlowTaskQC.cxx:798 AliForwardFlowTaskQC.cxx:799 AliForwardFlowTaskQC.cxx:800 AliForwardFlowTaskQC.cxx:801 AliForwardFlowTaskQC.cxx:802 AliForwardFlowTaskQC.cxx:803 AliForwardFlowTaskQC.cxx:804 AliForwardFlowTaskQC.cxx:805 AliForwardFlowTaskQC.cxx:806 AliForwardFlowTaskQC.cxx:807 AliForwardFlowTaskQC.cxx:808 AliForwardFlowTaskQC.cxx:809 AliForwardFlowTaskQC.cxx:810 AliForwardFlowTaskQC.cxx:811 AliForwardFlowTaskQC.cxx:812 AliForwardFlowTaskQC.cxx:813 AliForwardFlowTaskQC.cxx:814 AliForwardFlowTaskQC.cxx:815 AliForwardFlowTaskQC.cxx:816 AliForwardFlowTaskQC.cxx:817 AliForwardFlowTaskQC.cxx:818 AliForwardFlowTaskQC.cxx:819 AliForwardFlowTaskQC.cxx:820 AliForwardFlowTaskQC.cxx:821 AliForwardFlowTaskQC.cxx:822 AliForwardFlowTaskQC.cxx:823 AliForwardFlowTaskQC.cxx:824 AliForwardFlowTaskQC.cxx:825 AliForwardFlowTaskQC.cxx:826 AliForwardFlowTaskQC.cxx:827 AliForwardFlowTaskQC.cxx:828 AliForwardFlowTaskQC.cxx:829 AliForwardFlowTaskQC.cxx:830 AliForwardFlowTaskQC.cxx:831 AliForwardFlowTaskQC.cxx:832 AliForwardFlowTaskQC.cxx:833 AliForwardFlowTaskQC.cxx:834 AliForwardFlowTaskQC.cxx:835 AliForwardFlowTaskQC.cxx:836 AliForwardFlowTaskQC.cxx:837 AliForwardFlowTaskQC.cxx:838 AliForwardFlowTaskQC.cxx:839 AliForwardFlowTaskQC.cxx:840 AliForwardFlowTaskQC.cxx:841 AliForwardFlowTaskQC.cxx:842 AliForwardFlowTaskQC.cxx:843 AliForwardFlowTaskQC.cxx:844 AliForwardFlowTaskQC.cxx:845 AliForwardFlowTaskQC.cxx:846 AliForwardFlowTaskQC.cxx:847 AliForwardFlowTaskQC.cxx:848 AliForwardFlowTaskQC.cxx:849 AliForwardFlowTaskQC.cxx:850 AliForwardFlowTaskQC.cxx:851 AliForwardFlowTaskQC.cxx:852 AliForwardFlowTaskQC.cxx:853 AliForwardFlowTaskQC.cxx:854 AliForwardFlowTaskQC.cxx:855 AliForwardFlowTaskQC.cxx:856 AliForwardFlowTaskQC.cxx:857 AliForwardFlowTaskQC.cxx:858 AliForwardFlowTaskQC.cxx:859 AliForwardFlowTaskQC.cxx:860 AliForwardFlowTaskQC.cxx:861 AliForwardFlowTaskQC.cxx:862 AliForwardFlowTaskQC.cxx:863 AliForwardFlowTaskQC.cxx:864 AliForwardFlowTaskQC.cxx:865 AliForwardFlowTaskQC.cxx:866 AliForwardFlowTaskQC.cxx:867 AliForwardFlowTaskQC.cxx:868 AliForwardFlowTaskQC.cxx:869 AliForwardFlowTaskQC.cxx:870 AliForwardFlowTaskQC.cxx:871 AliForwardFlowTaskQC.cxx:872 AliForwardFlowTaskQC.cxx:873 AliForwardFlowTaskQC.cxx:874 AliForwardFlowTaskQC.cxx:875 AliForwardFlowTaskQC.cxx:876 AliForwardFlowTaskQC.cxx:877 AliForwardFlowTaskQC.cxx:878 AliForwardFlowTaskQC.cxx:879 AliForwardFlowTaskQC.cxx:880 AliForwardFlowTaskQC.cxx:881 AliForwardFlowTaskQC.cxx:882 AliForwardFlowTaskQC.cxx:883 AliForwardFlowTaskQC.cxx:884 AliForwardFlowTaskQC.cxx:885 AliForwardFlowTaskQC.cxx:886 AliForwardFlowTaskQC.cxx:887 AliForwardFlowTaskQC.cxx:888 AliForwardFlowTaskQC.cxx:889 AliForwardFlowTaskQC.cxx:890 AliForwardFlowTaskQC.cxx:891 AliForwardFlowTaskQC.cxx:892 AliForwardFlowTaskQC.cxx:893 AliForwardFlowTaskQC.cxx:894 AliForwardFlowTaskQC.cxx:895 AliForwardFlowTaskQC.cxx:896 AliForwardFlowTaskQC.cxx:897 AliForwardFlowTaskQC.cxx:898 AliForwardFlowTaskQC.cxx:899 AliForwardFlowTaskQC.cxx:900 AliForwardFlowTaskQC.cxx:901 AliForwardFlowTaskQC.cxx:902 AliForwardFlowTaskQC.cxx:903 AliForwardFlowTaskQC.cxx:904 AliForwardFlowTaskQC.cxx:905 AliForwardFlowTaskQC.cxx:906 AliForwardFlowTaskQC.cxx:907 AliForwardFlowTaskQC.cxx:908 AliForwardFlowTaskQC.cxx:909 AliForwardFlowTaskQC.cxx:910 AliForwardFlowTaskQC.cxx:911 AliForwardFlowTaskQC.cxx:912 AliForwardFlowTaskQC.cxx:913 AliForwardFlowTaskQC.cxx:914 AliForwardFlowTaskQC.cxx:915 AliForwardFlowTaskQC.cxx:916 AliForwardFlowTaskQC.cxx:917 AliForwardFlowTaskQC.cxx:918 AliForwardFlowTaskQC.cxx:919 AliForwardFlowTaskQC.cxx:920 AliForwardFlowTaskQC.cxx:921 AliForwardFlowTaskQC.cxx:922 AliForwardFlowTaskQC.cxx:923 AliForwardFlowTaskQC.cxx:924 AliForwardFlowTaskQC.cxx:925 AliForwardFlowTaskQC.cxx:926 AliForwardFlowTaskQC.cxx:927 AliForwardFlowTaskQC.cxx:928 AliForwardFlowTaskQC.cxx:929 AliForwardFlowTaskQC.cxx:930 AliForwardFlowTaskQC.cxx:931 AliForwardFlowTaskQC.cxx:932 AliForwardFlowTaskQC.cxx:933 AliForwardFlowTaskQC.cxx:934 AliForwardFlowTaskQC.cxx:935 AliForwardFlowTaskQC.cxx:936 AliForwardFlowTaskQC.cxx:937 AliForwardFlowTaskQC.cxx:938 AliForwardFlowTaskQC.cxx:939 AliForwardFlowTaskQC.cxx:940 AliForwardFlowTaskQC.cxx:941 AliForwardFlowTaskQC.cxx:942 AliForwardFlowTaskQC.cxx:943 AliForwardFlowTaskQC.cxx:944 AliForwardFlowTaskQC.cxx:945 AliForwardFlowTaskQC.cxx:946 AliForwardFlowTaskQC.cxx:947 AliForwardFlowTaskQC.cxx:948 AliForwardFlowTaskQC.cxx:949 AliForwardFlowTaskQC.cxx:950 AliForwardFlowTaskQC.cxx:951 AliForwardFlowTaskQC.cxx:952 AliForwardFlowTaskQC.cxx:953 AliForwardFlowTaskQC.cxx:954 AliForwardFlowTaskQC.cxx:955 AliForwardFlowTaskQC.cxx:956 AliForwardFlowTaskQC.cxx:957 AliForwardFlowTaskQC.cxx:958 AliForwardFlowTaskQC.cxx:959 AliForwardFlowTaskQC.cxx:960 AliForwardFlowTaskQC.cxx:961 AliForwardFlowTaskQC.cxx:962 AliForwardFlowTaskQC.cxx:963 AliForwardFlowTaskQC.cxx:964 AliForwardFlowTaskQC.cxx:965 AliForwardFlowTaskQC.cxx:966 AliForwardFlowTaskQC.cxx:967 AliForwardFlowTaskQC.cxx:968 AliForwardFlowTaskQC.cxx:969 AliForwardFlowTaskQC.cxx:970 AliForwardFlowTaskQC.cxx:971 AliForwardFlowTaskQC.cxx:972 AliForwardFlowTaskQC.cxx:973 AliForwardFlowTaskQC.cxx:974 AliForwardFlowTaskQC.cxx:975 AliForwardFlowTaskQC.cxx:976 AliForwardFlowTaskQC.cxx:977 AliForwardFlowTaskQC.cxx:978 AliForwardFlowTaskQC.cxx:979 AliForwardFlowTaskQC.cxx:980 AliForwardFlowTaskQC.cxx:981 AliForwardFlowTaskQC.cxx:982 AliForwardFlowTaskQC.cxx:983 AliForwardFlowTaskQC.cxx:984 AliForwardFlowTaskQC.cxx:985 AliForwardFlowTaskQC.cxx:986 AliForwardFlowTaskQC.cxx:987 AliForwardFlowTaskQC.cxx:988 AliForwardFlowTaskQC.cxx:989 AliForwardFlowTaskQC.cxx:990 AliForwardFlowTaskQC.cxx:991 AliForwardFlowTaskQC.cxx:992 AliForwardFlowTaskQC.cxx:993 AliForwardFlowTaskQC.cxx:994 AliForwardFlowTaskQC.cxx:995 AliForwardFlowTaskQC.cxx:996 AliForwardFlowTaskQC.cxx:997 AliForwardFlowTaskQC.cxx:998 AliForwardFlowTaskQC.cxx:999 AliForwardFlowTaskQC.cxx:1000 AliForwardFlowTaskQC.cxx:1001 AliForwardFlowTaskQC.cxx:1002 AliForwardFlowTaskQC.cxx:1003 AliForwardFlowTaskQC.cxx:1004 AliForwardFlowTaskQC.cxx:1005 AliForwardFlowTaskQC.cxx:1006 AliForwardFlowTaskQC.cxx:1007 AliForwardFlowTaskQC.cxx:1008 AliForwardFlowTaskQC.cxx:1009 AliForwardFlowTaskQC.cxx:1010 AliForwardFlowTaskQC.cxx:1011 AliForwardFlowTaskQC.cxx:1012 AliForwardFlowTaskQC.cxx:1013 AliForwardFlowTaskQC.cxx:1014 AliForwardFlowTaskQC.cxx:1015 AliForwardFlowTaskQC.cxx:1016 AliForwardFlowTaskQC.cxx:1017 AliForwardFlowTaskQC.cxx:1018 AliForwardFlowTaskQC.cxx:1019 AliForwardFlowTaskQC.cxx:1020 AliForwardFlowTaskQC.cxx:1021 AliForwardFlowTaskQC.cxx:1022 AliForwardFlowTaskQC.cxx:1023 AliForwardFlowTaskQC.cxx:1024 AliForwardFlowTaskQC.cxx:1025 AliForwardFlowTaskQC.cxx:1026 AliForwardFlowTaskQC.cxx:1027 AliForwardFlowTaskQC.cxx:1028 AliForwardFlowTaskQC.cxx:1029 AliForwardFlowTaskQC.cxx:1030 AliForwardFlowTaskQC.cxx:1031 AliForwardFlowTaskQC.cxx:1032 AliForwardFlowTaskQC.cxx:1033 AliForwardFlowTaskQC.cxx:1034 AliForwardFlowTaskQC.cxx:1035 AliForwardFlowTaskQC.cxx:1036 AliForwardFlowTaskQC.cxx:1037 AliForwardFlowTaskQC.cxx:1038 AliForwardFlowTaskQC.cxx:1039 AliForwardFlowTaskQC.cxx:1040 AliForwardFlowTaskQC.cxx:1041 AliForwardFlowTaskQC.cxx:1042 AliForwardFlowTaskQC.cxx:1043 AliForwardFlowTaskQC.cxx:1044 AliForwardFlowTaskQC.cxx:1045 AliForwardFlowTaskQC.cxx:1046 AliForwardFlowTaskQC.cxx:1047 AliForwardFlowTaskQC.cxx:1048 AliForwardFlowTaskQC.cxx:1049 AliForwardFlowTaskQC.cxx:1050 AliForwardFlowTaskQC.cxx:1051 AliForwardFlowTaskQC.cxx:1052 AliForwardFlowTaskQC.cxx:1053 AliForwardFlowTaskQC.cxx:1054 AliForwardFlowTaskQC.cxx:1055 AliForwardFlowTaskQC.cxx:1056 AliForwardFlowTaskQC.cxx:1057 AliForwardFlowTaskQC.cxx:1058 AliForwardFlowTaskQC.cxx:1059 AliForwardFlowTaskQC.cxx:1060 AliForwardFlowTaskQC.cxx:1061 AliForwardFlowTaskQC.cxx:1062 AliForwardFlowTaskQC.cxx:1063 AliForwardFlowTaskQC.cxx:1064 AliForwardFlowTaskQC.cxx:1065 AliForwardFlowTaskQC.cxx:1066 AliForwardFlowTaskQC.cxx:1067 AliForwardFlowTaskQC.cxx:1068 AliForwardFlowTaskQC.cxx:1069 AliForwardFlowTaskQC.cxx:1070 AliForwardFlowTaskQC.cxx:1071 AliForwardFlowTaskQC.cxx:1072 AliForwardFlowTaskQC.cxx:1073 AliForwardFlowTaskQC.cxx:1074 AliForwardFlowTaskQC.cxx:1075 AliForwardFlowTaskQC.cxx:1076 AliForwardFlowTaskQC.cxx:1077 AliForwardFlowTaskQC.cxx:1078 AliForwardFlowTaskQC.cxx:1079 AliForwardFlowTaskQC.cxx:1080 AliForwardFlowTaskQC.cxx:1081 AliForwardFlowTaskQC.cxx:1082 AliForwardFlowTaskQC.cxx:1083 AliForwardFlowTaskQC.cxx:1084 AliForwardFlowTaskQC.cxx:1085 AliForwardFlowTaskQC.cxx:1086 AliForwardFlowTaskQC.cxx:1087 AliForwardFlowTaskQC.cxx:1088 AliForwardFlowTaskQC.cxx:1089 AliForwardFlowTaskQC.cxx:1090 AliForwardFlowTaskQC.cxx:1091 AliForwardFlowTaskQC.cxx:1092 AliForwardFlowTaskQC.cxx:1093 AliForwardFlowTaskQC.cxx:1094 AliForwardFlowTaskQC.cxx:1095 AliForwardFlowTaskQC.cxx:1096 AliForwardFlowTaskQC.cxx:1097 AliForwardFlowTaskQC.cxx:1098 AliForwardFlowTaskQC.cxx:1099 AliForwardFlowTaskQC.cxx:1100 AliForwardFlowTaskQC.cxx:1101 AliForwardFlowTaskQC.cxx:1102 AliForwardFlowTaskQC.cxx:1103 AliForwardFlowTaskQC.cxx:1104 AliForwardFlowTaskQC.cxx:1105 AliForwardFlowTaskQC.cxx:1106 AliForwardFlowTaskQC.cxx:1107 AliForwardFlowTaskQC.cxx:1108 AliForwardFlowTaskQC.cxx:1109 AliForwardFlowTaskQC.cxx:1110 AliForwardFlowTaskQC.cxx:1111 AliForwardFlowTaskQC.cxx:1112 AliForwardFlowTaskQC.cxx:1113 AliForwardFlowTaskQC.cxx:1114 AliForwardFlowTaskQC.cxx:1115 AliForwardFlowTaskQC.cxx:1116 AliForwardFlowTaskQC.cxx:1117 AliForwardFlowTaskQC.cxx:1118 AliForwardFlowTaskQC.cxx:1119 AliForwardFlowTaskQC.cxx:1120 AliForwardFlowTaskQC.cxx:1121 AliForwardFlowTaskQC.cxx:1122 AliForwardFlowTaskQC.cxx:1123 AliForwardFlowTaskQC.cxx:1124 AliForwardFlowTaskQC.cxx:1125 AliForwardFlowTaskQC.cxx:1126 AliForwardFlowTaskQC.cxx:1127 AliForwardFlowTaskQC.cxx:1128 AliForwardFlowTaskQC.cxx:1129 AliForwardFlowTaskQC.cxx:1130 AliForwardFlowTaskQC.cxx:1131 AliForwardFlowTaskQC.cxx:1132 AliForwardFlowTaskQC.cxx:1133 AliForwardFlowTaskQC.cxx:1134 AliForwardFlowTaskQC.cxx:1135 AliForwardFlowTaskQC.cxx:1136 AliForwardFlowTaskQC.cxx:1137 AliForwardFlowTaskQC.cxx:1138 AliForwardFlowTaskQC.cxx:1139 AliForwardFlowTaskQC.cxx:1140 AliForwardFlowTaskQC.cxx:1141 AliForwardFlowTaskQC.cxx:1142 AliForwardFlowTaskQC.cxx:1143 AliForwardFlowTaskQC.cxx:1144 AliForwardFlowTaskQC.cxx:1145 AliForwardFlowTaskQC.cxx:1146 AliForwardFlowTaskQC.cxx:1147 AliForwardFlowTaskQC.cxx:1148 AliForwardFlowTaskQC.cxx:1149 AliForwardFlowTaskQC.cxx:1150 AliForwardFlowTaskQC.cxx:1151 AliForwardFlowTaskQC.cxx:1152 AliForwardFlowTaskQC.cxx:1153 AliForwardFlowTaskQC.cxx:1154 AliForwardFlowTaskQC.cxx:1155 AliForwardFlowTaskQC.cxx:1156 AliForwardFlowTaskQC.cxx:1157 AliForwardFlowTaskQC.cxx:1158 AliForwardFlowTaskQC.cxx:1159 AliForwardFlowTaskQC.cxx:1160 AliForwardFlowTaskQC.cxx:1161 AliForwardFlowTaskQC.cxx:1162 AliForwardFlowTaskQC.cxx:1163 AliForwardFlowTaskQC.cxx:1164 AliForwardFlowTaskQC.cxx:1165 AliForwardFlowTaskQC.cxx:1166 AliForwardFlowTaskQC.cxx:1167 AliForwardFlowTaskQC.cxx:1168 AliForwardFlowTaskQC.cxx:1169 AliForwardFlowTaskQC.cxx:1170 AliForwardFlowTaskQC.cxx:1171 AliForwardFlowTaskQC.cxx:1172 AliForwardFlowTaskQC.cxx:1173 AliForwardFlowTaskQC.cxx:1174 AliForwardFlowTaskQC.cxx:1175 AliForwardFlowTaskQC.cxx:1176 AliForwardFlowTaskQC.cxx:1177 AliForwardFlowTaskQC.cxx:1178 AliForwardFlowTaskQC.cxx:1179 AliForwardFlowTaskQC.cxx:1180 AliForwardFlowTaskQC.cxx:1181 AliForwardFlowTaskQC.cxx:1182 AliForwardFlowTaskQC.cxx:1183 AliForwardFlowTaskQC.cxx:1184 AliForwardFlowTaskQC.cxx:1185 AliForwardFlowTaskQC.cxx:1186 AliForwardFlowTaskQC.cxx:1187 AliForwardFlowTaskQC.cxx:1188 AliForwardFlowTaskQC.cxx:1189 AliForwardFlowTaskQC.cxx:1190 AliForwardFlowTaskQC.cxx:1191 AliForwardFlowTaskQC.cxx:1192 AliForwardFlowTaskQC.cxx:1193 AliForwardFlowTaskQC.cxx:1194 AliForwardFlowTaskQC.cxx:1195 AliForwardFlowTaskQC.cxx:1196 AliForwardFlowTaskQC.cxx:1197 AliForwardFlowTaskQC.cxx:1198 AliForwardFlowTaskQC.cxx:1199 AliForwardFlowTaskQC.cxx:1200 AliForwardFlowTaskQC.cxx:1201 AliForwardFlowTaskQC.cxx:1202 AliForwardFlowTaskQC.cxx:1203 AliForwardFlowTaskQC.cxx:1204 AliForwardFlowTaskQC.cxx:1205 AliForwardFlowTaskQC.cxx:1206 AliForwardFlowTaskQC.cxx:1207 AliForwardFlowTaskQC.cxx:1208 AliForwardFlowTaskQC.cxx:1209 AliForwardFlowTaskQC.cxx:1210 AliForwardFlowTaskQC.cxx:1211 AliForwardFlowTaskQC.cxx:1212 AliForwardFlowTaskQC.cxx:1213 AliForwardFlowTaskQC.cxx:1214 AliForwardFlowTaskQC.cxx:1215 AliForwardFlowTaskQC.cxx:1216 AliForwardFlowTaskQC.cxx:1217 AliForwardFlowTaskQC.cxx:1218 AliForwardFlowTaskQC.cxx:1219 AliForwardFlowTaskQC.cxx:1220 AliForwardFlowTaskQC.cxx:1221 AliForwardFlowTaskQC.cxx:1222 AliForwardFlowTaskQC.cxx:1223 AliForwardFlowTaskQC.cxx:1224 AliForwardFlowTaskQC.cxx:1225 AliForwardFlowTaskQC.cxx:1226 AliForwardFlowTaskQC.cxx:1227 AliForwardFlowTaskQC.cxx:1228 AliForwardFlowTaskQC.cxx:1229 AliForwardFlowTaskQC.cxx:1230 AliForwardFlowTaskQC.cxx:1231 AliForwardFlowTaskQC.cxx:1232 AliForwardFlowTaskQC.cxx:1233 AliForwardFlowTaskQC.cxx:1234 AliForwardFlowTaskQC.cxx:1235 AliForwardFlowTaskQC.cxx:1236 AliForwardFlowTaskQC.cxx:1237 AliForwardFlowTaskQC.cxx:1238 AliForwardFlowTaskQC.cxx:1239 AliForwardFlowTaskQC.cxx:1240 AliForwardFlowTaskQC.cxx:1241 AliForwardFlowTaskQC.cxx:1242 AliForwardFlowTaskQC.cxx:1243 AliForwardFlowTaskQC.cxx:1244 AliForwardFlowTaskQC.cxx:1245 AliForwardFlowTaskQC.cxx:1246 AliForwardFlowTaskQC.cxx:1247 AliForwardFlowTaskQC.cxx:1248 AliForwardFlowTaskQC.cxx:1249 AliForwardFlowTaskQC.cxx:1250 AliForwardFlowTaskQC.cxx:1251 AliForwardFlowTaskQC.cxx:1252 AliForwardFlowTaskQC.cxx:1253 AliForwardFlowTaskQC.cxx:1254 AliForwardFlowTaskQC.cxx:1255 AliForwardFlowTaskQC.cxx:1256 AliForwardFlowTaskQC.cxx:1257 AliForwardFlowTaskQC.cxx:1258 AliForwardFlowTaskQC.cxx:1259 AliForwardFlowTaskQC.cxx:1260 AliForwardFlowTaskQC.cxx:1261 AliForwardFlowTaskQC.cxx:1262 AliForwardFlowTaskQC.cxx:1263 AliForwardFlowTaskQC.cxx:1264 AliForwardFlowTaskQC.cxx:1265 AliForwardFlowTaskQC.cxx:1266 AliForwardFlowTaskQC.cxx:1267 AliForwardFlowTaskQC.cxx:1268 AliForwardFlowTaskQC.cxx:1269 AliForwardFlowTaskQC.cxx:1270 AliForwardFlowTaskQC.cxx:1271 AliForwardFlowTaskQC.cxx:1272 AliForwardFlowTaskQC.cxx:1273 AliForwardFlowTaskQC.cxx:1274 AliForwardFlowTaskQC.cxx:1275 AliForwardFlowTaskQC.cxx:1276 AliForwardFlowTaskQC.cxx:1277 AliForwardFlowTaskQC.cxx:1278 AliForwardFlowTaskQC.cxx:1279 AliForwardFlowTaskQC.cxx:1280 AliForwardFlowTaskQC.cxx:1281 AliForwardFlowTaskQC.cxx:1282 AliForwardFlowTaskQC.cxx:1283 AliForwardFlowTaskQC.cxx:1284 AliForwardFlowTaskQC.cxx:1285 AliForwardFlowTaskQC.cxx:1286 AliForwardFlowTaskQC.cxx:1287 AliForwardFlowTaskQC.cxx:1288 AliForwardFlowTaskQC.cxx:1289 AliForwardFlowTaskQC.cxx:1290 AliForwardFlowTaskQC.cxx:1291 AliForwardFlowTaskQC.cxx:1292 AliForwardFlowTaskQC.cxx:1293 AliForwardFlowTaskQC.cxx:1294 AliForwardFlowTaskQC.cxx:1295 AliForwardFlowTaskQC.cxx:1296 AliForwardFlowTaskQC.cxx:1297 AliForwardFlowTaskQC.cxx:1298 AliForwardFlowTaskQC.cxx:1299 AliForwardFlowTaskQC.cxx:1300 AliForwardFlowTaskQC.cxx:1301 AliForwardFlowTaskQC.cxx:1302 AliForwardFlowTaskQC.cxx:1303 AliForwardFlowTaskQC.cxx:1304 AliForwardFlowTaskQC.cxx:1305 AliForwardFlowTaskQC.cxx:1306 AliForwardFlowTaskQC.cxx:1307 AliForwardFlowTaskQC.cxx:1308 AliForwardFlowTaskQC.cxx:1309 AliForwardFlowTaskQC.cxx:1310 AliForwardFlowTaskQC.cxx:1311 AliForwardFlowTaskQC.cxx:1312 AliForwardFlowTaskQC.cxx:1313 AliForwardFlowTaskQC.cxx:1314 AliForwardFlowTaskQC.cxx:1315 AliForwardFlowTaskQC.cxx:1316 AliForwardFlowTaskQC.cxx:1317 AliForwardFlowTaskQC.cxx:1318 AliForwardFlowTaskQC.cxx:1319 AliForwardFlowTaskQC.cxx:1320 AliForwardFlowTaskQC.cxx:1321 AliForwardFlowTaskQC.cxx:1322 AliForwardFlowTaskQC.cxx:1323 AliForwardFlowTaskQC.cxx:1324 AliForwardFlowTaskQC.cxx:1325 AliForwardFlowTaskQC.cxx:1326 AliForwardFlowTaskQC.cxx:1327 AliForwardFlowTaskQC.cxx:1328 AliForwardFlowTaskQC.cxx:1329 AliForwardFlowTaskQC.cxx:1330 AliForwardFlowTaskQC.cxx:1331 AliForwardFlowTaskQC.cxx:1332 AliForwardFlowTaskQC.cxx:1333 AliForwardFlowTaskQC.cxx:1334 AliForwardFlowTaskQC.cxx:1335 AliForwardFlowTaskQC.cxx:1336 AliForwardFlowTaskQC.cxx:1337 AliForwardFlowTaskQC.cxx:1338 AliForwardFlowTaskQC.cxx:1339 AliForwardFlowTaskQC.cxx:1340 AliForwardFlowTaskQC.cxx:1341 AliForwardFlowTaskQC.cxx:1342 AliForwardFlowTaskQC.cxx:1343 AliForwardFlowTaskQC.cxx:1344 AliForwardFlowTaskQC.cxx:1345 AliForwardFlowTaskQC.cxx:1346 AliForwardFlowTaskQC.cxx:1347 AliForwardFlowTaskQC.cxx:1348 AliForwardFlowTaskQC.cxx:1349 AliForwardFlowTaskQC.cxx:1350 AliForwardFlowTaskQC.cxx:1351 AliForwardFlowTaskQC.cxx:1352 AliForwardFlowTaskQC.cxx:1353 AliForwardFlowTaskQC.cxx:1354 AliForwardFlowTaskQC.cxx:1355 AliForwardFlowTaskQC.cxx:1356 AliForwardFlowTaskQC.cxx:1357 AliForwardFlowTaskQC.cxx:1358 AliForwardFlowTaskQC.cxx:1359 AliForwardFlowTaskQC.cxx:1360 AliForwardFlowTaskQC.cxx:1361 AliForwardFlowTaskQC.cxx:1362 AliForwardFlowTaskQC.cxx:1363 AliForwardFlowTaskQC.cxx:1364 AliForwardFlowTaskQC.cxx:1365 AliForwardFlowTaskQC.cxx:1366 AliForwardFlowTaskQC.cxx:1367 AliForwardFlowTaskQC.cxx:1368 AliForwardFlowTaskQC.cxx:1369 AliForwardFlowTaskQC.cxx:1370 AliForwardFlowTaskQC.cxx:1371 AliForwardFlowTaskQC.cxx:1372 AliForwardFlowTaskQC.cxx:1373 AliForwardFlowTaskQC.cxx:1374 AliForwardFlowTaskQC.cxx:1375 AliForwardFlowTaskQC.cxx:1376 AliForwardFlowTaskQC.cxx:1377 AliForwardFlowTaskQC.cxx:1378 AliForwardFlowTaskQC.cxx:1379 AliForwardFlowTaskQC.cxx:1380 AliForwardFlowTaskQC.cxx:1381 AliForwardFlowTaskQC.cxx:1382 AliForwardFlowTaskQC.cxx:1383 AliForwardFlowTaskQC.cxx:1384 AliForwardFlowTaskQC.cxx:1385 AliForwardFlowTaskQC.cxx:1386 AliForwardFlowTaskQC.cxx:1387 AliForwardFlowTaskQC.cxx:1388 AliForwardFlowTaskQC.cxx:1389 AliForwardFlowTaskQC.cxx:1390 AliForwardFlowTaskQC.cxx:1391 AliForwardFlowTaskQC.cxx:1392 AliForwardFlowTaskQC.cxx:1393 AliForwardFlowTaskQC.cxx:1394 AliForwardFlowTaskQC.cxx:1395 AliForwardFlowTaskQC.cxx:1396 AliForwardFlowTaskQC.cxx:1397 AliForwardFlowTaskQC.cxx:1398 AliForwardFlowTaskQC.cxx:1399 AliForwardFlowTaskQC.cxx:1400 AliForwardFlowTaskQC.cxx:1401 AliForwardFlowTaskQC.cxx:1402 AliForwardFlowTaskQC.cxx:1403 AliForwardFlowTaskQC.cxx:1404 AliForwardFlowTaskQC.cxx:1405 AliForwardFlowTaskQC.cxx:1406 AliForwardFlowTaskQC.cxx:1407 AliForwardFlowTaskQC.cxx:1408 AliForwardFlowTaskQC.cxx:1409 AliForwardFlowTaskQC.cxx:1410 AliForwardFlowTaskQC.cxx:1411 AliForwardFlowTaskQC.cxx:1412 AliForwardFlowTaskQC.cxx:1413 AliForwardFlowTaskQC.cxx:1414 AliForwardFlowTaskQC.cxx:1415 AliForwardFlowTaskQC.cxx:1416 AliForwardFlowTaskQC.cxx:1417 AliForwardFlowTaskQC.cxx:1418 AliForwardFlowTaskQC.cxx:1419 AliForwardFlowTaskQC.cxx:1420 AliForwardFlowTaskQC.cxx:1421 AliForwardFlowTaskQC.cxx:1422 AliForwardFlowTaskQC.cxx:1423 AliForwardFlowTaskQC.cxx:1424 AliForwardFlowTaskQC.cxx:1425 AliForwardFlowTaskQC.cxx:1426 AliForwardFlowTaskQC.cxx:1427 AliForwardFlowTaskQC.cxx:1428 AliForwardFlowTaskQC.cxx:1429 AliForwardFlowTaskQC.cxx:1430 AliForwardFlowTaskQC.cxx:1431 AliForwardFlowTaskQC.cxx:1432 AliForwardFlowTaskQC.cxx:1433 AliForwardFlowTaskQC.cxx:1434 AliForwardFlowTaskQC.cxx:1435 AliForwardFlowTaskQC.cxx:1436 AliForwardFlowTaskQC.cxx:1437 AliForwardFlowTaskQC.cxx:1438 AliForwardFlowTaskQC.cxx:1439 AliForwardFlowTaskQC.cxx:1440 AliForwardFlowTaskQC.cxx:1441 AliForwardFlowTaskQC.cxx:1442 AliForwardFlowTaskQC.cxx:1443 AliForwardFlowTaskQC.cxx:1444 AliForwardFlowTaskQC.cxx:1445 AliForwardFlowTaskQC.cxx:1446 AliForwardFlowTaskQC.cxx:1447 AliForwardFlowTaskQC.cxx:1448 AliForwardFlowTaskQC.cxx:1449 AliForwardFlowTaskQC.cxx:1450 AliForwardFlowTaskQC.cxx:1451 AliForwardFlowTaskQC.cxx:1452 AliForwardFlowTaskQC.cxx:1453 AliForwardFlowTaskQC.cxx:1454 AliForwardFlowTaskQC.cxx:1455 AliForwardFlowTaskQC.cxx:1456 AliForwardFlowTaskQC.cxx:1457 AliForwardFlowTaskQC.cxx:1458 AliForwardFlowTaskQC.cxx:1459 AliForwardFlowTaskQC.cxx:1460 AliForwardFlowTaskQC.cxx:1461 AliForwardFlowTaskQC.cxx:1462 AliForwardFlowTaskQC.cxx:1463 AliForwardFlowTaskQC.cxx:1464 AliForwardFlowTaskQC.cxx:1465 AliForwardFlowTaskQC.cxx:1466 AliForwardFlowTaskQC.cxx:1467 AliForwardFlowTaskQC.cxx:1468 AliForwardFlowTaskQC.cxx:1469 AliForwardFlowTaskQC.cxx:1470 AliForwardFlowTaskQC.cxx:1471 AliForwardFlowTaskQC.cxx:1472 AliForwardFlowTaskQC.cxx:1473 AliForwardFlowTaskQC.cxx:1474 AliForwardFlowTaskQC.cxx:1475 AliForwardFlowTaskQC.cxx:1476 AliForwardFlowTaskQC.cxx:1477 AliForwardFlowTaskQC.cxx:1478 AliForwardFlowTaskQC.cxx:1479 AliForwardFlowTaskQC.cxx:1480 AliForwardFlowTaskQC.cxx:1481 AliForwardFlowTaskQC.cxx:1482 AliForwardFlowTaskQC.cxx:1483 AliForwardFlowTaskQC.cxx:1484 AliForwardFlowTaskQC.cxx:1485 AliForwardFlowTaskQC.cxx:1486 AliForwardFlowTaskQC.cxx:1487 AliForwardFlowTaskQC.cxx:1488 AliForwardFlowTaskQC.cxx:1489 AliForwardFlowTaskQC.cxx:1490 AliForwardFlowTaskQC.cxx:1491 AliForwardFlowTaskQC.cxx:1492 AliForwardFlowTaskQC.cxx:1493 AliForwardFlowTaskQC.cxx:1494 AliForwardFlowTaskQC.cxx:1495 AliForwardFlowTaskQC.cxx:1496 AliForwardFlowTaskQC.cxx:1497 AliForwardFlowTaskQC.cxx:1498 AliForwardFlowTaskQC.cxx:1499 AliForwardFlowTaskQC.cxx:1500 AliForwardFlowTaskQC.cxx:1501 AliForwardFlowTaskQC.cxx:1502 AliForwardFlowTaskQC.cxx:1503 AliForwardFlowTaskQC.cxx:1504 AliForwardFlowTaskQC.cxx:1505 AliForwardFlowTaskQC.cxx:1506 AliForwardFlowTaskQC.cxx:1507 AliForwardFlowTaskQC.cxx:1508 AliForwardFlowTaskQC.cxx:1509 AliForwardFlowTaskQC.cxx:1510 AliForwardFlowTaskQC.cxx:1511 AliForwardFlowTaskQC.cxx:1512 AliForwardFlowTaskQC.cxx:1513 AliForwardFlowTaskQC.cxx:1514 AliForwardFlowTaskQC.cxx:1515 AliForwardFlowTaskQC.cxx:1516 AliForwardFlowTaskQC.cxx:1517 AliForwardFlowTaskQC.cxx:1518 AliForwardFlowTaskQC.cxx:1519 AliForwardFlowTaskQC.cxx:1520 AliForwardFlowTaskQC.cxx:1521 AliForwardFlowTaskQC.cxx:1522 AliForwardFlowTaskQC.cxx:1523 AliForwardFlowTaskQC.cxx:1524 AliForwardFlowTaskQC.cxx:1525 AliForwardFlowTaskQC.cxx:1526 AliForwardFlowTaskQC.cxx:1527 AliForwardFlowTaskQC.cxx:1528 AliForwardFlowTaskQC.cxx:1529 AliForwardFlowTaskQC.cxx:1530 AliForwardFlowTaskQC.cxx:1531 AliForwardFlowTaskQC.cxx:1532 AliForwardFlowTaskQC.cxx:1533 AliForwardFlowTaskQC.cxx:1534 AliForwardFlowTaskQC.cxx:1535 AliForwardFlowTaskQC.cxx:1536 AliForwardFlowTaskQC.cxx:1537 AliForwardFlowTaskQC.cxx:1538 AliForwardFlowTaskQC.cxx:1539 AliForwardFlowTaskQC.cxx:1540 AliForwardFlowTaskQC.cxx:1541 AliForwardFlowTaskQC.cxx:1542 AliForwardFlowTaskQC.cxx:1543 AliForwardFlowTaskQC.cxx:1544 AliForwardFlowTaskQC.cxx:1545 AliForwardFlowTaskQC.cxx:1546 AliForwardFlowTaskQC.cxx:1547 AliForwardFlowTaskQC.cxx:1548 AliForwardFlowTaskQC.cxx:1549 AliForwardFlowTaskQC.cxx:1550 AliForwardFlowTaskQC.cxx:1551 AliForwardFlowTaskQC.cxx:1552 AliForwardFlowTaskQC.cxx:1553 AliForwardFlowTaskQC.cxx:1554 AliForwardFlowTaskQC.cxx:1555 AliForwardFlowTaskQC.cxx:1556 AliForwardFlowTaskQC.cxx:1557 AliForwardFlowTaskQC.cxx:1558 AliForwardFlowTaskQC.cxx:1559 AliForwardFlowTaskQC.cxx:1560 AliForwardFlowTaskQC.cxx:1561 AliForwardFlowTaskQC.cxx:1562 AliForwardFlowTaskQC.cxx:1563 AliForwardFlowTaskQC.cxx:1564 AliForwardFlowTaskQC.cxx:1565 AliForwardFlowTaskQC.cxx:1566 AliForwardFlowTaskQC.cxx:1567 AliForwardFlowTaskQC.cxx:1568 AliForwardFlowTaskQC.cxx:1569 AliForwardFlowTaskQC.cxx:1570 AliForwardFlowTaskQC.cxx:1571 AliForwardFlowTaskQC.cxx:1572 AliForwardFlowTaskQC.cxx:1573 AliForwardFlowTaskQC.cxx:1574 AliForwardFlowTaskQC.cxx:1575 AliForwardFlowTaskQC.cxx:1576 AliForwardFlowTaskQC.cxx:1577 AliForwardFlowTaskQC.cxx:1578 AliForwardFlowTaskQC.cxx:1579 AliForwardFlowTaskQC.cxx:1580 AliForwardFlowTaskQC.cxx:1581 AliForwardFlowTaskQC.cxx:1582 AliForwardFlowTaskQC.cxx:1583 AliForwardFlowTaskQC.cxx:1584 AliForwardFlowTaskQC.cxx:1585 AliForwardFlowTaskQC.cxx:1586 AliForwardFlowTaskQC.cxx:1587 AliForwardFlowTaskQC.cxx:1588 AliForwardFlowTaskQC.cxx:1589 AliForwardFlowTaskQC.cxx:1590 AliForwardFlowTaskQC.cxx:1591 AliForwardFlowTaskQC.cxx:1592 AliForwardFlowTaskQC.cxx:1593 AliForwardFlowTaskQC.cxx:1594 AliForwardFlowTaskQC.cxx:1595 AliForwardFlowTaskQC.cxx:1596 AliForwardFlowTaskQC.cxx:1597 AliForwardFlowTaskQC.cxx:1598 AliForwardFlowTaskQC.cxx:1599 AliForwardFlowTaskQC.cxx:1600 AliForwardFlowTaskQC.cxx:1601 AliForwardFlowTaskQC.cxx:1602 AliForwardFlowTaskQC.cxx:1603 AliForwardFlowTaskQC.cxx:1604 AliForwardFlowTaskQC.cxx:1605 AliForwardFlowTaskQC.cxx:1606 AliForwardFlowTaskQC.cxx:1607 AliForwardFlowTaskQC.cxx:1608 AliForwardFlowTaskQC.cxx:1609 AliForwardFlowTaskQC.cxx:1610 AliForwardFlowTaskQC.cxx:1611 AliForwardFlowTaskQC.cxx:1612 AliForwardFlowTaskQC.cxx:1613 AliForwardFlowTaskQC.cxx:1614 AliForwardFlowTaskQC.cxx:1615 AliForwardFlowTaskQC.cxx:1616 AliForwardFlowTaskQC.cxx:1617 AliForwardFlowTaskQC.cxx:1618 AliForwardFlowTaskQC.cxx:1619 AliForwardFlowTaskQC.cxx:1620 AliForwardFlowTaskQC.cxx:1621 AliForwardFlowTaskQC.cxx:1622 AliForwardFlowTaskQC.cxx:1623 AliForwardFlowTaskQC.cxx:1624 AliForwardFlowTaskQC.cxx:1625 AliForwardFlowTaskQC.cxx:1626 AliForwardFlowTaskQC.cxx:1627 AliForwardFlowTaskQC.cxx:1628 AliForwardFlowTaskQC.cxx:1629 AliForwardFlowTaskQC.cxx:1630 AliForwardFlowTaskQC.cxx:1631 AliForwardFlowTaskQC.cxx:1632 AliForwardFlowTaskQC.cxx:1633 AliForwardFlowTaskQC.cxx:1634 AliForwardFlowTaskQC.cxx:1635 AliForwardFlowTaskQC.cxx:1636 AliForwardFlowTaskQC.cxx:1637 AliForwardFlowTaskQC.cxx:1638 AliForwardFlowTaskQC.cxx:1639 AliForwardFlowTaskQC.cxx:1640 AliForwardFlowTaskQC.cxx:1641 AliForwardFlowTaskQC.cxx:1642 AliForwardFlowTaskQC.cxx:1643 AliForwardFlowTaskQC.cxx:1644 AliForwardFlowTaskQC.cxx:1645 AliForwardFlowTaskQC.cxx:1646 AliForwardFlowTaskQC.cxx:1647 AliForwardFlowTaskQC.cxx:1648 AliForwardFlowTaskQC.cxx:1649 AliForwardFlowTaskQC.cxx:1650 AliForwardFlowTaskQC.cxx:1651 AliForwardFlowTaskQC.cxx:1652 AliForwardFlowTaskQC.cxx:1653 AliForwardFlowTaskQC.cxx:1654 AliForwardFlowTaskQC.cxx:1655 AliForwardFlowTaskQC.cxx:1656 AliForwardFlowTaskQC.cxx:1657 AliForwardFlowTaskQC.cxx:1658 AliForwardFlowTaskQC.cxx:1659 AliForwardFlowTaskQC.cxx:1660 AliForwardFlowTaskQC.cxx:1661 AliForwardFlowTaskQC.cxx:1662 AliForwardFlowTaskQC.cxx:1663 AliForwardFlowTaskQC.cxx:1664 AliForwardFlowTaskQC.cxx:1665 AliForwardFlowTaskQC.cxx:1666 AliForwardFlowTaskQC.cxx:1667 AliForwardFlowTaskQC.cxx:1668 AliForwardFlowTaskQC.cxx:1669 AliForwardFlowTaskQC.cxx:1670 AliForwardFlowTaskQC.cxx:1671 AliForwardFlowTaskQC.cxx:1672 AliForwardFlowTaskQC.cxx:1673 AliForwardFlowTaskQC.cxx:1674 AliForwardFlowTaskQC.cxx:1675 AliForwardFlowTaskQC.cxx:1676 AliForwardFlowTaskQC.cxx:1677 AliForwardFlowTaskQC.cxx:1678 AliForwardFlowTaskQC.cxx:1679 AliForwardFlowTaskQC.cxx:1680 AliForwardFlowTaskQC.cxx:1681 AliForwardFlowTaskQC.cxx:1682 AliForwardFlowTaskQC.cxx:1683 AliForwardFlowTaskQC.cxx:1684 AliForwardFlowTaskQC.cxx:1685 AliForwardFlowTaskQC.cxx:1686 AliForwardFlowTaskQC.cxx:1687 AliForwardFlowTaskQC.cxx:1688 AliForwardFlowTaskQC.cxx:1689 AliForwardFlowTaskQC.cxx:1690 AliForwardFlowTaskQC.cxx:1691 AliForwardFlowTaskQC.cxx:1692 AliForwardFlowTaskQC.cxx:1693 AliForwardFlowTaskQC.cxx:1694 AliForwardFlowTaskQC.cxx:1695 AliForwardFlowTaskQC.cxx:1696 AliForwardFlowTaskQC.cxx:1697 AliForwardFlowTaskQC.cxx:1698 AliForwardFlowTaskQC.cxx:1699 AliForwardFlowTaskQC.cxx:1700 AliForwardFlowTaskQC.cxx:1701 AliForwardFlowTaskQC.cxx:1702 AliForwardFlowTaskQC.cxx:1703 AliForwardFlowTaskQC.cxx:1704 AliForwardFlowTaskQC.cxx:1705 AliForwardFlowTaskQC.cxx:1706 AliForwardFlowTaskQC.cxx:1707 AliForwardFlowTaskQC.cxx:1708 AliForwardFlowTaskQC.cxx:1709 AliForwardFlowTaskQC.cxx:1710 AliForwardFlowTaskQC.cxx:1711 AliForwardFlowTaskQC.cxx:1712 AliForwardFlowTaskQC.cxx:1713 AliForwardFlowTaskQC.cxx:1714 AliForwardFlowTaskQC.cxx:1715 AliForwardFlowTaskQC.cxx:1716 AliForwardFlowTaskQC.cxx:1717 AliForwardFlowTaskQC.cxx:1718 AliForwardFlowTaskQC.cxx:1719 AliForwardFlowTaskQC.cxx:1720 AliForwardFlowTaskQC.cxx:1721 AliForwardFlowTaskQC.cxx:1722 AliForwardFlowTaskQC.cxx:1723 AliForwardFlowTaskQC.cxx:1724 AliForwardFlowTaskQC.cxx:1725 AliForwardFlowTaskQC.cxx:1726 AliForwardFlowTaskQC.cxx:1727 AliForwardFlowTaskQC.cxx:1728 AliForwardFlowTaskQC.cxx:1729 AliForwardFlowTaskQC.cxx:1730 AliForwardFlowTaskQC.cxx:1731 AliForwardFlowTaskQC.cxx:1732 AliForwardFlowTaskQC.cxx:1733 AliForwardFlowTaskQC.cxx:1734 AliForwardFlowTaskQC.cxx:1735 AliForwardFlowTaskQC.cxx:1736 AliForwardFlowTaskQC.cxx:1737 AliForwardFlowTaskQC.cxx:1738 AliForwardFlowTaskQC.cxx:1739 AliForwardFlowTaskQC.cxx:1740 AliForwardFlowTaskQC.cxx:1741 AliForwardFlowTaskQC.cxx:1742 AliForwardFlowTaskQC.cxx:1743 AliForwardFlowTaskQC.cxx:1744 AliForwardFlowTaskQC.cxx:1745 AliForwardFlowTaskQC.cxx:1746 AliForwardFlowTaskQC.cxx:1747 AliForwardFlowTaskQC.cxx:1748 AliForwardFlowTaskQC.cxx:1749 AliForwardFlowTaskQC.cxx:1750 AliForwardFlowTaskQC.cxx:1751 AliForwardFlowTaskQC.cxx:1752 AliForwardFlowTaskQC.cxx:1753 AliForwardFlowTaskQC.cxx:1754 AliForwardFlowTaskQC.cxx:1755 AliForwardFlowTaskQC.cxx:1756 AliForwardFlowTaskQC.cxx:1757 AliForwardFlowTaskQC.cxx:1758 AliForwardFlowTaskQC.cxx:1759 AliForwardFlowTaskQC.cxx:1760 AliForwardFlowTaskQC.cxx:1761 AliForwardFlowTaskQC.cxx:1762 AliForwardFlowTaskQC.cxx:1763 AliForwardFlowTaskQC.cxx:1764 AliForwardFlowTaskQC.cxx:1765 AliForwardFlowTaskQC.cxx:1766 AliForwardFlowTaskQC.cxx:1767 AliForwardFlowTaskQC.cxx:1768 AliForwardFlowTaskQC.cxx:1769 AliForwardFlowTaskQC.cxx:1770 AliForwardFlowTaskQC.cxx:1771 AliForwardFlowTaskQC.cxx:1772 AliForwardFlowTaskQC.cxx:1773 AliForwardFlowTaskQC.cxx:1774 AliForwardFlowTaskQC.cxx:1775 AliForwardFlowTaskQC.cxx:1776 AliForwardFlowTaskQC.cxx:1777 AliForwardFlowTaskQC.cxx:1778 AliForwardFlowTaskQC.cxx:1779 AliForwardFlowTaskQC.cxx:1780 AliForwardFlowTaskQC.cxx:1781 AliForwardFlowTaskQC.cxx:1782 AliForwardFlowTaskQC.cxx:1783 AliForwardFlowTaskQC.cxx:1784 AliForwardFlowTaskQC.cxx:1785 AliForwardFlowTaskQC.cxx:1786 AliForwardFlowTaskQC.cxx:1787 AliForwardFlowTaskQC.cxx:1788 AliForwardFlowTaskQC.cxx:1789 AliForwardFlowTaskQC.cxx:1790 AliForwardFlowTaskQC.cxx:1791 AliForwardFlowTaskQC.cxx:1792 AliForwardFlowTaskQC.cxx:1793 AliForwardFlowTaskQC.cxx:1794 AliForwardFlowTaskQC.cxx:1795 AliForwardFlowTaskQC.cxx:1796 AliForwardFlowTaskQC.cxx:1797 AliForwardFlowTaskQC.cxx:1798 AliForwardFlowTaskQC.cxx:1799 AliForwardFlowTaskQC.cxx:1800 AliForwardFlowTaskQC.cxx:1801 AliForwardFlowTaskQC.cxx:1802 AliForwardFlowTaskQC.cxx:1803 AliForwardFlowTaskQC.cxx:1804 AliForwardFlowTaskQC.cxx:1805 AliForwardFlowTaskQC.cxx:1806 AliForwardFlowTaskQC.cxx:1807 AliForwardFlowTaskQC.cxx:1808 AliForwardFlowTaskQC.cxx:1809 AliForwardFlowTaskQC.cxx:1810 AliForwardFlowTaskQC.cxx:1811 AliForwardFlowTaskQC.cxx:1812 AliForwardFlowTaskQC.cxx:1813 AliForwardFlowTaskQC.cxx:1814 AliForwardFlowTaskQC.cxx:1815 AliForwardFlowTaskQC.cxx:1816 AliForwardFlowTaskQC.cxx:1817 AliForwardFlowTaskQC.cxx:1818 AliForwardFlowTaskQC.cxx:1819 AliForwardFlowTaskQC.cxx:1820 AliForwardFlowTaskQC.cxx:1821 AliForwardFlowTaskQC.cxx:1822 AliForwardFlowTaskQC.cxx:1823 AliForwardFlowTaskQC.cxx:1824 AliForwardFlowTaskQC.cxx:1825 AliForwardFlowTaskQC.cxx:1826 AliForwardFlowTaskQC.cxx:1827 AliForwardFlowTaskQC.cxx:1828 AliForwardFlowTaskQC.cxx:1829 AliForwardFlowTaskQC.cxx:1830 AliForwardFlowTaskQC.cxx:1831 AliForwardFlowTaskQC.cxx:1832 AliForwardFlowTaskQC.cxx:1833 AliForwardFlowTaskQC.cxx:1834 AliForwardFlowTaskQC.cxx:1835 AliForwardFlowTaskQC.cxx:1836 AliForwardFlowTaskQC.cxx:1837 AliForwardFlowTaskQC.cxx:1838 AliForwardFlowTaskQC.cxx:1839 AliForwardFlowTaskQC.cxx:1840 AliForwardFlowTaskQC.cxx:1841 AliForwardFlowTaskQC.cxx:1842 AliForwardFlowTaskQC.cxx:1843 AliForwardFlowTaskQC.cxx:1844 AliForwardFlowTaskQC.cxx:1845 AliForwardFlowTaskQC.cxx:1846 AliForwardFlowTaskQC.cxx:1847 AliForwardFlowTaskQC.cxx:1848 AliForwardFlowTaskQC.cxx:1849 AliForwardFlowTaskQC.cxx:1850 AliForwardFlowTaskQC.cxx:1851 AliForwardFlowTaskQC.cxx:1852 AliForwardFlowTaskQC.cxx:1853 AliForwardFlowTaskQC.cxx:1854 AliForwardFlowTaskQC.cxx:1855 AliForwardFlowTaskQC.cxx:1856 AliForwardFlowTaskQC.cxx:1857 AliForwardFlowTaskQC.cxx:1858 AliForwardFlowTaskQC.cxx:1859 AliForwardFlowTaskQC.cxx:1860 AliForwardFlowTaskQC.cxx:1861 AliForwardFlowTaskQC.cxx:1862 AliForwardFlowTaskQC.cxx:1863 AliForwardFlowTaskQC.cxx:1864 AliForwardFlowTaskQC.cxx:1865 AliForwardFlowTaskQC.cxx:1866 AliForwardFlowTaskQC.cxx:1867 AliForwardFlowTaskQC.cxx:1868 AliForwardFlowTaskQC.cxx:1869 AliForwardFlowTaskQC.cxx:1870 AliForwardFlowTaskQC.cxx:1871 AliForwardFlowTaskQC.cxx:1872 AliForwardFlowTaskQC.cxx:1873 AliForwardFlowTaskQC.cxx:1874 AliForwardFlowTaskQC.cxx:1875 AliForwardFlowTaskQC.cxx:1876 AliForwardFlowTaskQC.cxx:1877 AliForwardFlowTaskQC.cxx:1878 AliForwardFlowTaskQC.cxx:1879 AliForwardFlowTaskQC.cxx:1880 AliForwardFlowTaskQC.cxx:1881 AliForwardFlowTaskQC.cxx:1882 AliForwardFlowTaskQC.cxx:1883 AliForwardFlowTaskQC.cxx:1884 AliForwardFlowTaskQC.cxx:1885 AliForwardFlowTaskQC.cxx:1886 AliForwardFlowTaskQC.cxx:1887 AliForwardFlowTaskQC.cxx:1888 AliForwardFlowTaskQC.cxx:1889 AliForwardFlowTaskQC.cxx:1890 AliForwardFlowTaskQC.cxx:1891 AliForwardFlowTaskQC.cxx:1892 AliForwardFlowTaskQC.cxx:1893 AliForwardFlowTaskQC.cxx:1894 AliForwardFlowTaskQC.cxx:1895 AliForwardFlowTaskQC.cxx:1896 AliForwardFlowTaskQC.cxx:1897 AliForwardFlowTaskQC.cxx:1898 AliForwardFlowTaskQC.cxx:1899 AliForwardFlowTaskQC.cxx:1900 AliForwardFlowTaskQC.cxx:1901 AliForwardFlowTaskQC.cxx:1902 AliForwardFlowTaskQC.cxx:1903 AliForwardFlowTaskQC.cxx:1904 AliForwardFlowTaskQC.cxx:1905 AliForwardFlowTaskQC.cxx:1906 AliForwardFlowTaskQC.cxx:1907 AliForwardFlowTaskQC.cxx:1908 AliForwardFlowTaskQC.cxx:1909 AliForwardFlowTaskQC.cxx:1910 AliForwardFlowTaskQC.cxx:1911 AliForwardFlowTaskQC.cxx:1912 AliForwardFlowTaskQC.cxx:1913 AliForwardFlowTaskQC.cxx:1914 AliForwardFlowTaskQC.cxx:1915 AliForwardFlowTaskQC.cxx:1916 AliForwardFlowTaskQC.cxx:1917 AliForwardFlowTaskQC.cxx:1918 AliForwardFlowTaskQC.cxx:1919 AliForwardFlowTaskQC.cxx:1920 AliForwardFlowTaskQC.cxx:1921 AliForwardFlowTaskQC.cxx:1922 AliForwardFlowTaskQC.cxx:1923 AliForwardFlowTaskQC.cxx:1924 AliForwardFlowTaskQC.cxx:1925 AliForwardFlowTaskQC.cxx:1926 AliForwardFlowTaskQC.cxx:1927 AliForwardFlowTaskQC.cxx:1928 AliForwardFlowTaskQC.cxx:1929 AliForwardFlowTaskQC.cxx:1930 AliForwardFlowTaskQC.cxx:1931 AliForwardFlowTaskQC.cxx:1932 AliForwardFlowTaskQC.cxx:1933 AliForwardFlowTaskQC.cxx:1934 AliForwardFlowTaskQC.cxx:1935 AliForwardFlowTaskQC.cxx:1936 AliForwardFlowTaskQC.cxx:1937 AliForwardFlowTaskQC.cxx:1938 AliForwardFlowTaskQC.cxx:1939 AliForwardFlowTaskQC.cxx:1940 AliForwardFlowTaskQC.cxx:1941 AliForwardFlowTaskQC.cxx:1942 AliForwardFlowTaskQC.cxx:1943 AliForwardFlowTaskQC.cxx:1944 AliForwardFlowTaskQC.cxx:1945 AliForwardFlowTaskQC.cxx:1946 AliForwardFlowTaskQC.cxx:1947 AliForwardFlowTaskQC.cxx:1948 AliForwardFlowTaskQC.cxx:1949 AliForwardFlowTaskQC.cxx:1950 AliForwardFlowTaskQC.cxx:1951 AliForwardFlowTaskQC.cxx:1952 AliForwardFlowTaskQC.cxx:1953 AliForwardFlowTaskQC.cxx:1954 AliForwardFlowTaskQC.cxx:1955 AliForwardFlowTaskQC.cxx:1956 AliForwardFlowTaskQC.cxx:1957 AliForwardFlowTaskQC.cxx:1958 AliForwardFlowTaskQC.cxx:1959 AliForwardFlowTaskQC.cxx:1960 AliForwardFlowTaskQC.cxx:1961 AliForwardFlowTaskQC.cxx:1962 AliForwardFlowTaskQC.cxx:1963 AliForwardFlowTaskQC.cxx:1964 AliForwardFlowTaskQC.cxx:1965 AliForwardFlowTaskQC.cxx:1966 AliForwardFlowTaskQC.cxx:1967 AliForwardFlowTaskQC.cxx:1968 AliForwardFlowTaskQC.cxx:1969 AliForwardFlowTaskQC.cxx:1970 AliForwardFlowTaskQC.cxx:1971 AliForwardFlowTaskQC.cxx:1972 AliForwardFlowTaskQC.cxx:1973 AliForwardFlowTaskQC.cxx:1974 AliForwardFlowTaskQC.cxx:1975 AliForwardFlowTaskQC.cxx:1976 AliForwardFlowTaskQC.cxx:1977 AliForwardFlowTaskQC.cxx:1978 AliForwardFlowTaskQC.cxx:1979 AliForwardFlowTaskQC.cxx:1980 AliForwardFlowTaskQC.cxx:1981 AliForwardFlowTaskQC.cxx:1982 AliForwardFlowTaskQC.cxx:1983 AliForwardFlowTaskQC.cxx:1984 AliForwardFlowTaskQC.cxx:1985 AliForwardFlowTaskQC.cxx:1986 AliForwardFlowTaskQC.cxx:1987 AliForwardFlowTaskQC.cxx:1988 AliForwardFlowTaskQC.cxx:1989 AliForwardFlowTaskQC.cxx:1990 AliForwardFlowTaskQC.cxx:1991 AliForwardFlowTaskQC.cxx:1992 AliForwardFlowTaskQC.cxx:1993 AliForwardFlowTaskQC.cxx:1994 AliForwardFlowTaskQC.cxx:1995 AliForwardFlowTaskQC.cxx:1996 AliForwardFlowTaskQC.cxx:1997 AliForwardFlowTaskQC.cxx:1998 AliForwardFlowTaskQC.cxx:1999 AliForwardFlowTaskQC.cxx:2000 AliForwardFlowTaskQC.cxx:2001 AliForwardFlowTaskQC.cxx:2002 AliForwardFlowTaskQC.cxx:2003 AliForwardFlowTaskQC.cxx:2004 AliForwardFlowTaskQC.cxx:2005 AliForwardFlowTaskQC.cxx:2006 AliForwardFlowTaskQC.cxx:2007 AliForwardFlowTaskQC.cxx:2008 AliForwardFlowTaskQC.cxx:2009 AliForwardFlowTaskQC.cxx:2010 AliForwardFlowTaskQC.cxx:2011 AliForwardFlowTaskQC.cxx:2012 AliForwardFlowTaskQC.cxx:2013 AliForwardFlowTaskQC.cxx:2014 AliForwardFlowTaskQC.cxx:2015 AliForwardFlowTaskQC.cxx:2016 AliForwardFlowTaskQC.cxx:2017 AliForwardFlowTaskQC.cxx:2018 AliForwardFlowTaskQC.cxx:2019 AliForwardFlowTaskQC.cxx:2020 AliForwardFlowTaskQC.cxx:2021 AliForwardFlowTaskQC.cxx:2022 AliForwardFlowTaskQC.cxx:2023 AliForwardFlowTaskQC.cxx:2024 AliForwardFlowTaskQC.cxx:2025 AliForwardFlowTaskQC.cxx:2026 AliForwardFlowTaskQC.cxx:2027 AliForwardFlowTaskQC.cxx:2028 AliForwardFlowTaskQC.cxx:2029 AliForwardFlowTaskQC.cxx:2030 AliForwardFlowTaskQC.cxx:2031 AliForwardFlowTaskQC.cxx:2032 AliForwardFlowTaskQC.cxx:2033 AliForwardFlowTaskQC.cxx:2034 AliForwardFlowTaskQC.cxx:2035 AliForwardFlowTaskQC.cxx:2036 AliForwardFlowTaskQC.cxx:2037 AliForwardFlowTaskQC.cxx:2038 AliForwardFlowTaskQC.cxx:2039 AliForwardFlowTaskQC.cxx:2040 AliForwardFlowTaskQC.cxx:2041 AliForwardFlowTaskQC.cxx:2042 AliForwardFlowTaskQC.cxx:2043 AliForwardFlowTaskQC.cxx:2044 AliForwardFlowTaskQC.cxx:2045 AliForwardFlowTaskQC.cxx:2046 AliForwardFlowTaskQC.cxx:2047 AliForwardFlowTaskQC.cxx:2048 AliForwardFlowTaskQC.cxx:2049 AliForwardFlowTaskQC.cxx:2050 AliForwardFlowTaskQC.cxx:2051 AliForwardFlowTaskQC.cxx:2052 AliForwardFlowTaskQC.cxx:2053 AliForwardFlowTaskQC.cxx:2054 AliForwardFlowTaskQC.cxx:2055 AliForwardFlowTaskQC.cxx:2056 AliForwardFlowTaskQC.cxx:2057 AliForwardFlowTaskQC.cxx:2058 AliForwardFlowTaskQC.cxx:2059 AliForwardFlowTaskQC.cxx:2060 AliForwardFlowTaskQC.cxx:2061 AliForwardFlowTaskQC.cxx:2062 AliForwardFlowTaskQC.cxx:2063 AliForwardFlowTaskQC.cxx:2064 AliForwardFlowTaskQC.cxx:2065 AliForwardFlowTaskQC.cxx:2066 AliForwardFlowTaskQC.cxx:2067 AliForwardFlowTaskQC.cxx:2068 AliForwardFlowTaskQC.cxx:2069 AliForwardFlowTaskQC.cxx:2070 AliForwardFlowTaskQC.cxx:2071 AliForwardFlowTaskQC.cxx:2072 AliForwardFlowTaskQC.cxx:2073 AliForwardFlowTaskQC.cxx:2074 AliForwardFlowTaskQC.cxx:2075 AliForwardFlowTaskQC.cxx:2076 AliForwardFlowTaskQC.cxx:2077 AliForwardFlowTaskQC.cxx:2078 AliForwardFlowTaskQC.cxx:2079 AliForwardFlowTaskQC.cxx:2080 AliForwardFlowTaskQC.cxx:2081 AliForwardFlowTaskQC.cxx:2082 AliForwardFlowTaskQC.cxx:2083 AliForwardFlowTaskQC.cxx:2084 AliForwardFlowTaskQC.cxx:2085 AliForwardFlowTaskQC.cxx:2086 AliForwardFlowTaskQC.cxx:2087 AliForwardFlowTaskQC.cxx:2088 AliForwardFlowTaskQC.cxx:2089 AliForwardFlowTaskQC.cxx:2090 AliForwardFlowTaskQC.cxx:2091 AliForwardFlowTaskQC.cxx:2092 AliForwardFlowTaskQC.cxx:2093 AliForwardFlowTaskQC.cxx:2094 AliForwardFlowTaskQC.cxx:2095 AliForwardFlowTaskQC.cxx:2096 AliForwardFlowTaskQC.cxx:2097 AliForwardFlowTaskQC.cxx:2098 AliForwardFlowTaskQC.cxx:2099 AliForwardFlowTaskQC.cxx:2100 AliForwardFlowTaskQC.cxx:2101 AliForwardFlowTaskQC.cxx:2102 AliForwardFlowTaskQC.cxx:2103 AliForwardFlowTaskQC.cxx:2104 AliForwardFlowTaskQC.cxx:2105 AliForwardFlowTaskQC.cxx:2106 AliForwardFlowTaskQC.cxx:2107 AliForwardFlowTaskQC.cxx:2108 AliForwardFlowTaskQC.cxx:2109 AliForwardFlowTaskQC.cxx:2110 AliForwardFlowTaskQC.cxx:2111 AliForwardFlowTaskQC.cxx:2112 AliForwardFlowTaskQC.cxx:2113 AliForwardFlowTaskQC.cxx:2114 AliForwardFlowTaskQC.cxx:2115 AliForwardFlowTaskQC.cxx:2116 AliForwardFlowTaskQC.cxx:2117 AliForwardFlowTaskQC.cxx:2118 AliForwardFlowTaskQC.cxx:2119 AliForwardFlowTaskQC.cxx:2120 AliForwardFlowTaskQC.cxx:2121 AliForwardFlowTaskQC.cxx:2122 AliForwardFlowTaskQC.cxx:2123 AliForwardFlowTaskQC.cxx:2124 AliForwardFlowTaskQC.cxx:2125 AliForwardFlowTaskQC.cxx:2126 AliForwardFlowTaskQC.cxx:2127 AliForwardFlowTaskQC.cxx:2128 AliForwardFlowTaskQC.cxx:2129 AliForwardFlowTaskQC.cxx:2130 AliForwardFlowTaskQC.cxx:2131 AliForwardFlowTaskQC.cxx:2132 AliForwardFlowTaskQC.cxx:2133 AliForwardFlowTaskQC.cxx:2134 AliForwardFlowTaskQC.cxx:2135 AliForwardFlowTaskQC.cxx:2136 AliForwardFlowTaskQC.cxx:2137 AliForwardFlowTaskQC.cxx:2138 AliForwardFlowTaskQC.cxx:2139 AliForwardFlowTaskQC.cxx:2140 AliForwardFlowTaskQC.cxx:2141 AliForwardFlowTaskQC.cxx:2142 AliForwardFlowTaskQC.cxx:2143 AliForwardFlowTaskQC.cxx:2144 AliForwardFlowTaskQC.cxx:2145 AliForwardFlowTaskQC.cxx:2146 AliForwardFlowTaskQC.cxx:2147 AliForwardFlowTaskQC.cxx:2148 AliForwardFlowTaskQC.cxx:2149 AliForwardFlowTaskQC.cxx:2150 AliForwardFlowTaskQC.cxx:2151 AliForwardFlowTaskQC.cxx:2152 AliForwardFlowTaskQC.cxx:2153 AliForwardFlowTaskQC.cxx:2154 AliForwardFlowTaskQC.cxx:2155 AliForwardFlowTaskQC.cxx:2156 AliForwardFlowTaskQC.cxx:2157 AliForwardFlowTaskQC.cxx:2158 AliForwardFlowTaskQC.cxx:2159 AliForwardFlowTaskQC.cxx:2160 AliForwardFlowTaskQC.cxx:2161 AliForwardFlowTaskQC.cxx:2162 AliForwardFlowTaskQC.cxx:2163 AliForwardFlowTaskQC.cxx:2164 AliForwardFlowTaskQC.cxx:2165 AliForwardFlowTaskQC.cxx:2166 AliForwardFlowTaskQC.cxx:2167 AliForwardFlowTaskQC.cxx:2168 AliForwardFlowTaskQC.cxx:2169 AliForwardFlowTaskQC.cxx:2170 AliForwardFlowTaskQC.cxx:2171 AliForwardFlowTaskQC.cxx:2172 AliForwardFlowTaskQC.cxx:2173 AliForwardFlowTaskQC.cxx:2174 AliForwardFlowTaskQC.cxx:2175 AliForwardFlowTaskQC.cxx:2176 AliForwardFlowTaskQC.cxx:2177 AliForwardFlowTaskQC.cxx:2178 AliForwardFlowTaskQC.cxx:2179 AliForwardFlowTaskQC.cxx:2180 AliForwardFlowTaskQC.cxx:2181 AliForwardFlowTaskQC.cxx:2182 AliForwardFlowTaskQC.cxx:2183 AliForwardFlowTaskQC.cxx:2184 AliForwardFlowTaskQC.cxx:2185 AliForwardFlowTaskQC.cxx:2186 AliForwardFlowTaskQC.cxx:2187 AliForwardFlowTaskQC.cxx:2188 AliForwardFlowTaskQC.cxx:2189 AliForwardFlowTaskQC.cxx:2190 AliForwardFlowTaskQC.cxx:2191 AliForwardFlowTaskQC.cxx:2192 AliForwardFlowTaskQC.cxx:2193 AliForwardFlowTaskQC.cxx:2194 AliForwardFlowTaskQC.cxx:2195 AliForwardFlowTaskQC.cxx:2196 AliForwardFlowTaskQC.cxx:2197 AliForwardFlowTaskQC.cxx:2198 AliForwardFlowTaskQC.cxx:2199 AliForwardFlowTaskQC.cxx:2200 AliForwardFlowTaskQC.cxx:2201 AliForwardFlowTaskQC.cxx:2202 AliForwardFlowTaskQC.cxx:2203 AliForwardFlowTaskQC.cxx:2204 AliForwardFlowTaskQC.cxx:2205 AliForwardFlowTaskQC.cxx:2206 AliForwardFlowTaskQC.cxx:2207 AliForwardFlowTaskQC.cxx:2208 AliForwardFlowTaskQC.cxx:2209 AliForwardFlowTaskQC.cxx:2210 AliForwardFlowTaskQC.cxx:2211 AliForwardFlowTaskQC.cxx:2212 AliForwardFlowTaskQC.cxx:2213 AliForwardFlowTaskQC.cxx:2214 AliForwardFlowTaskQC.cxx:2215 AliForwardFlowTaskQC.cxx:2216 AliForwardFlowTaskQC.cxx:2217 AliForwardFlowTaskQC.cxx:2218 AliForwardFlowTaskQC.cxx:2219 AliForwardFlowTaskQC.cxx:2220 AliForwardFlowTaskQC.cxx:2221 AliForwardFlowTaskQC.cxx:2222 AliForwardFlowTaskQC.cxx:2223 AliForwardFlowTaskQC.cxx:2224 AliForwardFlowTaskQC.cxx:2225 AliForwardFlowTaskQC.cxx:2226 AliForwardFlowTaskQC.cxx:2227 AliForwardFlowTaskQC.cxx:2228 AliForwardFlowTaskQC.cxx:2229 AliForwardFlowTaskQC.cxx:2230 AliForwardFlowTaskQC.cxx:2231 AliForwardFlowTaskQC.cxx:2232 AliForwardFlowTaskQC.cxx:2233 AliForwardFlowTaskQC.cxx:2234 AliForwardFlowTaskQC.cxx:2235 AliForwardFlowTaskQC.cxx:2236 AliForwardFlowTaskQC.cxx:2237 AliForwardFlowTaskQC.cxx:2238 AliForwardFlowTaskQC.cxx:2239 AliForwardFlowTaskQC.cxx:2240 AliForwardFlowTaskQC.cxx:2241 AliForwardFlowTaskQC.cxx:2242 AliForwardFlowTaskQC.cxx:2243 AliForwardFlowTaskQC.cxx:2244 AliForwardFlowTaskQC.cxx:2245 AliForwardFlowTaskQC.cxx:2246 AliForwardFlowTaskQC.cxx:2247 AliForwardFlowTaskQC.cxx:2248 AliForwardFlowTaskQC.cxx:2249 AliForwardFlowTaskQC.cxx:2250 AliForwardFlowTaskQC.cxx:2251 AliForwardFlowTaskQC.cxx:2252 AliForwardFlowTaskQC.cxx:2253 AliForwardFlowTaskQC.cxx:2254 AliForwardFlowTaskQC.cxx:2255 AliForwardFlowTaskQC.cxx:2256 AliForwardFlowTaskQC.cxx:2257 AliForwardFlowTaskQC.cxx:2258 AliForwardFlowTaskQC.cxx:2259 AliForwardFlowTaskQC.cxx:2260 AliForwardFlowTaskQC.cxx:2261 AliForwardFlowTaskQC.cxx:2262 AliForwardFlowTaskQC.cxx:2263 AliForwardFlowTaskQC.cxx:2264 AliForwardFlowTaskQC.cxx:2265 AliForwardFlowTaskQC.cxx:2266 AliForwardFlowTaskQC.cxx:2267 AliForwardFlowTaskQC.cxx:2268 AliForwardFlowTaskQC.cxx:2269 AliForwardFlowTaskQC.cxx:2270 AliForwardFlowTaskQC.cxx:2271 AliForwardFlowTaskQC.cxx:2272 AliForwardFlowTaskQC.cxx:2273 AliForwardFlowTaskQC.cxx:2274 AliForwardFlowTaskQC.cxx:2275 AliForwardFlowTaskQC.cxx:2276 AliForwardFlowTaskQC.cxx:2277 AliForwardFlowTaskQC.cxx:2278 AliForwardFlowTaskQC.cxx:2279 AliForwardFlowTaskQC.cxx:2280 AliForwardFlowTaskQC.cxx:2281 AliForwardFlowTaskQC.cxx:2282 AliForwardFlowTaskQC.cxx:2283 AliForwardFlowTaskQC.cxx:2284 AliForwardFlowTaskQC.cxx:2285 AliForwardFlowTaskQC.cxx:2286 AliForwardFlowTaskQC.cxx:2287 AliForwardFlowTaskQC.cxx:2288 AliForwardFlowTaskQC.cxx:2289 AliForwardFlowTaskQC.cxx:2290 AliForwardFlowTaskQC.cxx:2291 AliForwardFlowTaskQC.cxx:2292 AliForwardFlowTaskQC.cxx:2293 AliForwardFlowTaskQC.cxx:2294 AliForwardFlowTaskQC.cxx:2295 AliForwardFlowTaskQC.cxx:2296 AliForwardFlowTaskQC.cxx:2297 AliForwardFlowTaskQC.cxx:2298 AliForwardFlowTaskQC.cxx:2299 AliForwardFlowTaskQC.cxx:2300 AliForwardFlowTaskQC.cxx:2301 AliForwardFlowTaskQC.cxx:2302 AliForwardFlowTaskQC.cxx:2303 AliForwardFlowTaskQC.cxx:2304 AliForwardFlowTaskQC.cxx:2305 AliForwardFlowTaskQC.cxx:2306 AliForwardFlowTaskQC.cxx:2307 AliForwardFlowTaskQC.cxx:2308 AliForwardFlowTaskQC.cxx:2309 AliForwardFlowTaskQC.cxx:2310 AliForwardFlowTaskQC.cxx:2311 AliForwardFlowTaskQC.cxx:2312 AliForwardFlowTaskQC.cxx:2313 AliForwardFlowTaskQC.cxx:2314 AliForwardFlowTaskQC.cxx:2315 AliForwardFlowTaskQC.cxx:2316 AliForwardFlowTaskQC.cxx:2317 AliForwardFlowTaskQC.cxx:2318 AliForwardFlowTaskQC.cxx:2319 AliForwardFlowTaskQC.cxx:2320 AliForwardFlowTaskQC.cxx:2321 AliForwardFlowTaskQC.cxx:2322 AliForwardFlowTaskQC.cxx:2323 AliForwardFlowTaskQC.cxx:2324 AliForwardFlowTaskQC.cxx:2325 AliForwardFlowTaskQC.cxx:2326 AliForwardFlowTaskQC.cxx:2327 AliForwardFlowTaskQC.cxx:2328 AliForwardFlowTaskQC.cxx:2329 AliForwardFlowTaskQC.cxx:2330 AliForwardFlowTaskQC.cxx:2331 AliForwardFlowTaskQC.cxx:2332 AliForwardFlowTaskQC.cxx:2333 AliForwardFlowTaskQC.cxx:2334 AliForwardFlowTaskQC.cxx:2335 AliForwardFlowTaskQC.cxx:2336 AliForwardFlowTaskQC.cxx:2337 AliForwardFlowTaskQC.cxx:2338 AliForwardFlowTaskQC.cxx:2339 AliForwardFlowTaskQC.cxx:2340 AliForwardFlowTaskQC.cxx:2341 AliForwardFlowTaskQC.cxx:2342 AliForwardFlowTaskQC.cxx:2343 AliForwardFlowTaskQC.cxx:2344 AliForwardFlowTaskQC.cxx:2345 AliForwardFlowTaskQC.cxx:2346 AliForwardFlowTaskQC.cxx:2347 AliForwardFlowTaskQC.cxx:2348 AliForwardFlowTaskQC.cxx:2349 AliForwardFlowTaskQC.cxx:2350 AliForwardFlowTaskQC.cxx:2351 AliForwardFlowTaskQC.cxx:2352 AliForwardFlowTaskQC.cxx:2353 AliForwardFlowTaskQC.cxx:2354 AliForwardFlowTaskQC.cxx:2355 AliForwardFlowTaskQC.cxx:2356 AliForwardFlowTaskQC.cxx:2357 AliForwardFlowTaskQC.cxx:2358 AliForwardFlowTaskQC.cxx:2359 AliForwardFlowTaskQC.cxx:2360 AliForwardFlowTaskQC.cxx:2361 AliForwardFlowTaskQC.cxx:2362 AliForwardFlowTaskQC.cxx:2363 AliForwardFlowTaskQC.cxx:2364 AliForwardFlowTaskQC.cxx:2365 AliForwardFlowTaskQC.cxx:2366 AliForwardFlowTaskQC.cxx:2367 AliForwardFlowTaskQC.cxx:2368 AliForwardFlowTaskQC.cxx:2369 AliForwardFlowTaskQC.cxx:2370 AliForwardFlowTaskQC.cxx:2371 AliForwardFlowTaskQC.cxx:2372 AliForwardFlowTaskQC.cxx:2373 AliForwardFlowTaskQC.cxx:2374 AliForwardFlowTaskQC.cxx:2375 AliForwardFlowTaskQC.cxx:2376 AliForwardFlowTaskQC.cxx:2377 AliForwardFlowTaskQC.cxx:2378 AliForwardFlowTaskQC.cxx:2379 AliForwardFlowTaskQC.cxx:2380 AliForwardFlowTaskQC.cxx:2381 AliForwardFlowTaskQC.cxx:2382 AliForwardFlowTaskQC.cxx:2383 AliForwardFlowTaskQC.cxx:2384 AliForwardFlowTaskQC.cxx:2385 AliForwardFlowTaskQC.cxx:2386 AliForwardFlowTaskQC.cxx:2387 AliForwardFlowTaskQC.cxx:2388 AliForwardFlowTaskQC.cxx:2389 AliForwardFlowTaskQC.cxx:2390 AliForwardFlowTaskQC.cxx:2391 AliForwardFlowTaskQC.cxx:2392 AliForwardFlowTaskQC.cxx:2393 AliForwardFlowTaskQC.cxx:2394 AliForwardFlowTaskQC.cxx:2395 AliForwardFlowTaskQC.cxx:2396 AliForwardFlowTaskQC.cxx:2397 AliForwardFlowTaskQC.cxx:2398 AliForwardFlowTaskQC.cxx:2399 AliForwardFlowTaskQC.cxx:2400 AliForwardFlowTaskQC.cxx:2401 AliForwardFlowTaskQC.cxx:2402 AliForwardFlowTaskQC.cxx:2403 AliForwardFlowTaskQC.cxx:2404 AliForwardFlowTaskQC.cxx:2405 AliForwardFlowTaskQC.cxx:2406 AliForwardFlowTaskQC.cxx:2407 AliForwardFlowTaskQC.cxx:2408 AliForwardFlowTaskQC.cxx:2409 AliForwardFlowTaskQC.cxx:2410 AliForwardFlowTaskQC.cxx:2411 AliForwardFlowTaskQC.cxx:2412 AliForwardFlowTaskQC.cxx:2413 AliForwardFlowTaskQC.cxx:2414 AliForwardFlowTaskQC.cxx:2415 AliForwardFlowTaskQC.cxx:2416 AliForwardFlowTaskQC.cxx:2417 AliForwardFlowTaskQC.cxx:2418 AliForwardFlowTaskQC.cxx:2419 AliForwardFlowTaskQC.cxx:2420 AliForwardFlowTaskQC.cxx:2421 AliForwardFlowTaskQC.cxx:2422 AliForwardFlowTaskQC.cxx:2423 AliForwardFlowTaskQC.cxx:2424 AliForwardFlowTaskQC.cxx:2425 AliForwardFlowTaskQC.cxx:2426 AliForwardFlowTaskQC.cxx:2427 AliForwardFlowTaskQC.cxx:2428 AliForwardFlowTaskQC.cxx:2429 AliForwardFlowTaskQC.cxx:2430 AliForwardFlowTaskQC.cxx:2431 AliForwardFlowTaskQC.cxx:2432 AliForwardFlowTaskQC.cxx:2433 AliForwardFlowTaskQC.cxx:2434 AliForwardFlowTaskQC.cxx:2435 AliForwardFlowTaskQC.cxx:2436 AliForwardFlowTaskQC.cxx:2437 AliForwardFlowTaskQC.cxx:2438 AliForwardFlowTaskQC.cxx:2439 AliForwardFlowTaskQC.cxx:2440 AliForwardFlowTaskQC.cxx:2441 AliForwardFlowTaskQC.cxx:2442 AliForwardFlowTaskQC.cxx:2443 AliForwardFlowTaskQC.cxx:2444 AliForwardFlowTaskQC.cxx:2445 AliForwardFlowTaskQC.cxx:2446 AliForwardFlowTaskQC.cxx:2447 AliForwardFlowTaskQC.cxx:2448 AliForwardFlowTaskQC.cxx:2449 AliForwardFlowTaskQC.cxx:2450 AliForwardFlowTaskQC.cxx:2451 AliForwardFlowTaskQC.cxx:2452 AliForwardFlowTaskQC.cxx:2453 AliForwardFlowTaskQC.cxx:2454 AliForwardFlowTaskQC.cxx:2455 AliForwardFlowTaskQC.cxx:2456 AliForwardFlowTaskQC.cxx:2457 AliForwardFlowTaskQC.cxx:2458 AliForwardFlowTaskQC.cxx:2459 AliForwardFlowTaskQC.cxx:2460 AliForwardFlowTaskQC.cxx:2461 AliForwardFlowTaskQC.cxx:2462 AliForwardFlowTaskQC.cxx:2463 AliForwardFlowTaskQC.cxx:2464 AliForwardFlowTaskQC.cxx:2465 AliForwardFlowTaskQC.cxx:2466 AliForwardFlowTaskQC.cxx:2467 AliForwardFlowTaskQC.cxx:2468 AliForwardFlowTaskQC.cxx:2469 AliForwardFlowTaskQC.cxx:2470 AliForwardFlowTaskQC.cxx:2471 AliForwardFlowTaskQC.cxx:2472 AliForwardFlowTaskQC.cxx:2473 AliForwardFlowTaskQC.cxx:2474 AliForwardFlowTaskQC.cxx:2475 AliForwardFlowTaskQC.cxx:2476 AliForwardFlowTaskQC.cxx:2477 AliForwardFlowTaskQC.cxx:2478 AliForwardFlowTaskQC.cxx:2479 AliForwardFlowTaskQC.cxx:2480 AliForwardFlowTaskQC.cxx:2481 AliForwardFlowTaskQC.cxx:2482 AliForwardFlowTaskQC.cxx:2483 AliForwardFlowTaskQC.cxx:2484 AliForwardFlowTaskQC.cxx:2485 AliForwardFlowTaskQC.cxx:2486 AliForwardFlowTaskQC.cxx:2487 AliForwardFlowTaskQC.cxx:2488 AliForwardFlowTaskQC.cxx:2489 AliForwardFlowTaskQC.cxx:2490 AliForwardFlowTaskQC.cxx:2491 AliForwardFlowTaskQC.cxx:2492 AliForwardFlowTaskQC.cxx:2493 AliForwardFlowTaskQC.cxx:2494 AliForwardFlowTaskQC.cxx:2495 AliForwardFlowTaskQC.cxx:2496 AliForwardFlowTaskQC.cxx:2497 AliForwardFlowTaskQC.cxx:2498 AliForwardFlowTaskQC.cxx:2499 AliForwardFlowTaskQC.cxx:2500 AliForwardFlowTaskQC.cxx:2501 AliForwardFlowTaskQC.cxx:2502 AliForwardFlowTaskQC.cxx:2503 AliForwardFlowTaskQC.cxx:2504 AliForwardFlowTaskQC.cxx:2505 AliForwardFlowTaskQC.cxx:2506 AliForwardFlowTaskQC.cxx:2507 AliForwardFlowTaskQC.cxx:2508 AliForwardFlowTaskQC.cxx:2509 AliForwardFlowTaskQC.cxx:2510 AliForwardFlowTaskQC.cxx:2511 AliForwardFlowTaskQC.cxx:2512 AliForwardFlowTaskQC.cxx:2513 AliForwardFlowTaskQC.cxx:2514 AliForwardFlowTaskQC.cxx:2515 AliForwardFlowTaskQC.cxx:2516 AliForwardFlowTaskQC.cxx:2517 AliForwardFlowTaskQC.cxx:2518 AliForwardFlowTaskQC.cxx:2519 AliForwardFlowTaskQC.cxx:2520 AliForwardFlowTaskQC.cxx:2521 AliForwardFlowTaskQC.cxx:2522 AliForwardFlowTaskQC.cxx:2523 AliForwardFlowTaskQC.cxx:2524 AliForwardFlowTaskQC.cxx:2525 AliForwardFlowTaskQC.cxx:2526 AliForwardFlowTaskQC.cxx:2527 AliForwardFlowTaskQC.cxx:2528 AliForwardFlowTaskQC.cxx:2529 AliForwardFlowTaskQC.cxx:2530 AliForwardFlowTaskQC.cxx:2531 AliForwardFlowTaskQC.cxx:2532 AliForwardFlowTaskQC.cxx:2533 AliForwardFlowTaskQC.cxx:2534 AliForwardFlowTaskQC.cxx:2535 AliForwardFlowTaskQC.cxx:2536 AliForwardFlowTaskQC.cxx:2537 AliForwardFlowTaskQC.cxx:2538 AliForwardFlowTaskQC.cxx:2539 AliForwardFlowTaskQC.cxx:2540 AliForwardFlowTaskQC.cxx:2541 AliForwardFlowTaskQC.cxx:2542 AliForwardFlowTaskQC.cxx:2543 AliForwardFlowTaskQC.cxx:2544 AliForwardFlowTaskQC.cxx:2545 AliForwardFlowTaskQC.cxx:2546 AliForwardFlowTaskQC.cxx:2547 AliForwardFlowTaskQC.cxx:2548 AliForwardFlowTaskQC.cxx:2549 AliForwardFlowTaskQC.cxx:2550 AliForwardFlowTaskQC.cxx:2551 AliForwardFlowTaskQC.cxx:2552 AliForwardFlowTaskQC.cxx:2553 AliForwardFlowTaskQC.cxx:2554 AliForwardFlowTaskQC.cxx:2555 AliForwardFlowTaskQC.cxx:2556 AliForwardFlowTaskQC.cxx:2557 AliForwardFlowTaskQC.cxx:2558 AliForwardFlowTaskQC.cxx:2559 AliForwardFlowTaskQC.cxx:2560 AliForwardFlowTaskQC.cxx:2561 AliForwardFlowTaskQC.cxx:2562 AliForwardFlowTaskQC.cxx:2563 AliForwardFlowTaskQC.cxx:2564 AliForwardFlowTaskQC.cxx:2565 AliForwardFlowTaskQC.cxx:2566 AliForwardFlowTaskQC.cxx:2567 AliForwardFlowTaskQC.cxx:2568 AliForwardFlowTaskQC.cxx:2569 AliForwardFlowTaskQC.cxx:2570 AliForwardFlowTaskQC.cxx:2571 AliForwardFlowTaskQC.cxx:2572 AliForwardFlowTaskQC.cxx:2573 AliForwardFlowTaskQC.cxx:2574 AliForwardFlowTaskQC.cxx:2575 AliForwardFlowTaskQC.cxx:2576 AliForwardFlowTaskQC.cxx:2577 AliForwardFlowTaskQC.cxx:2578 AliForwardFlowTaskQC.cxx:2579 AliForwardFlowTaskQC.cxx:2580 AliForwardFlowTaskQC.cxx:2581 AliForwardFlowTaskQC.cxx:2582 AliForwardFlowTaskQC.cxx:2583 AliForwardFlowTaskQC.cxx:2584 AliForwardFlowTaskQC.cxx:2585 AliForwardFlowTaskQC.cxx:2586 AliForwardFlowTaskQC.cxx:2587 AliForwardFlowTaskQC.cxx:2588 AliForwardFlowTaskQC.cxx:2589 AliForwardFlowTaskQC.cxx:2590 AliForwardFlowTaskQC.cxx:2591 AliForwardFlowTaskQC.cxx:2592 AliForwardFlowTaskQC.cxx:2593 AliForwardFlowTaskQC.cxx:2594 AliForwardFlowTaskQC.cxx:2595 AliForwardFlowTaskQC.cxx:2596 AliForwardFlowTaskQC.cxx:2597 AliForwardFlowTaskQC.cxx:2598 AliForwardFlowTaskQC.cxx:2599 AliForwardFlowTaskQC.cxx:2600 AliForwardFlowTaskQC.cxx:2601 AliForwardFlowTaskQC.cxx:2602 AliForwardFlowTaskQC.cxx:2603 AliForwardFlowTaskQC.cxx:2604 AliForwardFlowTaskQC.cxx:2605 AliForwardFlowTaskQC.cxx:2606 AliForwardFlowTaskQC.cxx:2607 AliForwardFlowTaskQC.cxx:2608 AliForwardFlowTaskQC.cxx:2609 AliForwardFlowTaskQC.cxx:2610 AliForwardFlowTaskQC.cxx:2611 AliForwardFlowTaskQC.cxx:2612 AliForwardFlowTaskQC.cxx:2613 AliForwardFlowTaskQC.cxx:2614 AliForwardFlowTaskQC.cxx:2615 AliForwardFlowTaskQC.cxx:2616 AliForwardFlowTaskQC.cxx:2617 AliForwardFlowTaskQC.cxx:2618 AliForwardFlowTaskQC.cxx:2619 AliForwardFlowTaskQC.cxx:2620 AliForwardFlowTaskQC.cxx:2621 AliForwardFlowTaskQC.cxx:2622 AliForwardFlowTaskQC.cxx:2623 AliForwardFlowTaskQC.cxx:2624 AliForwardFlowTaskQC.cxx:2625 AliForwardFlowTaskQC.cxx:2626 AliForwardFlowTaskQC.cxx:2627 AliForwardFlowTaskQC.cxx:2628 AliForwardFlowTaskQC.cxx:2629 AliForwardFlowTaskQC.cxx:2630 AliForwardFlowTaskQC.cxx:2631 AliForwardFlowTaskQC.cxx:2632 AliForwardFlowTaskQC.cxx:2633 AliForwardFlowTaskQC.cxx:2634 AliForwardFlowTaskQC.cxx:2635 AliForwardFlowTaskQC.cxx:2636 AliForwardFlowTaskQC.cxx:2637 AliForwardFlowTaskQC.cxx:2638 AliForwardFlowTaskQC.cxx:2639 AliForwardFlowTaskQC.cxx:2640 AliForwardFlowTaskQC.cxx:2641 AliForwardFlowTaskQC.cxx:2642 AliForwardFlowTaskQC.cxx:2643 AliForwardFlowTaskQC.cxx:2644 AliForwardFlowTaskQC.cxx:2645 AliForwardFlowTaskQC.cxx:2646 AliForwardFlowTaskQC.cxx:2647 AliForwardFlowTaskQC.cxx:2648 AliForwardFlowTaskQC.cxx:2649 AliForwardFlowTaskQC.cxx:2650 AliForwardFlowTaskQC.cxx:2651 AliForwardFlowTaskQC.cxx:2652 AliForwardFlowTaskQC.cxx:2653 AliForwardFlowTaskQC.cxx:2654 AliForwardFlowTaskQC.cxx:2655 AliForwardFlowTaskQC.cxx:2656 AliForwardFlowTaskQC.cxx:2657 AliForwardFlowTaskQC.cxx:2658 AliForwardFlowTaskQC.cxx:2659 AliForwardFlowTaskQC.cxx:2660 AliForwardFlowTaskQC.cxx:2661 AliForwardFlowTaskQC.cxx:2662 AliForwardFlowTaskQC.cxx:2663 AliForwardFlowTaskQC.cxx:2664 AliForwardFlowTaskQC.cxx:2665 AliForwardFlowTaskQC.cxx:2666 AliForwardFlowTaskQC.cxx:2667 AliForwardFlowTaskQC.cxx:2668 AliForwardFlowTaskQC.cxx:2669 AliForwardFlowTaskQC.cxx:2670 AliForwardFlowTaskQC.cxx:2671 AliForwardFlowTaskQC.cxx:2672 AliForwardFlowTaskQC.cxx:2673 AliForwardFlowTaskQC.cxx:2674 AliForwardFlowTaskQC.cxx:2675 AliForwardFlowTaskQC.cxx:2676 AliForwardFlowTaskQC.cxx:2677 AliForwardFlowTaskQC.cxx:2678 AliForwardFlowTaskQC.cxx:2679 AliForwardFlowTaskQC.cxx:2680 AliForwardFlowTaskQC.cxx:2681 AliForwardFlowTaskQC.cxx:2682 AliForwardFlowTaskQC.cxx:2683 AliForwardFlowTaskQC.cxx:2684 AliForwardFlowTaskQC.cxx:2685 AliForwardFlowTaskQC.cxx:2686 AliForwardFlowTaskQC.cxx:2687 AliForwardFlowTaskQC.cxx:2688 AliForwardFlowTaskQC.cxx:2689 AliForwardFlowTaskQC.cxx:2690 AliForwardFlowTaskQC.cxx:2691 AliForwardFlowTaskQC.cxx:2692 AliForwardFlowTaskQC.cxx:2693 AliForwardFlowTaskQC.cxx:2694 AliForwardFlowTaskQC.cxx:2695 AliForwardFlowTaskQC.cxx:2696 AliForwardFlowTaskQC.cxx:2697 AliForwardFlowTaskQC.cxx:2698 AliForwardFlowTaskQC.cxx:2699 AliForwardFlowTaskQC.cxx:2700 AliForwardFlowTaskQC.cxx:2701 AliForwardFlowTaskQC.cxx:2702 AliForwardFlowTaskQC.cxx:2703 AliForwardFlowTaskQC.cxx:2704 AliForwardFlowTaskQC.cxx:2705 AliForwardFlowTaskQC.cxx:2706 AliForwardFlowTaskQC.cxx:2707 AliForwardFlowTaskQC.cxx:2708 AliForwardFlowTaskQC.cxx:2709 AliForwardFlowTaskQC.cxx:2710 AliForwardFlowTaskQC.cxx:2711 AliForwardFlowTaskQC.cxx:2712 AliForwardFlowTaskQC.cxx:2713 AliForwardFlowTaskQC.cxx:2714 AliForwardFlowTaskQC.cxx:2715 AliForwardFlowTaskQC.cxx:2716 AliForwardFlowTaskQC.cxx:2717 AliForwardFlowTaskQC.cxx:2718 AliForwardFlowTaskQC.cxx:2719 AliForwardFlowTaskQC.cxx:2720 AliForwardFlowTaskQC.cxx:2721 AliForwardFlowTaskQC.cxx:2722 AliForwardFlowTaskQC.cxx:2723 AliForwardFlowTaskQC.cxx:2724 AliForwardFlowTaskQC.cxx:2725 AliForwardFlowTaskQC.cxx:2726 AliForwardFlowTaskQC.cxx:2727 AliForwardFlowTaskQC.cxx:2728 AliForwardFlowTaskQC.cxx:2729 AliForwardFlowTaskQC.cxx:2730 AliForwardFlowTaskQC.cxx:2731 AliForwardFlowTaskQC.cxx:2732 AliForwardFlowTaskQC.cxx:2733 AliForwardFlowTaskQC.cxx:2734 AliForwardFlowTaskQC.cxx:2735 AliForwardFlowTaskQC.cxx:2736 AliForwardFlowTaskQC.cxx:2737 AliForwardFlowTaskQC.cxx:2738 AliForwardFlowTaskQC.cxx:2739 AliForwardFlowTaskQC.cxx:2740 AliForwardFlowTaskQC.cxx:2741 AliForwardFlowTaskQC.cxx:2742 AliForwardFlowTaskQC.cxx:2743 AliForwardFlowTaskQC.cxx:2744 AliForwardFlowTaskQC.cxx:2745 AliForwardFlowTaskQC.cxx:2746 AliForwardFlowTaskQC.cxx:2747 AliForwardFlowTaskQC.cxx:2748 AliForwardFlowTaskQC.cxx:2749 AliForwardFlowTaskQC.cxx:2750 AliForwardFlowTaskQC.cxx:2751 AliForwardFlowTaskQC.cxx:2752 AliForwardFlowTaskQC.cxx:2753 AliForwardFlowTaskQC.cxx:2754 AliForwardFlowTaskQC.cxx:2755 AliForwardFlowTaskQC.cxx:2756 AliForwardFlowTaskQC.cxx:2757 AliForwardFlowTaskQC.cxx:2758 AliForwardFlowTaskQC.cxx:2759 AliForwardFlowTaskQC.cxx:2760 AliForwardFlowTaskQC.cxx:2761 AliForwardFlowTaskQC.cxx:2762 AliForwardFlowTaskQC.cxx:2763 AliForwardFlowTaskQC.cxx:2764 AliForwardFlowTaskQC.cxx:2765 AliForwardFlowTaskQC.cxx:2766 AliForwardFlowTaskQC.cxx:2767 AliForwardFlowTaskQC.cxx:2768 AliForwardFlowTaskQC.cxx:2769 AliForwardFlowTaskQC.cxx:2770 AliForwardFlowTaskQC.cxx:2771 AliForwardFlowTaskQC.cxx:2772 AliForwardFlowTaskQC.cxx:2773 AliForwardFlowTaskQC.cxx:2774 AliForwardFlowTaskQC.cxx:2775 AliForwardFlowTaskQC.cxx:2776 AliForwardFlowTaskQC.cxx:2777 AliForwardFlowTaskQC.cxx:2778 AliForwardFlowTaskQC.cxx:2779 AliForwardFlowTaskQC.cxx:2780 AliForwardFlowTaskQC.cxx:2781 AliForwardFlowTaskQC.cxx:2782 AliForwardFlowTaskQC.cxx:2783 AliForwardFlowTaskQC.cxx:2784 AliForwardFlowTaskQC.cxx:2785 AliForwardFlowTaskQC.cxx:2786 AliForwardFlowTaskQC.cxx:2787 AliForwardFlowTaskQC.cxx:2788 AliForwardFlowTaskQC.cxx:2789 AliForwardFlowTaskQC.cxx:2790 AliForwardFlowTaskQC.cxx:2791 AliForwardFlowTaskQC.cxx:2792 AliForwardFlowTaskQC.cxx:2793 AliForwardFlowTaskQC.cxx:2794 AliForwardFlowTaskQC.cxx:2795 AliForwardFlowTaskQC.cxx:2796 AliForwardFlowTaskQC.cxx:2797 AliForwardFlowTaskQC.cxx:2798 AliForwardFlowTaskQC.cxx:2799 AliForwardFlowTaskQC.cxx:2800 AliForwardFlowTaskQC.cxx:2801 AliForwardFlowTaskQC.cxx:2802 AliForwardFlowTaskQC.cxx:2803 AliForwardFlowTaskQC.cxx:2804 AliForwardFlowTaskQC.cxx:2805 AliForwardFlowTaskQC.cxx:2806 AliForwardFlowTaskQC.cxx:2807 AliForwardFlowTaskQC.cxx:2808 AliForwardFlowTaskQC.cxx:2809 AliForwardFlowTaskQC.cxx:2810 AliForwardFlowTaskQC.cxx:2811 AliForwardFlowTaskQC.cxx:2812 AliForwardFlowTaskQC.cxx:2813 AliForwardFlowTaskQC.cxx:2814 AliForwardFlowTaskQC.cxx:2815 AliForwardFlowTaskQC.cxx:2816 AliForwardFlowTaskQC.cxx:2817 AliForwardFlowTaskQC.cxx:2818 AliForwardFlowTaskQC.cxx:2819 AliForwardFlowTaskQC.cxx:2820 AliForwardFlowTaskQC.cxx:2821 AliForwardFlowTaskQC.cxx:2822 AliForwardFlowTaskQC.cxx:2823 AliForwardFlowTaskQC.cxx:2824 AliForwardFlowTaskQC.cxx:2825 AliForwardFlowTaskQC.cxx:2826 AliForwardFlowTaskQC.cxx:2827 AliForwardFlowTaskQC.cxx:2828 AliForwardFlowTaskQC.cxx:2829 AliForwardFlowTaskQC.cxx:2830 AliForwardFlowTaskQC.cxx:2831 AliForwardFlowTaskQC.cxx:2832 AliForwardFlowTaskQC.cxx:2833 AliForwardFlowTaskQC.cxx:2834 AliForwardFlowTaskQC.cxx:2835 AliForwardFlowTaskQC.cxx:2836 AliForwardFlowTaskQC.cxx:2837 AliForwardFlowTaskQC.cxx:2838 AliForwardFlowTaskQC.cxx:2839 AliForwardFlowTaskQC.cxx:2840 AliForwardFlowTaskQC.cxx:2841 AliForwardFlowTaskQC.cxx:2842 AliForwardFlowTaskQC.cxx:2843 AliForwardFlowTaskQC.cxx:2844 AliForwardFlowTaskQC.cxx:2845 AliForwardFlowTaskQC.cxx:2846 AliForwardFlowTaskQC.cxx:2847 AliForwardFlowTaskQC.cxx:2848 AliForwardFlowTaskQC.cxx:2849 AliForwardFlowTaskQC.cxx:2850 AliForwardFlowTaskQC.cxx:2851 AliForwardFlowTaskQC.cxx:2852 AliForwardFlowTaskQC.cxx:2853 AliForwardFlowTaskQC.cxx:2854 AliForwardFlowTaskQC.cxx:2855 AliForwardFlowTaskQC.cxx:2856 AliForwardFlowTaskQC.cxx:2857 AliForwardFlowTaskQC.cxx:2858 AliForwardFlowTaskQC.cxx:2859 AliForwardFlowTaskQC.cxx:2860 AliForwardFlowTaskQC.cxx:2861 AliForwardFlowTaskQC.cxx:2862 AliForwardFlowTaskQC.cxx:2863 AliForwardFlowTaskQC.cxx:2864 AliForwardFlowTaskQC.cxx:2865 AliForwardFlowTaskQC.cxx:2866 AliForwardFlowTaskQC.cxx:2867 AliForwardFlowTaskQC.cxx:2868 AliForwardFlowTaskQC.cxx:2869 AliForwardFlowTaskQC.cxx:2870 AliForwardFlowTaskQC.cxx:2871 AliForwardFlowTaskQC.cxx:2872 AliForwardFlowTaskQC.cxx:2873 AliForwardFlowTaskQC.cxx:2874 AliForwardFlowTaskQC.cxx:2875 AliForwardFlowTaskQC.cxx:2876 AliForwardFlowTaskQC.cxx:2877 AliForwardFlowTaskQC.cxx:2878 AliForwardFlowTaskQC.cxx:2879 AliForwardFlowTaskQC.cxx:2880 AliForwardFlowTaskQC.cxx:2881 AliForwardFlowTaskQC.cxx:2882 AliForwardFlowTaskQC.cxx:2883 AliForwardFlowTaskQC.cxx:2884 AliForwardFlowTaskQC.cxx:2885 AliForwardFlowTaskQC.cxx:2886 AliForwardFlowTaskQC.cxx:2887 AliForwardFlowTaskQC.cxx:2888 AliForwardFlowTaskQC.cxx:2889 AliForwardFlowTaskQC.cxx:2890 AliForwardFlowTaskQC.cxx:2891 AliForwardFlowTaskQC.cxx:2892 AliForwardFlowTaskQC.cxx:2893 AliForwardFlowTaskQC.cxx:2894 AliForwardFlowTaskQC.cxx:2895 AliForwardFlowTaskQC.cxx:2896 AliForwardFlowTaskQC.cxx:2897 AliForwardFlowTaskQC.cxx:2898 AliForwardFlowTaskQC.cxx:2899 AliForwardFlowTaskQC.cxx:2900 AliForwardFlowTaskQC.cxx:2901 AliForwardFlowTaskQC.cxx:2902 AliForwardFlowTaskQC.cxx:2903 AliForwardFlowTaskQC.cxx:2904 AliForwardFlowTaskQC.cxx:2905 AliForwardFlowTaskQC.cxx:2906 AliForwardFlowTaskQC.cxx:2907 AliForwardFlowTaskQC.cxx:2908 AliForwardFlowTaskQC.cxx:2909 AliForwardFlowTaskQC.cxx:2910 AliForwardFlowTaskQC.cxx:2911 AliForwardFlowTaskQC.cxx:2912 AliForwardFlowTaskQC.cxx:2913 AliForwardFlowTaskQC.cxx:2914 AliForwardFlowTaskQC.cxx:2915 AliForwardFlowTaskQC.cxx:2916 AliForwardFlowTaskQC.cxx:2917 AliForwardFlowTaskQC.cxx:2918 AliForwardFlowTaskQC.cxx:2919 AliForwardFlowTaskQC.cxx:2920 AliForwardFlowTaskQC.cxx:2921 AliForwardFlowTaskQC.cxx:2922 AliForwardFlowTaskQC.cxx:2923 AliForwardFlowTaskQC.cxx:2924 AliForwardFlowTaskQC.cxx:2925 AliForwardFlowTaskQC.cxx:2926 AliForwardFlowTaskQC.cxx:2927 AliForwardFlowTaskQC.cxx:2928 AliForwardFlowTaskQC.cxx:2929 AliForwardFlowTaskQC.cxx:2930 AliForwardFlowTaskQC.cxx:2931 AliForwardFlowTaskQC.cxx:2932 AliForwardFlowTaskQC.cxx:2933 AliForwardFlowTaskQC.cxx:2934 AliForwardFlowTaskQC.cxx:2935 AliForwardFlowTaskQC.cxx:2936 AliForwardFlowTaskQC.cxx:2937 AliForwardFlowTaskQC.cxx:2938 AliForwardFlowTaskQC.cxx:2939 AliForwardFlowTaskQC.cxx:2940 AliForwardFlowTaskQC.cxx:2941 AliForwardFlowTaskQC.cxx:2942 AliForwardFlowTaskQC.cxx:2943 AliForwardFlowTaskQC.cxx:2944 AliForwardFlowTaskQC.cxx:2945 AliForwardFlowTaskQC.cxx:2946 AliForwardFlowTaskQC.cxx:2947 AliForwardFlowTaskQC.cxx:2948 AliForwardFlowTaskQC.cxx:2949 AliForwardFlowTaskQC.cxx:2950 AliForwardFlowTaskQC.cxx:2951 AliForwardFlowTaskQC.cxx:2952 AliForwardFlowTaskQC.cxx:2953 AliForwardFlowTaskQC.cxx:2954 AliForwardFlowTaskQC.cxx:2955 AliForwardFlowTaskQC.cxx:2956 AliForwardFlowTaskQC.cxx:2957 AliForwardFlowTaskQC.cxx:2958 AliForwardFlowTaskQC.cxx:2959 AliForwardFlowTaskQC.cxx:2960 AliForwardFlowTaskQC.cxx:2961 AliForwardFlowTaskQC.cxx:2962 AliForwardFlowTaskQC.cxx:2963 AliForwardFlowTaskQC.cxx:2964 AliForwardFlowTaskQC.cxx:2965 AliForwardFlowTaskQC.cxx:2966 AliForwardFlowTaskQC.cxx:2967 AliForwardFlowTaskQC.cxx:2968 AliForwardFlowTaskQC.cxx:2969 AliForwardFlowTaskQC.cxx:2970 AliForwardFlowTaskQC.cxx:2971 AliForwardFlowTaskQC.cxx:2972 AliForwardFlowTaskQC.cxx:2973 AliForwardFlowTaskQC.cxx:2974 AliForwardFlowTaskQC.cxx:2975 AliForwardFlowTaskQC.cxx:2976 AliForwardFlowTaskQC.cxx:2977 AliForwardFlowTaskQC.cxx:2978 AliForwardFlowTaskQC.cxx:2979 AliForwardFlowTaskQC.cxx:2980