ROOT logo
// $Id: $
//
// Constantin's Task
//
// Author: C.Loizides

#include <complex>

#include <TChain.h>
#include <TClonesArray.h>
#include <TDirectory.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TNtuple.h>
#include <TNtupleD.h>
#include <TProfile.h>
#include <TTree.h>

#include "AliESDMuonTrack.h"
#include "AliAODEvent.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisUtils.h"
#include "AliCentrality.h"
#include "AliEMCALGeoParams.h"
#include "AliEMCALGeometry.h"
#include "AliESDEvent.h"
#include "AliEmcalJet.h"
#include "AliExternalTrackParam.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"
#include "AliPicoTrack.h"
#include "AliTrackerBase.h"
#include "AliVCluster.h"
#include "AliVEventHandler.h"
#include "AliVParticle.h"
#include "AliVTrack.h"
#include "AliAnalysisTaskCLQA.h"

ClassImp(AliAnalysisTaskCLQA)

//________________________________________________________________________
AliAnalysisTaskCLQA::AliAnalysisTaskCLQA() : 
  AliAnalysisTaskEmcal("AliAnalysisTaskCLQA", kTRUE),
  fDo2013VertexCut(1),
  fDoTracking(1), fDoMuonTracking(0), fDoCumulants(0), fDoCumNtuple(0),
  fCumPtMin(0.3), fCumPtMax(5.0), fCumEtaMin(-1.0), fCumEtaMax(1.0), fCumMmin(15), 
  fCumMbins(250), fCentCL1In(0), fCentV0AIn(0),
  fNtupCum(0), fNtupCumInfo(0), fNtupZdcInfo(0)
{
  // Default constructor.

  for (Int_t i=0;i<1000;++i)
    fHists[i] = 0;
}

//________________________________________________________________________
AliAnalysisTaskCLQA::AliAnalysisTaskCLQA(const char *name) : 
  AliAnalysisTaskEmcal(name, kTRUE),
  fDo2013VertexCut(1),
  fDoTracking(1), fDoMuonTracking(0), fDoCumulants(0), fDoCumNtuple(0),
  fCumPtMin(0.3), fCumPtMax(5.0), fCumEtaMin(-1.0), fCumEtaMax(1.0), fCumMmin(15),
  fCumMbins(250), fCentCL1In(0), fCentV0AIn(0),
  fNtupCum(0), fNtupCumInfo(0), fNtupZdcInfo(0)
{
  // Standard constructor.

  for (Int_t i=0;i<1000;++i)
    fHists[i] = 0;
}

//________________________________________________________________________
AliAnalysisTaskCLQA::~AliAnalysisTaskCLQA()
{
  // Destructor
}

