#include "htofcontfact.h"
#include "hruntimedb.h"
#include "htofcalpar.h"
#include "htofdigipar.h"
#include "htofgeompar.h"
#include "htoflookup.h"
#include "htoftrb2lookup.h"
#include "htoftrb3lookup.h"
#include "htofclusterfpar.h"
#include "htofwalkpar.h"
ClassImp(HTofContFact)
static HTofContFact gHTofContFact;
HTofContFact::HTofContFact() {
  
  fName="TofContFact";
  fTitle="Factory for parameter containers in libTof";
  setAllContainers();
  HRuntimeDb::instance()->addContFactory(this);
}
void HTofContFact::setAllContainers() {
  
  
  containers->Add(
    new HContainer("TofCalPar",
                   "Calibration parameters for Tof",
                   "TofCalProduction"));
  containers->Add(
    new HContainer("TofDigiPar",
                   "TOF digitization parameters",
                   "TofDigiProduction"));
  containers->Add(
    new HContainer("TofGeomPar",
                   "Tof geometry parameters",
                   "GeomProduction"));
  containers->Add(
    new HContainer("TofLookup",
                   "Lookup table for Tof unpacker",
                   ""));
  containers->Add(
    new HContainer("TofTrb2Lookup",
                   "Lookup table for the TRB2 unpacker of the TOF detector",
                   "TofTrb2LookupProduction"));
  containers->Add(
    new HContainer("TofTrb3Lookup",
                   "Lookup table for the TRB3 unpacker of the TOF detector",
                   "TofTrb3LookupProduction"));
  containers->Add(
    new HContainer("TofClusterFPar",
                   "Parameter container for the cluster finder",
                   "TofCluNormalBias"));
  containers->Add(
    new HContainer("TofWalkPar",
                   "Walk Calibration parameters for Tof",
                   "TofWalkParProduction"));
}
HParSet* HTofContFact::createContainer(HContainer* c) {
  
  
  
  const Char_t* name=c->GetName();
  if (strcmp(name,"TofCalPar")==0)
    return new HTofCalPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofDigiPar")==0)
    return new HTofDigiPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofGeomPar")==0)
    return new HTofGeomPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofLookup")==0)
    return new HTofLookup(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofTrb2Lookup")==0)
    return new HTofTrb2Lookup(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofTrb3Lookup")==0)
    return new HTofTrb3Lookup(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofClusterFPar")==0)
    return new HTofClusterFPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"TofWalkPar")==0)
    return new HTofWalkPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  return 0;
}