BmnRoot
Loading...
Searching...
No Matches
CbmStsContFact.cxx
Go to the documentation of this file.
1//*-- AUTHOR : Denis Bertini
2//*-- Created : 20/06/2005
3
5//
6// CbmStsContFact
7//
8// Factory for the parameter containers in libSts
9//
11
12
13#include "CbmStsContFact.h"
14
15#include "CbmStsParRootFileIo.h"
17#include "CbmGeoStsPar.h"
18#include "CbmStsDigiPar.h"
19
20#include "FairRuntimeDb.h"
21#include "CbmParTest.h"
22#include "FairParRootFileIo.h"
23#include "FairParAsciiFileIo.h"
24
25#include "TClass.h"
26
27#include <iostream>
28#include <iomanip>
29
30using std::cout;
31using std::endl;
32
33static CbmStsContFact gCbmStsContFact;
34
36 // Constructor (called when the library is loaded)
37 fName="CbmStsContFact";
38 fTitle="Factory for parameter containers in libSts";
39 setAllContainers();
40 FairRuntimeDb::instance()->addContFactory(this);
41}
42
43void CbmStsContFact::setAllContainers() {
46 FairContainer* p1= new FairContainer("CbmStsDigiPar",
47 "Sts Digitisation Parameters",
48 "TestDefaultContext");
49 p1->addContext("TestNonDefaultContext");
50
51 FairContainer* p2= new FairContainer("CbmGeoStsPar",
52 "Sts Geometry Parameters",
53 "TestDefaultContext");
54 p2->addContext("TestNonDefaultContext");
55
56 containers->Add(p1);
57 containers->Add(p2);
58}
59
60FairParSet* CbmStsContFact::createContainer(FairContainer* c) {
64 const char* name=c->GetName();
65 //cout << " -I container name " << name << endl;
66 FairParSet* p=0;
67 if (strcmp(name,"CbmStsDigiPar")==0) {
68 p=new CbmStsDigiPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
69 }
70 if (strcmp(name,"CbmGeoStsPar")==0) {
71 p=new CbmGeoStsPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
72 }
73 return p;
74}
75
76void CbmStsContFact::activateParIo(FairParIo* io) {
77 // activates the input/output class for the parameters
78 // needed by the Sts
79 if (strcmp(io->IsA()->GetName(),"FairParRootFileIo")==0) {
80 CbmStsParRootFileIo* p=new CbmStsParRootFileIo(((FairParRootFileIo*)io)->getParRootFile());
81 io->setDetParIo(p);
82 }
83 if (strcmp(io->IsA()->GetName(),"FairParAsciiFileIo")==0) {
84 CbmStsParAsciiFileIo* p=new CbmStsParAsciiFileIo(((FairParAsciiFileIo*)io)->getFile());
85 io->setDetParIo(p);
86 }
87}
88
void activateParIo(FairParIo *io)
FairParSet * createContainer(FairContainer *)