#include "hcategorymanager.h"
#include "hlinearcategory.h"
ClassImp(HCategoryManager)
HLocation HCategoryManager::loc;
HCategory * HCategoryManager::getCategory(Short_t num,Int_t warn,TString name)
{
HCategory *cat = 0;
if (name.CompareTo ("") == 0) { name += num; }
HRecEvent *ev = (HRecEvent*) gHades->getCurrentEvent ();
if (ev) {
cat = ev->getCategory(num);
if (!cat) {
if(warn == 0) {::Warning ("getCategory()", "Cannot get category %s", name.Data());}
else if (warn == 1){::Error ("getCategory()", "Cannot get category %s", name.Data());}
}
}
return cat;
}
HCategory * HCategoryManager::addCategory(Short_t num,TString name,Int_t size,TString partevt, Bool_t dynamicsize)
{
HCategory *cat = 0;
if (name.CompareTo ("") == 0) {
::Error ("addCategory()", "Category name is empty !");
return cat;
}
HRecEvent *ev = (HRecEvent*) gHades->getCurrentEvent ();
if (ev) {
cat = ev->getCategory(num);
if (!cat) {
cat = new HLinearCategory (name.Data(),size);
if(dynamicsize) ((HLinearCategory*)cat)->setDynamicObjects(kTRUE);
ev->addCategory(num,cat,partevt.Data());
} else {
::Error ("addCategory()", "cat for %s exists already! Fix this!",name.Data());
}
} else {
::Error ("addCategory()", "ZERO pointer retrieved for event !");
}
return cat;
}