#include "hades.h"
#include "hparrootfileio.h"
#include "hruntimedb.h"
#include "hspectrometer.h"
#include "hstart2calpar.h"
#include "hstart2detector.h"
#include "hstart2trb2lookup.h"
#include "hstart2geompar.h"
#include "hstart2trb3lookup.h"
#include "hstart2trb3calpar.h"
#include "hstartparrootfileio.h"
#include <iostream>
using namespace std;
ClassImp(HStartParRootFileIo)
HStartParRootFileIo::HStartParRootFileIo(HParRootFile* f) : HDetParRootFileIo(f)
{
fName = "HStartParIo";
Int_t n = gHades->getSetup()->getDetector("Start")->getMaxModules();
initModules = new TArrayI(n);
}
HStartParRootFileIo::~HStartParRootFileIo()
{
if (modulesFound) {
delete modulesFound;
modulesFound = 0;
}
if (initModules) {
delete initModules;
initModules = 0;
}
}
Bool_t HStartParRootFileIo::init(HParSet* pPar, Int_t* set)
{
if (!isActiv) readModules("Start");
const Text_t* name = pPar->GetName();
if (pFile) {
if (strcmp(name, "Start2Trb2Lookup") == 0) return HDetParRootFileIo::read(pPar);
if (strcmp(name, "Start2Calpar") == 0) return read((HStart2Calpar*)pPar, set);
if (strcmp(name, "Start2GeomPar")==0)
return HDetParRootFileIo::read((HStart2GeomPar*)pPar,set);
if (strcmp(name, "Start2Trb3Lookup") == 0) return HDetParRootFileIo::read(pPar);
if (strcmp(name, "Start2Trb3Calpar") == 0) return HDetParRootFileIo::read(pPar);
}
cerr << "initialization of " << name << " not possible from ROOT file!" << endl;
return kFALSE;
}
Bool_t HStartParRootFileIo::read(HStart2Calpar* pPar, Int_t* set)
{
Text_t* name = (Char_t*)pPar->GetName();
Int_t version = findInputVersion(name);
if (version <= 0) {
pPar->setInputVersion(-1, inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber) == version
&& pPar->getInputVersion(inputNumber) != -1) return kTRUE;
pPar->clear();
HStart2Calpar* rStart = (HStart2Calpar*)findContainer(name, version);
Bool_t allFound = kTRUE;
initModules->Reset();
for (Int_t m = 0; m < pPar->getSize(); m++) {
if (set[m]) {
HStart2CalparMod& r = (*rStart)[m];
HStart2CalparMod& p = (*pPar)[m];
Int_t pModSize = p.getSize();
if (pModSize && r.getSize() == pModSize) {
for (Int_t c = 0; c < pModSize; c++) p[c].fill(r[c]);
initModules->AddAt(m + 1, m);
} else allFound = kFALSE;
}
}
if (allFound) {
pPar->setInputVersion(version, inputNumber);
pPar->setChanged();
cout << name << " initialized from ROOT file" << endl;
}
delete rStart;
return allFound;
}
hstartparrootfileio.cc:10 hstartparrootfileio.cc:11 hstartparrootfileio.cc:12 hstartparrootfileio.cc:13 hstartparrootfileio.cc:14 hstartparrootfileio.cc:15 hstartparrootfileio.cc:16 hstartparrootfileio.cc:17 hstartparrootfileio.cc:18 hstartparrootfileio.cc:19 hstartparrootfileio.cc:20 hstartparrootfileio.cc:21 hstartparrootfileio.cc:22 hstartparrootfileio.cc:23 hstartparrootfileio.cc:24 hstartparrootfileio.cc:25 hstartparrootfileio.cc:26 hstartparrootfileio.cc:27 hstartparrootfileio.cc:28 hstartparrootfileio.cc:29 hstartparrootfileio.cc:30 hstartparrootfileio.cc:31 hstartparrootfileio.cc:32 hstartparrootfileio.cc:33 hstartparrootfileio.cc:34 hstartparrootfileio.cc:35 hstartparrootfileio.cc:36 hstartparrootfileio.cc:37 hstartparrootfileio.cc:38 hstartparrootfileio.cc:39 hstartparrootfileio.cc:40 hstartparrootfileio.cc:41 hstartparrootfileio.cc:42 hstartparrootfileio.cc:43 hstartparrootfileio.cc:44 hstartparrootfileio.cc:45 hstartparrootfileio.cc:46 hstartparrootfileio.cc:47 hstartparrootfileio.cc:48 hstartparrootfileio.cc:49 hstartparrootfileio.cc:50 hstartparrootfileio.cc:51 hstartparrootfileio.cc:52 hstartparrootfileio.cc:53 hstartparrootfileio.cc:54 hstartparrootfileio.cc:55 hstartparrootfileio.cc:56 hstartparrootfileio.cc:57 hstartparrootfileio.cc:58 hstartparrootfileio.cc:59 hstartparrootfileio.cc:60 hstartparrootfileio.cc:61 hstartparrootfileio.cc:62 hstartparrootfileio.cc:63 hstartparrootfileio.cc:64 hstartparrootfileio.cc:65 hstartparrootfileio.cc:66 hstartparrootfileio.cc:67 hstartparrootfileio.cc:68 hstartparrootfileio.cc:69 hstartparrootfileio.cc:70 hstartparrootfileio.cc:71 hstartparrootfileio.cc:72 hstartparrootfileio.cc:73 hstartparrootfileio.cc:74 hstartparrootfileio.cc:75 hstartparrootfileio.cc:76 hstartparrootfileio.cc:77 hstartparrootfileio.cc:78 hstartparrootfileio.cc:79 hstartparrootfileio.cc:80 hstartparrootfileio.cc:81 hstartparrootfileio.cc:82 hstartparrootfileio.cc:83 hstartparrootfileio.cc:84 hstartparrootfileio.cc:85 hstartparrootfileio.cc:86 hstartparrootfileio.cc:87 hstartparrootfileio.cc:88 hstartparrootfileio.cc:89 hstartparrootfileio.cc:90 hstartparrootfileio.cc:91 hstartparrootfileio.cc:92 hstartparrootfileio.cc:93 hstartparrootfileio.cc:94 hstartparrootfileio.cc:95 hstartparrootfileio.cc:96 hstartparrootfileio.cc:97 hstartparrootfileio.cc:98 hstartparrootfileio.cc:99 hstartparrootfileio.cc:100 hstartparrootfileio.cc:101 hstartparrootfileio.cc:102 hstartparrootfileio.cc:103 hstartparrootfileio.cc:104 hstartparrootfileio.cc:105 hstartparrootfileio.cc:106 hstartparrootfileio.cc:107 hstartparrootfileio.cc:108 hstartparrootfileio.cc:109 hstartparrootfileio.cc:110