#include "hemccontfact.h"
#include "hruntimedb.h"
#include "hemctrb3lookup.h"
#include "hemccalpar.h"
#include "hemcgeompar.h"
#include "hemccellgeompar.h"
#include "hemccellstatuspar.h"
#include "hemccalibraterpar.h"
#include "hemcdigipar.h"
ClassImp(HEmcContFact)
static HEmcContFact gHEmcContFact;
HEmcContFact::HEmcContFact(void) {
fName="EmcContFact";
fTitle="Factory for parameter containers in libEmc";
setAllContainers();
HRuntimeDb::instance()->addContFactory(this);
}
void HEmcContFact::setAllContainers(void) {
containers->Add(
new HContainer("EmcTrb3Lookup",
"Lookup table for Emc TRB3 unpacker",
"EmcTrb3LookupProduction"));
containers->Add(
new HContainer("EmcCalPar",
"Calibration parameters of the Emc Detector",
"EmcCalParProduction"));
containers->Add(
new HContainer("EmcGeomPar",
"Geometry parameters of the Emc Detector",
"GeomProduction"));
containers->Add(
new HContainer("EmcCellGeomPar",
"Emc cell geometry parameters",
"GeomProduction"));
containers->Add(
new HContainer("EmcCellStatusPar",
"Emc cell geometry parameters",
"EmcCellStatusParProduction"));
containers->Add(
new HContainer("EmcCalibraterPar",
"Emc calibrater parameters",
"EmcCalibraterParProduction"));
containers->Add(
new HContainer("EmcDigiPar",
"Emc digitization parameters",
"EmcDigiProduction"));
}
HParSet* HEmcContFact::createContainer(HContainer* c) {
const Char_t* name=c->GetName();
if (strcmp(name, "EmcTrb3Lookup") == 0)
return new HEmcTrb3Lookup(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (strcmp(name, "EmcCalPar") == 0)
return new HEmcCalPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (strcmp(name,"EmcGeomPar")==0)
return new HEmcGeomPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
if (strcmp(name,"EmcCellGeomPar")==0)
return new HEmcCellGeomPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
if (strcmp(name,"EmcCellStatusPar")==0)
return new HEmcCellStatusPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
if (strcmp(name,"EmcCalibraterPar")==0)
return new HEmcCalibraterPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
if (strcmp(name,"EmcDigiPar")==0)
return new HEmcDigiPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
return 0;
}