#include "AliHistogramCollection.h"
ClassImp(AliHistogramCollection)
#include "AliLog.h"
#include "AliMergeableCollection.h"
#include "Riostream.h"
#include "TError.h"
#include "TH1.h"
#include "TH2.h"
#include "THashList.h"
#include "TKey.h"
#include "TMap.h"
#include "TObjArray.h"
#include "TObjString.h"
#include "TProfile.h"
#include "TRegexp.h"
#include "TROOT.h"
#include "TSystem.h"
using std::cout;
using std::endl;
ClassImp(AliHistogramCollection)
AliHistogramCollection::AliHistogramCollection(const char* name, const char* title)
: TNamed(name,title), fMap(0x0), fMustShowEmptyHistogram(kFALSE), fMapVersion(0), fMessages()
{
}
AliHistogramCollection::~AliHistogramCollection()
{
if ( fMap ) fMap->DeleteAll();
delete fMap;
}
Bool_t
AliHistogramCollection::Adopt(TH1* histo)
{
return InternalAdopt("",histo);
}
Bool_t
AliHistogramCollection::Adopt(const char* key, TH1* histo)
{
return InternalAdopt(Form("/%s/",key),histo);
}
Bool_t
AliHistogramCollection::Adopt(const char* keyA, const char* keyB, TH1* histo)
{
return InternalAdopt(Form("/%s/%s/",keyA,keyB),histo);
}
Bool_t
AliHistogramCollection::Adopt(const char* keyA, const char* keyB, const char* keyC, TH1* histo)
{
return InternalAdopt(Form("/%s/%s/%s/",keyA,keyB,keyC),histo);
}
Bool_t
AliHistogramCollection::Adopt(const char* keyA, const char* keyB, const char* keyC, const char* keyD, TH1* histo)
{
return InternalAdopt(Form("/%s/%s/%s/%s/",keyA,keyB,keyC,keyD),histo);
}
void AliHistogramCollection::ClearMessages()
{
fMessages.clear();
}
TIterator*
AliHistogramCollection::CreateIterator(Bool_t direction) const
{
return fMap ? new AliHistogramCollectionIterator(this,direction) : 0x0;
}
AliHistogramCollection*
AliHistogramCollection::Clone(const char* name) const
{
AliHistogramCollection* newone = new AliHistogramCollection(name,GetTitle());
newone->fMap = static_cast<TMap*>(fMap->Clone());
newone->fMustShowEmptyHistogram = fMustShowEmptyHistogram;
newone->fMapVersion = fMapVersion;
return newone;
}
void
AliHistogramCollection::Delete(Option_t*)
{
fMap->DeleteAll();
delete fMap;
fMap=0x0;
}
TObject*
AliHistogramCollection::FindObject(const char* identifier) const
{
return Histo(KeyA(identifier),
KeyB(identifier),
KeyC(identifier),
KeyD(identifier),
HistoName(identifier));
}
TObject*
AliHistogramCollection::FindObject(const TObject *key) const
{
AliWarning("This method is awfully inefficient. Please improve it or use FindObject(const char*)");
TIter next(CreateIterator());
TObject* o;
while ( ( o=next() ) )
{
if ( o->IsEqual(key) ) return o;
}
return 0x0;
}
AliMergeableCollection* AliHistogramCollection::Convert() const
{
AliMergeableCollection* mc = new AliMergeableCollection(GetName(),GetTitle());
TObjArray* ids = SortAllIdentifiers();
TIter next(ids);
TObjString* key;
while ( ( key = static_cast<TObjString*>(next()) ) )
{
THashList* list = static_cast<THashList*>(fMap->GetValue(key->String().Data()));
TIter nextHisto(list);
TH1* histo;
while ( ( histo = static_cast<TH1*>(nextHisto())))
{
TH1* h = static_cast<TH1*>(histo->Clone());
mc->Adopt(key->String().Data(),h);
}
}
delete ids;
return mc;
}
TList*
AliHistogramCollection::CreateListOfKeysA() const
{
return CreateListOfKeys(0);
}
TList*
AliHistogramCollection::CreateListOfKeysB() const
{
return CreateListOfKeys(1);
}
TList*
AliHistogramCollection::CreateListOfKeysC() const
{
return CreateListOfKeys(2);
}
TList*
AliHistogramCollection::CreateListOfKeysD() const
{
return CreateListOfKeys(3);
}
TList*
AliHistogramCollection::CreateListOfHistogramNames(const char* keyA, const char* keyB, const char* keyC, const char* keyD) const
{
TList* listOfNames = new TList;
listOfNames->SetOwner(kTRUE);
TIter next(Map());
TObjString* str;
while ( ( str = static_cast<TObjString*>(next()) ) )
{
TString identifier = str->String();
Bool_t copy= ( KeyA(identifier) == keyA &&
( strlen(keyB)==0 || KeyB(identifier)==keyB ) &&
( strlen(keyC)==0 || KeyC(identifier)==keyC ) &&
( strlen(keyD)==0 || KeyD(identifier)==keyD ));
if ( !copy ) continue;
THashList* list = static_cast<THashList*>(Map()->GetValue(identifier.Data()));
TIter nextHisto(list);
TH1* h;
while ( ( h = static_cast<TH1*>(nextHisto()) ) )
{
listOfNames->Add(new TObjString(h->GetName()));
}
}
return listOfNames;
}
TList*
AliHistogramCollection::CreateListOfKeys(Int_t index) const
{
TList* list = new TList;
list->SetOwner(kTRUE);
TObjArray* ids = SortAllIdentifiers();
TIter next(ids);
TObjString* str;
while ( ( str = static_cast<TObjString*>(next()) ) )
{
TString oneid = InternalDecode(str->String().Data(),index);
if (oneid.Length()>0 && !list->Contains(oneid))
{
list->Add(new TObjString(oneid));
}
}
delete ids;
return list;
}
TH1*
AliHistogramCollection::Histo(const char* keyA,
const char* histoname) const
{
return InternalHisto(Form("/%s/",keyA),histoname);
}
TH1*
AliHistogramCollection::Histo(const char* keyA, const char* keyB,
const char* histoname) const
{
return InternalHisto(Form("/%s/%s/",keyA,keyB),histoname);
}
TH1*
AliHistogramCollection::Histo(const char* keyA, const char* keyB, const char* keyC,
const char* histoname) const
{
return InternalHisto(Form("/%s/%s/%s/",keyA,keyB,keyC),histoname);
}
TH1*
AliHistogramCollection::Histo(const char* keyA, const char* keyB,
const char* keyC, const char* keyD,
const char* histoname) const
{
return InternalHisto(Form("/%s/%s/%s/%s/",keyA,keyB,keyC,keyD),histoname);
}
TString
AliHistogramCollection::HistoName(const char* identifier) const
{
return InternalDecode(identifier,-1);
}
Bool_t AliHistogramCollection::InternalAdopt(const char* identifier, TH1* histo)
{
if (!histo)
{
Error("Adopt","Cannot adopt a null histogram");
return kFALSE;
}
THashList* hlist = 0x0;
hlist = static_cast<THashList*>(Map()->GetValue(identifier));
if (!hlist)
{
hlist = new THashList;
hlist->SetOwner(kTRUE);
Map()->Add(new TObjString(identifier),hlist);
hlist->SetName(identifier);
}
TH1* h = static_cast<TH1*>(hlist->FindObject(histo->GetName()));
if (h)
{
AliError(Form("Cannot adopt an already existing histogram : %s -> %s",identifier,h->GetName()));
return kFALSE;
}
histo->SetDirectory(0);
hlist->AddLast(histo);
return kTRUE;
}
TH1*
AliHistogramCollection::Histo(const char* sidentifier) const
{
TObjArray* a = TString(sidentifier).Tokenize(":");
TString identifier(static_cast<TObjString*>(a->At(0))->String());
TString action;
if ( a->GetLast() > 0 )
{
action = static_cast<TObjString*>(a->At(1))->String();
action.ToUpper();
}
delete a;
Int_t nslashes = identifier.CountChar('/');
TH1* h(0x0);
switch (nslashes)
{
case 0:
case 1:
h = InternalHisto("",identifier);
break;
case 2:
h = Histo(InternalDecode(identifier,0),
InternalDecode(identifier,-1));
break;
case 3:
h = Histo(InternalDecode(identifier,0),
InternalDecode(identifier,1),
InternalDecode(identifier,-1));
break;
case 4:
h = Histo(InternalDecode(identifier,0),
InternalDecode(identifier,1),
InternalDecode(identifier,2),
InternalDecode(identifier,-1));
break;
case 5:
h = Histo(InternalDecode(identifier,0),
InternalDecode(identifier,1),
InternalDecode(identifier,2),
InternalDecode(identifier,3),
InternalDecode(identifier,-1));
break;
default:
AliError(Form("Invalid identifier %s",identifier.Data()));
break;
}
if (h)
{
TH2* h2(0x0);
if ( action == "PX" && ( (h2 = dynamic_cast<TH2*>(h)) ) )
{
return h2->ProjectionX(NormalizeName(identifier.Data(),action.Data()).Data());
}
else if ( action == "PY" && ( (h2 = dynamic_cast<TH2*>(h)) ) )
{
return h2->ProjectionY(NormalizeName(identifier.Data(),action.Data()).Data());
}
else if ( action == "PFX" && ( (h2 = dynamic_cast<TH2*>(h)) ) )
{
return h2->ProfileX(NormalizeName(identifier.Data(),action.Data()).Data());
}
else if ( action == "PFY" && ( (h2 = dynamic_cast<TH2*>(h)) ) )
{
return h2->ProfileY(NormalizeName(identifier.Data(),action.Data()).Data());
}
}
else
{
AliDebug(1,Form("histogram %s not found",sidentifier));
}
return h;
}
TString
AliHistogramCollection::InternalDecode(const char* identifier, Int_t index) const
{
if ( strlen(identifier) > 0 && identifier[0] != '/' )
{
AliError(Form("identifier %s is malformed (should start with /)",identifier));
return "";
}
TObjArray* array = TString(identifier).Tokenize("/");
if ( array->GetLast()>5 )
{
AliError(Form("identifier %s is malformed (more than 5 /)",identifier));
delete array;
return "";
}
TString value("");
if ( index < 0 )
{
value = static_cast<TObjString*>(array->Last())->String();
}
else if ( index <= array->GetLast() )
{
value = static_cast<TObjString*>(array->At(index))->String();
}
delete array;
return value;
}
TH1*
AliHistogramCollection::InternalHisto(const char* identifier,
const char* histoname) const
{
if (!fMap)
{
return 0x0;
}
THashList* hlist = static_cast<THashList*>(Map()->GetValue(identifier));
if (!hlist)
{
TString msg(Form("Did not find hashlist for identifier=%s dir=%s",identifier,gDirectory ? gDirectory->GetName() : "" ));
fMessages[msg.Data()]++;
return 0x0;
}
TH1* h = static_cast<TH1*>(hlist->FindObject(histoname));
if (!h)
{
TString msg(Form("Did not find histoname=%s in %s",histoname,identifier));
fMessages[msg.Data()]++;
}
return h;
}
TString
AliHistogramCollection::KeyA(const char* identifier) const
{
return InternalDecode(identifier,0);
}
TString
AliHistogramCollection::KeyB(const char* identifier) const
{
return InternalDecode(identifier,1);
}
TString
AliHistogramCollection::KeyC(const char* identifier) const
{
return InternalDecode(identifier,2);
}
TString
AliHistogramCollection::KeyD(const char* identifier) const
{
return InternalDecode(identifier,3);
}
TMap* AliHistogramCollection::Map() const
{
if (!fMap)
{
fMap = new TMap;
fMap->SetOwnerKeyValue(kTRUE,kTRUE);
fMapVersion = 1;
}
else
{
if ( fMapVersion < 1 )
{
AliInfo("Remapping");
TIter next(fMap);
TObjString* str;
while ( ( str = static_cast<TObjString*>(next()) ) )
{
if ( str->String().Contains("./") )
{
TString newkey(str->String());
newkey.ReplaceAll("./","");
TObject* o = fMap->GetValue(str);
TPair* p = fMap->RemoveEntry(str);
if (!p)
{
AliError("oups oups oups");
return 0x0;
}
fMap->Add(new TObjString(newkey.Data()),o);
delete p;
}
}
fMapVersion = 1;
}
}
return fMap;
}
Long64_t
AliHistogramCollection::Merge(TCollection* list)
{
if (!list) return 0;
if (list->IsEmpty()) return 1;
TIter next(list);
TObject* o;
TList mapList;
Int_t count(0);
while ( ( o = next() ) )
{
AliHistogramCollection* hcol = dynamic_cast<AliHistogramCollection*>(o);
if (!hcol) {
AliFatal(Form("object named \"%s\" is a %s instead of an AliHistogramCollection!", o->GetName(), o->ClassName()));
continue;
}
++count;
if ( hcol->fMap ) hcol->Map();
TIter nextIdentifier(hcol->fMap);
TObjString* identifier;
while ( ( identifier = static_cast<TObjString*>(nextIdentifier()) ) )
{
THashList* otherList = static_cast<THashList*>(hcol->fMap->GetValue(identifier->String().Data()));
TIter nextHisto(otherList);
TH1* h;
while ( ( h = static_cast<TH1*>(nextHisto()) ) )
{
TString newid(Form("%s%s",identifier->String().Data(),h->GetName()));
TH1* thisHisto = Histo(newid.Data());
if (!thisHisto)
{
Int_t nslashes = TString(newid).CountChar('/');
Bool_t ok(kFALSE);
switch (nslashes)
{
case 0:
ok = Adopt(static_cast<TH1*>(h->Clone()));
break;
case 2:
ok = Adopt(KeyA(identifier->String()),
static_cast<TH1*>(h->Clone()));
break;
case 3:
ok = Adopt(KeyA(identifier->String()),
KeyB(identifier->String()),
static_cast<TH1*>(h->Clone()));
break;
case 4:
ok = Adopt(KeyA(identifier->String()),
KeyB(identifier->String()),
KeyC(identifier->String()),
static_cast<TH1*>(h->Clone()));
break;
case 5:
ok = Adopt(KeyA(identifier->String()),
KeyB(identifier->String()),
KeyC(identifier->String()),
KeyD(identifier->String()),
static_cast<TH1*>(h->Clone()));
break;
default:
AliError(Form("Invalid identifier : %s",identifier->String().Data()));
break;
}
if (!ok)
{
AliError(Form("Adoption of histogram %s failed",h->GetName()));
}
}
else
{
if ( HistoSameAxis(h,thisHisto) )
{
thisHisto->Add(h);
}
else
{
TList l;
l.Add(h);
thisHisto->Merge(&l);
}
}
}
}
}
return count+1;
}
TString AliHistogramCollection::NormalizeName(const char* identifier,const char* action) const
{
TString name(GetName());
name += "_";
name += identifier;
name += "_";
name += action;
name.ReplaceAll("/","_");
name.ReplaceAll("-","_");
return name;
}
Int_t
AliHistogramCollection::NumberOfHistograms() const
{
TIter next(CreateIterator(this));
Int_t n(0);
while ( next() ) ++n;
return n;
}
Int_t
AliHistogramCollection::NumberOfKeys() const
{
return fMap ? fMap->GetSize() : 0;
}
void
AliHistogramCollection::Print(Option_t* option) const
{
cout << Form("AliHistogramCollection(%s,%s) : %d keys and %d histos",
GetName(),GetTitle(),
NumberOfKeys(), NumberOfHistograms()) << endl;
if (!strlen(option)) return;
TString sreKeyA("*");
TString sreKeyB("*");
TString sreKeyC("*");
TString sreKeyD("*");
TString sreHistoname("*");
TObjArray* select = TString(option).Tokenize("/");
Int_t n = select->GetLast();
if (n>=0)
{
sreHistoname = static_cast<TObjString*>(select->At(n))->String();
}
if (n>=1)
{
sreKeyD = static_cast<TObjString*>(select->At(n-1))->String();
}
if (n>=2)
{
sreKeyC = static_cast<TObjString*>(select->At(n-2))->String();
}
if (n>=3)
{
sreKeyB = static_cast<TObjString*>(select->At(n-3))->String();
}
if (n>=4)
{
sreKeyA = static_cast<TObjString*>(select->At(n-3))->String();
}
TRegexp reKeyA(sreKeyA,kTRUE);
TRegexp reKeyB(sreKeyB,kTRUE);
TRegexp reKeyC(sreKeyC,kTRUE);
TRegexp reKeyD(sreKeyD,kTRUE);
TRegexp reHistoname(sreHistoname,kTRUE);
delete select;
TObjArray* identifiers = SortAllIdentifiers();
TIter nextIdentifier(identifiers);
TObjString* sid(0x0);
while ( ( sid = static_cast<TObjString*>(nextIdentifier()) ) )
{
Bool_t identifierPrinted(kFALSE);
TString identifier(sid->String());
if ( ( InternalDecode(identifier,0).Contains(reKeyA) &&
InternalDecode(identifier,1).Contains(reKeyB) &&
InternalDecode(identifier,2).Contains(reKeyC) &&
InternalDecode(identifier,3).Contains(reKeyD) )
)
{
if ( sreHistoname == "*" )
{
identifierPrinted = kTRUE;
cout << identifier.Data() << endl;
}
THashList * list = static_cast<THashList*>(Map()->GetValue(sid->String().Data()));
TObjArray names;
names.SetOwner(kTRUE);
TIter nextUnsortedHisto(list);
TH1* h;
while ( ( h = static_cast<TH1*>(nextUnsortedHisto()) ) )
{
names.Add(new TObjString(h->GetName()));
}
names.Sort();
TIter nextHistoName(&names);
TObjString* hname;
while ( ( hname = static_cast<TObjString*>(nextHistoName()) ) )
{
TString histoName(hname->String());
if (histoName.Contains(reHistoname) )
{
h = static_cast<TH1*>(list->FindObject(histoName.Data()));
if ( h->GetEntries()==0 && !fMustShowEmptyHistogram ) continue;
if (!identifierPrinted)
{
cout << identifier.Data() << endl;
identifierPrinted = kTRUE;
}
cout << Form(" %s %s Entries=%d Sum=%g",h->GetName(),h->GetTitle(),Int_t(h->GetEntries()),h->GetSumOfWeights()) << endl;
}
}
if (!identifierPrinted && sreHistoname=="-" )
{
cout << identifier.Data() << endl;
}
}
}
delete identifiers;
}
void
AliHistogramCollection::PrintMessages(const char* prefix) const
{
std::map<std::string,int>::const_iterator it;
for ( it = fMessages.begin(); it != fMessages.end(); ++it )
{
cout << Form("%s : message %s appeared %5d times",prefix,it->first.c_str(),it->second) << endl;
}
}
UInt_t
AliHistogramCollection::EstimateSize(Bool_t show) const
{
TMap sizeMap;
sizeMap.SetOwnerKeyValue(kTRUE,kTRUE);
TIter next(CreateIterator());
TH1* h;
UInt_t n(0);
while ( ( h = static_cast<TH1*>(next()) ) )
{
Int_t nbins = (h->GetNbinsX()+2);
if (h->GetNbinsY()>1)
{
nbins *= (h->GetNbinsY()+2);
}
if (h->GetNbinsZ()>1)
{
nbins *= (h->GetNbinsZ()+2);
}
Bool_t hasErrors = ( h->GetSumw2N() > 0 );
TString cname(h->ClassName());
Int_t nbytesPerBin(0);
if (cname.Contains(TRegexp("C$")) ) nbytesPerBin = sizeof(Char_t);
if (cname.Contains(TRegexp("S$")) ) nbytesPerBin = sizeof(Short_t);
if (cname.Contains(TRegexp("I$")) ) nbytesPerBin = sizeof(Int_t);
if (cname.Contains(TRegexp("F$")) ) nbytesPerBin = sizeof(Float_t);
if (cname.Contains(TRegexp("D$")) ) nbytesPerBin = sizeof(Double_t);
if (!nbytesPerBin)
{
AliError(Form("Could not get the number of bytes per bin for histo %s of class %s. Thus the size estimate will be wrong !",
h->GetName(),h->ClassName()));
continue;
}
UInt_t thissize = sizeof(h) + nbins*(nbytesPerBin) + strlen(h->GetName())
+ strlen(h->GetTitle());
TObjString* m = static_cast<TObjString*>(sizeMap.GetValue(h->GetName()));
if (!m)
{
m = new TObjString(Form("%u %u",thissize,1));
sizeMap.Add(new TObjString(h->GetName()),m);
}
else
{
UInt_t s;
UInt_t d;
sscanf(m->String().Data(),"%u %u",&s,&d);
s += thissize;
++d;
m->String().Form("%u %u",s,d);
}
if ( hasErrors) thissize += nbins*8;
n += thissize;
}
if ( show )
{
std::multimap<UInt_t,std::string> sorted;
TIter nextMapSize(&sizeMap);
TObjString* m;
UInt_t s;
UInt_t d;
while ( ( m = static_cast<TObjString*>(nextMapSize()) ) )
{
TObjString* sizeMsg = static_cast<TObjString*>(sizeMap.GetValue(m->String()));
sscanf(sizeMsg->String().Data(),"%u %u",&s,&d);
sorted.insert(std::pair<UInt_t,std::string>(s,m->String().Data()));
}
std::multimap<UInt_t,std::string>::const_iterator it;
for ( it = sorted.begin(); it != sorted.end(); ++it )
{
TObjString* sizeMsg = static_cast<TObjString*>(sizeMap.GetValue(it->second.c_str()));
sscanf(sizeMsg->String().Data(),"%u %u",&s,&d);
AliInfo(Form("%40s : size %10u (%7u per object, %6d objects)",
it->second.c_str(),s,s/d,d));
}
}
return n;
}
void AliHistogramCollection::PruneEmptyHistograms()
{
TIter next(Map());
TObjString* key;
TList toBeRemoved;
toBeRemoved.SetOwner(kTRUE);
while ( ( key = static_cast<TObjString*>(next()) ) )
{
TString identifier(key->String());
THashList* hlist = static_cast<THashList*>(Map()->GetValue(identifier.Data()));
TIter nextHisto(hlist);
TH1* h;
while ( ( h = static_cast<TH1*>(nextHisto())))
{
if ( h->GetEntries()==0)
{
toBeRemoved.Add(new TObjString(Form("%s%s",identifier.Data(),h->GetName())));
}
}
}
TIter nextTBR(&toBeRemoved);
while ( ( key = static_cast<TObjString*>(nextTBR()) ) )
{
Remove(key);
}
}
AliHistogramCollection*
AliHistogramCollection::Project(const char* keyA, const char* keyB, const char* keyC, const char* keyD) const
{
if (!fMap) return 0x0;
AliHistogramCollection* hc = new AliHistogramCollection(Form("%s %s/%s/%s/%s",GetName(),keyA,keyB,keyC,keyD),
GetTitle());
TIter next(Map());
TObjString* str;
while ( ( str = static_cast<TObjString*>(next()) ) )
{
TString identifier = str->String();
Bool_t copy= ( KeyA(identifier) == keyA &&
( strlen(keyB)==0 || KeyB(identifier)==keyB ) &&
( strlen(keyC)==0 || KeyC(identifier)==keyC ) &&
( strlen(keyD)==0 || KeyD(identifier)==keyD ));
if ( !copy ) continue;
THashList* list = static_cast<THashList*>(Map()->GetValue(identifier.Data()));
TIter nextHisto(list);
TH1* h;
while ( ( h = static_cast<TH1*>(nextHisto()) ) )
{
TH1* hclone = static_cast<TH1*>(h->Clone());
TString newkey(identifier.Data());
if ( strlen(keyD) > 0 ) newkey.ReplaceAll(Form("/%s",keyD),"");
if ( strlen(keyC) > 0 ) newkey.ReplaceAll(Form("/%s",keyC),"");
if ( strlen(keyB) > 0 ) newkey.ReplaceAll(Form("/%s",keyB),"");
if ( strlen(keyA) > 0 ) newkey.ReplaceAll(Form("/%s",keyA),"");
if (newkey=="/") newkey="";
hc->InternalAdopt(newkey.Data(),hclone);
}
}
return hc;
}
TObject*
AliHistogramCollection::Remove(TObject* key)
{
TObjString* str = dynamic_cast<TObjString*>(key);
if (!str)
{
AliError(Form("key is not of the expected TObjString type, but of %s",key->ClassName()));
return 0x0;
}
TString identifier(str->String());
Int_t nslashes = TString(identifier).CountChar('/');
TString skey;
switch (nslashes )
{
case 2:
skey = Form("/%s/",
KeyA(identifier).Data());
break;
case 3:
skey = Form("/%s/%s/",
KeyA(identifier).Data(),
KeyB(identifier).Data());
break;
case 4:
skey = Form("/%s/%s/%s/",
KeyA(identifier).Data(),
KeyB(identifier).Data(),
KeyC(identifier).Data());
break;
case 5:
skey = Form("/%s/%s/%s/%s/",
KeyA(identifier).Data(),
KeyB(identifier).Data(),
KeyC(identifier).Data(),
KeyD(identifier).Data()
);
break;
default:
AliError("Oups");
break;
};
THashList* hlist = dynamic_cast<THashList*>(Map()->GetValue(skey.Data()));
if (!hlist)
{
AliWarning(Form("Could not get hlist for key=%s",skey.Data()));
return 0x0;
}
TH1* h = InternalHisto(skey,HistoName(identifier.Data()));
if (!h)
{
AliError(Form("Could not find histo %s",identifier.Data()));
return 0x0;
}
TObject* o = hlist->Remove(h);
if (!o)
{
AliError("Remove failed");
return 0x0;
}
return o;
}
Bool_t AliHistogramCollection::HistoSameAxis(TH1 *h0, TH1 *h1) const
{
Bool_t rc = kFALSE;
if (!h0 || !h1) return rc;
TAxis *a0 = 0, *a1 = 0;
a0 = h0->GetXaxis();
a1 = h1->GetXaxis();
if (a0->GetNbins() == a1->GetNbins())
if (TMath::Abs(a0->GetXmax() - a1->GetXmax()) < 1.e-9)
if (TMath::Abs(a0->GetXmin() - a1->GetXmin()) < 1.e-9) rc = kTRUE;
if (h0->GetDimension() > 1) {
rc = kFALSE;
a0 = h0->GetYaxis();
a1 = h1->GetYaxis();
if (a0->GetNbins() == a1->GetNbins())
if (TMath::Abs(a0->GetXmax() - a1->GetXmax()) < 1.e-9)
if (TMath::Abs(a0->GetXmin() - a1->GetXmin()) < 1.e-9) rc = kTRUE;
}
if (h0->GetDimension() > 2) {
rc = kFALSE;
a0 = h0->GetZaxis();
a1 = h1->GetZaxis();
if (a0->GetNbins() == a1->GetNbins())
if (TMath::Abs(a0->GetXmax() - a1->GetXmax()) < 1.e-9)
if (TMath::Abs(a0->GetXmin() - a1->GetXmin()) < 1.e-9) rc = kTRUE;
}
return rc;
}
TObjArray*
AliHistogramCollection::SortAllIdentifiers() const
{
TObjArray* identifiers = new TObjArray;
identifiers->SetOwner(kFALSE);
TIter next(Map());
TObjString* sid;
while ( ( sid = static_cast<TObjString*>(next()) ) )
{
if ( !identifiers->FindObject(sid->String().Data()) )
{
identifiers->Add(sid);
}
}
identifiers->Sort();
return identifiers;
}
class AliHistogramCollectionIterator;
AliHistogramCollectionIterator::AliHistogramCollectionIterator(const AliHistogramCollection* hcol, Bool_t dir)
: fkHistogramCollection(hcol), fMapIterator(0x0), fHashListIterator(0x0), fDirection(dir)
{
}
AliHistogramCollectionIterator&
AliHistogramCollectionIterator::operator=(const TIterator&)
{
Fatal("TIterator::operator=","Not implementeable");
return *this;
}
AliHistogramCollectionIterator::~AliHistogramCollectionIterator()
{
Reset();
}
TObject* AliHistogramCollectionIterator::Next()
{
if (!fHashListIterator)
{
if ( !fMapIterator )
{
fMapIterator = fkHistogramCollection->Map()->MakeIterator(fDirection);
}
TObjString* key = static_cast<TObjString*>(fMapIterator->Next());
if (!key)
{
return 0x0;
}
THashList* list = static_cast<THashList*>(fkHistogramCollection->Map()->GetValue(key->String().Data()));
if (!list) return 0x0;
fHashListIterator = list->MakeIterator(fDirection);
}
TObject* o = fHashListIterator->Next();
if (!o)
{
delete fHashListIterator;
fHashListIterator = 0x0;
return Next();
}
return o;
}
void AliHistogramCollectionIterator::Reset()
{
delete fHashListIterator;
delete fMapIterator;
}
AliHistogramCollection.cxx:1 AliHistogramCollection.cxx:2 AliHistogramCollection.cxx:3 AliHistogramCollection.cxx:4 AliHistogramCollection.cxx:5 AliHistogramCollection.cxx:6 AliHistogramCollection.cxx:7 AliHistogramCollection.cxx:8 AliHistogramCollection.cxx:9 AliHistogramCollection.cxx:10 AliHistogramCollection.cxx:11 AliHistogramCollection.cxx:12 AliHistogramCollection.cxx:13 AliHistogramCollection.cxx:14 AliHistogramCollection.cxx:15 AliHistogramCollection.cxx:16 AliHistogramCollection.cxx:17 AliHistogramCollection.cxx:18 AliHistogramCollection.cxx:19 AliHistogramCollection.cxx:20 AliHistogramCollection.cxx:21 AliHistogramCollection.cxx:22 AliHistogramCollection.cxx:23 AliHistogramCollection.cxx:24 AliHistogramCollection.cxx:25 AliHistogramCollection.cxx:26 AliHistogramCollection.cxx:27 AliHistogramCollection.cxx:28 AliHistogramCollection.cxx:29 AliHistogramCollection.cxx:30 AliHistogramCollection.cxx:31 AliHistogramCollection.cxx:32 AliHistogramCollection.cxx:33 AliHistogramCollection.cxx:34 AliHistogramCollection.cxx:35 AliHistogramCollection.cxx:36 AliHistogramCollection.cxx:37 AliHistogramCollection.cxx:38 AliHistogramCollection.cxx:39 AliHistogramCollection.cxx:40 AliHistogramCollection.cxx:41 AliHistogramCollection.cxx:42 AliHistogramCollection.cxx:43 AliHistogramCollection.cxx:44 AliHistogramCollection.cxx:45 AliHistogramCollection.cxx:46 AliHistogramCollection.cxx:47 AliHistogramCollection.cxx:48 AliHistogramCollection.cxx:49 AliHistogramCollection.cxx:50 AliHistogramCollection.cxx:51 AliHistogramCollection.cxx:52 AliHistogramCollection.cxx:53 AliHistogramCollection.cxx:54 AliHistogramCollection.cxx:55 AliHistogramCollection.cxx:56 AliHistogramCollection.cxx:57 AliHistogramCollection.cxx:58 AliHistogramCollection.cxx:59 AliHistogramCollection.cxx:60 AliHistogramCollection.cxx:61 AliHistogramCollection.cxx:62 AliHistogramCollection.cxx:63 AliHistogramCollection.cxx:64 AliHistogramCollection.cxx:65 AliHistogramCollection.cxx:66 AliHistogramCollection.cxx:67 AliHistogramCollection.cxx:68 AliHistogramCollection.cxx:69 AliHistogramCollection.cxx:70 AliHistogramCollection.cxx:71 AliHistogramCollection.cxx:72 AliHistogramCollection.cxx:73 AliHistogramCollection.cxx:74 AliHistogramCollection.cxx:75 AliHistogramCollection.cxx:76 AliHistogramCollection.cxx:77 AliHistogramCollection.cxx:78 AliHistogramCollection.cxx:79 AliHistogramCollection.cxx:80 AliHistogramCollection.cxx:81 AliHistogramCollection.cxx:82 AliHistogramCollection.cxx:83 AliHistogramCollection.cxx:84 AliHistogramCollection.cxx:85 AliHistogramCollection.cxx:86 AliHistogramCollection.cxx:87 AliHistogramCollection.cxx:88 AliHistogramCollection.cxx:89 AliHistogramCollection.cxx:90 AliHistogramCollection.cxx:91 AliHistogramCollection.cxx:92 AliHistogramCollection.cxx:93 AliHistogramCollection.cxx:94 AliHistogramCollection.cxx:95 AliHistogramCollection.cxx:96 AliHistogramCollection.cxx:97 AliHistogramCollection.cxx:98 AliHistogramCollection.cxx:99 AliHistogramCollection.cxx:100 AliHistogramCollection.cxx:101 AliHistogramCollection.cxx:102 AliHistogramCollection.cxx:103 AliHistogramCollection.cxx:104 AliHistogramCollection.cxx:105 AliHistogramCollection.cxx:106 AliHistogramCollection.cxx:107 AliHistogramCollection.cxx:108 AliHistogramCollection.cxx:109 AliHistogramCollection.cxx:110 AliHistogramCollection.cxx:111 AliHistogramCollection.cxx:112 AliHistogramCollection.cxx:113 AliHistogramCollection.cxx:114 AliHistogramCollection.cxx:115 AliHistogramCollection.cxx:116 AliHistogramCollection.cxx:117 AliHistogramCollection.cxx:118 AliHistogramCollection.cxx:119 AliHistogramCollection.cxx:120 AliHistogramCollection.cxx:121 AliHistogramCollection.cxx:122 AliHistogramCollection.cxx:123 AliHistogramCollection.cxx:124 AliHistogramCollection.cxx:125 AliHistogramCollection.cxx:126 AliHistogramCollection.cxx:127 AliHistogramCollection.cxx:128 AliHistogramCollection.cxx:129 AliHistogramCollection.cxx:130 AliHistogramCollection.cxx:131 AliHistogramCollection.cxx:132 AliHistogramCollection.cxx:133 AliHistogramCollection.cxx:134 AliHistogramCollection.cxx:135 AliHistogramCollection.cxx:136 AliHistogramCollection.cxx:137 AliHistogramCollection.cxx:138 AliHistogramCollection.cxx:139 AliHistogramCollection.cxx:140 AliHistogramCollection.cxx:141 AliHistogramCollection.cxx:142 AliHistogramCollection.cxx:143 AliHistogramCollection.cxx:144 AliHistogramCollection.cxx:145 AliHistogramCollection.cxx:146 AliHistogramCollection.cxx:147 AliHistogramCollection.cxx:148 AliHistogramCollection.cxx:149 AliHistogramCollection.cxx:150 AliHistogramCollection.cxx:151 AliHistogramCollection.cxx:152 AliHistogramCollection.cxx:153 AliHistogramCollection.cxx:154 AliHistogramCollection.cxx:155 AliHistogramCollection.cxx:156 AliHistogramCollection.cxx:157 AliHistogramCollection.cxx:158 AliHistogramCollection.cxx:159 AliHistogramCollection.cxx:160 AliHistogramCollection.cxx:161 AliHistogramCollection.cxx:162 AliHistogramCollection.cxx:163 AliHistogramCollection.cxx:164 AliHistogramCollection.cxx:165 AliHistogramCollection.cxx:166 AliHistogramCollection.cxx:167 AliHistogramCollection.cxx:168 AliHistogramCollection.cxx:169 AliHistogramCollection.cxx:170 AliHistogramCollection.cxx:171 AliHistogramCollection.cxx:172 AliHistogramCollection.cxx:173 AliHistogramCollection.cxx:174 AliHistogramCollection.cxx:175 AliHistogramCollection.cxx:176 AliHistogramCollection.cxx:177 AliHistogramCollection.cxx:178 AliHistogramCollection.cxx:179 AliHistogramCollection.cxx:180 AliHistogramCollection.cxx:181 AliHistogramCollection.cxx:182 AliHistogramCollection.cxx:183 AliHistogramCollection.cxx:184 AliHistogramCollection.cxx:185 AliHistogramCollection.cxx:186 AliHistogramCollection.cxx:187 AliHistogramCollection.cxx:188 AliHistogramCollection.cxx:189 AliHistogramCollection.cxx:190 AliHistogramCollection.cxx:191 AliHistogramCollection.cxx:192 AliHistogramCollection.cxx:193 AliHistogramCollection.cxx:194 AliHistogramCollection.cxx:195 AliHistogramCollection.cxx:196 AliHistogramCollection.cxx:197 AliHistogramCollection.cxx:198 AliHistogramCollection.cxx:199 AliHistogramCollection.cxx:200 AliHistogramCollection.cxx:201 AliHistogramCollection.cxx:202 AliHistogramCollection.cxx:203 AliHistogramCollection.cxx:204 AliHistogramCollection.cxx:205 AliHistogramCollection.cxx:206 AliHistogramCollection.cxx:207 AliHistogramCollection.cxx:208 AliHistogramCollection.cxx:209 AliHistogramCollection.cxx:210 AliHistogramCollection.cxx:211 AliHistogramCollection.cxx:212 AliHistogramCollection.cxx:213 AliHistogramCollection.cxx:214 AliHistogramCollection.cxx:215 AliHistogramCollection.cxx:216 AliHistogramCollection.cxx:217 AliHistogramCollection.cxx:218 AliHistogramCollection.cxx:219 AliHistogramCollection.cxx:220 AliHistogramCollection.cxx:221 AliHistogramCollection.cxx:222 AliHistogramCollection.cxx:223 AliHistogramCollection.cxx:224 AliHistogramCollection.cxx:225 AliHistogramCollection.cxx:226 AliHistogramCollection.cxx:227 AliHistogramCollection.cxx:228 AliHistogramCollection.cxx:229 AliHistogramCollection.cxx:230 AliHistogramCollection.cxx:231 AliHistogramCollection.cxx:232 AliHistogramCollection.cxx:233 AliHistogramCollection.cxx:234 AliHistogramCollection.cxx:235 AliHistogramCollection.cxx:236 AliHistogramCollection.cxx:237 AliHistogramCollection.cxx:238 AliHistogramCollection.cxx:239 AliHistogramCollection.cxx:240 AliHistogramCollection.cxx:241 AliHistogramCollection.cxx:242 AliHistogramCollection.cxx:243 AliHistogramCollection.cxx:244 AliHistogramCollection.cxx:245 AliHistogramCollection.cxx:246 AliHistogramCollection.cxx:247 AliHistogramCollection.cxx:248 AliHistogramCollection.cxx:249 AliHistogramCollection.cxx:250 AliHistogramCollection.cxx:251 AliHistogramCollection.cxx:252 AliHistogramCollection.cxx:253 AliHistogramCollection.cxx:254 AliHistogramCollection.cxx:255 AliHistogramCollection.cxx:256 AliHistogramCollection.cxx:257 AliHistogramCollection.cxx:258 AliHistogramCollection.cxx:259 AliHistogramCollection.cxx:260 AliHistogramCollection.cxx:261 AliHistogramCollection.cxx:262 AliHistogramCollection.cxx:263 AliHistogramCollection.cxx:264 AliHistogramCollection.cxx:265 AliHistogramCollection.cxx:266 AliHistogramCollection.cxx:267 AliHistogramCollection.cxx:268 AliHistogramCollection.cxx:269 AliHistogramCollection.cxx:270 AliHistogramCollection.cxx:271 AliHistogramCollection.cxx:272 AliHistogramCollection.cxx:273 AliHistogramCollection.cxx:274 AliHistogramCollection.cxx:275 AliHistogramCollection.cxx:276 AliHistogramCollection.cxx:277 AliHistogramCollection.cxx:278 AliHistogramCollection.cxx:279 AliHistogramCollection.cxx:280 AliHistogramCollection.cxx:281 AliHistogramCollection.cxx:282 AliHistogramCollection.cxx:283 AliHistogramCollection.cxx:284 AliHistogramCollection.cxx:285 AliHistogramCollection.cxx:286 AliHistogramCollection.cxx:287 AliHistogramCollection.cxx:288 AliHistogramCollection.cxx:289 AliHistogramCollection.cxx:290 AliHistogramCollection.cxx:291 AliHistogramCollection.cxx:292 AliHistogramCollection.cxx:293 AliHistogramCollection.cxx:294 AliHistogramCollection.cxx:295 AliHistogramCollection.cxx:296 AliHistogramCollection.cxx:297 AliHistogramCollection.cxx:298 AliHistogramCollection.cxx:299 AliHistogramCollection.cxx:300 AliHistogramCollection.cxx:301 AliHistogramCollection.cxx:302 AliHistogramCollection.cxx:303 AliHistogramCollection.cxx:304 AliHistogramCollection.cxx:305 AliHistogramCollection.cxx:306 AliHistogramCollection.cxx:307 AliHistogramCollection.cxx:308 AliHistogramCollection.cxx:309 AliHistogramCollection.cxx:310 AliHistogramCollection.cxx:311 AliHistogramCollection.cxx:312 AliHistogramCollection.cxx:313 AliHistogramCollection.cxx:314 AliHistogramCollection.cxx:315 AliHistogramCollection.cxx:316 AliHistogramCollection.cxx:317 AliHistogramCollection.cxx:318 AliHistogramCollection.cxx:319 AliHistogramCollection.cxx:320 AliHistogramCollection.cxx:321 AliHistogramCollection.cxx:322 AliHistogramCollection.cxx:323 AliHistogramCollection.cxx:324 AliHistogramCollection.cxx:325 AliHistogramCollection.cxx:326 AliHistogramCollection.cxx:327 AliHistogramCollection.cxx:328 AliHistogramCollection.cxx:329 AliHistogramCollection.cxx:330 AliHistogramCollection.cxx:331 AliHistogramCollection.cxx:332 AliHistogramCollection.cxx:333 AliHistogramCollection.cxx:334 AliHistogramCollection.cxx:335 AliHistogramCollection.cxx:336 AliHistogramCollection.cxx:337 AliHistogramCollection.cxx:338 AliHistogramCollection.cxx:339 AliHistogramCollection.cxx:340 AliHistogramCollection.cxx:341 AliHistogramCollection.cxx:342 AliHistogramCollection.cxx:343 AliHistogramCollection.cxx:344 AliHistogramCollection.cxx:345 AliHistogramCollection.cxx:346 AliHistogramCollection.cxx:347 AliHistogramCollection.cxx:348 AliHistogramCollection.cxx:349 AliHistogramCollection.cxx:350 AliHistogramCollection.cxx:351 AliHistogramCollection.cxx:352 AliHistogramCollection.cxx:353 AliHistogramCollection.cxx:354 AliHistogramCollection.cxx:355 AliHistogramCollection.cxx:356 AliHistogramCollection.cxx:357 AliHistogramCollection.cxx:358 AliHistogramCollection.cxx:359 AliHistogramCollection.cxx:360 AliHistogramCollection.cxx:361 AliHistogramCollection.cxx:362 AliHistogramCollection.cxx:363 AliHistogramCollection.cxx:364 AliHistogramCollection.cxx:365 AliHistogramCollection.cxx:366 AliHistogramCollection.cxx:367 AliHistogramCollection.cxx:368 AliHistogramCollection.cxx:369 AliHistogramCollection.cxx:370 AliHistogramCollection.cxx:371 AliHistogramCollection.cxx:372 AliHistogramCollection.cxx:373 AliHistogramCollection.cxx:374 AliHistogramCollection.cxx:375 AliHistogramCollection.cxx:376 AliHistogramCollection.cxx:377 AliHistogramCollection.cxx:378 AliHistogramCollection.cxx:379 AliHistogramCollection.cxx:380 AliHistogramCollection.cxx:381 AliHistogramCollection.cxx:382 AliHistogramCollection.cxx:383 AliHistogramCollection.cxx:384 AliHistogramCollection.cxx:385 AliHistogramCollection.cxx:386 AliHistogramCollection.cxx:387 AliHistogramCollection.cxx:388 AliHistogramCollection.cxx:389 AliHistogramCollection.cxx:390 AliHistogramCollection.cxx:391 AliHistogramCollection.cxx:392 AliHistogramCollection.cxx:393 AliHistogramCollection.cxx:394 AliHistogramCollection.cxx:395 AliHistogramCollection.cxx:396 AliHistogramCollection.cxx:397 AliHistogramCollection.cxx:398 AliHistogramCollection.cxx:399 AliHistogramCollection.cxx:400 AliHistogramCollection.cxx:401 AliHistogramCollection.cxx:402 AliHistogramCollection.cxx:403 AliHistogramCollection.cxx:404 AliHistogramCollection.cxx:405 AliHistogramCollection.cxx:406 AliHistogramCollection.cxx:407 AliHistogramCollection.cxx:408 AliHistogramCollection.cxx:409 AliHistogramCollection.cxx:410 AliHistogramCollection.cxx:411 AliHistogramCollection.cxx:412 AliHistogramCollection.cxx:413 AliHistogramCollection.cxx:414 AliHistogramCollection.cxx:415 AliHistogramCollection.cxx:416 AliHistogramCollection.cxx:417 AliHistogramCollection.cxx:418 AliHistogramCollection.cxx:419 AliHistogramCollection.cxx:420 AliHistogramCollection.cxx:421 AliHistogramCollection.cxx:422 AliHistogramCollection.cxx:423 AliHistogramCollection.cxx:424 AliHistogramCollection.cxx:425 AliHistogramCollection.cxx:426 AliHistogramCollection.cxx:427 AliHistogramCollection.cxx:428 AliHistogramCollection.cxx:429 AliHistogramCollection.cxx:430 AliHistogramCollection.cxx:431 AliHistogramCollection.cxx:432 AliHistogramCollection.cxx:433 AliHistogramCollection.cxx:434 AliHistogramCollection.cxx:435 AliHistogramCollection.cxx:436 AliHistogramCollection.cxx:437 AliHistogramCollection.cxx:438 AliHistogramCollection.cxx:439 AliHistogramCollection.cxx:440 AliHistogramCollection.cxx:441 AliHistogramCollection.cxx:442 AliHistogramCollection.cxx:443 AliHistogramCollection.cxx:444 AliHistogramCollection.cxx:445 AliHistogramCollection.cxx:446 AliHistogramCollection.cxx:447 AliHistogramCollection.cxx:448 AliHistogramCollection.cxx:449 AliHistogramCollection.cxx:450 AliHistogramCollection.cxx:451 AliHistogramCollection.cxx:452 AliHistogramCollection.cxx:453 AliHistogramCollection.cxx:454 AliHistogramCollection.cxx:455 AliHistogramCollection.cxx:456 AliHistogramCollection.cxx:457 AliHistogramCollection.cxx:458 AliHistogramCollection.cxx:459 AliHistogramCollection.cxx:460 AliHistogramCollection.cxx:461 AliHistogramCollection.cxx:462 AliHistogramCollection.cxx:463 AliHistogramCollection.cxx:464 AliHistogramCollection.cxx:465 AliHistogramCollection.cxx:466 AliHistogramCollection.cxx:467 AliHistogramCollection.cxx:468 AliHistogramCollection.cxx:469 AliHistogramCollection.cxx:470 AliHistogramCollection.cxx:471 AliHistogramCollection.cxx:472 AliHistogramCollection.cxx:473 AliHistogramCollection.cxx:474 AliHistogramCollection.cxx:475 AliHistogramCollection.cxx:476 AliHistogramCollection.cxx:477 AliHistogramCollection.cxx:478 AliHistogramCollection.cxx:479 AliHistogramCollection.cxx:480 AliHistogramCollection.cxx:481 AliHistogramCollection.cxx:482 AliHistogramCollection.cxx:483 AliHistogramCollection.cxx:484 AliHistogramCollection.cxx:485 AliHistogramCollection.cxx:486 AliHistogramCollection.cxx:487 AliHistogramCollection.cxx:488 AliHistogramCollection.cxx:489 AliHistogramCollection.cxx:490 AliHistogramCollection.cxx:491 AliHistogramCollection.cxx:492 AliHistogramCollection.cxx:493 AliHistogramCollection.cxx:494 AliHistogramCollection.cxx:495 AliHistogramCollection.cxx:496 AliHistogramCollection.cxx:497 AliHistogramCollection.cxx:498 AliHistogramCollection.cxx:499 AliHistogramCollection.cxx:500 AliHistogramCollection.cxx:501 AliHistogramCollection.cxx:502 AliHistogramCollection.cxx:503 AliHistogramCollection.cxx:504 AliHistogramCollection.cxx:505 AliHistogramCollection.cxx:506 AliHistogramCollection.cxx:507 AliHistogramCollection.cxx:508 AliHistogramCollection.cxx:509 AliHistogramCollection.cxx:510 AliHistogramCollection.cxx:511 AliHistogramCollection.cxx:512 AliHistogramCollection.cxx:513 AliHistogramCollection.cxx:514 AliHistogramCollection.cxx:515 AliHistogramCollection.cxx:516 AliHistogramCollection.cxx:517 AliHistogramCollection.cxx:518 AliHistogramCollection.cxx:519 AliHistogramCollection.cxx:520 AliHistogramCollection.cxx:521 AliHistogramCollection.cxx:522 AliHistogramCollection.cxx:523 AliHistogramCollection.cxx:524 AliHistogramCollection.cxx:525 AliHistogramCollection.cxx:526 AliHistogramCollection.cxx:527 AliHistogramCollection.cxx:528 AliHistogramCollection.cxx:529 AliHistogramCollection.cxx:530 AliHistogramCollection.cxx:531 AliHistogramCollection.cxx:532 AliHistogramCollection.cxx:533 AliHistogramCollection.cxx:534 AliHistogramCollection.cxx:535 AliHistogramCollection.cxx:536 AliHistogramCollection.cxx:537 AliHistogramCollection.cxx:538 AliHistogramCollection.cxx:539 AliHistogramCollection.cxx:540 AliHistogramCollection.cxx:541 AliHistogramCollection.cxx:542 AliHistogramCollection.cxx:543 AliHistogramCollection.cxx:544 AliHistogramCollection.cxx:545 AliHistogramCollection.cxx:546 AliHistogramCollection.cxx:547 AliHistogramCollection.cxx:548 AliHistogramCollection.cxx:549 AliHistogramCollection.cxx:550 AliHistogramCollection.cxx:551 AliHistogramCollection.cxx:552 AliHistogramCollection.cxx:553 AliHistogramCollection.cxx:554 AliHistogramCollection.cxx:555 AliHistogramCollection.cxx:556 AliHistogramCollection.cxx:557 AliHistogramCollection.cxx:558 AliHistogramCollection.cxx:559 AliHistogramCollection.cxx:560 AliHistogramCollection.cxx:561 AliHistogramCollection.cxx:562 AliHistogramCollection.cxx:563 AliHistogramCollection.cxx:564 AliHistogramCollection.cxx:565 AliHistogramCollection.cxx:566 AliHistogramCollection.cxx:567 AliHistogramCollection.cxx:568 AliHistogramCollection.cxx:569 AliHistogramCollection.cxx:570 AliHistogramCollection.cxx:571 AliHistogramCollection.cxx:572 AliHistogramCollection.cxx:573 AliHistogramCollection.cxx:574 AliHistogramCollection.cxx:575 AliHistogramCollection.cxx:576 AliHistogramCollection.cxx:577 AliHistogramCollection.cxx:578 AliHistogramCollection.cxx:579 AliHistogramCollection.cxx:580 AliHistogramCollection.cxx:581 AliHistogramCollection.cxx:582 AliHistogramCollection.cxx:583 AliHistogramCollection.cxx:584 AliHistogramCollection.cxx:585 AliHistogramCollection.cxx:586 AliHistogramCollection.cxx:587 AliHistogramCollection.cxx:588 AliHistogramCollection.cxx:589 AliHistogramCollection.cxx:590 AliHistogramCollection.cxx:591 AliHistogramCollection.cxx:592 AliHistogramCollection.cxx:593 AliHistogramCollection.cxx:594 AliHistogramCollection.cxx:595 AliHistogramCollection.cxx:596 AliHistogramCollection.cxx:597 AliHistogramCollection.cxx:598 AliHistogramCollection.cxx:599 AliHistogramCollection.cxx:600 AliHistogramCollection.cxx:601 AliHistogramCollection.cxx:602 AliHistogramCollection.cxx:603 AliHistogramCollection.cxx:604 AliHistogramCollection.cxx:605 AliHistogramCollection.cxx:606 AliHistogramCollection.cxx:607 AliHistogramCollection.cxx:608 AliHistogramCollection.cxx:609 AliHistogramCollection.cxx:610 AliHistogramCollection.cxx:611 AliHistogramCollection.cxx:612 AliHistogramCollection.cxx:613 AliHistogramCollection.cxx:614 AliHistogramCollection.cxx:615 AliHistogramCollection.cxx:616 AliHistogramCollection.cxx:617 AliHistogramCollection.cxx:618 AliHistogramCollection.cxx:619 AliHistogramCollection.cxx:620 AliHistogramCollection.cxx:621 AliHistogramCollection.cxx:622 AliHistogramCollection.cxx:623 AliHistogramCollection.cxx:624 AliHistogramCollection.cxx:625 AliHistogramCollection.cxx:626 AliHistogramCollection.cxx:627 AliHistogramCollection.cxx:628 AliHistogramCollection.cxx:629 AliHistogramCollection.cxx:630 AliHistogramCollection.cxx:631 AliHistogramCollection.cxx:632 AliHistogramCollection.cxx:633 AliHistogramCollection.cxx:634 AliHistogramCollection.cxx:635 AliHistogramCollection.cxx:636 AliHistogramCollection.cxx:637 AliHistogramCollection.cxx:638 AliHistogramCollection.cxx:639 AliHistogramCollection.cxx:640 AliHistogramCollection.cxx:641 AliHistogramCollection.cxx:642 AliHistogramCollection.cxx:643 AliHistogramCollection.cxx:644 AliHistogramCollection.cxx:645 AliHistogramCollection.cxx:646 AliHistogramCollection.cxx:647 AliHistogramCollection.cxx:648 AliHistogramCollection.cxx:649 AliHistogramCollection.cxx:650 AliHistogramCollection.cxx:651 AliHistogramCollection.cxx:652 AliHistogramCollection.cxx:653 AliHistogramCollection.cxx:654 AliHistogramCollection.cxx:655 AliHistogramCollection.cxx:656 AliHistogramCollection.cxx:657 AliHistogramCollection.cxx:658 AliHistogramCollection.cxx:659 AliHistogramCollection.cxx:660 AliHistogramCollection.cxx:661 AliHistogramCollection.cxx:662 AliHistogramCollection.cxx:663 AliHistogramCollection.cxx:664 AliHistogramCollection.cxx:665 AliHistogramCollection.cxx:666 AliHistogramCollection.cxx:667 AliHistogramCollection.cxx:668 AliHistogramCollection.cxx:669 AliHistogramCollection.cxx:670 AliHistogramCollection.cxx:671 AliHistogramCollection.cxx:672 AliHistogramCollection.cxx:673 AliHistogramCollection.cxx:674 AliHistogramCollection.cxx:675 AliHistogramCollection.cxx:676 AliHistogramCollection.cxx:677 AliHistogramCollection.cxx:678 AliHistogramCollection.cxx:679 AliHistogramCollection.cxx:680 AliHistogramCollection.cxx:681 AliHistogramCollection.cxx:682 AliHistogramCollection.cxx:683 AliHistogramCollection.cxx:684 AliHistogramCollection.cxx:685 AliHistogramCollection.cxx:686 AliHistogramCollection.cxx:687 AliHistogramCollection.cxx:688 AliHistogramCollection.cxx:689 AliHistogramCollection.cxx:690 AliHistogramCollection.cxx:691 AliHistogramCollection.cxx:692 AliHistogramCollection.cxx:693 AliHistogramCollection.cxx:694 AliHistogramCollection.cxx:695 AliHistogramCollection.cxx:696 AliHistogramCollection.cxx:697 AliHistogramCollection.cxx:698 AliHistogramCollection.cxx:699 AliHistogramCollection.cxx:700 AliHistogramCollection.cxx:701 AliHistogramCollection.cxx:702 AliHistogramCollection.cxx:703 AliHistogramCollection.cxx:704 AliHistogramCollection.cxx:705 AliHistogramCollection.cxx:706 AliHistogramCollection.cxx:707 AliHistogramCollection.cxx:708 AliHistogramCollection.cxx:709 AliHistogramCollection.cxx:710 AliHistogramCollection.cxx:711 AliHistogramCollection.cxx:712 AliHistogramCollection.cxx:713 AliHistogramCollection.cxx:714 AliHistogramCollection.cxx:715 AliHistogramCollection.cxx:716 AliHistogramCollection.cxx:717 AliHistogramCollection.cxx:718 AliHistogramCollection.cxx:719 AliHistogramCollection.cxx:720 AliHistogramCollection.cxx:721 AliHistogramCollection.cxx:722 AliHistogramCollection.cxx:723 AliHistogramCollection.cxx:724 AliHistogramCollection.cxx:725 AliHistogramCollection.cxx:726 AliHistogramCollection.cxx:727 AliHistogramCollection.cxx:728 AliHistogramCollection.cxx:729 AliHistogramCollection.cxx:730 AliHistogramCollection.cxx:731 AliHistogramCollection.cxx:732 AliHistogramCollection.cxx:733 AliHistogramCollection.cxx:734 AliHistogramCollection.cxx:735 AliHistogramCollection.cxx:736 AliHistogramCollection.cxx:737 AliHistogramCollection.cxx:738 AliHistogramCollection.cxx:739 AliHistogramCollection.cxx:740 AliHistogramCollection.cxx:741 AliHistogramCollection.cxx:742 AliHistogramCollection.cxx:743 AliHistogramCollection.cxx:744 AliHistogramCollection.cxx:745 AliHistogramCollection.cxx:746 AliHistogramCollection.cxx:747 AliHistogramCollection.cxx:748 AliHistogramCollection.cxx:749 AliHistogramCollection.cxx:750 AliHistogramCollection.cxx:751 AliHistogramCollection.cxx:752 AliHistogramCollection.cxx:753 AliHistogramCollection.cxx:754 AliHistogramCollection.cxx:755 AliHistogramCollection.cxx:756 AliHistogramCollection.cxx:757 AliHistogramCollection.cxx:758 AliHistogramCollection.cxx:759 AliHistogramCollection.cxx:760 AliHistogramCollection.cxx:761 AliHistogramCollection.cxx:762 AliHistogramCollection.cxx:763 AliHistogramCollection.cxx:764 AliHistogramCollection.cxx:765 AliHistogramCollection.cxx:766 AliHistogramCollection.cxx:767 AliHistogramCollection.cxx:768 AliHistogramCollection.cxx:769 AliHistogramCollection.cxx:770 AliHistogramCollection.cxx:771 AliHistogramCollection.cxx:772 AliHistogramCollection.cxx:773 AliHistogramCollection.cxx:774 AliHistogramCollection.cxx:775 AliHistogramCollection.cxx:776 AliHistogramCollection.cxx:777 AliHistogramCollection.cxx:778 AliHistogramCollection.cxx:779 AliHistogramCollection.cxx:780 AliHistogramCollection.cxx:781 AliHistogramCollection.cxx:782 AliHistogramCollection.cxx:783 AliHistogramCollection.cxx:784 AliHistogramCollection.cxx:785 AliHistogramCollection.cxx:786 AliHistogramCollection.cxx:787 AliHistogramCollection.cxx:788 AliHistogramCollection.cxx:789 AliHistogramCollection.cxx:790 AliHistogramCollection.cxx:791 AliHistogramCollection.cxx:792 AliHistogramCollection.cxx:793 AliHistogramCollection.cxx:794 AliHistogramCollection.cxx:795 AliHistogramCollection.cxx:796 AliHistogramCollection.cxx:797 AliHistogramCollection.cxx:798 AliHistogramCollection.cxx:799 AliHistogramCollection.cxx:800 AliHistogramCollection.cxx:801 AliHistogramCollection.cxx:802 AliHistogramCollection.cxx:803 AliHistogramCollection.cxx:804 AliHistogramCollection.cxx:805 AliHistogramCollection.cxx:806 AliHistogramCollection.cxx:807 AliHistogramCollection.cxx:808 AliHistogramCollection.cxx:809 AliHistogramCollection.cxx:810 AliHistogramCollection.cxx:811 AliHistogramCollection.cxx:812 AliHistogramCollection.cxx:813 AliHistogramCollection.cxx:814 AliHistogramCollection.cxx:815 AliHistogramCollection.cxx:816 AliHistogramCollection.cxx:817 AliHistogramCollection.cxx:818 AliHistogramCollection.cxx:819 AliHistogramCollection.cxx:820 AliHistogramCollection.cxx:821 AliHistogramCollection.cxx:822 AliHistogramCollection.cxx:823 AliHistogramCollection.cxx:824 AliHistogramCollection.cxx:825 AliHistogramCollection.cxx:826 AliHistogramCollection.cxx:827 AliHistogramCollection.cxx:828 AliHistogramCollection.cxx:829 AliHistogramCollection.cxx:830 AliHistogramCollection.cxx:831 AliHistogramCollection.cxx:832 AliHistogramCollection.cxx:833 AliHistogramCollection.cxx:834 AliHistogramCollection.cxx:835 AliHistogramCollection.cxx:836 AliHistogramCollection.cxx:837 AliHistogramCollection.cxx:838 AliHistogramCollection.cxx:839 AliHistogramCollection.cxx:840 AliHistogramCollection.cxx:841 AliHistogramCollection.cxx:842 AliHistogramCollection.cxx:843 AliHistogramCollection.cxx:844 AliHistogramCollection.cxx:845 AliHistogramCollection.cxx:846 AliHistogramCollection.cxx:847 AliHistogramCollection.cxx:848 AliHistogramCollection.cxx:849 AliHistogramCollection.cxx:850 AliHistogramCollection.cxx:851 AliHistogramCollection.cxx:852 AliHistogramCollection.cxx:853 AliHistogramCollection.cxx:854 AliHistogramCollection.cxx:855 AliHistogramCollection.cxx:856 AliHistogramCollection.cxx:857 AliHistogramCollection.cxx:858 AliHistogramCollection.cxx:859 AliHistogramCollection.cxx:860 AliHistogramCollection.cxx:861 AliHistogramCollection.cxx:862 AliHistogramCollection.cxx:863 AliHistogramCollection.cxx:864 AliHistogramCollection.cxx:865 AliHistogramCollection.cxx:866 AliHistogramCollection.cxx:867 AliHistogramCollection.cxx:868 AliHistogramCollection.cxx:869 AliHistogramCollection.cxx:870 AliHistogramCollection.cxx:871 AliHistogramCollection.cxx:872 AliHistogramCollection.cxx:873 AliHistogramCollection.cxx:874 AliHistogramCollection.cxx:875 AliHistogramCollection.cxx:876 AliHistogramCollection.cxx:877 AliHistogramCollection.cxx:878 AliHistogramCollection.cxx:879 AliHistogramCollection.cxx:880 AliHistogramCollection.cxx:881 AliHistogramCollection.cxx:882 AliHistogramCollection.cxx:883 AliHistogramCollection.cxx:884 AliHistogramCollection.cxx:885 AliHistogramCollection.cxx:886 AliHistogramCollection.cxx:887 AliHistogramCollection.cxx:888 AliHistogramCollection.cxx:889 AliHistogramCollection.cxx:890 AliHistogramCollection.cxx:891 AliHistogramCollection.cxx:892 AliHistogramCollection.cxx:893 AliHistogramCollection.cxx:894 AliHistogramCollection.cxx:895 AliHistogramCollection.cxx:896 AliHistogramCollection.cxx:897 AliHistogramCollection.cxx:898 AliHistogramCollection.cxx:899 AliHistogramCollection.cxx:900 AliHistogramCollection.cxx:901 AliHistogramCollection.cxx:902 AliHistogramCollection.cxx:903 AliHistogramCollection.cxx:904 AliHistogramCollection.cxx:905 AliHistogramCollection.cxx:906 AliHistogramCollection.cxx:907 AliHistogramCollection.cxx:908 AliHistogramCollection.cxx:909 AliHistogramCollection.cxx:910 AliHistogramCollection.cxx:911 AliHistogramCollection.cxx:912 AliHistogramCollection.cxx:913 AliHistogramCollection.cxx:914 AliHistogramCollection.cxx:915 AliHistogramCollection.cxx:916 AliHistogramCollection.cxx:917 AliHistogramCollection.cxx:918 AliHistogramCollection.cxx:919 AliHistogramCollection.cxx:920 AliHistogramCollection.cxx:921 AliHistogramCollection.cxx:922 AliHistogramCollection.cxx:923 AliHistogramCollection.cxx:924 AliHistogramCollection.cxx:925 AliHistogramCollection.cxx:926 AliHistogramCollection.cxx:927 AliHistogramCollection.cxx:928 AliHistogramCollection.cxx:929 AliHistogramCollection.cxx:930 AliHistogramCollection.cxx:931 AliHistogramCollection.cxx:932 AliHistogramCollection.cxx:933 AliHistogramCollection.cxx:934 AliHistogramCollection.cxx:935 AliHistogramCollection.cxx:936 AliHistogramCollection.cxx:937 AliHistogramCollection.cxx:938 AliHistogramCollection.cxx:939 AliHistogramCollection.cxx:940 AliHistogramCollection.cxx:941 AliHistogramCollection.cxx:942 AliHistogramCollection.cxx:943 AliHistogramCollection.cxx:944 AliHistogramCollection.cxx:945 AliHistogramCollection.cxx:946 AliHistogramCollection.cxx:947 AliHistogramCollection.cxx:948 AliHistogramCollection.cxx:949 AliHistogramCollection.cxx:950 AliHistogramCollection.cxx:951 AliHistogramCollection.cxx:952 AliHistogramCollection.cxx:953 AliHistogramCollection.cxx:954 AliHistogramCollection.cxx:955 AliHistogramCollection.cxx:956 AliHistogramCollection.cxx:957 AliHistogramCollection.cxx:958 AliHistogramCollection.cxx:959 AliHistogramCollection.cxx:960 AliHistogramCollection.cxx:961 AliHistogramCollection.cxx:962 AliHistogramCollection.cxx:963 AliHistogramCollection.cxx:964 AliHistogramCollection.cxx:965 AliHistogramCollection.cxx:966 AliHistogramCollection.cxx:967 AliHistogramCollection.cxx:968 AliHistogramCollection.cxx:969 AliHistogramCollection.cxx:970 AliHistogramCollection.cxx:971 AliHistogramCollection.cxx:972 AliHistogramCollection.cxx:973 AliHistogramCollection.cxx:974 AliHistogramCollection.cxx:975 AliHistogramCollection.cxx:976 AliHistogramCollection.cxx:977 AliHistogramCollection.cxx:978 AliHistogramCollection.cxx:979 AliHistogramCollection.cxx:980 AliHistogramCollection.cxx:981 AliHistogramCollection.cxx:982 AliHistogramCollection.cxx:983 AliHistogramCollection.cxx:984 AliHistogramCollection.cxx:985 AliHistogramCollection.cxx:986 AliHistogramCollection.cxx:987 AliHistogramCollection.cxx:988 AliHistogramCollection.cxx:989 AliHistogramCollection.cxx:990 AliHistogramCollection.cxx:991 AliHistogramCollection.cxx:992 AliHistogramCollection.cxx:993 AliHistogramCollection.cxx:994 AliHistogramCollection.cxx:995 AliHistogramCollection.cxx:996 AliHistogramCollection.cxx:997 AliHistogramCollection.cxx:998 AliHistogramCollection.cxx:999 AliHistogramCollection.cxx:1000 AliHistogramCollection.cxx:1001 AliHistogramCollection.cxx:1002 AliHistogramCollection.cxx:1003 AliHistogramCollection.cxx:1004 AliHistogramCollection.cxx:1005 AliHistogramCollection.cxx:1006 AliHistogramCollection.cxx:1007 AliHistogramCollection.cxx:1008 AliHistogramCollection.cxx:1009 AliHistogramCollection.cxx:1010 AliHistogramCollection.cxx:1011 AliHistogramCollection.cxx:1012 AliHistogramCollection.cxx:1013 AliHistogramCollection.cxx:1014 AliHistogramCollection.cxx:1015 AliHistogramCollection.cxx:1016 AliHistogramCollection.cxx:1017 AliHistogramCollection.cxx:1018 AliHistogramCollection.cxx:1019 AliHistogramCollection.cxx:1020 AliHistogramCollection.cxx:1021 AliHistogramCollection.cxx:1022 AliHistogramCollection.cxx:1023 AliHistogramCollection.cxx:1024 AliHistogramCollection.cxx:1025 AliHistogramCollection.cxx:1026 AliHistogramCollection.cxx:1027 AliHistogramCollection.cxx:1028 AliHistogramCollection.cxx:1029 AliHistogramCollection.cxx:1030 AliHistogramCollection.cxx:1031 AliHistogramCollection.cxx:1032 AliHistogramCollection.cxx:1033 AliHistogramCollection.cxx:1034 AliHistogramCollection.cxx:1035 AliHistogramCollection.cxx:1036 AliHistogramCollection.cxx:1037 AliHistogramCollection.cxx:1038 AliHistogramCollection.cxx:1039 AliHistogramCollection.cxx:1040 AliHistogramCollection.cxx:1041 AliHistogramCollection.cxx:1042 AliHistogramCollection.cxx:1043 AliHistogramCollection.cxx:1044 AliHistogramCollection.cxx:1045 AliHistogramCollection.cxx:1046 AliHistogramCollection.cxx:1047 AliHistogramCollection.cxx:1048 AliHistogramCollection.cxx:1049 AliHistogramCollection.cxx:1050 AliHistogramCollection.cxx:1051 AliHistogramCollection.cxx:1052 AliHistogramCollection.cxx:1053 AliHistogramCollection.cxx:1054 AliHistogramCollection.cxx:1055 AliHistogramCollection.cxx:1056 AliHistogramCollection.cxx:1057 AliHistogramCollection.cxx:1058 AliHistogramCollection.cxx:1059 AliHistogramCollection.cxx:1060 AliHistogramCollection.cxx:1061 AliHistogramCollection.cxx:1062 AliHistogramCollection.cxx:1063 AliHistogramCollection.cxx:1064 AliHistogramCollection.cxx:1065 AliHistogramCollection.cxx:1066 AliHistogramCollection.cxx:1067 AliHistogramCollection.cxx:1068 AliHistogramCollection.cxx:1069 AliHistogramCollection.cxx:1070 AliHistogramCollection.cxx:1071 AliHistogramCollection.cxx:1072 AliHistogramCollection.cxx:1073 AliHistogramCollection.cxx:1074 AliHistogramCollection.cxx:1075 AliHistogramCollection.cxx:1076 AliHistogramCollection.cxx:1077 AliHistogramCollection.cxx:1078 AliHistogramCollection.cxx:1079 AliHistogramCollection.cxx:1080 AliHistogramCollection.cxx:1081 AliHistogramCollection.cxx:1082 AliHistogramCollection.cxx:1083 AliHistogramCollection.cxx:1084 AliHistogramCollection.cxx:1085 AliHistogramCollection.cxx:1086 AliHistogramCollection.cxx:1087 AliHistogramCollection.cxx:1088 AliHistogramCollection.cxx:1089 AliHistogramCollection.cxx:1090 AliHistogramCollection.cxx:1091 AliHistogramCollection.cxx:1092 AliHistogramCollection.cxx:1093 AliHistogramCollection.cxx:1094 AliHistogramCollection.cxx:1095 AliHistogramCollection.cxx:1096 AliHistogramCollection.cxx:1097 AliHistogramCollection.cxx:1098 AliHistogramCollection.cxx:1099 AliHistogramCollection.cxx:1100 AliHistogramCollection.cxx:1101 AliHistogramCollection.cxx:1102 AliHistogramCollection.cxx:1103 AliHistogramCollection.cxx:1104 AliHistogramCollection.cxx:1105 AliHistogramCollection.cxx:1106 AliHistogramCollection.cxx:1107 AliHistogramCollection.cxx:1108 AliHistogramCollection.cxx:1109 AliHistogramCollection.cxx:1110 AliHistogramCollection.cxx:1111 AliHistogramCollection.cxx:1112 AliHistogramCollection.cxx:1113 AliHistogramCollection.cxx:1114 AliHistogramCollection.cxx:1115 AliHistogramCollection.cxx:1116 AliHistogramCollection.cxx:1117 AliHistogramCollection.cxx:1118 AliHistogramCollection.cxx:1119 AliHistogramCollection.cxx:1120 AliHistogramCollection.cxx:1121 AliHistogramCollection.cxx:1122 AliHistogramCollection.cxx:1123 AliHistogramCollection.cxx:1124 AliHistogramCollection.cxx:1125 AliHistogramCollection.cxx:1126 AliHistogramCollection.cxx:1127 AliHistogramCollection.cxx:1128 AliHistogramCollection.cxx:1129 AliHistogramCollection.cxx:1130 AliHistogramCollection.cxx:1131 AliHistogramCollection.cxx:1132 AliHistogramCollection.cxx:1133 AliHistogramCollection.cxx:1134 AliHistogramCollection.cxx:1135 AliHistogramCollection.cxx:1136 AliHistogramCollection.cxx:1137 AliHistogramCollection.cxx:1138 AliHistogramCollection.cxx:1139 AliHistogramCollection.cxx:1140 AliHistogramCollection.cxx:1141 AliHistogramCollection.cxx:1142 AliHistogramCollection.cxx:1143 AliHistogramCollection.cxx:1144 AliHistogramCollection.cxx:1145 AliHistogramCollection.cxx:1146 AliHistogramCollection.cxx:1147 AliHistogramCollection.cxx:1148 AliHistogramCollection.cxx:1149 AliHistogramCollection.cxx:1150 AliHistogramCollection.cxx:1151 AliHistogramCollection.cxx:1152 AliHistogramCollection.cxx:1153 AliHistogramCollection.cxx:1154 AliHistogramCollection.cxx:1155 AliHistogramCollection.cxx:1156 AliHistogramCollection.cxx:1157 AliHistogramCollection.cxx:1158 AliHistogramCollection.cxx:1159 AliHistogramCollection.cxx:1160 AliHistogramCollection.cxx:1161 AliHistogramCollection.cxx:1162 AliHistogramCollection.cxx:1163 AliHistogramCollection.cxx:1164 AliHistogramCollection.cxx:1165 AliHistogramCollection.cxx:1166 AliHistogramCollection.cxx:1167 AliHistogramCollection.cxx:1168 AliHistogramCollection.cxx:1169 AliHistogramCollection.cxx:1170 AliHistogramCollection.cxx:1171 AliHistogramCollection.cxx:1172 AliHistogramCollection.cxx:1173 AliHistogramCollection.cxx:1174 AliHistogramCollection.cxx:1175 AliHistogramCollection.cxx:1176 AliHistogramCollection.cxx:1177 AliHistogramCollection.cxx:1178 AliHistogramCollection.cxx:1179 AliHistogramCollection.cxx:1180 AliHistogramCollection.cxx:1181 AliHistogramCollection.cxx:1182 AliHistogramCollection.cxx:1183 AliHistogramCollection.cxx:1184 AliHistogramCollection.cxx:1185 AliHistogramCollection.cxx:1186 AliHistogramCollection.cxx:1187 AliHistogramCollection.cxx:1188 AliHistogramCollection.cxx:1189 AliHistogramCollection.cxx:1190 AliHistogramCollection.cxx:1191 AliHistogramCollection.cxx:1192 AliHistogramCollection.cxx:1193 AliHistogramCollection.cxx:1194 AliHistogramCollection.cxx:1195 AliHistogramCollection.cxx:1196 AliHistogramCollection.cxx:1197 AliHistogramCollection.cxx:1198 AliHistogramCollection.cxx:1199 AliHistogramCollection.cxx:1200 AliHistogramCollection.cxx:1201 AliHistogramCollection.cxx:1202 AliHistogramCollection.cxx:1203 AliHistogramCollection.cxx:1204 AliHistogramCollection.cxx:1205 AliHistogramCollection.cxx:1206 AliHistogramCollection.cxx:1207 AliHistogramCollection.cxx:1208 AliHistogramCollection.cxx:1209 AliHistogramCollection.cxx:1210 AliHistogramCollection.cxx:1211 AliHistogramCollection.cxx:1212 AliHistogramCollection.cxx:1213 AliHistogramCollection.cxx:1214 AliHistogramCollection.cxx:1215 AliHistogramCollection.cxx:1216 AliHistogramCollection.cxx:1217 AliHistogramCollection.cxx:1218 AliHistogramCollection.cxx:1219 AliHistogramCollection.cxx:1220 AliHistogramCollection.cxx:1221 AliHistogramCollection.cxx:1222 AliHistogramCollection.cxx:1223 AliHistogramCollection.cxx:1224 AliHistogramCollection.cxx:1225 AliHistogramCollection.cxx:1226 AliHistogramCollection.cxx:1227 AliHistogramCollection.cxx:1228 AliHistogramCollection.cxx:1229 AliHistogramCollection.cxx:1230 AliHistogramCollection.cxx:1231 AliHistogramCollection.cxx:1232 AliHistogramCollection.cxx:1233 AliHistogramCollection.cxx:1234 AliHistogramCollection.cxx:1235 AliHistogramCollection.cxx:1236 AliHistogramCollection.cxx:1237 AliHistogramCollection.cxx:1238 AliHistogramCollection.cxx:1239 AliHistogramCollection.cxx:1240 AliHistogramCollection.cxx:1241 AliHistogramCollection.cxx:1242 AliHistogramCollection.cxx:1243 AliHistogramCollection.cxx:1244 AliHistogramCollection.cxx:1245 AliHistogramCollection.cxx:1246 AliHistogramCollection.cxx:1247 AliHistogramCollection.cxx:1248 AliHistogramCollection.cxx:1249 AliHistogramCollection.cxx:1250 AliHistogramCollection.cxx:1251 AliHistogramCollection.cxx:1252 AliHistogramCollection.cxx:1253 AliHistogramCollection.cxx:1254 AliHistogramCollection.cxx:1255 AliHistogramCollection.cxx:1256 AliHistogramCollection.cxx:1257 AliHistogramCollection.cxx:1258 AliHistogramCollection.cxx:1259 AliHistogramCollection.cxx:1260 AliHistogramCollection.cxx:1261 AliHistogramCollection.cxx:1262 AliHistogramCollection.cxx:1263 AliHistogramCollection.cxx:1264 AliHistogramCollection.cxx:1265 AliHistogramCollection.cxx:1266 AliHistogramCollection.cxx:1267 AliHistogramCollection.cxx:1268 AliHistogramCollection.cxx:1269 AliHistogramCollection.cxx:1270 AliHistogramCollection.cxx:1271 AliHistogramCollection.cxx:1272 AliHistogramCollection.cxx:1273 AliHistogramCollection.cxx:1274 AliHistogramCollection.cxx:1275 AliHistogramCollection.cxx:1276 AliHistogramCollection.cxx:1277 AliHistogramCollection.cxx:1278 AliHistogramCollection.cxx:1279 AliHistogramCollection.cxx:1280 AliHistogramCollection.cxx:1281 AliHistogramCollection.cxx:1282 AliHistogramCollection.cxx:1283 AliHistogramCollection.cxx:1284 AliHistogramCollection.cxx:1285 AliHistogramCollection.cxx:1286 AliHistogramCollection.cxx:1287 AliHistogramCollection.cxx:1288 AliHistogramCollection.cxx:1289 AliHistogramCollection.cxx:1290 AliHistogramCollection.cxx:1291 AliHistogramCollection.cxx:1292 AliHistogramCollection.cxx:1293 AliHistogramCollection.cxx:1294 AliHistogramCollection.cxx:1295 AliHistogramCollection.cxx:1296 AliHistogramCollection.cxx:1297 AliHistogramCollection.cxx:1298 AliHistogramCollection.cxx:1299 AliHistogramCollection.cxx:1300 AliHistogramCollection.cxx:1301 AliHistogramCollection.cxx:1302 AliHistogramCollection.cxx:1303 AliHistogramCollection.cxx:1304 AliHistogramCollection.cxx:1305 AliHistogramCollection.cxx:1306 AliHistogramCollection.cxx:1307 AliHistogramCollection.cxx:1308 AliHistogramCollection.cxx:1309 AliHistogramCollection.cxx:1310 AliHistogramCollection.cxx:1311 AliHistogramCollection.cxx:1312 AliHistogramCollection.cxx:1313 AliHistogramCollection.cxx:1314 AliHistogramCollection.cxx:1315 AliHistogramCollection.cxx:1316 AliHistogramCollection.cxx:1317 AliHistogramCollection.cxx:1318 AliHistogramCollection.cxx:1319 AliHistogramCollection.cxx:1320 AliHistogramCollection.cxx:1321 AliHistogramCollection.cxx:1322 AliHistogramCollection.cxx:1323 AliHistogramCollection.cxx:1324 AliHistogramCollection.cxx:1325 AliHistogramCollection.cxx:1326 AliHistogramCollection.cxx:1327 AliHistogramCollection.cxx:1328 AliHistogramCollection.cxx:1329 AliHistogramCollection.cxx:1330 AliHistogramCollection.cxx:1331 AliHistogramCollection.cxx:1332 AliHistogramCollection.cxx:1333 AliHistogramCollection.cxx:1334 AliHistogramCollection.cxx:1335 AliHistogramCollection.cxx:1336 AliHistogramCollection.cxx:1337