ROOT logo
// $Id$
//
// Base class for rho mass calculation.
// Calculates parameterized rho mass for given centrality independent of input.
//
// Author: M. Verweij. Similar to AliAnalysisTaskRhoBase

#include <TF1.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TClonesArray.h>

#include "AliLog.h"
#include "AliRhoParameter.h"
#include "AliEmcalJet.h"
#include "AliParticleContainer.h"
#include "AliClusterContainer.h"

#include "AliAnalysisTaskRhoMassBase.h"

ClassImp(AliAnalysisTaskRhoMassBase)

//________________________________________________________________________
AliAnalysisTaskRhoMassBase::AliAnalysisTaskRhoMassBase() : 
  AliAnalysisTaskEmcalJet("AliAnalysisTaskRhoMassBase", kFALSE),
  fOutRhoMassName(),
  fOutRhoMassScaledName(),
  fCompareRhoMassName(),
  fCompareRhoMassScaledName(),
  fRhoMassFunction(0),
  fScaleFunction(0),
  fAttachToEvent(kTRUE),
  fOutRhoMass(0),
  fOutRhoMassScaled(0),
  fCompareRhoMass(0),
  fCompareRhoMassScaled(0),
  fHistJetMassvsCent(0),
  fHistRhoMassvsCent(0),
  fHistRhoMassScaledvsCent(0),
  fHistDeltaRhoMassvsCent(0),
  fHistDeltaRhoMassScalevsCent(0),
  fHistRhoMassvsNtrack(0),
  fHistRhoMassScaledvsNtrack(0),
  fHistDeltaRhoMassvsNtrack(0),
  fHistDeltaRhoMassScalevsNtrack(0),
  fHistRhoMassvsNcluster(0),
  fHistRhoMassScaledvsNcluster(0),
  fHistGammaVsNtrack(0)
{
  // Constructor.
}

//________________________________________________________________________
AliAnalysisTaskRhoMassBase::AliAnalysisTaskRhoMassBase(const char *name, Bool_t histo) :
  AliAnalysisTaskEmcalJet(name, histo),
  fOutRhoMassName(),
  fOutRhoMassScaledName(),
  fCompareRhoMassName(),
  fCompareRhoMassScaledName(),
  fRhoMassFunction(0),
  fScaleFunction(0),
  fAttachToEvent(kTRUE),
  fOutRhoMass(0),
  fOutRhoMassScaled(0),
  fCompareRhoMass(0),
  fCompareRhoMassScaled(0),
  fHistJetMassvsCent(0),
  fHistRhoMassvsCent(0),
  fHistRhoMassScaledvsCent(0),
  fHistDeltaRhoMassvsCent(0),
  fHistDeltaRhoMassScalevsCent(0),
  fHistRhoMassvsNtrack(0),
  fHistRhoMassScaledvsNtrack(0),
  fHistDeltaRhoMassvsNtrack(0),
  fHistDeltaRhoMassScalevsNtrack(0),
  fHistRhoMassvsNcluster(0),
  fHistRhoMassScaledvsNcluster(0),
  fHistGammaVsNtrack(0)
{
  // Constructor.

  SetMakeGeneralHistograms(histo);
}

