10#include "HistogramManager.h"
22 HistogramAxisConf::HistogramAxisConf() : fBins(100), fMin(0), fMax(0) { fTitle =
""; }
24 HistogramAxisConf::HistogramAxisConf(Int_t bins, Double_t min, Double_t max) : fBins(bins), fMin(min), fMax(max) {}
26 HistogramAxisConf::HistogramAxisConf(TString title, Int_t bins, Double_t min, Double_t max) :
27 TNamed(), fBins(bins), fMin(min), fMax(max) {
31 void HistogramAxisConf::Print(Option_t* )
const {
32 std::cout <<
"HistogramAxisConf" << std::endl;
33 std::cout <<
"Name: " << GetName() << std::endl;
34 std::cout <<
"Nbins: " << fBins << std::endl;
35 std::cout <<
"Range: " << fMin <<
" " << fMax << std::endl;
36 std::cout <<
"Title: " << fTitle << std::endl;
40 HistogramManager_1_1D<T>::HistogramManager_1_1D(
const HistogramManager_1_1D& manager) :
41 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fComments(NULL), fArray(NULL) {
42 if (manager.fComments) {
43 fComments = new TString[fSize];
44 fArray = new T*[fSize];
45 for (int i = 0; i < fSize; i++) {
46 fComments[i] = manager.fComments[i];
47 fArray[i] = (T*) manager.fArray[i]->Clone();
53 HistogramManager_1_1D<T>& HistogramManager_1_1D<T>::operator=(
const HistogramManager_1_1D& manager) {
54 if (
this == &manager) {
return *
this; }
56 for (
int i = 0; i < fSize; i++) {
64 fSize = manager.fSize;
65 fAxisNo = manager.fAxisNo;
66 if (manager.fSize > 0) {
67 fComments =
new TString[fSize];
68 fArray =
new T*[fSize];
69 for (
int i = 0; i < fSize; i++) {
70 fComments[i] = manager.fComments[i];
71 fArray[i] = (T*) manager.fArray[i]->Clone();
81 fArray =
new T*[size];
82 fComments =
new TString[size];
83 title = title +
"[%i]";
84 for (
int i = 0; i < fSize; i++) {
85 fArray[i] =
new T(Form(title, i), Form(title, i), axisconf[0]->GetNBins(), axisconf[0]->GetMin(), axisconf[0]->GetMax());
86 fArray[i]->GetXaxis()->SetTitle(axisconf[0]->GetTitle());
87 fArray[i]->GetYaxis()->SetTitle(axisconf[1]->GetTitle());
89 if (Sumw) { fArray[i]->Sumw2(); }
97 fArray =
new T*[size];
98 fComments =
new TString[size];
99 TString title =
"[%i]";
100 for (
int i = 0; i < fSize; i++) {
101 Int_t ran = gRandom->Rndm() * 1E+9;
102 fArray[i] =
new T(Form(title, ran), Form(title, ran), binsX, minX, maxX);
104 if (sumw) { fArray[i]->Sumw2(); }
111 if (pos > fSize)
return;
112 if (fArray[pos])
delete fArray[pos];
114 fArray[pos]->SetDirectory(0x0);
121 for (
int i = 0; i < fSize; i++) {
129 TList* list =
new TList();
130 list->SetOwner(kFALSE);
131 for (
int i = 0; i < fSize; i++) {
132 list->Add(fArray[i]);
139 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fComments(NULL), fArray(NULL) {
141 fComments = new TString[fSize];
142 fArray = new T*[fSize];
143 for (int i = 0; i < fSize; i++) {
144 fComments[i] = manager.fComments[i];
145 fArray[i] = (T*) manager.fArray[i]->Clone();
151 HistogramManager_1_2D<T>& HistogramManager_1_2D<T>::operator=(
const HistogramManager_1_2D& manager) {
152 if (
this == &manager) {
return *
this; }
154 for (
int i = 0; i < fSize; i++) {
162 fSize = manager.fSize;
163 fAxisNo = manager.fAxisNo;
164 if (manager.fSize > 0) {
165 fComments =
new TString[fSize];
166 fArray =
new T*[fSize];
167 for (
int i = 0; i < fSize; i++) {
168 fComments[i] = manager.fComments[i];
169 fArray[i] = (T*) manager.fArray[i]->Clone();
178 fArray =
new T*[size];
179 fComments =
new TString[size];
180 title = title +
"[%i]";
181 for (
int i = 0; i < fSize; i++) {
182 fArray[i] =
new T(Form(title, i),
184 axisconf[0]->GetNBins(),
185 axisconf[0]->GetMin(),
186 axisconf[0]->GetMax(),
187 axisconf[1]->GetNBins(),
188 axisconf[1]->GetMin(),
189 axisconf[1]->GetMax());
190 fArray[i]->GetXaxis()->SetTitle(axisconf[0]->GetTitle());
191 fArray[i]->GetYaxis()->SetTitle(axisconf[1]->GetTitle());
192 fArray[i]->GetZaxis()->SetTitle(axisconf[2]->GetTitle());
193 if (Sumw) { fArray[i]->Sumw2(); }
209 fArray =
new T*[size];
210 fComments =
new TString[size];
211 TString title =
"[%i]";
212 for (
int i = 0; i < fSize; i++) {
213 Int_t ran = gRandom->Rndm() * 1E+9;
214 fArray[i] =
new T(Form(title, ran), Form(title, ran), binsX, minX, maxX, binY, minY, maxY);
215 if (Sumw) { fArray[i]->Sumw2(); }
223 if (pos > fSize)
return;
224 if (fArray[pos])
delete fArray[pos];
226 fArray[pos]->SetDirectory(0x0);
233 for (
int i = 0; i < fSize; i++) {
241 TList* list =
new TList();
242 list->SetOwner(kFALSE);
243 for (
int i = 0; i < fSize; i++) {
244 list->Add(fArray[i]);
251 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fComments(NULL), fArray(NULL) {
253 fComments = new TString[fSize];
254 fArray = new T*[fSize];
255 for (int i = 0; i < fSize; i++) {
256 fComments[i] = manager.fComments[i];
257 fArray[i] = (T*) manager.fArray[i]->Clone();
263 HistogramManager_1_3D<T>& HistogramManager_1_3D<T>::operator=(
const HistogramManager_1_3D& manager) {
264 if (
this == &manager) {
return *
this; }
266 for (
int i = 0; i < fSize; i++) {
274 fSize = manager.fSize;
275 fAxisNo = manager.fAxisNo;
276 if (manager.fSize > 0) {
277 fComments =
new TString[fSize];
278 fArray =
new T*[fSize];
279 for (
int i = 0; i < fSize; i++) {
280 fComments[i] = manager.fComments[i];
281 fArray[i] = (T*) manager.fArray[i]->Clone();
291 fArray =
new T*[size];
292 fComments =
new TString[size];
293 title = title +
"[%i]";
294 for (
int i = 0; i < fSize; i++) {
295 fArray[i] =
new T(Form(title, i),
297 axisconf[0]->GetNBins(),
298 axisconf[0]->GetMin(),
299 axisconf[0]->GetMax(),
300 axisconf[1]->GetNBins(),
301 axisconf[1]->GetMin(),
302 axisconf[1]->GetMax(),
303 axisconf[2]->GetNBins(),
304 axisconf[2]->GetMin(),
305 axisconf[2]->GetMax());
306 fArray[i]->GetXaxis()->SetTitle(axisconf[0]->GetTitle());
307 fArray[i]->GetYaxis()->SetTitle(axisconf[1]->GetTitle());
308 fArray[i]->GetZaxis()->SetTitle(axisconf[2]->GetTitle());
310 if (Sumw) { fArray[i]->Sumw2(); }
328 fArray =
new T*[size];
329 fComments =
new TString[size];
330 TString title =
"[%i]";
331 for (
int i = 0; i < fSize; i++) {
332 Int_t ran = gRandom->Rndm() * 1E+9;
333 fArray[i] =
new T(Form(title, ran), Form(title, ran), binsX, minX, maxX, binsY, minY, maxY, binsZ, minZ, maxZ);
335 if (Sumw) { fArray[i]->Sumw2(); }
342 if (pos > fSize)
return;
343 if (fArray[pos])
delete fArray[pos];
345 fArray[pos]->SetDirectory(0x0);
352 for (
int i = 0; i < fSize; i++) {
360 TList* list =
new TList();
361 list->SetOwner(kFALSE);
362 for (
int i = 0; i < fSize; i++) {
363 list->Add(fArray[i]);
370 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
372 fArray = new HistogramManager_1_1D<T>[fSize];
373 for (int i = 0; i < fSize; i++) {
374 fArray[i] = manager.fArray[i];
381 if (
this == &manager) {
return *
this; }
386 fSize = manager.fSize;
387 fAxisNo = manager.fAxisNo;
388 if (manager.fSize > 0) {
390 for (
int i = 0; i < fSize; i++) {
391 fArray[i] = manager.
fArray[i];
402 title = title +
"[%i]";
403 for (
int i = 0; i < fSize; i++) {
404 TString Title = Form(title, i);
405 fArray[i].Init(sizeY, axisconf, Title, Sumw);
414 for (
int i = 0; i < fSize; i++) {
415 fArray[i].Init(sizeY, binsX, minX, maxX, Sumw);
422 for (
int i = 0; i < fSize; i++) {
430 TList* list =
new TList();
431 list->SetOwner(kFALSE);
432 for (
int i = 0; i < fSize; i++) {
433 for (
int j = 0; j < fArray[i].GetSize(); j++) {
434 list->Add(fArray[i].fArray[j]);
442 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
444 fArray = new HistogramManager_1_2D<T>[fSize];
445 for (int i = 0; i < fSize; i++) {
446 fArray[i] = manager.fArray[i];
452 HistogramManager_2_2D<T>& HistogramManager_2_2D<T>::operator=(
const HistogramManager_2_2D& manager) {
453 if (
this == &manager) {
return *
this; }
458 fSize = manager.fSize;
459 fAxisNo = manager.fAxisNo;
460 if (manager.fSize > 0) {
462 for (
int i = 0; i < fSize; i++) {
463 fArray[i] = manager.fArray[i];
474 title = title +
"[%i]";
475 for (
int i = 0; i < fSize; i++) {
476 TString Title = Form(title, i);
477 fArray[i].Init(sizeY, axisconf, Title, Sumw);
494 for (
int i = 0; i < fSize; i++) {
495 fArray[i].Init(sizeY, binsX, minX, maxX, binsY, minY, maxY, Sumw);
502 for (
int i = 0; i < fSize; i++) {
510 TList* list =
new TList();
511 list->SetOwner(kFALSE);
512 for (
int i = 0; i < fSize; i++) {
513 for (
int j = 0; j < fArray[i].GetSize(); j++) {
514 list->Add(fArray[i].fArray[j]);
522 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
524 fArray = new HistogramManager_1_3D<T>[fSize];
525 for (int i = 0; i < fSize; i++) {
526 fArray[i] = manager.fArray[i];
532 HistogramManager_2_3D<T>& HistogramManager_2_3D<T>::operator=(
const HistogramManager_2_3D& manager) {
533 if (
this == &manager) {
return *
this; }
538 fSize = manager.fSize;
539 fAxisNo = manager.fAxisNo;
540 if (manager.fSize > 0) {
541 fArray =
new HistogramManager_1_3D<T>[fSize];
542 for (
int i = 0; i < fSize; i++) {
543 fArray[i] = manager.fArray[i];
554 title = title +
"[%i]";
555 for (
int i = 0; i < fSize; i++) {
556 TString Title = Form(title, i);
557 fArray[i].Init(sizeY, axisconf, Title, Sumw);
577 for (
int i = 0; i < fSize; i++) {
578 fArray[i].Init(sizeY, binsX, minX, maxX, binsY, minY, maxY, binsZ, minZ, maxZ, Sumw);
585 for (
int i = 0; i < fSize; i++) {
593 TList* list =
new TList();
594 list->SetOwner(kFALSE);
595 for (
int i = 0; i < fSize; i++) {
596 for (
int j = 0; j < fArray[i].GetSize(); j++) {
597 list->Add(fArray[i].fArray[j]);
605 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
607 fArray = new HistogramManager_2_1D<T>[fSize];
608 for (int i = 0; i < fSize; i++) {
609 fArray[i] = manager.fArray[i];
615 HistogramManager_3_1D<T>& HistogramManager_3_1D<T>::operator=(
const HistogramManager_3_1D& manager) {
616 if (
this == &manager) {
return *
this; }
621 fSize = manager.fSize;
622 fAxisNo = manager.fAxisNo;
623 if (manager.fSize > 0) {
624 fArray =
new HistogramManager_2_1D<T>[fSize];
625 for (
int i = 0; i < fSize; i++) {
626 fArray[i] = manager.fArray[i];
642 title = title +
"[%i]";
643 for (
int i = 0; i < fSize; i++) {
644 TString Title = Form(title, i);
645 fArray[i].Init(sizeY, sizeZ, axisconf, Title, Sumw);
655 for (
int i = 0; i < fSize; i++) {
656 fArray[i].Init(sizeY, sizeZ, binsX, minX, maxX, Sumw);
663 for (
int i = 0; i < fSize; i++) {
671 TList* list =
new TList();
672 list->SetOwner(kFALSE);
673 for (
int i = 0; i < fSize; i++) {
674 for (
int j = 0; j < fArray[i].GetSize(); j++) {
675 for (
int k = 0; k < fArray[i].fArray[j].GetSize(); k++) {
676 list->Add(fArray[i].fArray[j].fArray[k]);
684 HistogramManager_3_2D<T>::HistogramManager_3_2D(
const HistogramManager_3_2D& manager) :
685 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
686 if (manager.fArray) {
687 fArray = new HistogramManager_2_2D<T>[fSize];
688 for (int i = 0; i < fSize; i++) {
689 fArray[i] = manager.fArray[i];
695 HistogramManager_3_2D<T>& HistogramManager_3_2D<T>::operator=(
const HistogramManager_3_2D& manager) {
696 if (
this == &manager) {
return *
this; }
701 fSize = manager.fSize;
702 fAxisNo = manager.fAxisNo;
703 if (manager.fSize > 0) {
704 fArray =
new HistogramManager_2_2D<T>[fSize];
705 for (
int i = 0; i < fSize; i++) {
706 fArray[i] = manager.fArray[i];
722 title = title +
"[%i]";
723 for (
int i = 0; i < fSize; i++) {
724 TString Title = Form(title, i);
725 fArray[i].Init(sizeY, sizeZ, axisconf, Title, Sumw);
743 for (
int i = 0; i < fSize; i++) {
744 fArray[i].Init(sizeY, sizeZ, binsX, minX, maxX, binsY, minY, maxY, Sumw);
751 for (
int i = 0; i < fSize; i++) {
759 TList* list =
new TList();
760 list->SetOwner(kFALSE);
761 for (
int i = 0; i < fSize; i++) {
762 for (
int j = 0; j < fArray[i].GetSize(); j++) {
763 for (
int k = 0; k < fArray[i].fArray[j].GetSize(); k++) {
764 list->Add(fArray[i].fArray[j].fArray[k]);
773 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
775 fArray = new HistogramManager_2_3D<T>[fSize];
776 for (int i = 0; i < fSize; i++) {
777 fArray[i] = manager.fArray[i];
783 HistogramManager_3_3D<T>& HistogramManager_3_3D<T>::operator=(
const HistogramManager_3_3D& manager) {
784 if (
this == &manager) {
return *
this; }
789 fSize = manager.fSize;
790 fAxisNo = manager.fAxisNo;
791 if (manager.fSize > 0) {
792 fArray =
new HistogramManager_2_3D<T>[fSize];
793 for (
int i = 0; i < fSize; i++) {
794 fArray[i] = manager.fArray[i];
810 title = title +
"[%i]";
811 for (
int i = 0; i < fSize; i++) {
812 TString Title = Form(title, i);
813 fArray[i].Init(sizeY, sizeZ, axisconf, Title, Sumw);
834 for (
int i = 0; i < fSize; i++) {
835 fArray[i].Init(sizeY, sizeZ, binsX, minX, maxX, binsY, minY, maxY, binsZ, minZ, maxZ, Sumw);
842 for (
int i = 0; i < fSize; i++) {
850 TList* list =
new TList();
851 list->SetOwner(kFALSE);
852 for (
int i = 0; i < fSize; i++) {
853 for (
int j = 0; j < fArray[i].GetSize(); j++) {
854 for (
int k = 0; k < fArray[i].fArray[j].GetSize(); k++) {
855 list->Add(fArray[i].fArray[j].fArray[k]);
864 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
866 fArray = new HistogramManager_3_1D<T>[fSize];
867 for (int i = 0; i < fSize; i++) {
868 fArray[i] = manager.fArray[i];
874 HistogramManager_4_1D<T>& HistogramManager_4_1D<T>::operator=(
const HistogramManager_4_1D& manager) {
875 if (
this == &manager) {
return *
this; }
880 fSize = manager.fSize;
881 fAxisNo = manager.fAxisNo;
882 if (manager.fSize > 0) {
883 fArray =
new HistogramManager_3_1D<T>[fSize];
884 for (
int i = 0; i < fSize; i++) {
885 fArray[i] = manager.fArray[i];
902 title = title +
"[%i]";
903 for (
int i = 0; i < fSize; i++) {
904 TString Title = Form(title, i);
905 fArray[i].Init(sizeY, sizeZ, sizeD, axisconf, Title, Sumw);
921 for (
int i = 0; i < fSize; i++) {
922 fArray[i].Init(sizeY, sizeZ, sizeT, binsX, minX, maxX, Sumw);
929 for (
int i = 0; i < fSize; i++) {
937 TList* list =
new TList();
938 list->SetOwner(kFALSE);
939 for (
int i = 0; i < fSize; i++) {
940 for (
int j = 0; j < fArray[i].GetSize(); j++) {
941 for (
int k = 0; k < fArray[i].fArray[j].GetSize(); k++) {
942 for (
int l = 0; l < fArray[i].fArray[j].fArray[j].GetSize(); l++) {
943 list->Add(fArray[i].fArray[j].fArray[k].fArray[l]);
953 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
955 fArray = new HistogramManager_3_2D<T>[fSize];
956 for (int i = 0; i < fSize; i++) {
957 fArray[i] = manager.fArray[i];
963 HistogramManager_4_2D<T>& HistogramManager_4_2D<T>::operator=(
const HistogramManager_4_2D& manager) {
964 if (
this == &manager) {
return *
this; }
969 fSize = manager.fSize;
970 fAxisNo = manager.fAxisNo;
971 if (manager.fSize > 0) {
973 for (
int i = 0; i < fSize; i++) {
974 fArray[i] = manager.fArray[i];
991 title = title +
"[%i]";
992 for (
int i = 0; i < fSize; i++) {
993 TString Title = Form(title, i);
994 fArray[i].Init(sizeY, sizeZ, sizeD, axisconf, Title, Sumw);
1013 for (
int i = 0; i < fSize; i++) {
1014 fArray[i].Init(sizeY, sizeZ, sizeT, binsX, minX, maxX, binsY, minY, maxY, Sumw);
1021 for (
int i = 0; i < fSize; i++) {
1029 TList* list =
new TList();
1030 list->SetOwner(kFALSE);
1031 for (
int i = 0; i < fSize; i++) {
1032 for (
int j = 0; j < fArray[i].GetSize(); j++) {
1033 for (
int k = 0; k < fArray[i].fArray[j].GetSize(); k++) {
1034 for (
int l = 0; l < fArray[i].fArray[j].fArray[j].GetSize(); l++) {
1035 list->Add(fArray[i].fArray[j].fArray[k].fArray[l]);
1045 TObject(manager), fSize(manager.fSize), fAxisNo(manager.fAxisNo), fArray(NULL) {
1047 fArray = new HistogramManager_3_3D<T>[fSize];
1048 for (int i = 0; i < fSize; i++) {
1049 fArray[i] = manager.fArray[i];
1055 HistogramManager_4_3D<T>& HistogramManager_4_3D<T>::operator=(
const HistogramManager_4_3D& manager) {
1056 if (
this == &manager) {
return *
this; }
1061 fSize = manager.fSize;
1062 fAxisNo = manager.fAxisNo;
1063 if (manager.fSize > 0) {
1064 fArray =
new HistogramManager_3_3D<T>[fSize];
1065 for (
int i = 0; i < fSize; i++) {
1066 fArray[i] = manager.fArray[i];
1084 title = title +
"[%i]";
1085 for (
int i = 0; i < fSize; i++) {
1086 TString Title = Form(title, i);
1087 fArray[i].Init(sizeY, sizeZ, sizeD, axisconf, Title, Sumw);
1109 for (
int i = 0; i < fSize; i++) {
1110 fArray[i].Init(sizeY, sizeZ, sizeT, binsX, minX, maxX, binsY, minY, maxY, binsZ, minZ, maxZ, Sumw);
1117 for (
int i = 0; i < fSize; i++) {
1125 TList* list =
new TList();
1127 for (
int i = 0; i < fSize; i++) {
1128 for (
int j = 0; j < fArray[i].GetSize(); j++) {
1129 for (
int k = 0; k < fArray[i].fArray[j].GetSize(); k++) {
1130 for (
int l = 0; l < fArray[i].fArray[j].fArray[j].GetSize(); l++) {
1131 list->Add(fArray[i].fArray[j].fArray[k].fArray[l]);
1136 list->SetOwner(kFALSE);
void OverwriteAt(T *t, Int_t pos)
TList * GetFlatList() const
void Init(Int_t size, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
void Init(Int_t size, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
TList * GetFlatList() const
void OverwriteAt(T *t, Int_t pos)
TList * GetFlatList() const
HistogramManager_1_1D< T > * fArray
void Init(Int_t sizeX, Int_t sizeY, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
TList * GetFlatList() const
HistogramManager_1_2D< T > * fArray
void Init(Int_t sizeX, Int_t sizeY, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
TList * GetFlatList() const
void Init(Int_t sizeX, Int_t sizeY, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
HistogramManager_1_3D< T > * fArray
void Init(Int_t sizeX, Int_t sizeY, Int_t sizeZ, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
TList * GetFlatList() const
HistogramManager_2_1D< T > * fArray
TList * GetFlatList() const
void Init(Int_t sizeX, Int_t sizeY, Int_t sizeZ, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
void Init(Int_t sizeX, Int_t sizeY, Int_t sizeZ, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
TList * GetFlatList() const
HistogramManager_2_3D< T > * fArray
TList * GetFlatList() const
void Init(Int_t sizeX, Int_t sizeY, Int_t sizeZ, Int_t sizeD, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
HistogramManager_3_1D< T > * fArray
void Init(Int_t sizeX, Int_t sizeY, Int_t sizeZ, Int_t sizeD, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
HistogramManager_3_2D< T > * fArray
TList * GetFlatList() const
HistogramManager_3_3D< T > * fArray
void Init(Int_t sizeX, Int_t sizeY, Int_t sizeZ, Int_t sizeD, HistogramAxisConf **axisconf, TString title, Bool_t Sumw=kFALSE)
TList * GetFlatList() const
void AddObject(TObject *object)