#include "hrichanalysispar.h"
#include "hrichcalpar.h"
#include "hrichcontfact.h"
#include "hrichdigitisationpar.h"
#include "hrichgeometrypar.h"
#include "hrichmappingpar.h"
#include "hrichthresholdpar.h"
#include "hrich700digipar.h"
#include "hrich700ringfinderpar.h"
#include "hrich700trb3lookup.h"
#include "hrich700thresholdpar.h"
#include "hrich700geompar.h"
#include "hruntimedb.h"
#include <string.h>
using namespace std;
ClassImp(HRichContFact)
static HRichContFact gHRichContFact;
HRichContFact::HRichContFact()
{
fName = "RichContFact";
fTitle = "Factory for parameter containers in libRich";
setAllContainers();
HRuntimeDb::instance()->addContFactory(this);
}
void
HRichContFact::setAllContainers()
{
containers->Add(new HContainer("RichAnalysisParameters",
"Rich Analysis Parameters",
"RichAnaNormalBias"));
containers->Add(new HContainer("RichCalPar",
"Rich Calibration Parameters",
"RichPrimaryCalibration"));
containers->Add(new HContainer("RichDigitisationParameters",
"Rich Digitisation Parameters",
"RichDigiProduction"));
containers->Add(new HContainer("RichGeometryParameters",
"Rich Geometry Parameters",
"RichGeometryParProduction"));
containers->Add(new HContainer("RichMappingParameters",
"Rich Mapping Parameters",
"RichMappingParProduction"));
containers->Add(new HContainer("RichThresholdParameters",
"Rich Threshold Parameters",
""));
containers->Add(new HContainer("Rich700DigiPar",
"Rich Digitizer Parameters",
"Rich700DigiParProduction"));
containers->Add(new HContainer("Rich700RingFinderPar",
"Rich RingFinder Parameters",
"Rich700RingFinderParProduction"));
containers->Add(new HContainer("Rich700Trb3Lookup",
"Rich700 Trb3 Lookup Parameters",
"Rich700Trb3LookupProduction"));
containers->Add(new HContainer("Rich700ThresholdPar",
"Rich700 Trb3 Threshold Parameters",
"Rich700ThresholdProduction"));
containers->Add(new HContainer("Rich700GeomPar",
"Geometry parameters of the new RICH 700",
"GeomProduction"));
}
HParSet*
HRichContFact::createContainer(HContainer* c)
{
const Char_t* name = c->GetName();
if (0 == strncmp(name, "RichAnalysisParameters", strlen("RichAnalysisParameters")))
return new HRichAnalysisPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "RichCalPar", strlen("RichCalPar")))
return new HRichCalPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "RichDigitisationParameters", strlen("RichDigitisationParameters")))
return new HRichDigitisationPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "RichGeometryParameters", strlen("RichGeometryParameters")))
return new HRichGeometryPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "RichMappingParameters", strlen("RichMappingParameters")))
return new HRichMappingPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "RichThresholdParameters", strlen("RichThresholdParameters")))
return new HRichThresholdPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "Rich700DigiPar", strlen("Rich700DigiPar")))
return new HRich700DigiPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "Rich700RingFinderPar", strlen("Rich700RingFinderPar")))
return new HRich700RingFinderPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "Rich700Trb3Lookup", strlen("Rich700Trb3Lookup")))
return new HRich700Trb3Lookup(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (0 == strncmp(name, "Rich700ThresholdPar", strlen("Rich700ThresholdPar")))
return new HRich700ThresholdPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
if (strcmp(name,"Rich700GeomPar")==0)
return new HRich700GeomPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
return 0;
}