FairRoot/PandaRoot
PndSensorNameContFact.cxx
Go to the documentation of this file.
1 //
3 // PndSensorNameContFact
4 //
5 // Factory for the parameter containers in libPndMvd
6 //
8 
10 #include "FairRuntimeDb.h"
11 #include "PndSensorNamePar.h"
12 #include "FairParRootFileIo.h"
13 #include "FairParAsciiFileIo.h"
14 #include "TList.h"
15 #include "TObjString.h"
16 #include <iostream>
17 #include <iomanip>
18 
20 
22 
23 PndSensorNameContFact::PndSensorNameContFact(): fSensorParNames(), fContainerNames() {
24  // Constructor (called when the library is loaded)
25  fName="PndSensorNameContFact";
26  fTitle="Factory for parameter containers of the PndGeoHandler";
27  fSensorParNames = new TList();
28  fContainerNames.push_back("PndSensorNamePar");
30  FairRuntimeDb::instance()->addContFactory(this);
31 }
33  if(0!=fSensorParNames)
34  {
35  fSensorParNames->Delete();
36  delete fSensorParNames;
37  }
38 }
39 
40 
44  for (unsigned int i = 0; i < fContainerNames.size(); i++){
45  std::string description = "Match between GeoManager path and SensorId";
46  FairContainer* p = new FairContainer(fContainerNames[i].c_str(), description.c_str(), "TestDefaultContext");
47  fSensorParNames->Add(new TObjString(p->getConcatName()));
48  containers->Add(p);
49  }
50 }
51 
52 FairParSet* PndSensorNameContFact::createContainer(FairContainer* c) {
56  const char* name=c->GetName();
57  FairParSet* p=NULL;
58 
59  for (unsigned int i = 0; i < fContainerNames.size(); i++){
60  if (strcmp(name,fContainerNames[i].c_str())==0) {
61  p=new PndSensorNamePar(c->getConcatName().Data(),c->GetTitle(),c->getContext());
62  return p;
63  }
64  }
65  return p;
66 }
Int_t i
Definition: run_full.C:25
FairParSet * createContainer(FairContainer *c)
ClassImp(PndSensorNameContFact)
static PndSensorNameContFact gPndSensorNameContFact
Double_t p
Definition: anasim.C:58
std::vector< std::string > fContainerNames
TString name
Unique match between SensorID and path in TGeoManager.