ROOT logo
//*-- AUTHOR : A. Rustamov

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////////////
//
//  HMdcTrackGContFact
//
//  Factory for the parameter containers in libmdctrackG
//
/////////////////////////////////////////////////////////////
using namespace std;
#include "hmdctrackgcontfact.h"
#include "hruntimedb.h"
#include "hparset.h"
#include "hparamlist.h"
#include "hcontfact.h"
#include "hmdctrackgcorrpar.h"
#include "hmdctrackgfieldpar.h"
#include "hmetamatchpar.h"
#include "henergylosscorrpar.h"
#include <iostream> 
#include <iomanip>

ClassImp(HMdcTrackGContFact)

static HMdcTrackGContFact gHMdcTrackGContFact;

HMdcTrackGContFact::HMdcTrackGContFact() {
  // Constructor (called when the library is loaded)
  fName ="MdcTrackGContFact";
  fTitle="Factory for parameter containers in libMdcTrackG";
  setAllContainers();
  HRuntimeDb::instance()->addContFactory(this);  
}

void HMdcTrackGContFact::setAllContainers() {
  // Creates the Container objects with all accepted contexts and adds them to
  // the list of containers for the MdcTrackG library.
  containers->Add(new HContainer("MdcTrackGCorrPar",
			         "parameters for Splinemomentum fit",
                                 "MdcTrackGCorrParProduction"));
  containers->Add(new HContainer("MdcTrackGFieldPar",
				 "Fieldmap",
                                 "MdcTrackGFieldParProduction"));
  HContainer* cm=new HContainer("MetaMatchPar",
				"Parameters for HMetaMatchF",
                                "MetaMatchProductionCuts");
  cm->addContext("MetaMatchSharpCuts");
  cm->addContext("MetaMatchWideCuts");
  containers->Add(cm);    
  containers->Add(new HContainer("EnergyLossCorrPar",
				 "Energy losses correction parameters",
                                 "EnergyLossCorrParProduction"));
}

HParSet* HMdcTrackGContFact::createContainer(HContainer* c) {
  // Calls the constructor of the corresponding parameter container.
  // For an actual context, which is not an empty string and not the default context
  // of this container, the name is concatinated with the context.
  const Char_t* name=c->GetName();
  if (strcmp(name,"MdcTrackGCorrPar")==0)
      return new HMdcTrackGCorrPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"MdcTrackGFieldPar")==0)
      return new HMdcTrackGFieldPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  if (strcmp(name,"MetaMatchPar")==0)
      return new HMetaMatchPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());  
  if (strcmp(name,"EnergyLossCorrPar")==0)
      return new HEnergyLossCorrPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  return 0;
} 
 hmdctrackgcontfact.cc:1
 hmdctrackgcontfact.cc:2
 hmdctrackgcontfact.cc:3
 hmdctrackgcontfact.cc:4
 hmdctrackgcontfact.cc:5
 hmdctrackgcontfact.cc:6
 hmdctrackgcontfact.cc:7
 hmdctrackgcontfact.cc:8
 hmdctrackgcontfact.cc:9
 hmdctrackgcontfact.cc:10
 hmdctrackgcontfact.cc:11
 hmdctrackgcontfact.cc:12
 hmdctrackgcontfact.cc:13
 hmdctrackgcontfact.cc:14
 hmdctrackgcontfact.cc:15
 hmdctrackgcontfact.cc:16
 hmdctrackgcontfact.cc:17
 hmdctrackgcontfact.cc:18
 hmdctrackgcontfact.cc:19
 hmdctrackgcontfact.cc:20
 hmdctrackgcontfact.cc:21
 hmdctrackgcontfact.cc:22
 hmdctrackgcontfact.cc:23
 hmdctrackgcontfact.cc:24
 hmdctrackgcontfact.cc:25
 hmdctrackgcontfact.cc:26
 hmdctrackgcontfact.cc:27
 hmdctrackgcontfact.cc:28
 hmdctrackgcontfact.cc:29
 hmdctrackgcontfact.cc:30
 hmdctrackgcontfact.cc:31
 hmdctrackgcontfact.cc:32
 hmdctrackgcontfact.cc:33
 hmdctrackgcontfact.cc:34
 hmdctrackgcontfact.cc:35
 hmdctrackgcontfact.cc:36
 hmdctrackgcontfact.cc:37
 hmdctrackgcontfact.cc:38
 hmdctrackgcontfact.cc:39
 hmdctrackgcontfact.cc:40
 hmdctrackgcontfact.cc:41
 hmdctrackgcontfact.cc:42
 hmdctrackgcontfact.cc:43
 hmdctrackgcontfact.cc:44
 hmdctrackgcontfact.cc:45
 hmdctrackgcontfact.cc:46
 hmdctrackgcontfact.cc:47
 hmdctrackgcontfact.cc:48
 hmdctrackgcontfact.cc:49
 hmdctrackgcontfact.cc:50
 hmdctrackgcontfact.cc:51
 hmdctrackgcontfact.cc:52
 hmdctrackgcontfact.cc:53
 hmdctrackgcontfact.cc:54
 hmdctrackgcontfact.cc:55
 hmdctrackgcontfact.cc:56
 hmdctrackgcontfact.cc:57
 hmdctrackgcontfact.cc:58
 hmdctrackgcontfact.cc:59
 hmdctrackgcontfact.cc:60
 hmdctrackgcontfact.cc:61
 hmdctrackgcontfact.cc:62
 hmdctrackgcontfact.cc:63
 hmdctrackgcontfact.cc:64
 hmdctrackgcontfact.cc:65
 hmdctrackgcontfact.cc:66
 hmdctrackgcontfact.cc:67
 hmdctrackgcontfact.cc:68
 hmdctrackgcontfact.cc:69
 hmdctrackgcontfact.cc:70