//________________________________________________________________________
void AliAnalysisTaskRhoMassBase::UserCreateOutputObjects()
{
  // User create output objects, called at the beginning of the analysis.

  if (!fCreateHisto)
    return;

  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();

  const Int_t nBinsRhom = 200;
  const Double_t minRhom = 0.;
  const Double_t maxRhom = 20.;

  const Int_t nBinsM  = 100;
  const Double_t minM = -20.;
  const Double_t maxM = 80.;

  fHistRhoMassvsCent = new TH2F("fHistRhoMassvsCent", "fHistRhoMassvsCent", 101, -1,  100, nBinsRhom,minRhom,maxRhom);
  fHistRhoMassvsCent->GetXaxis()->SetTitle("Centrality (%)");
  fHistRhoMassvsCent->GetYaxis()->SetTitle("#rho_{m} (GeV/c * rad^{-1})");
  fOutput->Add(fHistRhoMassvsCent);

  if (fParticleCollArray.GetEntriesFast()>0) {
    fHistRhoMassvsNtrack = new TH2F("fHistRhoMassvsNtrack", "fHistRhoMassvsNtrack", 150, 0, 6000, nBinsRhom,minRhom,maxRhom);
    fHistRhoMassvsNtrack->GetXaxis()->SetTitle("No. of tracks");
    fHistRhoMassvsNtrack->GetYaxis()->SetTitle("#rho_{m} (GeV/c * rad^{-1})");
    fOutput->Add(fHistRhoMassvsNtrack);

    //fHistGammaVsNtrack
    fHistGammaVsNtrack = new TH2F("fHistGammaVsNtrack", "fHistGammaVsNtrack", 150, 0, 6000, 100,0.,10.);
    fHistGammaVsNtrack->GetXaxis()->SetTitle("No. of tracks");
    fHistGammaVsNtrack->GetYaxis()->SetTitle("#gamma = #LT E #GT / #LT M #GT");
    fOutput->Add(fHistGammaVsNtrack);
  }

  if (fClusterCollArray.GetEntriesFast()>0) {
    fHistRhoMassvsNcluster = new TH2F("fHistRhoMassvsNcluster", "fHistRhoMassvsNcluster", 50, 0, 1500, nBinsRhom,minRhom,maxRhom);
    fHistRhoMassvsNcluster->GetXaxis()->SetTitle("No. of tracks");
    fHistRhoMassvsNcluster->GetYaxis()->SetTitle("#rho_{m} (GeV/c * rad^{-1})");
    fOutput->Add(fHistRhoMassvsNcluster);
  }

  if (fJetCollArray.GetEntriesFast()>0) {
    fHistJetMassvsCent = new TH2F("fHistJetMassvsCent", "fHistJetMassvsCent", 101, -1,  100, nBinsM,minM,maxM);
    fHistJetMassvsCent->GetXaxis()->SetTitle("Centrality (%)");
    fHistJetMassvsCent->GetYaxis()->SetTitle("#it{M}_{jet} (GeV/c)");
    fOutput->Add(fHistJetMassvsCent);
  }
  
  if (!fCompareRhoMassName.IsNull()) {
    fHistDeltaRhoMassvsCent = new TH2F("fHistDeltaRhoMassvsCent", "fHistDeltaRhoMassvsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
    fHistDeltaRhoMassvsCent->GetXaxis()->SetTitle("Centrality (%)");
    fHistDeltaRhoMassvsCent->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
    fOutput->Add(fHistDeltaRhoMassvsCent);

    if (fParticleCollArray.GetEntriesFast()>0) {
      fHistDeltaRhoMassvsNtrack = new TH2F("fHistDeltaRhoMassvsNtrack", "fHistDeltaRhoMassvsNtrack", 150, 0, 6000, fNbins, -fMaxBinPt, fMaxBinPt);
      fHistDeltaRhoMassvsNtrack->GetXaxis()->SetTitle("No. of tracks");
      fHistDeltaRhoMassvsNtrack->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
      fOutput->Add(fHistDeltaRhoMassvsNtrack);
    }
  }

  if (fScaleFunction) {
    fHistRhoMassScaledvsCent = new TH2F("fHistRhoMassScaledvsCent", "fHistRhoMassScaledvsCent", 101, -1, 100, nBinsRhom,minRhom,maxRhom);
    fHistRhoMassScaledvsCent->GetXaxis()->SetTitle("Centrality (%)");
    fHistRhoMassScaledvsCent->GetYaxis()->SetTitle("#rho_{m,scaled} (GeV/c * rad^{-1})");
    fOutput->Add(fHistRhoMassScaledvsCent);

    if (fParticleCollArray.GetEntriesFast()>0) {
      fHistRhoMassScaledvsNtrack = new TH2F("fHistRhoMassScaledvsNtrack", "fHistRhoMassScaledvsNtrack", 150, 0, 6000, nBinsRhom,minRhom,maxRhom);
      fHistRhoMassScaledvsNtrack->GetXaxis()->SetTitle("No. of tracks");
      fHistRhoMassScaledvsNtrack->GetYaxis()->SetTitle("#rho_{m,scaled} (GeV/c * rad^{-1})");
      fOutput->Add(fHistRhoMassScaledvsNtrack);
    }

    if (fClusterCollArray.GetEntriesFast()>0) {
      fHistRhoMassScaledvsNcluster = new TH2F("fHistRhoMassScaledvsNcluster", "fHistRhoMassScaledvsNcluster", 50, 0, 1500, nBinsRhom,minRhom,maxRhom);
      fHistRhoMassScaledvsNcluster->GetXaxis()->SetTitle("No. of clusters");
      fHistRhoMassScaledvsNcluster->GetYaxis()->SetTitle("#rho_{m,scaled} (GeV/c * rad^{-1})");
      fOutput->Add(fHistRhoMassScaledvsNcluster);
    }

    if (!fCompareRhoMassScaledName.IsNull()) {
      fHistDeltaRhoMassScalevsCent = new TH2F("fHistDeltaRhoMassScalevsCent", "fHistDeltaRhoMassScalevsCent", 101, -1, 100, nBinsRhom,minRhom,maxRhom);
      fHistDeltaRhoMassScalevsCent->GetXaxis()->SetTitle("Centrality (%)");
      fHistDeltaRhoMassScalevsCent->GetYaxis()->SetTitle("#Delta#rho_{m,scaled} (GeV/c * rad^{-1})");
      fOutput->Add(fHistDeltaRhoMassScalevsCent);
      
      if (fParticleCollArray.GetEntriesFast()>0) {
	fHistDeltaRhoMassScalevsNtrack = new TH2F("fHistDeltaRhoMassScalevsNtrack", "fHistDeltaRhoMassScalevsNtrack", 150, 0, 6000, fNbins, -fMaxBinPt, fMaxBinPt);
	fHistDeltaRhoMassScalevsNtrack->GetXaxis()->SetTitle("No. of tracks");
	fHistDeltaRhoMassScalevsNtrack->GetYaxis()->SetTitle("#Delta#rho_{m,scaled} (GeV/c * rad^{-1})");
	fOutput->Add(fHistDeltaRhoMassScalevsNtrack);
      }
    }
  }
}

//________________________________________________________________________
Bool_t AliAnalysisTaskRhoMassBase::Run() 
{
  // Run the analysis.

  Double_t rhom = GetRhoMassFactor(fCent);
  fOutRhoMass->SetVal(rhom);

  if (fScaleFunction) {
    Double_t rhomScaled = rhom * GetScaleFactor(fCent);
    fOutRhoMassScaled->SetVal(rhomScaled);
  }

  return kTRUE;
}

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

  Int_t Ntracks   = 0;
  Int_t Nclusters = 0;

  if (GetParticleContainer(0))
    Ntracks = GetParticleContainer(0)->GetNAcceptedParticles();
  if (GetClusterContainer(0))
    Nclusters = GetClusterContainer(0)->GetNAcceptedClusters();

  if (fJets) {
    Int_t    Njets         = fJets->GetEntries();
    Int_t    NjetAcc       = 0;

    for (Int_t i = 0; i < Njets; ++i) {
      AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(i));
      if (!jet) {
	AliError(Form("%s: Could not receive jet %d", GetName(), i));
	continue;
      } 
      
      if (!AcceptJet(jet))
	continue;
      
      fHistJetMassvsCent->Fill(fCent, jet->M());
      NjetAcc++;
    }
  }
  
  fHistRhoMassvsCent->Fill(fCent, fOutRhoMass->GetVal());

  if (fTracks)
    fHistRhoMassvsNtrack->Fill(Ntracks, fOutRhoMass->GetVal());
  if (fCaloClusters)
    fHistRhoMassvsNcluster->Fill(Nclusters, fOutRhoMass->GetVal());
  if (fCompareRhoMass) {
    fHistDeltaRhoMassvsCent->Fill(fCent, fOutRhoMass->GetVal() - fCompareRhoMass->GetVal());
    if (fTracks)
      fHistDeltaRhoMassvsNtrack->Fill(Ntracks, fOutRhoMass->GetVal() - fCompareRhoMass->GetVal());
  }

  if (fOutRhoMassScaled) {
    fHistRhoMassScaledvsCent->Fill(fCent, fOutRhoMassScaled->GetVal());
    if (fTracks)
      fHistRhoMassScaledvsNtrack->Fill(Ntracks, fOutRhoMassScaled->GetVal());
    if (fCaloClusters)
      fHistRhoMassScaledvsNcluster->Fill(Nclusters,  fOutRhoMassScaled->GetVal());
    if (fCompareRhoMassScaled) {
      fHistDeltaRhoMassScalevsCent->Fill(fCent, fOutRhoMassScaled->GetVal() - fCompareRhoMassScaled->GetVal());
      if (fTracks)
	fHistDeltaRhoMassScalevsNtrack->Fill(Ntracks, fOutRhoMassScaled->GetVal() - fCompareRhoMassScaled->GetVal());
    }
  }

  return kTRUE;
}      


