using namespace std;
#include "hmdctrackdcontfact.h"
#include "hruntimedb.h"
#include "hmdctrackfitpar.h"
#include "hmdcdedx2.h"
#include "hmdclayercorrpar.h"
#include <iostream> 
#include <iomanip>
ClassImp(HMdcTrackDContFact)
static HMdcTrackDContFact gHMdcTrackDContFact;
HMdcTrackDContFact::HMdcTrackDContFact() {
  
  fName="MdcTrackDContFact";
  fTitle="Factory for parameter containers in libMdcTrackD";
  setAllContainers();
  HRuntimeDb::instance()->addContFactory(this);
}
void HMdcTrackDContFact::setAllContainers() {
  
  
  containers->Add(
    new HContainer("MdcTrackFitPar",
                   "parameters for DUBNA fitter",
                   "MdcTrackFitParProduction"));
  HContainer* dedx2= new HContainer("MdcDeDx2",
                                   "parameters for Mdc dedx calculation (new)",
                                   "MdcDeDxProduction");
  containers->Add(dedx2);
  
  HContainer* layrCorr = new HContainer("MdcLayerCorrPar",
                                        "parameters for Mdc layer correction",
                                        "MdcLayerCorrProduction");
  containers->Add(layrCorr);
}
HParSet* HMdcTrackDContFact::createContainer(HContainer* c) {
  
  
  
  const Char_t* name=c->GetName();
  if (strcmp(name,"MdcTrackFitPar")==0)
    return new HMdcTrackFitPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"MdcDeDx2")==0)
    return new HMdcDeDx2(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"MdcLayerCorrPar")==0)
    return new HMdcLayerCorrPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  return 0;
}