CbmRoot
Loading...
Searching...
No Matches
CbmMuchContFact.cxx
Go to the documentation of this file.
1/* Copyright (C) 2006-2021 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Mikhail Ryzhinskiy, Denis Bertini [committer], Florian Uhlig, Volker Friese, Mohammad Al-Turany */
4
14#include "CbmMuchContFact.h"
15
16#include "CbmGeoMuchPar.h" // for CbmGeoMuchPar
17#include "CbmMcbm2018MuchPar.h" // for CbmMcbm2018MuchPar
18#include "CbmMuchUnpackPar.h" // for CbmMuchUnpackPar
19
20#include <FairContFact.h> // for FairContainer
21#include <FairRuntimeDb.h> // for FairRuntimeDb
22#include <Logger.h> // for LOG
23
24#include <TList.h> // for TList
25#include <TString.h> // for TString
26
27#include <string.h> // for strcmp
28
30
31 static CbmMuchContFact gCbmMuchContFact;
32
34{
35 // Constructor (called when the library is loaded)
36 fName = "CbmMuchContFact";
37 fTitle = "Factory for parameter containers in libMuch";
39 FairRuntimeDb::instance()->addContFactory(this);
40}
41
43{
46 // FairContainer* p1= new FairContainer("CbmMuchDigiPar",
47 // "Much Digitization Parameters",
48 // "TestDefaultContext");
49 // p1->addContext("TestNonDefaultContext");
50 // containers->Add(p1);
51
52 FairContainer* p2 = new FairContainer("CbmGeoMuchPar", "Much Geometry Parameters", "TestDefaultContext");
53 p2->addContext("TestNonDefaultContext");
54 containers->Add(p2);
55
56 FairContainer* beamPars = new FairContainer("CbmMcbm2018MuchPar", "Much at MCBM 2018 Unpack Parameters", "Default");
57 beamPars->addContext("Default");
58 containers->Add(beamPars);
59
60 FairContainer* unpackPars = new FairContainer("CbmMuchUnpackPar", "Much Generic Unpack Parameters", "Default");
61 beamPars->addContext("Default");
62 containers->Add(unpackPars);
63}
64
65FairParSet* CbmMuchContFact::createContainer(FairContainer* c)
66{
70 const char* name = c->GetName();
71 LOG(info) << " -I container name " << name;
72 FairParSet* p = 0;
73 if (strcmp(name, "CbmGeoMuchPar") == 0) {
74 p = new CbmGeoMuchPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
75 }
76 else if (strcmp(name, "CbmMcbm2018MuchPar") == 0) {
77 p = new CbmMcbm2018MuchPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
78 }
79 else if (strcmp(name, "CbmMuchUnpackPar") == 0) {
80 p = new CbmMuchUnpackPar(c->getConcatName().Data(), c->GetTitle(), c->getContext());
81 }
82
83 return p;
84}
85/*
86void CbmMuchContFact::activateParIo(FairParIo*)
87{
88 // activates the input/output class for the parameters
89 // needed by the MuCh
90 // if (strcmp(io->IsA()->GetName(),"FairParRootFileIo")==0) {
91 // CbmMuchParRootFileIo* p=new CbmMuchParRootFileIo(((FairParRootFileIo*)io)->getParRootFile());
92 // io->setDetParIo(p);
93 // }
94 // else if (strcmp(io->IsA()->GetName(),"FairParAsciiFileIo")==0) {
95 // CbmMuchParAsciiFileIo* p=new CbmMuchParAsciiFileIo(((FairParAsciiFileIo*)io)->getFile());
96 // io->setDetParIo(p);
97 // }
98}
99*/
ClassImp(CbmMuchContFact) static CbmMuchContFact gCbmMuchContFact
FairParSet * createContainer(FairContainer *)