//________________________________________________________________________
void AliAnalysisTaskRhoMassBase::ExecOnce() 
{
  // Init the analysis.

  if (!fOutRhoMass) {
    fOutRhoMass = new AliRhoParameter(fOutRhoMassName, 0);

    if (fAttachToEvent) {
      if (!(InputEvent()->FindListObject(fOutRhoMassName))) {
	InputEvent()->AddObject(fOutRhoMass);
      } else {
	AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoMassName.Data()));
	return;
      }
    }
  }

  if (fScaleFunction && !fOutRhoMassScaled) {
    fOutRhoMassScaled = new AliRhoParameter(fOutRhoMassScaledName, 0);

    if (fAttachToEvent) {
      if (!(InputEvent()->FindListObject(fOutRhoMassScaledName))) {
	InputEvent()->AddObject(fOutRhoMassScaled);
      } else {
	AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoMassScaledName.Data()));
	return;
      }
    }
  }

  if (!fCompareRhoMassName.IsNull() && !fCompareRhoMass) {
    fCompareRhoMass = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoMassName));
    if (!fCompareRhoMass) {
      AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoMassName.Data()));
    }
  }

  if (!fCompareRhoMassScaledName.IsNull() && !fCompareRhoMassScaled) {
    fCompareRhoMassScaled = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoMassScaledName));
    if (!fCompareRhoMassScaled) {
      AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoMassScaledName.Data()));
    }
  }

  AliAnalysisTaskEmcalJet::ExecOnce();
}

