#include "AliAnalysisMuMuSpectra.h"
#include "AliLog.h"
#include "AliAnalysisMuMuBinning.h"
#include "AliAnalysisMuMuJpsiResult.h"
#include "Riostream.h"
#include "TH1.h"
#include "TH2.h"
#include "TList.h"
#include "TObjArray.h"
ClassImp(AliAnalysisMuMuSpectra)
AliAnalysisMuMuSpectra::AliAnalysisMuMuSpectra(const char* name, const char* title) :
TNamed(name,title),
fBinning(0x0),
fBins(0x0),
fWeight(1.0)
{
}
AliAnalysisMuMuSpectra::AliAnalysisMuMuSpectra(const AliAnalysisMuMuSpectra& rhs)
: TNamed(rhs.GetName(),rhs.GetTitle()),
fBinning(0x0),
fBins(0x0),
fWeight(rhs.Weight())
{
if ( rhs.fBinning )
{
fBinning = new AliAnalysisMuMuBinning(*rhs.fBinning);
}
TIter next(rhs.fBins);
AliAnalysisMuMuResult* bin;
while ( ( bin = static_cast<AliAnalysisMuMuResult*>(next()) ) )
{
if (!fBins)
{
fBins = new TObjArray;
fBins->SetOwner(kTRUE);
}
fBins->Add(bin);
}
}
AliAnalysisMuMuSpectra&
AliAnalysisMuMuSpectra::operator=(const AliAnalysisMuMuSpectra& rhs)
{
if (this==&rhs) return *this;
delete fBinning;
fBinning = 0x0;
delete fBins;
fBins = 0x0;
if ( rhs.fBinning )
{
fBinning = new AliAnalysisMuMuBinning(*rhs.fBinning);
}
TIter next(rhs.fBins);
AliAnalysisMuMuResult* bin;
while ( ( bin = static_cast<AliAnalysisMuMuResult*>(next()) ) )
{
if (!fBins)
{
fBins = new TObjArray;
fBins->SetOwner(kTRUE);
}
fBins->Add(bin);
}
fWeight = rhs.Weight();
return *this;
}
AliAnalysisMuMuSpectra::~AliAnalysisMuMuSpectra()
{
delete fBinning;
delete fBins;
}
Bool_t AliAnalysisMuMuSpectra::AdoptResult(const AliAnalysisMuMuBinning::Range& bin,
AliAnalysisMuMuResult* result)
{
if ( !result )
{
AliError("Cannot adopt a null result");
return kFALSE
;
}
if (!fBinning)
{
fBinning = new AliAnalysisMuMuBinning;
fBins = new TObjArray;
fBins->SetOwner(kTRUE);
}
fBinning->AddBin(bin);
Int_t sizeBeforeAdd = fBins->GetEntriesFast();
fBins->Add(result);
Int_t sizeAfterAdd = fBins->GetEntriesFast();
if ( sizeBeforeAdd >= sizeAfterAdd )
{
AliError(Form("Error adopting result %s to spectra %s",result->GetName(),GetName()));
return kFALSE;
}
else return kTRUE;
}
Bool_t AliAnalysisMuMuSpectra::Correct(const AliAnalysisMuMuSpectra& accEff, const char* particle, const char* subResultName)
{
if (IsEmpty())
{
AliError("Cannot correct an empty spectra !");
return kFALSE;
}
AliAnalysisMuMuBinning* accEffBins = accEff.Binning();
if ( !fBinning->IsEqual(accEffBins) )
{
AliError("Cannot correct with a spectra which does not have the same binning");
return kFALSE;
}
TObjArray* particles = fBinning->CreateWhatArray();
TObjArray* types = fBinning->CreateQuantityArray();
if (particles->GetEntries()!=1 || types->GetEntries()!=1 )
{
delete particles;
delete types;
return kFALSE;
}
TObjArray* bins = accEff.BinContentArray();
for ( Int_t i = 0; i < bins->GetEntries(); ++i )
{
AliAnalysisMuMuJpsiResult* thisResult = static_cast<AliAnalysisMuMuJpsiResult*>(fBins->At(i));
AliAnalysisMuMuJpsiResult* accResult = static_cast<AliAnalysisMuMuJpsiResult*>(bins->At(i));
thisResult->Correct(*accResult,particle,subResultName);
}
delete particles;
delete types;
return kTRUE;
}
AliAnalysisMuMuResult*
AliAnalysisMuMuSpectra::GetResultForBin(const AliAnalysisMuMuBinning::Range& bin) const
{
if ( IsEmpty() ) return 0x0;
TObjArray* bins = fBinning->CreateBinObjArray();
Int_t j(-1);
StdoutToAliDebug(1,std::cout << "searching for "; bin.Print());
for ( Int_t i = 0; i <= bins->GetLast() && j < 0 ; ++i )
{
AliAnalysisMuMuBinning::Range* b = static_cast<AliAnalysisMuMuBinning::Range*>(bins->At(i));
StdoutToAliDebug(1,b->Print(););
if ( bin == *b )
{
j = i;
}
}
delete bins;
if (j>=0)
{
return static_cast<AliAnalysisMuMuResult*>(fBins->At(j));
}
else
{
StdoutToAliDebug(1,std::cout << "Could not find result for bin:" << std::endl; bin.Print(););
}
return 0x0;
}
AliAnalysisMuMuResult*
AliAnalysisMuMuSpectra::GetResultForBin(const char* binName) const
{
if ( IsEmpty() ) return 0x0;
TObjArray* bins = fBinning->CreateBinObjArray();
Int_t j(-1);
AliDebug(1,Form("searching for bin %s",binName));
for ( Int_t i = 0; i <= bins->GetLast() && j < 0 ; ++i )
{
AliAnalysisMuMuBinning::Range* b = static_cast<AliAnalysisMuMuBinning::Range*>(bins->At(i));
if ( b->AsString() == binName )
{
j = i;
}
}
delete bins;
if (j>=0)
{
return static_cast<AliAnalysisMuMuResult*>(fBins->At(j));
}
else
{
AliDebug(1,Form("Could not find result for bin %s",binName));
}
return 0x0;
}
Bool_t AliAnalysisMuMuSpectra::HasValue(const char* what) const
{
if ( IsEmpty() ) return kFALSE;
AliAnalysisMuMuResult* r = static_cast<AliAnalysisMuMuResult*>(fBins->First());
return r->HasValue(what);
}
Bool_t AliAnalysisMuMuSpectra::IsEmpty() const
{
return ( fBins==0x0 || fBins->GetEntries()<=0 );
}
Long64_t AliAnalysisMuMuSpectra::Merge(TCollection* list)
{
if (!list) return 0;
if (list->IsEmpty()) return 1;
TIter next(list);
TObject* currObj;
Int_t count(0);
TList binningList;
TObjArray* bins = fBinning->CreateBinObjArray();
TIter nextBin(bins);
AliAnalysisMuMuBinning::Range* bin;
Int_t i(0);
while ( ( bin = static_cast<AliAnalysisMuMuBinning::Range*>(nextBin()) ) )
{
next.Reset();
TList binList;
while ( ( currObj = next() ) )
{
AliAnalysisMuMuSpectra* spectra = static_cast<AliAnalysisMuMuSpectra*>(currObj);
if (i==0)
{
binningList.Add(spectra->Binning());
if ( !fBinning->IsEqual(spectra->Binning()) || spectra->BinContentArray()->GetLast() != BinContentArray()->GetLast() )
{
AliError("Cannot merge spectra with different binning");
continue;
}
++count;
}
binList.Add(spectra->GetResultForBin(*bin));
}
++i;
AliAnalysisMuMuResult* r = static_cast<AliAnalysisMuMuResult*>(GetResultForBin(*bin));
r->Merge(&binList);
}
delete bins;
return count+1;
}
TH1* AliAnalysisMuMuSpectra::Plot(const char* what, const char* subresult, Bool_t divideByBinWidth) const
{
TString swhat(what);
TString swhatT(what);
swhat.ToUpper();
Double_t* bins = fBinning->CreateBinArray();
Double_t* binsX = fBinning->CreateBinArrayX();
Double_t* binsY = fBinning->CreateBinArrayY();
Int_t nbinsX = fBinning->GetNBinsX();
Int_t nbinsY = fBinning->GetNBinsY();
TObjArray* binArray = fBinning->CreateBinObjArray();
TH1* h(0x0);
AliDebug(1,Form("nbins=%d nresults=%d",binArray->GetEntries(),fBins->GetEntries()));
for ( Int_t j = 0; j < TMath::Min(binArray->GetEntries(),fBins->GetEntries()); ++j )
{
AliAnalysisMuMuJpsiResult* r = static_cast<AliAnalysisMuMuJpsiResult*>(fBins->At(j));
if ( strlen(subresult) > 0 && r->SubResults() )
{
TString sub(subresult);
r = static_cast<AliAnalysisMuMuJpsiResult*>(r->SubResult(sub.Data()));
if (!r) continue;
}
const AliAnalysisMuMuBinning::Range& b = r->Bin();
if ( b.Is2D() )
{
if (!h)
{
h = new TH2F(r->GetName(),r->GetName(),nbinsX,binsX,nbinsY,binsY);
h->SetDirectory(0);
}
Double_t z = r->GetValue(swhatT.Data());
Double_t zerr = r->GetErrorStat(swhatT.Data());
if ( swhat.Contains("AccEff",TString::kIgnoreCase) )
{
if ( z < 0. || z > 5.)
{
z = -1.;
zerr = 0.;
}
}
if ( divideByBinWidth && b.WidthX()>0 )
{
z /= (b.WidthX()*b.WidthY());
zerr /= (b.WidthX()*b.WidthY());
}
std::cout << b.AsString();
r->PrintValue(swhat.Data(),"",z,zerr);
Int_t x = j/nbinsY + 1;
Int_t y = (j % nbinsY) + 1;
std::cout << "x=" << x << ";" << "y=" << y << std::endl;
h->SetBinContent(x,y,z);
h->SetBinError(x,y,zerr);
}
else
{
if (!h)
{
h = new TH1F(r->GetName(),r->GetName(),binArray->GetEntries(),bins);
h->SetDirectory(0);
}
Double_t y = r->GetValue(swhatT.Data());
Double_t yerr = r->GetErrorStat(swhatT.Data());
if ( divideByBinWidth && b.WidthX()>0 )
{
y /= (b.WidthX());
yerr /= (b.WidthX());
}
if (!TMath::Finite(y)) y = 0.0;
if (!TMath::Finite(yerr)) yerr = 0.0;
std::cout << b.AsString();
r->PrintValue(swhat.Data(),"",y,yerr);
h->SetBinContent(j+1,y);
h->SetBinError(j+1,yerr);
}
}
delete binArray;
delete[] binsX;
delete[] binsY;
delete[] bins;
return h;
}
void AliAnalysisMuMuSpectra::Print(Option_t* opt) const
{
if (!IsEmpty())
{
TString sopt(opt);
Int_t nmax = sopt.Atoi();
if ( nmax <= 0 ) nmax = fBins->GetEntries();
for ( Int_t i = 0; i < nmax; ++i )
{
AliAnalysisMuMuResult* r = static_cast<AliAnalysisMuMuResult*>(fBins->At(i));
if (r) r->Print(opt);
}
}
}
void AliAnalysisMuMuSpectra::Scale(Double_t value)
{
TIter next(fBins);
AliAnalysisMuMuResult* r;
while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
{
r->Scale(value);
}
}
void AliAnalysisMuMuSpectra::SetWeight(Double_t w)
{
fWeight = w;
TIter next(fBins);
AliAnalysisMuMuResult* r;
while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
{
r->SetWeight(Weight());
}
}
AliAnalysisMuMuSpectra.cxx:1 AliAnalysisMuMuSpectra.cxx:2 AliAnalysisMuMuSpectra.cxx:3 AliAnalysisMuMuSpectra.cxx:4 AliAnalysisMuMuSpectra.cxx:5 AliAnalysisMuMuSpectra.cxx:6 AliAnalysisMuMuSpectra.cxx:7 AliAnalysisMuMuSpectra.cxx:8 AliAnalysisMuMuSpectra.cxx:9 AliAnalysisMuMuSpectra.cxx:10 AliAnalysisMuMuSpectra.cxx:11 AliAnalysisMuMuSpectra.cxx:12 AliAnalysisMuMuSpectra.cxx:13 AliAnalysisMuMuSpectra.cxx:14 AliAnalysisMuMuSpectra.cxx:15 AliAnalysisMuMuSpectra.cxx:16 AliAnalysisMuMuSpectra.cxx:17 AliAnalysisMuMuSpectra.cxx:18 AliAnalysisMuMuSpectra.cxx:19 AliAnalysisMuMuSpectra.cxx:20 AliAnalysisMuMuSpectra.cxx:21 AliAnalysisMuMuSpectra.cxx:22 AliAnalysisMuMuSpectra.cxx:23 AliAnalysisMuMuSpectra.cxx:24 AliAnalysisMuMuSpectra.cxx:25 AliAnalysisMuMuSpectra.cxx:26 AliAnalysisMuMuSpectra.cxx:27 AliAnalysisMuMuSpectra.cxx:28 AliAnalysisMuMuSpectra.cxx:29 AliAnalysisMuMuSpectra.cxx:30 AliAnalysisMuMuSpectra.cxx:31 AliAnalysisMuMuSpectra.cxx:32 AliAnalysisMuMuSpectra.cxx:33 AliAnalysisMuMuSpectra.cxx:34 AliAnalysisMuMuSpectra.cxx:35 AliAnalysisMuMuSpectra.cxx:36 AliAnalysisMuMuSpectra.cxx:37 AliAnalysisMuMuSpectra.cxx:38 AliAnalysisMuMuSpectra.cxx:39 AliAnalysisMuMuSpectra.cxx:40 AliAnalysisMuMuSpectra.cxx:41 AliAnalysisMuMuSpectra.cxx:42 AliAnalysisMuMuSpectra.cxx:43 AliAnalysisMuMuSpectra.cxx:44 AliAnalysisMuMuSpectra.cxx:45 AliAnalysisMuMuSpectra.cxx:46 AliAnalysisMuMuSpectra.cxx:47 AliAnalysisMuMuSpectra.cxx:48 AliAnalysisMuMuSpectra.cxx:49 AliAnalysisMuMuSpectra.cxx:50 AliAnalysisMuMuSpectra.cxx:51 AliAnalysisMuMuSpectra.cxx:52 AliAnalysisMuMuSpectra.cxx:53 AliAnalysisMuMuSpectra.cxx:54 AliAnalysisMuMuSpectra.cxx:55 AliAnalysisMuMuSpectra.cxx:56 AliAnalysisMuMuSpectra.cxx:57 AliAnalysisMuMuSpectra.cxx:58 AliAnalysisMuMuSpectra.cxx:59 AliAnalysisMuMuSpectra.cxx:60 AliAnalysisMuMuSpectra.cxx:61 AliAnalysisMuMuSpectra.cxx:62 AliAnalysisMuMuSpectra.cxx:63 AliAnalysisMuMuSpectra.cxx:64 AliAnalysisMuMuSpectra.cxx:65 AliAnalysisMuMuSpectra.cxx:66 AliAnalysisMuMuSpectra.cxx:67 AliAnalysisMuMuSpectra.cxx:68 AliAnalysisMuMuSpectra.cxx:69 AliAnalysisMuMuSpectra.cxx:70 AliAnalysisMuMuSpectra.cxx:71 AliAnalysisMuMuSpectra.cxx:72 AliAnalysisMuMuSpectra.cxx:73 AliAnalysisMuMuSpectra.cxx:74 AliAnalysisMuMuSpectra.cxx:75 AliAnalysisMuMuSpectra.cxx:76 AliAnalysisMuMuSpectra.cxx:77 AliAnalysisMuMuSpectra.cxx:78 AliAnalysisMuMuSpectra.cxx:79 AliAnalysisMuMuSpectra.cxx:80 AliAnalysisMuMuSpectra.cxx:81 AliAnalysisMuMuSpectra.cxx:82 AliAnalysisMuMuSpectra.cxx:83 AliAnalysisMuMuSpectra.cxx:84 AliAnalysisMuMuSpectra.cxx:85 AliAnalysisMuMuSpectra.cxx:86 AliAnalysisMuMuSpectra.cxx:87 AliAnalysisMuMuSpectra.cxx:88 AliAnalysisMuMuSpectra.cxx:89 AliAnalysisMuMuSpectra.cxx:90 AliAnalysisMuMuSpectra.cxx:91 AliAnalysisMuMuSpectra.cxx:92 AliAnalysisMuMuSpectra.cxx:93 AliAnalysisMuMuSpectra.cxx:94 AliAnalysisMuMuSpectra.cxx:95 AliAnalysisMuMuSpectra.cxx:96 AliAnalysisMuMuSpectra.cxx:97 AliAnalysisMuMuSpectra.cxx:98 AliAnalysisMuMuSpectra.cxx:99 AliAnalysisMuMuSpectra.cxx:100 AliAnalysisMuMuSpectra.cxx:101 AliAnalysisMuMuSpectra.cxx:102 AliAnalysisMuMuSpectra.cxx:103 AliAnalysisMuMuSpectra.cxx:104 AliAnalysisMuMuSpectra.cxx:105 AliAnalysisMuMuSpectra.cxx:106 AliAnalysisMuMuSpectra.cxx:107 AliAnalysisMuMuSpectra.cxx:108 AliAnalysisMuMuSpectra.cxx:109 AliAnalysisMuMuSpectra.cxx:110 AliAnalysisMuMuSpectra.cxx:111 AliAnalysisMuMuSpectra.cxx:112 AliAnalysisMuMuSpectra.cxx:113 AliAnalysisMuMuSpectra.cxx:114 AliAnalysisMuMuSpectra.cxx:115 AliAnalysisMuMuSpectra.cxx:116 AliAnalysisMuMuSpectra.cxx:117 AliAnalysisMuMuSpectra.cxx:118 AliAnalysisMuMuSpectra.cxx:119 AliAnalysisMuMuSpectra.cxx:120 AliAnalysisMuMuSpectra.cxx:121 AliAnalysisMuMuSpectra.cxx:122 AliAnalysisMuMuSpectra.cxx:123 AliAnalysisMuMuSpectra.cxx:124 AliAnalysisMuMuSpectra.cxx:125 AliAnalysisMuMuSpectra.cxx:126 AliAnalysisMuMuSpectra.cxx:127 AliAnalysisMuMuSpectra.cxx:128 AliAnalysisMuMuSpectra.cxx:129 AliAnalysisMuMuSpectra.cxx:130 AliAnalysisMuMuSpectra.cxx:131 AliAnalysisMuMuSpectra.cxx:132 AliAnalysisMuMuSpectra.cxx:133 AliAnalysisMuMuSpectra.cxx:134 AliAnalysisMuMuSpectra.cxx:135 AliAnalysisMuMuSpectra.cxx:136 AliAnalysisMuMuSpectra.cxx:137 AliAnalysisMuMuSpectra.cxx:138 AliAnalysisMuMuSpectra.cxx:139 AliAnalysisMuMuSpectra.cxx:140 AliAnalysisMuMuSpectra.cxx:141 AliAnalysisMuMuSpectra.cxx:142 AliAnalysisMuMuSpectra.cxx:143 AliAnalysisMuMuSpectra.cxx:144 AliAnalysisMuMuSpectra.cxx:145 AliAnalysisMuMuSpectra.cxx:146 AliAnalysisMuMuSpectra.cxx:147 AliAnalysisMuMuSpectra.cxx:148 AliAnalysisMuMuSpectra.cxx:149 AliAnalysisMuMuSpectra.cxx:150 AliAnalysisMuMuSpectra.cxx:151 AliAnalysisMuMuSpectra.cxx:152 AliAnalysisMuMuSpectra.cxx:153 AliAnalysisMuMuSpectra.cxx:154 AliAnalysisMuMuSpectra.cxx:155 AliAnalysisMuMuSpectra.cxx:156 AliAnalysisMuMuSpectra.cxx:157 AliAnalysisMuMuSpectra.cxx:158 AliAnalysisMuMuSpectra.cxx:159 AliAnalysisMuMuSpectra.cxx:160 AliAnalysisMuMuSpectra.cxx:161 AliAnalysisMuMuSpectra.cxx:162 AliAnalysisMuMuSpectra.cxx:163 AliAnalysisMuMuSpectra.cxx:164 AliAnalysisMuMuSpectra.cxx:165 AliAnalysisMuMuSpectra.cxx:166 AliAnalysisMuMuSpectra.cxx:167 AliAnalysisMuMuSpectra.cxx:168 AliAnalysisMuMuSpectra.cxx:169 AliAnalysisMuMuSpectra.cxx:170 AliAnalysisMuMuSpectra.cxx:171 AliAnalysisMuMuSpectra.cxx:172 AliAnalysisMuMuSpectra.cxx:173 AliAnalysisMuMuSpectra.cxx:174 AliAnalysisMuMuSpectra.cxx:175 AliAnalysisMuMuSpectra.cxx:176 AliAnalysisMuMuSpectra.cxx:177 AliAnalysisMuMuSpectra.cxx:178 AliAnalysisMuMuSpectra.cxx:179 AliAnalysisMuMuSpectra.cxx:180 AliAnalysisMuMuSpectra.cxx:181 AliAnalysisMuMuSpectra.cxx:182 AliAnalysisMuMuSpectra.cxx:183 AliAnalysisMuMuSpectra.cxx:184 AliAnalysisMuMuSpectra.cxx:185 AliAnalysisMuMuSpectra.cxx:186 AliAnalysisMuMuSpectra.cxx:187 AliAnalysisMuMuSpectra.cxx:188 AliAnalysisMuMuSpectra.cxx:189 AliAnalysisMuMuSpectra.cxx:190 AliAnalysisMuMuSpectra.cxx:191 AliAnalysisMuMuSpectra.cxx:192 AliAnalysisMuMuSpectra.cxx:193 AliAnalysisMuMuSpectra.cxx:194 AliAnalysisMuMuSpectra.cxx:195 AliAnalysisMuMuSpectra.cxx:196 AliAnalysisMuMuSpectra.cxx:197 AliAnalysisMuMuSpectra.cxx:198 AliAnalysisMuMuSpectra.cxx:199 AliAnalysisMuMuSpectra.cxx:200 AliAnalysisMuMuSpectra.cxx:201 AliAnalysisMuMuSpectra.cxx:202 AliAnalysisMuMuSpectra.cxx:203 AliAnalysisMuMuSpectra.cxx:204 AliAnalysisMuMuSpectra.cxx:205 AliAnalysisMuMuSpectra.cxx:206 AliAnalysisMuMuSpectra.cxx:207 AliAnalysisMuMuSpectra.cxx:208 AliAnalysisMuMuSpectra.cxx:209 AliAnalysisMuMuSpectra.cxx:210 AliAnalysisMuMuSpectra.cxx:211 AliAnalysisMuMuSpectra.cxx:212 AliAnalysisMuMuSpectra.cxx:213 AliAnalysisMuMuSpectra.cxx:214 AliAnalysisMuMuSpectra.cxx:215 AliAnalysisMuMuSpectra.cxx:216 AliAnalysisMuMuSpectra.cxx:217 AliAnalysisMuMuSpectra.cxx:218 AliAnalysisMuMuSpectra.cxx:219 AliAnalysisMuMuSpectra.cxx:220 AliAnalysisMuMuSpectra.cxx:221 AliAnalysisMuMuSpectra.cxx:222 AliAnalysisMuMuSpectra.cxx:223 AliAnalysisMuMuSpectra.cxx:224 AliAnalysisMuMuSpectra.cxx:225 AliAnalysisMuMuSpectra.cxx:226 AliAnalysisMuMuSpectra.cxx:227 AliAnalysisMuMuSpectra.cxx:228 AliAnalysisMuMuSpectra.cxx:229 AliAnalysisMuMuSpectra.cxx:230 AliAnalysisMuMuSpectra.cxx:231 AliAnalysisMuMuSpectra.cxx:232 AliAnalysisMuMuSpectra.cxx:233 AliAnalysisMuMuSpectra.cxx:234 AliAnalysisMuMuSpectra.cxx:235 AliAnalysisMuMuSpectra.cxx:236 AliAnalysisMuMuSpectra.cxx:237 AliAnalysisMuMuSpectra.cxx:238 AliAnalysisMuMuSpectra.cxx:239 AliAnalysisMuMuSpectra.cxx:240 AliAnalysisMuMuSpectra.cxx:241 AliAnalysisMuMuSpectra.cxx:242 AliAnalysisMuMuSpectra.cxx:243 AliAnalysisMuMuSpectra.cxx:244 AliAnalysisMuMuSpectra.cxx:245 AliAnalysisMuMuSpectra.cxx:246 AliAnalysisMuMuSpectra.cxx:247 AliAnalysisMuMuSpectra.cxx:248 AliAnalysisMuMuSpectra.cxx:249 AliAnalysisMuMuSpectra.cxx:250 AliAnalysisMuMuSpectra.cxx:251 AliAnalysisMuMuSpectra.cxx:252 AliAnalysisMuMuSpectra.cxx:253 AliAnalysisMuMuSpectra.cxx:254 AliAnalysisMuMuSpectra.cxx:255 AliAnalysisMuMuSpectra.cxx:256 AliAnalysisMuMuSpectra.cxx:257 AliAnalysisMuMuSpectra.cxx:258 AliAnalysisMuMuSpectra.cxx:259 AliAnalysisMuMuSpectra.cxx:260 AliAnalysisMuMuSpectra.cxx:261 AliAnalysisMuMuSpectra.cxx:262 AliAnalysisMuMuSpectra.cxx:263 AliAnalysisMuMuSpectra.cxx:264 AliAnalysisMuMuSpectra.cxx:265 AliAnalysisMuMuSpectra.cxx:266 AliAnalysisMuMuSpectra.cxx:267 AliAnalysisMuMuSpectra.cxx:268 AliAnalysisMuMuSpectra.cxx:269 AliAnalysisMuMuSpectra.cxx:270 AliAnalysisMuMuSpectra.cxx:271 AliAnalysisMuMuSpectra.cxx:272 AliAnalysisMuMuSpectra.cxx:273 AliAnalysisMuMuSpectra.cxx:274 AliAnalysisMuMuSpectra.cxx:275 AliAnalysisMuMuSpectra.cxx:276 AliAnalysisMuMuSpectra.cxx:277 AliAnalysisMuMuSpectra.cxx:278 AliAnalysisMuMuSpectra.cxx:279 AliAnalysisMuMuSpectra.cxx:280 AliAnalysisMuMuSpectra.cxx:281 AliAnalysisMuMuSpectra.cxx:282 AliAnalysisMuMuSpectra.cxx:283 AliAnalysisMuMuSpectra.cxx:284 AliAnalysisMuMuSpectra.cxx:285 AliAnalysisMuMuSpectra.cxx:286 AliAnalysisMuMuSpectra.cxx:287 AliAnalysisMuMuSpectra.cxx:288 AliAnalysisMuMuSpectra.cxx:289 AliAnalysisMuMuSpectra.cxx:290 AliAnalysisMuMuSpectra.cxx:291 AliAnalysisMuMuSpectra.cxx:292 AliAnalysisMuMuSpectra.cxx:293 AliAnalysisMuMuSpectra.cxx:294 AliAnalysisMuMuSpectra.cxx:295 AliAnalysisMuMuSpectra.cxx:296 AliAnalysisMuMuSpectra.cxx:297 AliAnalysisMuMuSpectra.cxx:298 AliAnalysisMuMuSpectra.cxx:299 AliAnalysisMuMuSpectra.cxx:300 AliAnalysisMuMuSpectra.cxx:301 AliAnalysisMuMuSpectra.cxx:302 AliAnalysisMuMuSpectra.cxx:303 AliAnalysisMuMuSpectra.cxx:304 AliAnalysisMuMuSpectra.cxx:305 AliAnalysisMuMuSpectra.cxx:306 AliAnalysisMuMuSpectra.cxx:307 AliAnalysisMuMuSpectra.cxx:308 AliAnalysisMuMuSpectra.cxx:309 AliAnalysisMuMuSpectra.cxx:310 AliAnalysisMuMuSpectra.cxx:311 AliAnalysisMuMuSpectra.cxx:312 AliAnalysisMuMuSpectra.cxx:313 AliAnalysisMuMuSpectra.cxx:314 AliAnalysisMuMuSpectra.cxx:315 AliAnalysisMuMuSpectra.cxx:316 AliAnalysisMuMuSpectra.cxx:317 AliAnalysisMuMuSpectra.cxx:318 AliAnalysisMuMuSpectra.cxx:319 AliAnalysisMuMuSpectra.cxx:320 AliAnalysisMuMuSpectra.cxx:321 AliAnalysisMuMuSpectra.cxx:322 AliAnalysisMuMuSpectra.cxx:323 AliAnalysisMuMuSpectra.cxx:324 AliAnalysisMuMuSpectra.cxx:325 AliAnalysisMuMuSpectra.cxx:326 AliAnalysisMuMuSpectra.cxx:327 AliAnalysisMuMuSpectra.cxx:328 AliAnalysisMuMuSpectra.cxx:329 AliAnalysisMuMuSpectra.cxx:330 AliAnalysisMuMuSpectra.cxx:331 AliAnalysisMuMuSpectra.cxx:332 AliAnalysisMuMuSpectra.cxx:333 AliAnalysisMuMuSpectra.cxx:334 AliAnalysisMuMuSpectra.cxx:335 AliAnalysisMuMuSpectra.cxx:336 AliAnalysisMuMuSpectra.cxx:337 AliAnalysisMuMuSpectra.cxx:338 AliAnalysisMuMuSpectra.cxx:339 AliAnalysisMuMuSpectra.cxx:340 AliAnalysisMuMuSpectra.cxx:341 AliAnalysisMuMuSpectra.cxx:342 AliAnalysisMuMuSpectra.cxx:343 AliAnalysisMuMuSpectra.cxx:344 AliAnalysisMuMuSpectra.cxx:345 AliAnalysisMuMuSpectra.cxx:346 AliAnalysisMuMuSpectra.cxx:347 AliAnalysisMuMuSpectra.cxx:348 AliAnalysisMuMuSpectra.cxx:349 AliAnalysisMuMuSpectra.cxx:350 AliAnalysisMuMuSpectra.cxx:351 AliAnalysisMuMuSpectra.cxx:352 AliAnalysisMuMuSpectra.cxx:353 AliAnalysisMuMuSpectra.cxx:354 AliAnalysisMuMuSpectra.cxx:355 AliAnalysisMuMuSpectra.cxx:356 AliAnalysisMuMuSpectra.cxx:357 AliAnalysisMuMuSpectra.cxx:358 AliAnalysisMuMuSpectra.cxx:359 AliAnalysisMuMuSpectra.cxx:360 AliAnalysisMuMuSpectra.cxx:361 AliAnalysisMuMuSpectra.cxx:362 AliAnalysisMuMuSpectra.cxx:363 AliAnalysisMuMuSpectra.cxx:364 AliAnalysisMuMuSpectra.cxx:365 AliAnalysisMuMuSpectra.cxx:366 AliAnalysisMuMuSpectra.cxx:367 AliAnalysisMuMuSpectra.cxx:368 AliAnalysisMuMuSpectra.cxx:369 AliAnalysisMuMuSpectra.cxx:370 AliAnalysisMuMuSpectra.cxx:371 AliAnalysisMuMuSpectra.cxx:372 AliAnalysisMuMuSpectra.cxx:373 AliAnalysisMuMuSpectra.cxx:374 AliAnalysisMuMuSpectra.cxx:375 AliAnalysisMuMuSpectra.cxx:376 AliAnalysisMuMuSpectra.cxx:377 AliAnalysisMuMuSpectra.cxx:378 AliAnalysisMuMuSpectra.cxx:379 AliAnalysisMuMuSpectra.cxx:380 AliAnalysisMuMuSpectra.cxx:381 AliAnalysisMuMuSpectra.cxx:382 AliAnalysisMuMuSpectra.cxx:383 AliAnalysisMuMuSpectra.cxx:384 AliAnalysisMuMuSpectra.cxx:385 AliAnalysisMuMuSpectra.cxx:386 AliAnalysisMuMuSpectra.cxx:387 AliAnalysisMuMuSpectra.cxx:388 AliAnalysisMuMuSpectra.cxx:389 AliAnalysisMuMuSpectra.cxx:390 AliAnalysisMuMuSpectra.cxx:391 AliAnalysisMuMuSpectra.cxx:392 AliAnalysisMuMuSpectra.cxx:393 AliAnalysisMuMuSpectra.cxx:394 AliAnalysisMuMuSpectra.cxx:395 AliAnalysisMuMuSpectra.cxx:396 AliAnalysisMuMuSpectra.cxx:397 AliAnalysisMuMuSpectra.cxx:398 AliAnalysisMuMuSpectra.cxx:399 AliAnalysisMuMuSpectra.cxx:400 AliAnalysisMuMuSpectra.cxx:401 AliAnalysisMuMuSpectra.cxx:402 AliAnalysisMuMuSpectra.cxx:403 AliAnalysisMuMuSpectra.cxx:404 AliAnalysisMuMuSpectra.cxx:405 AliAnalysisMuMuSpectra.cxx:406 AliAnalysisMuMuSpectra.cxx:407 AliAnalysisMuMuSpectra.cxx:408 AliAnalysisMuMuSpectra.cxx:409 AliAnalysisMuMuSpectra.cxx:410 AliAnalysisMuMuSpectra.cxx:411 AliAnalysisMuMuSpectra.cxx:412 AliAnalysisMuMuSpectra.cxx:413 AliAnalysisMuMuSpectra.cxx:414 AliAnalysisMuMuSpectra.cxx:415 AliAnalysisMuMuSpectra.cxx:416 AliAnalysisMuMuSpectra.cxx:417 AliAnalysisMuMuSpectra.cxx:418 AliAnalysisMuMuSpectra.cxx:419 AliAnalysisMuMuSpectra.cxx:420 AliAnalysisMuMuSpectra.cxx:421 AliAnalysisMuMuSpectra.cxx:422 AliAnalysisMuMuSpectra.cxx:423 AliAnalysisMuMuSpectra.cxx:424 AliAnalysisMuMuSpectra.cxx:425 AliAnalysisMuMuSpectra.cxx:426 AliAnalysisMuMuSpectra.cxx:427 AliAnalysisMuMuSpectra.cxx:428 AliAnalysisMuMuSpectra.cxx:429 AliAnalysisMuMuSpectra.cxx:430 AliAnalysisMuMuSpectra.cxx:431 AliAnalysisMuMuSpectra.cxx:432 AliAnalysisMuMuSpectra.cxx:433 AliAnalysisMuMuSpectra.cxx:434 AliAnalysisMuMuSpectra.cxx:435 AliAnalysisMuMuSpectra.cxx:436 AliAnalysisMuMuSpectra.cxx:437 AliAnalysisMuMuSpectra.cxx:438 AliAnalysisMuMuSpectra.cxx:439 AliAnalysisMuMuSpectra.cxx:440 AliAnalysisMuMuSpectra.cxx:441 AliAnalysisMuMuSpectra.cxx:442 AliAnalysisMuMuSpectra.cxx:443 AliAnalysisMuMuSpectra.cxx:444 AliAnalysisMuMuSpectra.cxx:445 AliAnalysisMuMuSpectra.cxx:446 AliAnalysisMuMuSpectra.cxx:447 AliAnalysisMuMuSpectra.cxx:448 AliAnalysisMuMuSpectra.cxx:449 AliAnalysisMuMuSpectra.cxx:450 AliAnalysisMuMuSpectra.cxx:451 AliAnalysisMuMuSpectra.cxx:452 AliAnalysisMuMuSpectra.cxx:453 AliAnalysisMuMuSpectra.cxx:454 AliAnalysisMuMuSpectra.cxx:455 AliAnalysisMuMuSpectra.cxx:456 AliAnalysisMuMuSpectra.cxx:457 AliAnalysisMuMuSpectra.cxx:458 AliAnalysisMuMuSpectra.cxx:459 AliAnalysisMuMuSpectra.cxx:460 AliAnalysisMuMuSpectra.cxx:461 AliAnalysisMuMuSpectra.cxx:462 AliAnalysisMuMuSpectra.cxx:463 AliAnalysisMuMuSpectra.cxx:464 AliAnalysisMuMuSpectra.cxx:465 AliAnalysisMuMuSpectra.cxx:466 AliAnalysisMuMuSpectra.cxx:467 AliAnalysisMuMuSpectra.cxx:468 AliAnalysisMuMuSpectra.cxx:469 AliAnalysisMuMuSpectra.cxx:470 AliAnalysisMuMuSpectra.cxx:471 AliAnalysisMuMuSpectra.cxx:472 AliAnalysisMuMuSpectra.cxx:473 AliAnalysisMuMuSpectra.cxx:474 AliAnalysisMuMuSpectra.cxx:475 AliAnalysisMuMuSpectra.cxx:476 AliAnalysisMuMuSpectra.cxx:477 AliAnalysisMuMuSpectra.cxx:478 AliAnalysisMuMuSpectra.cxx:479 AliAnalysisMuMuSpectra.cxx:480 AliAnalysisMuMuSpectra.cxx:481 AliAnalysisMuMuSpectra.cxx:482 AliAnalysisMuMuSpectra.cxx:483 AliAnalysisMuMuSpectra.cxx:484 AliAnalysisMuMuSpectra.cxx:485 AliAnalysisMuMuSpectra.cxx:486 AliAnalysisMuMuSpectra.cxx:487 AliAnalysisMuMuSpectra.cxx:488 AliAnalysisMuMuSpectra.cxx:489 AliAnalysisMuMuSpectra.cxx:490 AliAnalysisMuMuSpectra.cxx:491 AliAnalysisMuMuSpectra.cxx:492 AliAnalysisMuMuSpectra.cxx:493 AliAnalysisMuMuSpectra.cxx:494 AliAnalysisMuMuSpectra.cxx:495 AliAnalysisMuMuSpectra.cxx:496 AliAnalysisMuMuSpectra.cxx:497 AliAnalysisMuMuSpectra.cxx:498 AliAnalysisMuMuSpectra.cxx:499 AliAnalysisMuMuSpectra.cxx:500 AliAnalysisMuMuSpectra.cxx:501 AliAnalysisMuMuSpectra.cxx:502 AliAnalysisMuMuSpectra.cxx:503 AliAnalysisMuMuSpectra.cxx:504 AliAnalysisMuMuSpectra.cxx:505 AliAnalysisMuMuSpectra.cxx:506 AliAnalysisMuMuSpectra.cxx:507 AliAnalysisMuMuSpectra.cxx:508 AliAnalysisMuMuSpectra.cxx:509 AliAnalysisMuMuSpectra.cxx:510 AliAnalysisMuMuSpectra.cxx:511 AliAnalysisMuMuSpectra.cxx:512 AliAnalysisMuMuSpectra.cxx:513 AliAnalysisMuMuSpectra.cxx:514 AliAnalysisMuMuSpectra.cxx:515 AliAnalysisMuMuSpectra.cxx:516 AliAnalysisMuMuSpectra.cxx:517 AliAnalysisMuMuSpectra.cxx:518