//________________________________________________________________________
Bool_t AliAnalysisTaskCLQA::FillHistograms()
{
  // Fill histograms.

  AliVEvent *event        = InputEvent();
  AliAnalysisManager *am  = AliAnalysisManager::GetAnalysisManager();

  UInt_t trig = ((AliInputEventHandler*)(am->GetInputEventHandler()))->IsEventSelected();
  for (Int_t i=0;i<31;++i) {
    if (trig & (1<<i))
      fHists[0]->Fill(trig);
  }

  Double_t vz  = event->GetPrimaryVertex()->GetZ();
  fHists[1]->Fill(vz);

  Int_t  run = event->GetRunNumber();
  Int_t  vzn = event->GetPrimaryVertex()->GetNContributors();
  if ((vzn<1)&&(run>0))
    return kTRUE;
  fHists[2]->Fill(vz);

  if (TMath::Abs(vz)>10)
    return kTRUE;

  if (fDo2013VertexCut) {
    if ((run>=188356&&run<=188366) || (run>=195344&&run<=197388)) {
      AliAnalysisUtils anau;
      if (anau.IsFirstEventInChunk(event))
	return kFALSE;
      if (!anau.IsVertexSelected2013pA(event))
	return kFALSE;
    }
  }

  // accepted events
  fHists[9]->Fill(1,run);

  AliCentrality *cent = InputEvent()->GetCentrality();
  Double_t v0acent = cent->GetCentralityPercentile("V0A");
  fHists[10]->Fill(v0acent);
  Double_t znacent = cent->GetCentralityPercentile("ZNA");
  fHists[11]->Fill(znacent);

  if (fDoTracking) {
    const Int_t ntracks = fTracks->GetEntries();
    if (fTracks) {
      for (Int_t i =0; i<ntracks; ++i) {
        AliVParticle *track = dynamic_cast<AliVParticle*>(fTracks->At(i));
        if (!track)
          continue;
        if (track->Charge()==0)
          continue;
        Double_t phi = track->Phi();
        Double_t eta = track->Eta();
        Double_t pt  = track->Pt();
        fHists[20]->Fill(phi,eta);
        fHists[21]->Fill(phi,pt);
        fHists[22]->Fill(eta,pt);
        if (TMath::Abs(eta)<0.8) {
          fHists[23]->Fill(pt,v0acent);
          fHists[24]->Fill(pt,znacent);
        }
	AliPicoTrack *picot = dynamic_cast<AliPicoTrack*>(track);
	if (picot) {
	  Int_t ttype = picot->GetTrackType();
	  fHists[25+ttype]->Fill(phi,pt);
	  if (picot->IsEMCAL()) {
	    Double_t dphi = TVector2::Phi_mpi_pi(phi-picot->GetTrackPhiOnEMCal());
	    fHists[28]->Fill(dphi,pt);
	  }
	}
      }
    }
  }

  if (fDoMuonTracking) {
    AliAODEvent *aod = dynamic_cast<AliAODEvent*>(InputEvent());
    if (aod) {
      for (Int_t iMu = 0; iMu<aod->GetNumberOfTracks(); ++iMu) {
        AliAODTrack* muonTrack = dynamic_cast<AliAODTrack*>(aod->GetTrack(iMu));
        if(!muonTrack) AliFatal("Not a standard AOD");
        if (!muonTrack)
          continue;
        if (!muonTrack->IsMuonTrack()) 
          continue;
        Double_t dThetaAbs = TMath::ATan(muonTrack->GetRAtAbsorberEnd()/505.)* TMath::RadToDeg();
        if ((dThetaAbs<2.) || (dThetaAbs>10.)) 
          continue;
        Double_t dEta = muonTrack->Eta();
        if ((dEta<-4.) || (dEta>-2.5)) 
          continue;
        if (0) {
          if (muonTrack->GetMatchTrigger()<0.5) 
            continue;
        }
        Double_t ptMu  = muonTrack->Pt();
        Double_t etaMu = muonTrack->Eta();
        Double_t phiMu = muonTrack->Phi();
        fHists[50]->Fill(phiMu,etaMu);
        fHists[51]->Fill(phiMu,ptMu);
        fHists[52]->Fill(etaMu,ptMu);
        fHists[53]->Fill(ptMu,v0acent);
        fHists[54]->Fill(ptMu,znacent);
      }
    } else {
      AliESDEvent *esd = dynamic_cast<AliESDEvent*>(InputEvent());
      if (esd) {
        for (Int_t iMu = 0; iMu<esd->GetNumberOfMuonTracks(); ++iMu) {
          AliESDMuonTrack* muonTrack = esd->GetMuonTrack(iMu);
          if (!muonTrack)
            continue;
          if (!muonTrack->ContainTrackerData()) 
            continue;
          Double_t thetaTrackAbsEnd = TMath::ATan(muonTrack->GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
          if ((thetaTrackAbsEnd < 2.) || (thetaTrackAbsEnd > 10.)) 
            continue;
          Double_t eta = muonTrack->Eta();
          if ((eta < -4.) || (eta > -2.5))
            return kFALSE;
          if (0) {
            if (!muonTrack->ContainTriggerData()) 
              continue;
            if (muonTrack->GetMatchTrigger() < 0.5) 
              continue;
          }
        }
      }
    }
  }

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisTaskCLQA::RetrieveEventObjects()
{
  // Retrieve event objects.

  if (!AliAnalysisTaskEmcal::RetrieveEventObjects())
    return kFALSE;

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisTaskCLQA::Run()
{
  // Run various functions.

  RunCumulants(fCumMmin,fCumPtMin,fCumPtMax,fCumEtaMin,fCumEtaMax);

  return kTRUE;
}

//________________________________________________________________________
void AliAnalysisTaskCLQA::RunCumulants(Double_t Mmin, Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax)
{
  // Run cumulant analysis.

  if (!fDoCumulants)
    return;

  if (!fTracks) 
    return;

  Bool_t isMC = 0;
  TString tname(fTracks->GetName());
  if (tname.Contains("mc"))
    isMC = 1;

  const Int_t ntracks = fTracks->GetEntries();
  Int_t Mall=0,M=0,Mall2=0;
  Double_t ptmaxall=0,ptsumall=0,pt2sumall=0,ptsumall2=0;
  Double_t tsa00=0,tsa10=0,tsa11=0;
  Double_t Q2r=0,Q2i=0;
  Double_t Q3r=0,Q3i=0;
  Double_t Q4r=0,Q4i=0;
  Double_t Q6r=0,Q6i=0;
  Double_t mpt=0,mpt2=0,ptmaxq=0;
  Double_t ts00=0,ts10=0,ts11=0;
  Double_t v0ach=0, v0cch=0;
  Double_t cl1ch=0;
 
  for (Int_t i =0; i<ntracks; ++i) {
    AliVParticle *track = dynamic_cast<AliVParticle*>(fTracks->At(i));
    if (!track)
      continue;
    if (track->Charge()==0)
      continue;
    Double_t eta = track->Eta();
    if ((eta<5.1)&&(eta>2.8))
      ++v0ach;
    else if ((eta>-3.7)&&(eta<-1.7))
      ++v0cch;
    if (TMath::Abs(eta)<1.4) {
      ++cl1ch;
    }
    if ((eta<etamin) || (eta>etamax))
      continue;
    Double_t pt = track->Pt();
    if (pt>ptmaxall)
      ptmaxall = pt;
    if (pt>1) {
      ptsumall2 += pt;
      ++Mall2;
    }
    ptsumall  +=pt;
    pt2sumall +=pt*pt;
    Double_t px = track->Px();
    Double_t py = track->Py();
    tsa00 += px*px/pt;
    tsa10 += px*py/pt;
    tsa11 += py*py/pt;
    ++Mall;
    if ((pt<ptmin) || (pt>ptmax))
      continue;
    if (pt>ptmaxq)
      ptmaxq = pt;
    Double_t phi = track->Phi();
    ++M;
    mpt  += pt;
    mpt2 += pt*pt;
    ts00 += px*px/pt;
    ts10 += px*py/pt;
    ts11 += py*py/pt;
    Q2r  += TMath::Cos(2*phi);
    Q2i  += TMath::Sin(2*phi);
    Q3r  += TMath::Cos(3*phi);
    Q3i  += TMath::Sin(3*phi);
    Q4r  += TMath::Cos(4*phi);
    Q4i  += TMath::Sin(4*phi);
    Q6r  += TMath::Cos(6*phi);
    Q6i  += TMath::Sin(6*phi);
  }

  if (M<=1)
    return;

  Int_t pmult=0;
  Double_t v2g=0;
  Double_t v3g=0;
  for (Int_t i=0; i<ntracks; ++i) {
    AliVParticle *track1 = dynamic_cast<AliVParticle*>(fTracks->At(i));
    if (!track1)
      continue;
    if (track1->Charge()==0)
      continue;
    Double_t eta1 = track1->Eta();
    if ((eta1<etamin) || (eta1>etamax))
      continue;
    Double_t pt1 = track1->Pt();
    if ((pt1<ptmin) || (pt1>ptmax))
      continue;
    Double_t phi1 = track1->Phi();
    for (Int_t j = i+1; j<ntracks; ++j) {
      AliVParticle *track2 = dynamic_cast<AliVParticle*>(fTracks->At(j));
      if (!track2)
	continue;
      if (track2->Charge()==0)
	continue;
      Double_t eta2 = track2->Eta();
      if ((eta2<etamin) || (eta2>etamax))
	continue;
      Double_t pt2 = track2->Pt();
      if ((pt2<ptmin) || (pt2>ptmax))
	continue;
      Double_t deta=TMath::Abs(eta2-eta1);
      if(deta<1)
	continue;
      Double_t dphi=TVector2::Phi_0_2pi(phi1-track2->Phi());
      pmult++;
      v2g+=TMath::Cos(2*dphi);
      v3g+=TMath::Cos(3*dphi);
    }      
  }

  if (pmult>0) {
    v2g/=pmult;
    v3g/=pmult;
  }

  std::complex<double> q2(Q2r,Q2i);
  std::complex<double> q3(Q3r,Q3i);
  std::complex<double> q4(Q4r,Q4i);
  std::complex<double> q6(Q6r,Q6i);
  Double_t Q22   = std::abs(q2)*std::abs(q2);
  Double_t Q32   = std::abs(q3)*std::abs(q3);
  Double_t Q42   = std::abs(q4)*std::abs(q4);
  Double_t Q62   = std::abs(q6)*std::abs(q6);
  Double_t Q32re = std::real(q6*std::conj(q3)*std::conj(q3));
  Double_t Q42re = std::real(q4*std::conj(q2)*std::conj(q2));
  Double_t Q6are = std::real(q4*q2*std::conj(q2)*std::conj(q2)*std::conj(q2));
  Double_t Q6bre = std::real(q6*std::conj(q2)*std::conj(q2)*std::conj(q2));
  Double_t Q6cre = std::real(q6*std::conj(q4)*std::conj(q2));

  Double_t tsall = -1;
  Double_t tsax = (tsa00+tsa11)*(tsa00+tsa11)-4*(tsa00*tsa11-tsa10*tsa10);
  if (tsax>=0) {
    Double_t l1 = 0.5*(tsa00+tsa11+TMath::Sqrt(tsax))/ptsumall;
    Double_t l2 = 0.5*(tsa00+tsa11-TMath::Sqrt(tsax))/ptsumall;
    tsall = 2*l2/(l1+l2);
  }

  Double_t ts = -1;
  Double_t tsx = (ts00+ts11)*(ts00+ts11)-4*(ts00*ts11-ts10*ts10);
  if (tsx>=0) {
    Double_t l1 = 0.5*(ts00+ts11+TMath::Sqrt(tsx))/ptsumall;
    Double_t l2 = 0.5*(ts00+ts11-TMath::Sqrt(tsx))/ptsumall;
    ts = 2*l2/(l1+l2);
  }

  if (isMC) {
    fHists[106]->Fill(cl1ch);
    fHists[107]->Fill(v0ach);
    fHists[108]->Fill(v0cch);
    AliCentrality *cent = InputEvent()->GetCentrality();
    if (fCentCL1In) {
      cent->SetCentralityCL1(100*fCentCL1In->GetBinContent(fCentCL1In->FindBin(cl1ch)));
      cent->SetQuality(0);
    }
    if (fCentV0AIn) {
      cent->SetCentralityV0A(100*fCentV0AIn->GetBinContent(fCentV0AIn->FindBin(v0ach)));
      cent->SetQuality(0);
    }
  }

  AliAnalysisUtils anau;
  AliVEvent *event        = InputEvent();
  AliAnalysisManager *am  = AliAnalysisManager::GetAnalysisManager();

  fNtupCumInfo->fTrig     = ((AliInputEventHandler*)(am->GetInputEventHandler()))->IsEventSelected();
  fNtupCumInfo->fRun      = event->GetRunNumber();
  fNtupCumInfo->fVz       = event->GetPrimaryVertex()->GetZ();
  fNtupCumInfo->fIsFEC    = anau.IsFirstEventInChunk(event);
  fNtupCumInfo->fIsVSel   = anau.IsVertexSelected2013pA(event);
  fNtupCumInfo->fIsP      = event->IsPileupFromSPD(3/*minContributors*/,
                                                   0.8/*minZdist*/,
                                                   3./*nSigmaZdist*/,
                                                   2./*nSigmaDiamXY*/,
                                                   5./*nSigmaDiamZ*/);

  fNtupCumInfo->fMall     = Mall;
  fNtupCumInfo->fMall2    = Mall2;
  fNtupCumInfo->fPtMaxall = ptmaxall;
  fNtupCumInfo->fMPtall   = ptsumall/Mall;
  fNtupCumInfo->fMPt2all  = pt2sumall/Mall;
  if (Mall2>0)
    fNtupCumInfo->fMPtall2  = ptsumall2/Mall2;
  else
    fNtupCumInfo->fMPtall2  = -1;
  fNtupCumInfo->fTSall    = tsall;
  fNtupCumInfo->fM        = M;
  fNtupCumInfo->fQ2abs    = Q22;
  fNtupCumInfo->fQ4abs    = Q42;
  fNtupCumInfo->fQ42re    = Q42re;
  fNtupCumInfo->fCos2phi  = Q2r;
  fNtupCumInfo->fSin2phi  = Q2i;
  fNtupCumInfo->fPtMax    = ptmaxq;
  fNtupCumInfo->fMPt      = mpt/M;
  fNtupCumInfo->fMPt2     = mpt2/M;
  fNtupCumInfo->fTS       = ts;

  if (isMC) {
    fNtupCumInfo->fMV0M     = v0ach + v0cch;
  } else {
    AliVVZERO *vzero = InputEvent()->GetVZEROData();
    fNtupCumInfo->fMV0M     = vzero->GetMTotV0A()+vzero->GetMTotV0C();
  }

  AliCentrality *cent = InputEvent()->GetCentrality();
  fNtupCumInfo->fCl1      = cent->GetCentralityPercentile("CL1");
  fNtupCumInfo->fV0M      = cent->GetCentralityPercentile("V0M");
  fNtupCumInfo->fV0MEq    = cent->GetCentralityPercentile("V0MEq");
  fNtupCumInfo->fV0A      = cent->GetCentralityPercentile("V0A");
  fNtupCumInfo->fV0AEq    = cent->GetCentralityPercentile("V0AEq");
  fNtupCumInfo->fZNA      = cent->GetCentralityPercentile("ZNA");

  AliVZDC *vZDC = InputEvent()->GetZDCData();
  const Double_t *znaTowers = vZDC->GetZNATowerEnergy(); 
  fNtupZdcInfo->fZna0 = znaTowers[0];
  fNtupZdcInfo->fZna1 = znaTowers[1];
  fNtupZdcInfo->fZna2 = znaTowers[2];
  fNtupZdcInfo->fZna3 = znaTowers[3];
  fNtupZdcInfo->fZna4 = znaTowers[4];

  if (fDoCumNtuple && (M>=Mmin)) {
    fNtupCum->Fill();
  }

  fHists[109]->Fill(fNtupCumInfo->fCl1);
  fHists[110]->Fill(fNtupCumInfo->fV0A);
  fHists[111]->Fill(fNtupCumInfo->fZNA);

  Bool_t fillCumHist = kTRUE;
  if (fillCumHist) {
    Int_t  run = InputEvent()->GetRunNumber();
    if (fDo2013VertexCut) {
      if ((run>=188356&&run<=188366) || (run>=195344&&run<=197388)) {
	if (anau.IsFirstEventInChunk(event))
	  fillCumHist = kFALSE;
	if (!anau.IsVertexSelected2013pA(event))
	  fillCumHist = kFALSE;
      }
    }
    Double_t vz = InputEvent()->GetPrimaryVertex()->GetZ();
    if (TMath::Abs(vz)>10)
      fillCumHist = kFALSE;
  }
  if (fillCumHist) {
    AliVVZERO *vzero = InputEvent()->GetVZEROData();
    Double_t v0a = vzero->GetMTotV0A();
    Double_t v0c = vzero->GetMTotV0C();
    //Double_t v0m = vzero->GetMTotV0A()+vzero->GetMTotV0C();
    fHists[112]->Fill(Mall);
    fHists[113]->Fill(M);
    fHists[117]->Fill(v0a,M);
    fHists[118]->Fill(v0c,M);
    fHists[119]->Fill(v0a+v0c,M);
    if (M>1) {
      fHists[114]->Fill(M,(Q22-M)/M/(M-1));
      fHists[120]->Fill(M,(Q32-M)/M/(M-1));
      fHists[122]->Fill(M,v2g);
      fHists[123]->Fill(M,v3g);
    }
    if (M>3) {
      Double_t qc4tmp = (Q22*Q22+Q42-2*Q42re-4*(M-2)*Q22+2*M*(M-3));
      fHists[115]->Fill(M,qc4tmp/M/(M-1)/(M-2)/(M-3));
      qc4tmp = (Q32*Q32+Q62-2*Q32re-4*(M-2)*Q32+2*M*(M-3));
      fHists[121]->Fill(M,qc4tmp/M/(M-1)/(M-2)/(M-3));
    }
    if (M>5) {
      Double_t qc6tmp = Q22*Q22*Q22 + 9*Q42*Q22 - 6*Q6are 
                      + 4*Q6bre - 12*Q6cre 
	              + 18*(M-4)*Q42re + 4*Q62
                      - 9*(M-4)*Q22*Q22 - 9*(M-4)*Q42
                      + 18*(M-2)*(M-5)*Q22
                      - 6*M*(M-4)*(M-5);
      fHists[116]->Fill(M,qc6tmp/M/(M-1)/(M-2)/(M-3)/(M-4)/(M-5));
    }
  }

  if ((isMC) || 
      ((TMath::Abs(fNtupCumInfo->fVz)<10) && !fNtupCumInfo->fIsFEC && fNtupCumInfo->fIsVSel)) {
    for (Int_t i =0; i<ntracks; ++i) {
      AliVParticle *track1 = dynamic_cast<AliVParticle*>(fTracks->At(i));
      if (!track1)
        continue;
      Double_t phi1 = track1->Phi();
      Double_t eta1 = track1->Eta();
      Double_t pt1  = track1->Pt();
      ((TH3*)fHists[103])->Fill(pt1,eta1,fNtupCumInfo->fCl1);
      ((TH3*)fHists[104])->Fill(pt1,eta1,fNtupCumInfo->fV0A);
      ((TH3*)fHists[105])->Fill(pt1,eta1,fNtupCumInfo->fZNA);
      if ((eta1<etamin) || (eta1>etamax))
        continue;
      if ((pt1<ptmin) || (pt1>ptmax))
        continue;
      for (Int_t j =0; j<ntracks; ++j) {
        AliVParticle *track2 = dynamic_cast<AliVParticle*>(fTracks->At(j));
        if (!track2)
          continue;
        Double_t eta2 = track2->Eta();
        if ((eta2<etamin) || (eta2>etamax))
          continue;
        Double_t pt2 = track2->Pt();
        if ((pt2<ptmin) || (pt2>ptmax))
          continue;
        Double_t phi2 = track2->Phi();
        Double_t deta = eta1-eta2;
        Double_t dphi = phi1-phi2;
        while (dphi<-TMath::Pi())
          dphi+=TMath::TwoPi();
        while (dphi>3*TMath::Pi()/2)
          dphi-=TMath::TwoPi();
        ((TH3*)fHists[100])->Fill(dphi,deta,fNtupCumInfo->fCl1);
        ((TH3*)fHists[101])->Fill(dphi,deta,fNtupCumInfo->fV0A);
        ((TH3*)fHists[102])->Fill(dphi,deta,fNtupCumInfo->fZNA);
      }
    }
  }
}

//________________________________________________________________________
void AliAnalysisTaskCLQA::SetCumParams(Double_t Mmin, Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax)
{
  // Set parameters for cumulants.

  fCumMmin   = Mmin;
  fCumPtMin  = ptmin;
  fCumPtMax  = ptmax;
  fCumEtaMin = etamin;
  fCumEtaMax = etamax;
}

//________________________________________________________________________
void AliAnalysisTaskCLQA::UserCreateOutputObjects()
{
  // Create histograms

  AliAnalysisTaskEmcal::UserCreateOutputObjects();

  fHists[0] = new TH1D("fTrigBits",";bit",32,-0.5,31.5);
  fOutput->Add(fHists[0]);
  fHists[1] = new TH1D("fVertexZ",";vertex z (cm)",51,-25.5,25.5);
  fOutput->Add(fHists[1]);
  fHists[2] = new TH1D("fVertexZnc",";vertex z (cm)",51,-25.5,25.5);
  fOutput->Add(fHists[2]);
  fHists[9] = new TProfile("fAccepted","",1,0.5,1.5);
  fOutput->Add(fHists[9]);
  fHists[10] = new TH1D("fV0ACent",";percentile",20,0,100);
  fOutput->Add(fHists[10]);
  fHists[11] = new TH1D("fZNACent",";percentile",20,0,100);
  fOutput->Add(fHists[11]);

  if (fDoTracking) {
    fHists[20] = new TH2D("fPhiEtaTracks",";#phi;#eta",60,0,TMath::TwoPi(),20,-2,2);
    fHists[20]->Sumw2();
    fOutput->Add(fHists[20]);
    fHists[21] = new TH2D("fPhiPtTracks",";#phi;p_{T} (GeV/c)",60,0,TMath::TwoPi(),40,0,20);
    fHists[21]->Sumw2();
    fOutput->Add(fHists[21]);
    fHists[22] = new TH2D("fEtaPtTracks",";#eta;p_{T} (GeV/c)",20,-2,2,40,0,20);
    fHists[22]->Sumw2();
    fOutput->Add(fHists[22]);
    fHists[23] = new TH2D("fPtV0ATracks",";#p_{T} (GeV/c);percentile",100,0,20,20,0,100);
    fHists[23]->Sumw2();
    fOutput->Add(fHists[23]);
    fHists[24] = new TH2D("fPtZNATracks",";#p_{T} (GeV/c);percentile",100,0,20,20,0,100);
    fHists[24]->Sumw2();
    fOutput->Add(fHists[24]);
    fHists[25] = new TH2D("fPhiPtTracks_type0",";#phi;p_{T} (GeV/c)",60,0,TMath::TwoPi(),40,0,20);
    fHists[25]->Sumw2();
    fOutput->Add(fHists[25]);
    fHists[26] = new TH2D("fPhiPtTracks_type1",";#phi;p_{T} (GeV/c)",60,0,TMath::TwoPi(),40,0,20);
    fHists[26]->Sumw2();
    fOutput->Add(fHists[26]);
    fHists[27] = new TH2D("fPhiPtTracks_type2",";#phi;p_{T} (GeV/c)",60,0,TMath::TwoPi(),40,0,20);
    fHists[27]->Sumw2();
    fOutput->Add(fHists[27]);
    fHists[28] = new TH2D("fDPhiPtTracks",";#Delta#phi;p_{T} (GeV/c)",60,-TMath::Pi(),TMath::Pi(),40,0,20);
    fHists[28]->Sumw2();
    fOutput->Add(fHists[28]);
  }

  if (fDoMuonTracking) {
    fHists[50] = new TH2D("fPhiEtaMuonTracks",";#phi;#eta",60,0,TMath::TwoPi(),15,-4,-2.5);
    fHists[50]->Sumw2();
    fOutput->Add(fHists[50]);
    fHists[51] = new TH2D("fPhiPtMuonTracks",";#phi;p_{T} (GeV/c)",60,0,TMath::TwoPi(),200,0,20);
    fHists[51]->Sumw2();
    fOutput->Add(fHists[51]);
    fHists[52] = new TH2D("fEtaPtMuonTracks",";#eta;p_{T} (GeV/c)",15,-4,-2.5,200,0,20);
    fHists[52]->Sumw2();
    fOutput->Add(fHists[52]);
    fHists[53] = new TH2D("fPtV0AMuonTracks",";#p_{T} (GeV/c);percentile",100,0,10,20,0,100);
    fHists[53]->Sumw2();
    fOutput->Add(fHists[53]);
    fHists[54] = new TH2D("fPtZNAMuonTracks",";#p_{T} (GeV/c);percentile",100,0,10,20,0,100);
    fHists[54]->Sumw2();
    fOutput->Add(fHists[54]);
  }

  if (fDoCumulants) {
    fHists[100] = new TH3D("fCumPhiEtaCl1",";#Delta#phi;#Delta#eta",32,-TMath::Pi()/2,3*TMath::Pi()/2,60,-3,3,10,0,100);
    fOutput->Add(fHists[100]);
    fHists[101] = new TH3D("fCumPhiEtaV0A",";#Delta#phi;#Delta#eta",32,-TMath::Pi()/2,3*TMath::Pi()/2,60,-3,3,10,0,100);
    fOutput->Add(fHists[101]);
    fHists[102] = new TH3D("fCumPhiEtaZNA",";#Delta#phi;#Delta#eta",32,-TMath::Pi()/2,3*TMath::Pi()/2,60,-3,3,10,0,100);
    fOutput->Add(fHists[102]);
    fHists[103] = new TH3D("fCumPtEtaCl1",";p_{T} (GeV/c);#eta",100,0,25,20,-2,2,10,0,100);
    fOutput->Add(fHists[103]);
    fHists[104] = new TH3D("fCumPtEtaV0A",";p_{T} (GeV/c);#eta",100,0,25,20,-2,2,10,0,100);
    fOutput->Add(fHists[104]);
    fHists[105] = new TH3D("fCumPtEtaZNA",";p_{T} (GeV/c);#eta",100,0,25,20,-2,2,10,0,100);
    fOutput->Add(fHists[105]);
    fHists[106] = new TH1D("fCumCL1MC",";#tracks",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[106]);
    fHists[107] = new TH1D("fCumV0AMC",";#tracks",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[107]);
    fHists[108] = new TH1D("fCumV0CMC",";#tracks",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[108]);
    fHists[109] = new TH1D("fCumCl1Cent",";percentile",10,0,100);
    fOutput->Add(fHists[109]);
    fHists[110] = new TH1D("fCumV0ACent",";percentile",10,0,100);
    fOutput->Add(fHists[110]);
    fHists[111] = new TH1D("fCumZNACent",";percentile",10,0,100);
    fOutput->Add(fHists[111]);
    fHists[112] = new TH1D("fCumMall",";mult",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[112]);
    fHists[113] = new TH1D("fCumM",";mult",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[113]);
    fHists[114] = new TProfile("fCumQC2",";qc2",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[114]);
    fHists[115] = new TProfile("fCumQC4",";qc4",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[115]);
    fHists[116] = new TProfile("fCumQC6",";qc6",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[116]);
    Int_t v0bins=1000;
    if (fCumMbins>1000)
      v0bins=25000;
    fHists[117] = new TH2D("fCumV0ACentVsM",";v0a;M",v0bins,0,v0bins,fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[117]);
    fHists[118] = new TH2D("fCumV0CCentVsM",";v0c;M",v0bins,0,v0bins,fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[118]);
    fHists[119] = new TH2D("fCumV0MCentVsM",";v0m;M",v0bins,0,v0bins,fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[119]);
    fHists[120] = new TProfile("fCum3QC2",";qc2",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[120]);
    fHists[121] = new TProfile("fCum3QC4",";qc4",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[121]);
    fHists[122] = new TProfile("fEtaGapV2",";M",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[122]);
    fHists[123] = new TProfile("fEtaGapV3",";M",fCumMbins,0,fCumMbins);
    fOutput->Add(fHists[123]);

    fNtupCum = new TTree("NtupCum", "Ntuple for cumulant analysis");
    if (1) {
      fNtupCum->SetDirectory(0);
    } else {
      TFile *f = OpenFile(1); 
      if (f) {
	f->SetCompressionLevel(2);
	fNtupCum->SetDirectory(f);
	fNtupCum->SetAutoFlush(-4*1024*1024);
	fNtupCum->SetAutoSave(0);
      }
    }
    fNtupCumInfo = new AliNtupCumInfo;
    fNtupCum->Branch("cumulants", &fNtupCumInfo, 32*1024, 99);
    fNtupZdcInfo = new AliNtupZdcInfo;
    fNtupCum->Branch("zdc", &fNtupZdcInfo, 32*1024, 99);
    if (fDoCumNtuple)
      fOutput->Add(fNtupCum);
  }

  PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
}
 AliAnalysisTaskCLQA.cxx:1
 AliAnalysisTaskCLQA.cxx:2
 AliAnalysisTaskCLQA.cxx:3
 AliAnalysisTaskCLQA.cxx:4
 AliAnalysisTaskCLQA.cxx:5
 AliAnalysisTaskCLQA.cxx:6
 AliAnalysisTaskCLQA.cxx:7
 AliAnalysisTaskCLQA.cxx:8
 AliAnalysisTaskCLQA.cxx:9
 AliAnalysisTaskCLQA.cxx:10
 AliAnalysisTaskCLQA.cxx:11
 AliAnalysisTaskCLQA.cxx:12
 AliAnalysisTaskCLQA.cxx:13
 AliAnalysisTaskCLQA.cxx:14
 AliAnalysisTaskCLQA.cxx:15
 AliAnalysisTaskCLQA.cxx:16
 AliAnalysisTaskCLQA.cxx:17
 AliAnalysisTaskCLQA.cxx:18
 AliAnalysisTaskCLQA.cxx:19
 AliAnalysisTaskCLQA.cxx:20
 AliAnalysisTaskCLQA.cxx:21
 AliAnalysisTaskCLQA.cxx:22
 AliAnalysisTaskCLQA.cxx:23
 AliAnalysisTaskCLQA.cxx:24
 AliAnalysisTaskCLQA.cxx:25
 AliAnalysisTaskCLQA.cxx:26
 AliAnalysisTaskCLQA.cxx:27
 AliAnalysisTaskCLQA.cxx:28
 AliAnalysisTaskCLQA.cxx:29
 AliAnalysisTaskCLQA.cxx:30
 AliAnalysisTaskCLQA.cxx:31
 AliAnalysisTaskCLQA.cxx:32
 AliAnalysisTaskCLQA.cxx:33
 AliAnalysisTaskCLQA.cxx:34
 AliAnalysisTaskCLQA.cxx:35
 AliAnalysisTaskCLQA.cxx:36
 AliAnalysisTaskCLQA.cxx:37
 AliAnalysisTaskCLQA.cxx:38
 AliAnalysisTaskCLQA.cxx:39
 AliAnalysisTaskCLQA.cxx:40
 AliAnalysisTaskCLQA.cxx:41
 AliAnalysisTaskCLQA.cxx:42
 AliAnalysisTaskCLQA.cxx:43
 AliAnalysisTaskCLQA.cxx:44
 AliAnalysisTaskCLQA.cxx:45
 AliAnalysisTaskCLQA.cxx:46
 AliAnalysisTaskCLQA.cxx:47
 AliAnalysisTaskCLQA.cxx:48
 AliAnalysisTaskCLQA.cxx:49
 AliAnalysisTaskCLQA.cxx:50
 AliAnalysisTaskCLQA.cxx:51
 AliAnalysisTaskCLQA.cxx:52
 AliAnalysisTaskCLQA.cxx:53
 AliAnalysisTaskCLQA.cxx:54
 AliAnalysisTaskCLQA.cxx:55
 AliAnalysisTaskCLQA.cxx:56
 AliAnalysisTaskCLQA.cxx:57
 AliAnalysisTaskCLQA.cxx:58
 AliAnalysisTaskCLQA.cxx:59
 AliAnalysisTaskCLQA.cxx:60
 AliAnalysisTaskCLQA.cxx:61
 AliAnalysisTaskCLQA.cxx:62
 AliAnalysisTaskCLQA.cxx:63
 AliAnalysisTaskCLQA.cxx:64
 AliAnalysisTaskCLQA.cxx:65
 AliAnalysisTaskCLQA.cxx:66
 AliAnalysisTaskCLQA.cxx:67
 AliAnalysisTaskCLQA.cxx:68
 AliAnalysisTaskCLQA.cxx:69
 AliAnalysisTaskCLQA.cxx:70
 AliAnalysisTaskCLQA.cxx:71
 AliAnalysisTaskCLQA.cxx:72
 AliAnalysisTaskCLQA.cxx:73
 AliAnalysisTaskCLQA.cxx:74
 AliAnalysisTaskCLQA.cxx:75
 AliAnalysisTaskCLQA.cxx:76
 AliAnalysisTaskCLQA.cxx:77
 AliAnalysisTaskCLQA.cxx:78
 AliAnalysisTaskCLQA.cxx:79
 AliAnalysisTaskCLQA.cxx:80
 AliAnalysisTaskCLQA.cxx:81
 AliAnalysisTaskCLQA.cxx:82
 AliAnalysisTaskCLQA.cxx:83
 AliAnalysisTaskCLQA.cxx:84
 AliAnalysisTaskCLQA.cxx:85
 AliAnalysisTaskCLQA.cxx:86
 AliAnalysisTaskCLQA.cxx:87
 AliAnalysisTaskCLQA.cxx:88
 AliAnalysisTaskCLQA.cxx:89
 AliAnalysisTaskCLQA.cxx:90
 AliAnalysisTaskCLQA.cxx:91
 AliAnalysisTaskCLQA.cxx:92
 AliAnalysisTaskCLQA.cxx:93
 AliAnalysisTaskCLQA.cxx:94
 AliAnalysisTaskCLQA.cxx:95
 AliAnalysisTaskCLQA.cxx:96
 AliAnalysisTaskCLQA.cxx:97
 AliAnalysisTaskCLQA.cxx:98
 AliAnalysisTaskCLQA.cxx:99
 AliAnalysisTaskCLQA.cxx:100
 AliAnalysisTaskCLQA.cxx:101
 AliAnalysisTaskCLQA.cxx:102
 AliAnalysisTaskCLQA.cxx:103
 AliAnalysisTaskCLQA.cxx:104
 AliAnalysisTaskCLQA.cxx:105
 AliAnalysisTaskCLQA.cxx:106
 AliAnalysisTaskCLQA.cxx:107
 AliAnalysisTaskCLQA.cxx:108
 AliAnalysisTaskCLQA.cxx:109
 AliAnalysisTaskCLQA.cxx:110
 AliAnalysisTaskCLQA.cxx:111
 AliAnalysisTaskCLQA.cxx:112
 AliAnalysisTaskCLQA.cxx:113
 AliAnalysisTaskCLQA.cxx:114
 AliAnalysisTaskCLQA.cxx:115
 AliAnalysisTaskCLQA.cxx:116
 AliAnalysisTaskCLQA.cxx:117
 AliAnalysisTaskCLQA.cxx:118
 AliAnalysisTaskCLQA.cxx:119
 AliAnalysisTaskCLQA.cxx:120
 AliAnalysisTaskCLQA.cxx:121
 AliAnalysisTaskCLQA.cxx:122
 AliAnalysisTaskCLQA.cxx:123
 AliAnalysisTaskCLQA.cxx:124
 AliAnalysisTaskCLQA.cxx:125
 AliAnalysisTaskCLQA.cxx:126
 AliAnalysisTaskCLQA.cxx:127
 AliAnalysisTaskCLQA.cxx:128
 AliAnalysisTaskCLQA.cxx:129
 AliAnalysisTaskCLQA.cxx:130
 AliAnalysisTaskCLQA.cxx:131
 AliAnalysisTaskCLQA.cxx:132
 AliAnalysisTaskCLQA.cxx:133
 AliAnalysisTaskCLQA.cxx:134
 AliAnalysisTaskCLQA.cxx:135
 AliAnalysisTaskCLQA.cxx:136
 AliAnalysisTaskCLQA.cxx:137
 AliAnalysisTaskCLQA.cxx:138
 AliAnalysisTaskCLQA.cxx:139
 AliAnalysisTaskCLQA.cxx:140
 AliAnalysisTaskCLQA.cxx:141
 AliAnalysisTaskCLQA.cxx:142
 AliAnalysisTaskCLQA.cxx:143
 AliAnalysisTaskCLQA.cxx:144
 AliAnalysisTaskCLQA.cxx:145
 AliAnalysisTaskCLQA.cxx:146
 AliAnalysisTaskCLQA.cxx:147
 AliAnalysisTaskCLQA.cxx:148
 AliAnalysisTaskCLQA.cxx:149
 AliAnalysisTaskCLQA.cxx:150
 AliAnalysisTaskCLQA.cxx:151
 AliAnalysisTaskCLQA.cxx:152
 AliAnalysisTaskCLQA.cxx:153
 AliAnalysisTaskCLQA.cxx:154
 AliAnalysisTaskCLQA.cxx:155
 AliAnalysisTaskCLQA.cxx:156
 AliAnalysisTaskCLQA.cxx:157
 AliAnalysisTaskCLQA.cxx:158
 AliAnalysisTaskCLQA.cxx:159
 AliAnalysisTaskCLQA.cxx:160
 AliAnalysisTaskCLQA.cxx:161
 AliAnalysisTaskCLQA.cxx:162
 AliAnalysisTaskCLQA.cxx:163
 AliAnalysisTaskCLQA.cxx:164
 AliAnalysisTaskCLQA.cxx:165
 AliAnalysisTaskCLQA.cxx:166
 AliAnalysisTaskCLQA.cxx:167
 AliAnalysisTaskCLQA.cxx:168
 AliAnalysisTaskCLQA.cxx:169
 AliAnalysisTaskCLQA.cxx:170
 AliAnalysisTaskCLQA.cxx:171
 AliAnalysisTaskCLQA.cxx:172
 AliAnalysisTaskCLQA.cxx:173
 AliAnalysisTaskCLQA.cxx:174
 AliAnalysisTaskCLQA.cxx:175
 AliAnalysisTaskCLQA.cxx:176
 AliAnalysisTaskCLQA.cxx:177
 AliAnalysisTaskCLQA.cxx:178
 AliAnalysisTaskCLQA.cxx:179
 AliAnalysisTaskCLQA.cxx:180
 AliAnalysisTaskCLQA.cxx:181
 AliAnalysisTaskCLQA.cxx:182
 AliAnalysisTaskCLQA.cxx:183
 AliAnalysisTaskCLQA.cxx:184
 AliAnalysisTaskCLQA.cxx:185
 AliAnalysisTaskCLQA.cxx:186
 AliAnalysisTaskCLQA.cxx:187
 AliAnalysisTaskCLQA.cxx:188
 AliAnalysisTaskCLQA.cxx:189
 AliAnalysisTaskCLQA.cxx:190
 AliAnalysisTaskCLQA.cxx:191
 AliAnalysisTaskCLQA.cxx:192
 AliAnalysisTaskCLQA.cxx:193
 AliAnalysisTaskCLQA.cxx:194
 AliAnalysisTaskCLQA.cxx:195
 AliAnalysisTaskCLQA.cxx:196
 AliAnalysisTaskCLQA.cxx:197
 AliAnalysisTaskCLQA.cxx:198
 AliAnalysisTaskCLQA.cxx:199
 AliAnalysisTaskCLQA.cxx:200
 AliAnalysisTaskCLQA.cxx:201
 AliAnalysisTaskCLQA.cxx:202
 AliAnalysisTaskCLQA.cxx:203
 AliAnalysisTaskCLQA.cxx:204
 AliAnalysisTaskCLQA.cxx:205
 AliAnalysisTaskCLQA.cxx:206
 AliAnalysisTaskCLQA.cxx:207
 AliAnalysisTaskCLQA.cxx:208
 AliAnalysisTaskCLQA.cxx:209
 AliAnalysisTaskCLQA.cxx:210
 AliAnalysisTaskCLQA.cxx:211
 AliAnalysisTaskCLQA.cxx:212
 AliAnalysisTaskCLQA.cxx:213
 AliAnalysisTaskCLQA.cxx:214
 AliAnalysisTaskCLQA.cxx:215
 AliAnalysisTaskCLQA.cxx:216
 AliAnalysisTaskCLQA.cxx:217
 AliAnalysisTaskCLQA.cxx:218
 AliAnalysisTaskCLQA.cxx:219
 AliAnalysisTaskCLQA.cxx:220
 AliAnalysisTaskCLQA.cxx:221
 AliAnalysisTaskCLQA.cxx:222
 AliAnalysisTaskCLQA.cxx:223
 AliAnalysisTaskCLQA.cxx:224
 AliAnalysisTaskCLQA.cxx:225
 AliAnalysisTaskCLQA.cxx:226
 AliAnalysisTaskCLQA.cxx:227
 AliAnalysisTaskCLQA.cxx:228
 AliAnalysisTaskCLQA.cxx:229
 AliAnalysisTaskCLQA.cxx:230
 AliAnalysisTaskCLQA.cxx:231
 AliAnalysisTaskCLQA.cxx:232
 AliAnalysisTaskCLQA.cxx:233
 AliAnalysisTaskCLQA.cxx:234
 AliAnalysisTaskCLQA.cxx:235
 AliAnalysisTaskCLQA.cxx:236
 AliAnalysisTaskCLQA.cxx:237
 AliAnalysisTaskCLQA.cxx:238
 AliAnalysisTaskCLQA.cxx:239
 AliAnalysisTaskCLQA.cxx:240
 AliAnalysisTaskCLQA.cxx:241
 AliAnalysisTaskCLQA.cxx:242
 AliAnalysisTaskCLQA.cxx:243
 AliAnalysisTaskCLQA.cxx:244
 AliAnalysisTaskCLQA.cxx:245
 AliAnalysisTaskCLQA.cxx:246
 AliAnalysisTaskCLQA.cxx:247
 AliAnalysisTaskCLQA.cxx:248
 AliAnalysisTaskCLQA.cxx:249
 AliAnalysisTaskCLQA.cxx:250
 AliAnalysisTaskCLQA.cxx:251
 AliAnalysisTaskCLQA.cxx:252
 AliAnalysisTaskCLQA.cxx:253
 AliAnalysisTaskCLQA.cxx:254
 AliAnalysisTaskCLQA.cxx:255
 AliAnalysisTaskCLQA.cxx:256
 AliAnalysisTaskCLQA.cxx:257
 AliAnalysisTaskCLQA.cxx:258
 AliAnalysisTaskCLQA.cxx:259
 AliAnalysisTaskCLQA.cxx:260
 AliAnalysisTaskCLQA.cxx:261
 AliAnalysisTaskCLQA.cxx:262
 AliAnalysisTaskCLQA.cxx:263
 AliAnalysisTaskCLQA.cxx:264
 AliAnalysisTaskCLQA.cxx:265
 AliAnalysisTaskCLQA.cxx:266
 AliAnalysisTaskCLQA.cxx:267
 AliAnalysisTaskCLQA.cxx:268
 AliAnalysisTaskCLQA.cxx:269
 AliAnalysisTaskCLQA.cxx:270
 AliAnalysisTaskCLQA.cxx:271
 AliAnalysisTaskCLQA.cxx:272
 AliAnalysisTaskCLQA.cxx:273
 AliAnalysisTaskCLQA.cxx:274
 AliAnalysisTaskCLQA.cxx:275
 AliAnalysisTaskCLQA.cxx:276
 AliAnalysisTaskCLQA.cxx:277
 AliAnalysisTaskCLQA.cxx:278
 AliAnalysisTaskCLQA.cxx:279
 AliAnalysisTaskCLQA.cxx:280
 AliAnalysisTaskCLQA.cxx:281
 AliAnalysisTaskCLQA.cxx:282
 AliAnalysisTaskCLQA.cxx:283
 AliAnalysisTaskCLQA.cxx:284
 AliAnalysisTaskCLQA.cxx:285
 AliAnalysisTaskCLQA.cxx:286
 AliAnalysisTaskCLQA.cxx:287
 AliAnalysisTaskCLQA.cxx:288
 AliAnalysisTaskCLQA.cxx:289
 AliAnalysisTaskCLQA.cxx:290
 AliAnalysisTaskCLQA.cxx:291
 AliAnalysisTaskCLQA.cxx:292
 AliAnalysisTaskCLQA.cxx:293
 AliAnalysisTaskCLQA.cxx:294
 AliAnalysisTaskCLQA.cxx:295
 AliAnalysisTaskCLQA.cxx:296
 AliAnalysisTaskCLQA.cxx:297
 AliAnalysisTaskCLQA.cxx:298
 AliAnalysisTaskCLQA.cxx:299
 AliAnalysisTaskCLQA.cxx:300
 AliAnalysisTaskCLQA.cxx:301
 AliAnalysisTaskCLQA.cxx:302
 AliAnalysisTaskCLQA.cxx:303
 AliAnalysisTaskCLQA.cxx:304
 AliAnalysisTaskCLQA.cxx:305
 AliAnalysisTaskCLQA.cxx:306
 AliAnalysisTaskCLQA.cxx:307
 AliAnalysisTaskCLQA.cxx:308
 AliAnalysisTaskCLQA.cxx:309
 AliAnalysisTaskCLQA.cxx:310
 AliAnalysisTaskCLQA.cxx:311
 AliAnalysisTaskCLQA.cxx:312
 AliAnalysisTaskCLQA.cxx:313
 AliAnalysisTaskCLQA.cxx:314
 AliAnalysisTaskCLQA.cxx:315
 AliAnalysisTaskCLQA.cxx:316
 AliAnalysisTaskCLQA.cxx:317
 AliAnalysisTaskCLQA.cxx:318
 AliAnalysisTaskCLQA.cxx:319
 AliAnalysisTaskCLQA.cxx:320
 AliAnalysisTaskCLQA.cxx:321
 AliAnalysisTaskCLQA.cxx:322
 AliAnalysisTaskCLQA.cxx:323
 AliAnalysisTaskCLQA.cxx:324
 AliAnalysisTaskCLQA.cxx:325
 AliAnalysisTaskCLQA.cxx:326
 AliAnalysisTaskCLQA.cxx:327
 AliAnalysisTaskCLQA.cxx:328
 AliAnalysisTaskCLQA.cxx:329
 AliAnalysisTaskCLQA.cxx:330
 AliAnalysisTaskCLQA.cxx:331
 AliAnalysisTaskCLQA.cxx:332
 AliAnalysisTaskCLQA.cxx:333
 AliAnalysisTaskCLQA.cxx:334
 AliAnalysisTaskCLQA.cxx:335
 AliAnalysisTaskCLQA.cxx:336
 AliAnalysisTaskCLQA.cxx:337
 AliAnalysisTaskCLQA.cxx:338
 AliAnalysisTaskCLQA.cxx:339
 AliAnalysisTaskCLQA.cxx:340
 AliAnalysisTaskCLQA.cxx:341
 AliAnalysisTaskCLQA.cxx:342
 AliAnalysisTaskCLQA.cxx:343
 AliAnalysisTaskCLQA.cxx:344
 AliAnalysisTaskCLQA.cxx:345
 AliAnalysisTaskCLQA.cxx:346
 AliAnalysisTaskCLQA.cxx:347
 AliAnalysisTaskCLQA.cxx:348
 AliAnalysisTaskCLQA.cxx:349
 AliAnalysisTaskCLQA.cxx:350
 AliAnalysisTaskCLQA.cxx:351
 AliAnalysisTaskCLQA.cxx:352
 AliAnalysisTaskCLQA.cxx:353
 AliAnalysisTaskCLQA.cxx:354
 AliAnalysisTaskCLQA.cxx:355
 AliAnalysisTaskCLQA.cxx:356
 AliAnalysisTaskCLQA.cxx:357
 AliAnalysisTaskCLQA.cxx:358
 AliAnalysisTaskCLQA.cxx:359
 AliAnalysisTaskCLQA.cxx:360
 AliAnalysisTaskCLQA.cxx:361
 AliAnalysisTaskCLQA.cxx:362
 AliAnalysisTaskCLQA.cxx:363
 AliAnalysisTaskCLQA.cxx:364
 AliAnalysisTaskCLQA.cxx:365
 AliAnalysisTaskCLQA.cxx:366
 AliAnalysisTaskCLQA.cxx:367
 AliAnalysisTaskCLQA.cxx:368
 AliAnalysisTaskCLQA.cxx:369
 AliAnalysisTaskCLQA.cxx:370
 AliAnalysisTaskCLQA.cxx:371
 AliAnalysisTaskCLQA.cxx:372
 AliAnalysisTaskCLQA.cxx:373
 AliAnalysisTaskCLQA.cxx:374
 AliAnalysisTaskCLQA.cxx:375
 AliAnalysisTaskCLQA.cxx:376
 AliAnalysisTaskCLQA.cxx:377
 AliAnalysisTaskCLQA.cxx:378
 AliAnalysisTaskCLQA.cxx:379
 AliAnalysisTaskCLQA.cxx:380
 AliAnalysisTaskCLQA.cxx:381
 AliAnalysisTaskCLQA.cxx:382
 AliAnalysisTaskCLQA.cxx:383
 AliAnalysisTaskCLQA.cxx:384
 AliAnalysisTaskCLQA.cxx:385
 AliAnalysisTaskCLQA.cxx:386
 AliAnalysisTaskCLQA.cxx:387
 AliAnalysisTaskCLQA.cxx:388
 AliAnalysisTaskCLQA.cxx:389
 AliAnalysisTaskCLQA.cxx:390
 AliAnalysisTaskCLQA.cxx:391
 AliAnalysisTaskCLQA.cxx:392
 AliAnalysisTaskCLQA.cxx:393
 AliAnalysisTaskCLQA.cxx:394
 AliAnalysisTaskCLQA.cxx:395
 AliAnalysisTaskCLQA.cxx:396
 AliAnalysisTaskCLQA.cxx:397
 AliAnalysisTaskCLQA.cxx:398
 AliAnalysisTaskCLQA.cxx:399
 AliAnalysisTaskCLQA.cxx:400
 AliAnalysisTaskCLQA.cxx:401
 AliAnalysisTaskCLQA.cxx:402
 AliAnalysisTaskCLQA.cxx:403
 AliAnalysisTaskCLQA.cxx:404
 AliAnalysisTaskCLQA.cxx:405
 AliAnalysisTaskCLQA.cxx:406
 AliAnalysisTaskCLQA.cxx:407
 AliAnalysisTaskCLQA.cxx:408
 AliAnalysisTaskCLQA.cxx:409
 AliAnalysisTaskCLQA.cxx:410
 AliAnalysisTaskCLQA.cxx:411
 AliAnalysisTaskCLQA.cxx:412
 AliAnalysisTaskCLQA.cxx:413
 AliAnalysisTaskCLQA.cxx:414
 AliAnalysisTaskCLQA.cxx:415
 AliAnalysisTaskCLQA.cxx:416
 AliAnalysisTaskCLQA.cxx:417
 AliAnalysisTaskCLQA.cxx:418
 AliAnalysisTaskCLQA.cxx:419
 AliAnalysisTaskCLQA.cxx:420
 AliAnalysisTaskCLQA.cxx:421
 AliAnalysisTaskCLQA.cxx:422
 AliAnalysisTaskCLQA.cxx:423
 AliAnalysisTaskCLQA.cxx:424
 AliAnalysisTaskCLQA.cxx:425
 AliAnalysisTaskCLQA.cxx:426
 AliAnalysisTaskCLQA.cxx:427
 AliAnalysisTaskCLQA.cxx:428
 AliAnalysisTaskCLQA.cxx:429
 AliAnalysisTaskCLQA.cxx:430
 AliAnalysisTaskCLQA.cxx:431
 AliAnalysisTaskCLQA.cxx:432
 AliAnalysisTaskCLQA.cxx:433
 AliAnalysisTaskCLQA.cxx:434
 AliAnalysisTaskCLQA.cxx:435
 AliAnalysisTaskCLQA.cxx:436
 AliAnalysisTaskCLQA.cxx:437
 AliAnalysisTaskCLQA.cxx:438
 AliAnalysisTaskCLQA.cxx:439
 AliAnalysisTaskCLQA.cxx:440
 AliAnalysisTaskCLQA.cxx:441
 AliAnalysisTaskCLQA.cxx:442
 AliAnalysisTaskCLQA.cxx:443
 AliAnalysisTaskCLQA.cxx:444
 AliAnalysisTaskCLQA.cxx:445
 AliAnalysisTaskCLQA.cxx:446
 AliAnalysisTaskCLQA.cxx:447
 AliAnalysisTaskCLQA.cxx:448
 AliAnalysisTaskCLQA.cxx:449
 AliAnalysisTaskCLQA.cxx:450
 AliAnalysisTaskCLQA.cxx:451
 AliAnalysisTaskCLQA.cxx:452
 AliAnalysisTaskCLQA.cxx:453
 AliAnalysisTaskCLQA.cxx:454
 AliAnalysisTaskCLQA.cxx:455
 AliAnalysisTaskCLQA.cxx:456
 AliAnalysisTaskCLQA.cxx:457
 AliAnalysisTaskCLQA.cxx:458
 AliAnalysisTaskCLQA.cxx:459
 AliAnalysisTaskCLQA.cxx:460
 AliAnalysisTaskCLQA.cxx:461
 AliAnalysisTaskCLQA.cxx:462
 AliAnalysisTaskCLQA.cxx:463
 AliAnalysisTaskCLQA.cxx:464
 AliAnalysisTaskCLQA.cxx:465
 AliAnalysisTaskCLQA.cxx:466
 AliAnalysisTaskCLQA.cxx:467
 AliAnalysisTaskCLQA.cxx:468
 AliAnalysisTaskCLQA.cxx:469
 AliAnalysisTaskCLQA.cxx:470
 AliAnalysisTaskCLQA.cxx:471
 AliAnalysisTaskCLQA.cxx:472
 AliAnalysisTaskCLQA.cxx:473
 AliAnalysisTaskCLQA.cxx:474
 AliAnalysisTaskCLQA.cxx:475
 AliAnalysisTaskCLQA.cxx:476
 AliAnalysisTaskCLQA.cxx:477
 AliAnalysisTaskCLQA.cxx:478
 AliAnalysisTaskCLQA.cxx:479
 AliAnalysisTaskCLQA.cxx:480
 AliAnalysisTaskCLQA.cxx:481
 AliAnalysisTaskCLQA.cxx:482
 AliAnalysisTaskCLQA.cxx:483
 AliAnalysisTaskCLQA.cxx:484
 AliAnalysisTaskCLQA.cxx:485
 AliAnalysisTaskCLQA.cxx:486
 AliAnalysisTaskCLQA.cxx:487
 AliAnalysisTaskCLQA.cxx:488
 AliAnalysisTaskCLQA.cxx:489
 AliAnalysisTaskCLQA.cxx:490
 AliAnalysisTaskCLQA.cxx:491
 AliAnalysisTaskCLQA.cxx:492
 AliAnalysisTaskCLQA.cxx:493
 AliAnalysisTaskCLQA.cxx:494
 AliAnalysisTaskCLQA.cxx:495
 AliAnalysisTaskCLQA.cxx:496
 AliAnalysisTaskCLQA.cxx:497
 AliAnalysisTaskCLQA.cxx:498
 AliAnalysisTaskCLQA.cxx:499
 AliAnalysisTaskCLQA.cxx:500
 AliAnalysisTaskCLQA.cxx:501
 AliAnalysisTaskCLQA.cxx:502
 AliAnalysisTaskCLQA.cxx:503
 AliAnalysisTaskCLQA.cxx:504
 AliAnalysisTaskCLQA.cxx:505
 AliAnalysisTaskCLQA.cxx:506
 AliAnalysisTaskCLQA.cxx:507
 AliAnalysisTaskCLQA.cxx:508
 AliAnalysisTaskCLQA.cxx:509
 AliAnalysisTaskCLQA.cxx:510
 AliAnalysisTaskCLQA.cxx:511
 AliAnalysisTaskCLQA.cxx:512
 AliAnalysisTaskCLQA.cxx:513
 AliAnalysisTaskCLQA.cxx:514
 AliAnalysisTaskCLQA.cxx:515
 AliAnalysisTaskCLQA.cxx:516
 AliAnalysisTaskCLQA.cxx:517
 AliAnalysisTaskCLQA.cxx:518
 AliAnalysisTaskCLQA.cxx:519
 AliAnalysisTaskCLQA.cxx:520
 AliAnalysisTaskCLQA.cxx:521
 AliAnalysisTaskCLQA.cxx:522
 AliAnalysisTaskCLQA.cxx:523
 AliAnalysisTaskCLQA.cxx:524
 AliAnalysisTaskCLQA.cxx:525
 AliAnalysisTaskCLQA.cxx:526
 AliAnalysisTaskCLQA.cxx:527
 AliAnalysisTaskCLQA.cxx:528
 AliAnalysisTaskCLQA.cxx:529
 AliAnalysisTaskCLQA.cxx:530
 AliAnalysisTaskCLQA.cxx:531
 AliAnalysisTaskCLQA.cxx:532
 AliAnalysisTaskCLQA.cxx:533
 AliAnalysisTaskCLQA.cxx:534
 AliAnalysisTaskCLQA.cxx:535
 AliAnalysisTaskCLQA.cxx:536
 AliAnalysisTaskCLQA.cxx:537
 AliAnalysisTaskCLQA.cxx:538
 AliAnalysisTaskCLQA.cxx:539
 AliAnalysisTaskCLQA.cxx:540
 AliAnalysisTaskCLQA.cxx:541
 AliAnalysisTaskCLQA.cxx:542
 AliAnalysisTaskCLQA.cxx:543
 AliAnalysisTaskCLQA.cxx:544
 AliAnalysisTaskCLQA.cxx:545
 AliAnalysisTaskCLQA.cxx:546
 AliAnalysisTaskCLQA.cxx:547
 AliAnalysisTaskCLQA.cxx:548
 AliAnalysisTaskCLQA.cxx:549
 AliAnalysisTaskCLQA.cxx:550
 AliAnalysisTaskCLQA.cxx:551
 AliAnalysisTaskCLQA.cxx:552
 AliAnalysisTaskCLQA.cxx:553
 AliAnalysisTaskCLQA.cxx:554
 AliAnalysisTaskCLQA.cxx:555
 AliAnalysisTaskCLQA.cxx:556
 AliAnalysisTaskCLQA.cxx:557
 AliAnalysisTaskCLQA.cxx:558
 AliAnalysisTaskCLQA.cxx:559
 AliAnalysisTaskCLQA.cxx:560
 AliAnalysisTaskCLQA.cxx:561
 AliAnalysisTaskCLQA.cxx:562
 AliAnalysisTaskCLQA.cxx:563
 AliAnalysisTaskCLQA.cxx:564
 AliAnalysisTaskCLQA.cxx:565
 AliAnalysisTaskCLQA.cxx:566
 AliAnalysisTaskCLQA.cxx:567
 AliAnalysisTaskCLQA.cxx:568
 AliAnalysisTaskCLQA.cxx:569
 AliAnalysisTaskCLQA.cxx:570
 AliAnalysisTaskCLQA.cxx:571
 AliAnalysisTaskCLQA.cxx:572
 AliAnalysisTaskCLQA.cxx:573
 AliAnalysisTaskCLQA.cxx:574
 AliAnalysisTaskCLQA.cxx:575
 AliAnalysisTaskCLQA.cxx:576
 AliAnalysisTaskCLQA.cxx:577
 AliAnalysisTaskCLQA.cxx:578
 AliAnalysisTaskCLQA.cxx:579
 AliAnalysisTaskCLQA.cxx:580
 AliAnalysisTaskCLQA.cxx:581
 AliAnalysisTaskCLQA.cxx:582
 AliAnalysisTaskCLQA.cxx:583
 AliAnalysisTaskCLQA.cxx:584
 AliAnalysisTaskCLQA.cxx:585
 AliAnalysisTaskCLQA.cxx:586
 AliAnalysisTaskCLQA.cxx:587
 AliAnalysisTaskCLQA.cxx:588
 AliAnalysisTaskCLQA.cxx:589
 AliAnalysisTaskCLQA.cxx:590
 AliAnalysisTaskCLQA.cxx:591
 AliAnalysisTaskCLQA.cxx:592
 AliAnalysisTaskCLQA.cxx:593
 AliAnalysisTaskCLQA.cxx:594
 AliAnalysisTaskCLQA.cxx:595
 AliAnalysisTaskCLQA.cxx:596
 AliAnalysisTaskCLQA.cxx:597
 AliAnalysisTaskCLQA.cxx:598
 AliAnalysisTaskCLQA.cxx:599
 AliAnalysisTaskCLQA.cxx:600
 AliAnalysisTaskCLQA.cxx:601
 AliAnalysisTaskCLQA.cxx:602
 AliAnalysisTaskCLQA.cxx:603
 AliAnalysisTaskCLQA.cxx:604
 AliAnalysisTaskCLQA.cxx:605
 AliAnalysisTaskCLQA.cxx:606
 AliAnalysisTaskCLQA.cxx:607
 AliAnalysisTaskCLQA.cxx:608
 AliAnalysisTaskCLQA.cxx:609
 AliAnalysisTaskCLQA.cxx:610
 AliAnalysisTaskCLQA.cxx:611
 AliAnalysisTaskCLQA.cxx:612
 AliAnalysisTaskCLQA.cxx:613
 AliAnalysisTaskCLQA.cxx:614
 AliAnalysisTaskCLQA.cxx:615
 AliAnalysisTaskCLQA.cxx:616
 AliAnalysisTaskCLQA.cxx:617
 AliAnalysisTaskCLQA.cxx:618
 AliAnalysisTaskCLQA.cxx:619
 AliAnalysisTaskCLQA.cxx:620
 AliAnalysisTaskCLQA.cxx:621
 AliAnalysisTaskCLQA.cxx:622
 AliAnalysisTaskCLQA.cxx:623
 AliAnalysisTaskCLQA.cxx:624
 AliAnalysisTaskCLQA.cxx:625
 AliAnalysisTaskCLQA.cxx:626
 AliAnalysisTaskCLQA.cxx:627
 AliAnalysisTaskCLQA.cxx:628
 AliAnalysisTaskCLQA.cxx:629
 AliAnalysisTaskCLQA.cxx:630
 AliAnalysisTaskCLQA.cxx:631
 AliAnalysisTaskCLQA.cxx:632
 AliAnalysisTaskCLQA.cxx:633
 AliAnalysisTaskCLQA.cxx:634
 AliAnalysisTaskCLQA.cxx:635
 AliAnalysisTaskCLQA.cxx:636
 AliAnalysisTaskCLQA.cxx:637
 AliAnalysisTaskCLQA.cxx:638
 AliAnalysisTaskCLQA.cxx:639
 AliAnalysisTaskCLQA.cxx:640
 AliAnalysisTaskCLQA.cxx:641
 AliAnalysisTaskCLQA.cxx:642
 AliAnalysisTaskCLQA.cxx:643
 AliAnalysisTaskCLQA.cxx:644
 AliAnalysisTaskCLQA.cxx:645
 AliAnalysisTaskCLQA.cxx:646
 AliAnalysisTaskCLQA.cxx:647
 AliAnalysisTaskCLQA.cxx:648
 AliAnalysisTaskCLQA.cxx:649
 AliAnalysisTaskCLQA.cxx:650
 AliAnalysisTaskCLQA.cxx:651
 AliAnalysisTaskCLQA.cxx:652
 AliAnalysisTaskCLQA.cxx:653
 AliAnalysisTaskCLQA.cxx:654
 AliAnalysisTaskCLQA.cxx:655
 AliAnalysisTaskCLQA.cxx:656
 AliAnalysisTaskCLQA.cxx:657
 AliAnalysisTaskCLQA.cxx:658
 AliAnalysisTaskCLQA.cxx:659
 AliAnalysisTaskCLQA.cxx:660
 AliAnalysisTaskCLQA.cxx:661
 AliAnalysisTaskCLQA.cxx:662
 AliAnalysisTaskCLQA.cxx:663
 AliAnalysisTaskCLQA.cxx:664
 AliAnalysisTaskCLQA.cxx:665
 AliAnalysisTaskCLQA.cxx:666
 AliAnalysisTaskCLQA.cxx:667
 AliAnalysisTaskCLQA.cxx:668
 AliAnalysisTaskCLQA.cxx:669
 AliAnalysisTaskCLQA.cxx:670
 AliAnalysisTaskCLQA.cxx:671
 AliAnalysisTaskCLQA.cxx:672
 AliAnalysisTaskCLQA.cxx:673
 AliAnalysisTaskCLQA.cxx:674
 AliAnalysisTaskCLQA.cxx:675
 AliAnalysisTaskCLQA.cxx:676
 AliAnalysisTaskCLQA.cxx:677
 AliAnalysisTaskCLQA.cxx:678
 AliAnalysisTaskCLQA.cxx:679
 AliAnalysisTaskCLQA.cxx:680
 AliAnalysisTaskCLQA.cxx:681
 AliAnalysisTaskCLQA.cxx:682
 AliAnalysisTaskCLQA.cxx:683
 AliAnalysisTaskCLQA.cxx:684
 AliAnalysisTaskCLQA.cxx:685
 AliAnalysisTaskCLQA.cxx:686
 AliAnalysisTaskCLQA.cxx:687
 AliAnalysisTaskCLQA.cxx:688
 AliAnalysisTaskCLQA.cxx:689
 AliAnalysisTaskCLQA.cxx:690
 AliAnalysisTaskCLQA.cxx:691
 AliAnalysisTaskCLQA.cxx:692
 AliAnalysisTaskCLQA.cxx:693
 AliAnalysisTaskCLQA.cxx:694
 AliAnalysisTaskCLQA.cxx:695
 AliAnalysisTaskCLQA.cxx:696
 AliAnalysisTaskCLQA.cxx:697
 AliAnalysisTaskCLQA.cxx:698
 AliAnalysisTaskCLQA.cxx:699
 AliAnalysisTaskCLQA.cxx:700
 AliAnalysisTaskCLQA.cxx:701
 AliAnalysisTaskCLQA.cxx:702
 AliAnalysisTaskCLQA.cxx:703
 AliAnalysisTaskCLQA.cxx:704
 AliAnalysisTaskCLQA.cxx:705
 AliAnalysisTaskCLQA.cxx:706
 AliAnalysisTaskCLQA.cxx:707
 AliAnalysisTaskCLQA.cxx:708
 AliAnalysisTaskCLQA.cxx:709
 AliAnalysisTaskCLQA.cxx:710
 AliAnalysisTaskCLQA.cxx:711
 AliAnalysisTaskCLQA.cxx:712
 AliAnalysisTaskCLQA.cxx:713
 AliAnalysisTaskCLQA.cxx:714
 AliAnalysisTaskCLQA.cxx:715
 AliAnalysisTaskCLQA.cxx:716
 AliAnalysisTaskCLQA.cxx:717
 AliAnalysisTaskCLQA.cxx:718
 AliAnalysisTaskCLQA.cxx:719