CbmSttContFact.cxx 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //*-- AUTHOR : Denis Bertini
  2. //*-- Created : 20/06/2005
  3. /////////////////////////////////////////////////////////////
  4. //
  5. // CbmSttContFact
  6. //
  7. // Factory for the parameter containers in libStt
  8. //
  9. /////////////////////////////////////////////////////////////
  10. using namespace std;
  11. #include "CbmSttContFact.h"
  12. #include "FairRuntimeDb.h"
  13. #include "CbmGeoSttPar.h"
  14. #include "CbmSttDigiPar.h"
  15. #include "FairParRootFileIo.h"
  16. #include "FairParAsciiFileIo.h"
  17. #include "CbmSttParRootFileIo.h"
  18. #include "CbmSttParAsciiFileIo.h"
  19. #include <iostream>
  20. #include <iomanip>
  21. ClassImp(CbmSttContFact)
  22. static CbmSttContFact gCbmSttContFact;
  23. CbmSttContFact::CbmSttContFact()
  24. {
  25. // Constructor (called when the library is loaded)
  26. fName="CbmSttContFact";
  27. fTitle="Factory for parameter containers in libStt";
  28. setAllContainers();
  29. FairRuntimeDb::instance()->addContFactory(this);
  30. }
  31. void CbmSttContFact::setAllContainers()
  32. {
  33. /** Creates the Container objects with all accepted contexts and adds them to
  34. * the list of containers for the STT library.*/
  35. FairContainer* p2= new FairContainer("CbmGeoSttPar",
  36. "Stt Geometry Parameters",
  37. "TestDefaultContext");
  38. p2->addContext("TestNonDefaultContext");
  39. containers->Add(p2);
  40. }
  41. FairParSet* CbmSttContFact::createContainer(FairContainer* c)
  42. {
  43. /** Calls the constructor of the corresponding parameter container.
  44. * For an actual context, which is not an empty string and not the default context
  45. * of this container, the name is concatinated with the context. */
  46. const char* name=c->GetName();
  47. cout << " -I container name " << name << endl;
  48. FairParSet* p=0;
  49. if (strcmp(name,"CbmGeoSttPar")==0) {
  50. p=new CbmGeoSttPar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
  51. }
  52. return p;
  53. }
  54. /*
  55. void CbmSttContFact::activateParIo(CbmParIo* io) {
  56. // activates the input/output class for the parameters
  57. // needed by the Stt
  58. if (strcmp(io->IsA()->GetName(),"FairParRootFileIo")==0) {
  59. CbmSttParRootFileIo* p=new CbmSttParRootFileIo(((FairParRootFileIo*)io)->getParRootFile());
  60. io->setDetParIo(p);
  61. }
  62. if (strcmp(io->IsA()->GetName(),"FairParAsciiFileIo")==0) {
  63. CbmSttParAsciiFileIo* p=new CbmSttParAsciiFileIo(((FairParAsciiFileIo*)io)->getFile());
  64. io->setDetParIo(p);
  65. }
  66. }
  67. */