//________________________________________________________________________
Double_t AliAnalysisTaskRhoMassBase::GetRhoMassFactor(Double_t cent)
{
  // Return rho per centrality.

  Double_t rho = 0;
  if (fRhoMassFunction)
    rho = fRhoMassFunction->Eval(cent);
  return rho;
}

//________________________________________________________________________
Double_t AliAnalysisTaskRhoMassBase::GetScaleFactor(Double_t cent)
{
  // Get scale factor.

  Double_t scale = 1;
  if (fScaleFunction)
    scale = fScaleFunction->Eval(cent);
  return scale;
}
 AliAnalysisTaskRhoMassBase.cxx:1
 AliAnalysisTaskRhoMassBase.cxx:2
 AliAnalysisTaskRhoMassBase.cxx:3
 AliAnalysisTaskRhoMassBase.cxx:4
 AliAnalysisTaskRhoMassBase.cxx:5
 AliAnalysisTaskRhoMassBase.cxx:6
 AliAnalysisTaskRhoMassBase.cxx:7
 AliAnalysisTaskRhoMassBase.cxx:8
 AliAnalysisTaskRhoMassBase.cxx:9
 AliAnalysisTaskRhoMassBase.cxx:10
 AliAnalysisTaskRhoMassBase.cxx:11
 AliAnalysisTaskRhoMassBase.cxx:12
 AliAnalysisTaskRhoMassBase.cxx:13
 AliAnalysisTaskRhoMassBase.cxx:14
 AliAnalysisTaskRhoMassBase.cxx:15
 AliAnalysisTaskRhoMassBase.cxx:16
 AliAnalysisTaskRhoMassBase.cxx:17
 AliAnalysisTaskRhoMassBase.cxx:18
 AliAnalysisTaskRhoMassBase.cxx:19
 AliAnalysisTaskRhoMassBase.cxx:20
 AliAnalysisTaskRhoMassBase.cxx:21
 AliAnalysisTaskRhoMassBase.cxx:22
 AliAnalysisTaskRhoMassBase.cxx:23
 AliAnalysisTaskRhoMassBase.cxx:24
 AliAnalysisTaskRhoMassBase.cxx:25
 AliAnalysisTaskRhoMassBase.cxx:26
 AliAnalysisTaskRhoMassBase.cxx:27
 AliAnalysisTaskRhoMassBase.cxx:28
 AliAnalysisTaskRhoMassBase.cxx:29
 AliAnalysisTaskRhoMassBase.cxx:30
 AliAnalysisTaskRhoMassBase.cxx:31
 AliAnalysisTaskRhoMassBase.cxx:32
 AliAnalysisTaskRhoMassBase.cxx:33
 AliAnalysisTaskRhoMassBase.cxx:34
 AliAnalysisTaskRhoMassBase.cxx:35
 AliAnalysisTaskRhoMassBase.cxx:36
 AliAnalysisTaskRhoMassBase.cxx:37
 AliAnalysisTaskRhoMassBase.cxx:38
 AliAnalysisTaskRhoMassBase.cxx:39
 AliAnalysisTaskRhoMassBase.cxx:40
 AliAnalysisTaskRhoMassBase.cxx:41
 AliAnalysisTaskRhoMassBase.cxx:42
 AliAnalysisTaskRhoMassBase.cxx:43
 AliAnalysisTaskRhoMassBase.cxx:44
 AliAnalysisTaskRhoMassBase.cxx:45
 AliAnalysisTaskRhoMassBase.cxx:46
 AliAnalysisTaskRhoMassBase.cxx:47
 AliAnalysisTaskRhoMassBase.cxx:48
 AliAnalysisTaskRhoMassBase.cxx:49
 AliAnalysisTaskRhoMassBase.cxx:50
 AliAnalysisTaskRhoMassBase.cxx:51
 AliAnalysisTaskRhoMassBase.cxx:52
 AliAnalysisTaskRhoMassBase.cxx:53
 AliAnalysisTaskRhoMassBase.cxx:54
 AliAnalysisTaskRhoMassBase.cxx:55
 AliAnalysisTaskRhoMassBase.cxx:56
 AliAnalysisTaskRhoMassBase.cxx:57
 AliAnalysisTaskRhoMassBase.cxx:58
 AliAnalysisTaskRhoMassBase.cxx:59
 AliAnalysisTaskRhoMassBase.cxx:60
 AliAnalysisTaskRhoMassBase.cxx:61
 AliAnalysisTaskRhoMassBase.cxx:62
 AliAnalysisTaskRhoMassBase.cxx:63
 AliAnalysisTaskRhoMassBase.cxx:64
 AliAnalysisTaskRhoMassBase.cxx:65
 AliAnalysisTaskRhoMassBase.cxx:66
 AliAnalysisTaskRhoMassBase.cxx:67
 AliAnalysisTaskRhoMassBase.cxx:68
 AliAnalysisTaskRhoMassBase.cxx:69
 AliAnalysisTaskRhoMassBase.cxx:70
 AliAnalysisTaskRhoMassBase.cxx:71
 AliAnalysisTaskRhoMassBase.cxx:72
 AliAnalysisTaskRhoMassBase.cxx:73
 AliAnalysisTaskRhoMassBase.cxx:74
 AliAnalysisTaskRhoMassBase.cxx:75
 AliAnalysisTaskRhoMassBase.cxx:76
 AliAnalysisTaskRhoMassBase.cxx:77
 AliAnalysisTaskRhoMassBase.cxx:78
 AliAnalysisTaskRhoMassBase.cxx:79
 AliAnalysisTaskRhoMassBase.cxx:80
 AliAnalysisTaskRhoMassBase.cxx:81
 AliAnalysisTaskRhoMassBase.cxx:82
 AliAnalysisTaskRhoMassBase.cxx:83
 AliAnalysisTaskRhoMassBase.cxx:84
 AliAnalysisTaskRhoMassBase.cxx:85
 AliAnalysisTaskRhoMassBase.cxx:86
 AliAnalysisTaskRhoMassBase.cxx:87
 AliAnalysisTaskRhoMassBase.cxx:88
 AliAnalysisTaskRhoMassBase.cxx:89
 AliAnalysisTaskRhoMassBase.cxx:90
 AliAnalysisTaskRhoMassBase.cxx:91
 AliAnalysisTaskRhoMassBase.cxx:92
 AliAnalysisTaskRhoMassBase.cxx:93
 AliAnalysisTaskRhoMassBase.cxx:94
 AliAnalysisTaskRhoMassBase.cxx:95
 AliAnalysisTaskRhoMassBase.cxx:96
 AliAnalysisTaskRhoMassBase.cxx:97
 AliAnalysisTaskRhoMassBase.cxx:98
 AliAnalysisTaskRhoMassBase.cxx:99
 AliAnalysisTaskRhoMassBase.cxx:100
 AliAnalysisTaskRhoMassBase.cxx:101
 AliAnalysisTaskRhoMassBase.cxx:102
 AliAnalysisTaskRhoMassBase.cxx:103
 AliAnalysisTaskRhoMassBase.cxx:104
 AliAnalysisTaskRhoMassBase.cxx:105
 AliAnalysisTaskRhoMassBase.cxx:106
 AliAnalysisTaskRhoMassBase.cxx:107
 AliAnalysisTaskRhoMassBase.cxx:108
 AliAnalysisTaskRhoMassBase.cxx:109
 AliAnalysisTaskRhoMassBase.cxx:110
 AliAnalysisTaskRhoMassBase.cxx:111
 AliAnalysisTaskRhoMassBase.cxx:112
 AliAnalysisTaskRhoMassBase.cxx:113
 AliAnalysisTaskRhoMassBase.cxx:114
 AliAnalysisTaskRhoMassBase.cxx:115
 AliAnalysisTaskRhoMassBase.cxx:116
 AliAnalysisTaskRhoMassBase.cxx:117
 AliAnalysisTaskRhoMassBase.cxx:118
 AliAnalysisTaskRhoMassBase.cxx:119
 AliAnalysisTaskRhoMassBase.cxx:120
 AliAnalysisTaskRhoMassBase.cxx:121
 AliAnalysisTaskRhoMassBase.cxx:122
 AliAnalysisTaskRhoMassBase.cxx:123
 AliAnalysisTaskRhoMassBase.cxx:124
 AliAnalysisTaskRhoMassBase.cxx:125
 AliAnalysisTaskRhoMassBase.cxx:126
 AliAnalysisTaskRhoMassBase.cxx:127
 AliAnalysisTaskRhoMassBase.cxx:128
 AliAnalysisTaskRhoMassBase.cxx:129
 AliAnalysisTaskRhoMassBase.cxx:130
 AliAnalysisTaskRhoMassBase.cxx:131
 AliAnalysisTaskRhoMassBase.cxx:132
 AliAnalysisTaskRhoMassBase.cxx:133
 AliAnalysisTaskRhoMassBase.cxx:134
 AliAnalysisTaskRhoMassBase.cxx:135
 AliAnalysisTaskRhoMassBase.cxx:136
 AliAnalysisTaskRhoMassBase.cxx:137
 AliAnalysisTaskRhoMassBase.cxx:138
 AliAnalysisTaskRhoMassBase.cxx:139
 AliAnalysisTaskRhoMassBase.cxx:140
 AliAnalysisTaskRhoMassBase.cxx:141
 AliAnalysisTaskRhoMassBase.cxx:142
 AliAnalysisTaskRhoMassBase.cxx:143
 AliAnalysisTaskRhoMassBase.cxx:144
 AliAnalysisTaskRhoMassBase.cxx:145
 AliAnalysisTaskRhoMassBase.cxx:146
 AliAnalysisTaskRhoMassBase.cxx:147
 AliAnalysisTaskRhoMassBase.cxx:148
 AliAnalysisTaskRhoMassBase.cxx:149
 AliAnalysisTaskRhoMassBase.cxx:150
 AliAnalysisTaskRhoMassBase.cxx:151
 AliAnalysisTaskRhoMassBase.cxx:152
 AliAnalysisTaskRhoMassBase.cxx:153
 AliAnalysisTaskRhoMassBase.cxx:154
 AliAnalysisTaskRhoMassBase.cxx:155
 AliAnalysisTaskRhoMassBase.cxx:156
 AliAnalysisTaskRhoMassBase.cxx:157
 AliAnalysisTaskRhoMassBase.cxx:158
 AliAnalysisTaskRhoMassBase.cxx:159
 AliAnalysisTaskRhoMassBase.cxx:160
 AliAnalysisTaskRhoMassBase.cxx:161
 AliAnalysisTaskRhoMassBase.cxx:162
 AliAnalysisTaskRhoMassBase.cxx:163
 AliAnalysisTaskRhoMassBase.cxx:164
 AliAnalysisTaskRhoMassBase.cxx:165
 AliAnalysisTaskRhoMassBase.cxx:166
 AliAnalysisTaskRhoMassBase.cxx:167
 AliAnalysisTaskRhoMassBase.cxx:168
 AliAnalysisTaskRhoMassBase.cxx:169
 AliAnalysisTaskRhoMassBase.cxx:170
 AliAnalysisTaskRhoMassBase.cxx:171
 AliAnalysisTaskRhoMassBase.cxx:172
 AliAnalysisTaskRhoMassBase.cxx:173
 AliAnalysisTaskRhoMassBase.cxx:174
 AliAnalysisTaskRhoMassBase.cxx:175
 AliAnalysisTaskRhoMassBase.cxx:176
 AliAnalysisTaskRhoMassBase.cxx:177
 AliAnalysisTaskRhoMassBase.cxx:178
 AliAnalysisTaskRhoMassBase.cxx:179
 AliAnalysisTaskRhoMassBase.cxx:180
 AliAnalysisTaskRhoMassBase.cxx:181
 AliAnalysisTaskRhoMassBase.cxx:182
 AliAnalysisTaskRhoMassBase.cxx:183
 AliAnalysisTaskRhoMassBase.cxx:184
 AliAnalysisTaskRhoMassBase.cxx:185
 AliAnalysisTaskRhoMassBase.cxx:186
 AliAnalysisTaskRhoMassBase.cxx:187
 AliAnalysisTaskRhoMassBase.cxx:188
 AliAnalysisTaskRhoMassBase.cxx:189
 AliAnalysisTaskRhoMassBase.cxx:190
 AliAnalysisTaskRhoMassBase.cxx:191
 AliAnalysisTaskRhoMassBase.cxx:192
 AliAnalysisTaskRhoMassBase.cxx:193
 AliAnalysisTaskRhoMassBase.cxx:194
 AliAnalysisTaskRhoMassBase.cxx:195
 AliAnalysisTaskRhoMassBase.cxx:196
 AliAnalysisTaskRhoMassBase.cxx:197
 AliAnalysisTaskRhoMassBase.cxx:198
 AliAnalysisTaskRhoMassBase.cxx:199
 AliAnalysisTaskRhoMassBase.cxx:200
 AliAnalysisTaskRhoMassBase.cxx:201
 AliAnalysisTaskRhoMassBase.cxx:202
 AliAnalysisTaskRhoMassBase.cxx:203
 AliAnalysisTaskRhoMassBase.cxx:204
 AliAnalysisTaskRhoMassBase.cxx:205
 AliAnalysisTaskRhoMassBase.cxx:206
 AliAnalysisTaskRhoMassBase.cxx:207
 AliAnalysisTaskRhoMassBase.cxx:208
 AliAnalysisTaskRhoMassBase.cxx:209
 AliAnalysisTaskRhoMassBase.cxx:210
 AliAnalysisTaskRhoMassBase.cxx:211
 AliAnalysisTaskRhoMassBase.cxx:212
 AliAnalysisTaskRhoMassBase.cxx:213
 AliAnalysisTaskRhoMassBase.cxx:214
 AliAnalysisTaskRhoMassBase.cxx:215
 AliAnalysisTaskRhoMassBase.cxx:216
 AliAnalysisTaskRhoMassBase.cxx:217
 AliAnalysisTaskRhoMassBase.cxx:218
 AliAnalysisTaskRhoMassBase.cxx:219
 AliAnalysisTaskRhoMassBase.cxx:220
 AliAnalysisTaskRhoMassBase.cxx:221
 AliAnalysisTaskRhoMassBase.cxx:222
 AliAnalysisTaskRhoMassBase.cxx:223
 AliAnalysisTaskRhoMassBase.cxx:224
 AliAnalysisTaskRhoMassBase.cxx:225
 AliAnalysisTaskRhoMassBase.cxx:226
 AliAnalysisTaskRhoMassBase.cxx:227
 AliAnalysisTaskRhoMassBase.cxx:228
 AliAnalysisTaskRhoMassBase.cxx:229
 AliAnalysisTaskRhoMassBase.cxx:230
 AliAnalysisTaskRhoMassBase.cxx:231
 AliAnalysisTaskRhoMassBase.cxx:232
 AliAnalysisTaskRhoMassBase.cxx:233
 AliAnalysisTaskRhoMassBase.cxx:234
 AliAnalysisTaskRhoMassBase.cxx:235
 AliAnalysisTaskRhoMassBase.cxx:236
 AliAnalysisTaskRhoMassBase.cxx:237
 AliAnalysisTaskRhoMassBase.cxx:238
 AliAnalysisTaskRhoMassBase.cxx:239
 AliAnalysisTaskRhoMassBase.cxx:240
 AliAnalysisTaskRhoMassBase.cxx:241
 AliAnalysisTaskRhoMassBase.cxx:242
 AliAnalysisTaskRhoMassBase.cxx:243
 AliAnalysisTaskRhoMassBase.cxx:244
 AliAnalysisTaskRhoMassBase.cxx:245
 AliAnalysisTaskRhoMassBase.cxx:246
 AliAnalysisTaskRhoMassBase.cxx:247
 AliAnalysisTaskRhoMassBase.cxx:248
 AliAnalysisTaskRhoMassBase.cxx:249
 AliAnalysisTaskRhoMassBase.cxx:250
 AliAnalysisTaskRhoMassBase.cxx:251
 AliAnalysisTaskRhoMassBase.cxx:252
 AliAnalysisTaskRhoMassBase.cxx:253
 AliAnalysisTaskRhoMassBase.cxx:254
 AliAnalysisTaskRhoMassBase.cxx:255
 AliAnalysisTaskRhoMassBase.cxx:256
 AliAnalysisTaskRhoMassBase.cxx:257
 AliAnalysisTaskRhoMassBase.cxx:258
 AliAnalysisTaskRhoMassBase.cxx:259
 AliAnalysisTaskRhoMassBase.cxx:260
 AliAnalysisTaskRhoMassBase.cxx:261
 AliAnalysisTaskRhoMassBase.cxx:262
 AliAnalysisTaskRhoMassBase.cxx:263
 AliAnalysisTaskRhoMassBase.cxx:264
 AliAnalysisTaskRhoMassBase.cxx:265
 AliAnalysisTaskRhoMassBase.cxx:266
 AliAnalysisTaskRhoMassBase.cxx:267
 AliAnalysisTaskRhoMassBase.cxx:268
 AliAnalysisTaskRhoMassBase.cxx:269
 AliAnalysisTaskRhoMassBase.cxx:270
 AliAnalysisTaskRhoMassBase.cxx:271
 AliAnalysisTaskRhoMassBase.cxx:272
 AliAnalysisTaskRhoMassBase.cxx:273
 AliAnalysisTaskRhoMassBase.cxx:274
 AliAnalysisTaskRhoMassBase.cxx:275
 AliAnalysisTaskRhoMassBase.cxx:276
 AliAnalysisTaskRhoMassBase.cxx:277
 AliAnalysisTaskRhoMassBase.cxx:278
 AliAnalysisTaskRhoMassBase.cxx:279
 AliAnalysisTaskRhoMassBase.cxx:280
 AliAnalysisTaskRhoMassBase.cxx:281
 AliAnalysisTaskRhoMassBase.cxx:282
 AliAnalysisTaskRhoMassBase.cxx:283
 AliAnalysisTaskRhoMassBase.cxx:284
 AliAnalysisTaskRhoMassBase.cxx:285
 AliAnalysisTaskRhoMassBase.cxx:286
 AliAnalysisTaskRhoMassBase.cxx:287
 AliAnalysisTaskRhoMassBase.cxx:288
 AliAnalysisTaskRhoMassBase.cxx:289
 AliAnalysisTaskRhoMassBase.cxx:290
 AliAnalysisTaskRhoMassBase.cxx:291
 AliAnalysisTaskRhoMassBase.cxx:292
 AliAnalysisTaskRhoMassBase.cxx:293
 AliAnalysisTaskRhoMassBase.cxx:294
 AliAnalysisTaskRhoMassBase.cxx:295
 AliAnalysisTaskRhoMassBase.cxx:296
 AliAnalysisTaskRhoMassBase.cxx:297
 AliAnalysisTaskRhoMassBase.cxx:298
 AliAnalysisTaskRhoMassBase.cxx:299
 AliAnalysisTaskRhoMassBase.cxx:300
 AliAnalysisTaskRhoMassBase.cxx:301
 AliAnalysisTaskRhoMassBase.cxx:302
 AliAnalysisTaskRhoMassBase.cxx:303
 AliAnalysisTaskRhoMassBase.cxx:304
 AliAnalysisTaskRhoMassBase.cxx:305
 AliAnalysisTaskRhoMassBase.cxx:306
 AliAnalysisTaskRhoMassBase.cxx:307
 AliAnalysisTaskRhoMassBase.cxx:308
 AliAnalysisTaskRhoMassBase.cxx:309
 AliAnalysisTaskRhoMassBase.cxx:310
 AliAnalysisTaskRhoMassBase.cxx:311
 AliAnalysisTaskRhoMassBase.cxx:312
 AliAnalysisTaskRhoMassBase.cxx:313
 AliAnalysisTaskRhoMassBase.cxx:314
 AliAnalysisTaskRhoMassBase.cxx:315
 AliAnalysisTaskRhoMassBase.cxx:316
 AliAnalysisTaskRhoMassBase.cxx:317
 AliAnalysisTaskRhoMassBase.cxx:318
 AliAnalysisTaskRhoMassBase.cxx:319
 AliAnalysisTaskRhoMassBase.cxx:320
 AliAnalysisTaskRhoMassBase.cxx:321
 AliAnalysisTaskRhoMassBase.cxx:322
 AliAnalysisTaskRhoMassBase.cxx:323
 AliAnalysisTaskRhoMassBase.cxx:324
 AliAnalysisTaskRhoMassBase.cxx:325
 AliAnalysisTaskRhoMassBase.cxx:326
 AliAnalysisTaskRhoMassBase.cxx:327
 AliAnalysisTaskRhoMassBase.cxx:328
 AliAnalysisTaskRhoMassBase.cxx:329
 AliAnalysisTaskRhoMassBase.cxx:330