using namespace std;
#include "hpiontrackerparrootfileio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hpiontrackerdetector.h"
#include "hparset.h"
#include "hpiontrackertrb3lookup.h"
#include "hpiontrackercalpar.h"
#include <iostream>
#include <iomanip>
ClassImp(HPionTrackerParRootFileIo)
HPionTrackerParRootFileIo::HPionTrackerParRootFileIo(HParRootFile* f) : HDetParRootFileIo(f) {
fName = "HPionTrackerParIo";
Int_t n = gHades->getSetup()->getDetector("PionTracker")->getMaxModules();
initModules = new TArrayI(n);
}
HPionTrackerParRootFileIo::~HPionTrackerParRootFileIo() {
if (modulesFound) {
delete modulesFound;
modulesFound = 0;
}
}
Bool_t HPionTrackerParRootFileIo::init(HParSet* pPar, Int_t* set) {
if (!isActiv) readModules("PionTracker");
const Text_t* name = pPar->GetName();
if (NULL != pFile) {
if (0 == strncmp(name, "PionTrackerTrb3Lookup", strlen("PionTrackerTrb3Lookup"))) {
return HDetParRootFileIo::read(pPar);
}
if (0 == strncmp(name, "PionTrackerCalPar", strlen("PionTrackerCalPar"))) {
return read((HPionTrackerCalPar*)pPar, set);
}
}
Error("init(HParSet*,Int_t*)","Initialization of %s not possible from ROOT file",name);
return kFALSE;
}
Bool_t HPionTrackerParRootFileIo::read(HPionTrackerCalPar* 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();
HPionTrackerCalPar* rPar = (HPionTrackerCalPar*)findContainer(name, version);
Bool_t allFound = kTRUE;
initModules->Reset();
for (Int_t m = 0; m < pPar->getSize(); m++) {
if (set[m]) {
HPionTrackerCalParMod& r = (*rPar)[m];
HPionTrackerCalParMod& 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 rPar;
return allFound;
}
hpiontrackerparrootfileio.cc:1 hpiontrackerparrootfileio.cc:2 hpiontrackerparrootfileio.cc:3 hpiontrackerparrootfileio.cc:4 hpiontrackerparrootfileio.cc:5 hpiontrackerparrootfileio.cc:6 hpiontrackerparrootfileio.cc:7 hpiontrackerparrootfileio.cc:8 hpiontrackerparrootfileio.cc:9 hpiontrackerparrootfileio.cc:10 hpiontrackerparrootfileio.cc:11 hpiontrackerparrootfileio.cc:12 hpiontrackerparrootfileio.cc:13 hpiontrackerparrootfileio.cc:14 hpiontrackerparrootfileio.cc:15 hpiontrackerparrootfileio.cc:16 hpiontrackerparrootfileio.cc:17 hpiontrackerparrootfileio.cc:18 hpiontrackerparrootfileio.cc:19 hpiontrackerparrootfileio.cc:20 hpiontrackerparrootfileio.cc:21 hpiontrackerparrootfileio.cc:22 hpiontrackerparrootfileio.cc:23 hpiontrackerparrootfileio.cc:24 hpiontrackerparrootfileio.cc:25 hpiontrackerparrootfileio.cc:26 hpiontrackerparrootfileio.cc:27 hpiontrackerparrootfileio.cc:28 hpiontrackerparrootfileio.cc:29 hpiontrackerparrootfileio.cc:30 hpiontrackerparrootfileio.cc:31 hpiontrackerparrootfileio.cc:32 hpiontrackerparrootfileio.cc:33 hpiontrackerparrootfileio.cc:34 hpiontrackerparrootfileio.cc:35 hpiontrackerparrootfileio.cc:36 hpiontrackerparrootfileio.cc:37 hpiontrackerparrootfileio.cc:38 hpiontrackerparrootfileio.cc:39 hpiontrackerparrootfileio.cc:40 hpiontrackerparrootfileio.cc:41 hpiontrackerparrootfileio.cc:42 hpiontrackerparrootfileio.cc:43 hpiontrackerparrootfileio.cc:44 hpiontrackerparrootfileio.cc:45 hpiontrackerparrootfileio.cc:46 hpiontrackerparrootfileio.cc:47 hpiontrackerparrootfileio.cc:48 hpiontrackerparrootfileio.cc:49 hpiontrackerparrootfileio.cc:50 hpiontrackerparrootfileio.cc:51 hpiontrackerparrootfileio.cc:52 hpiontrackerparrootfileio.cc:53 hpiontrackerparrootfileio.cc:54 hpiontrackerparrootfileio.cc:55 hpiontrackerparrootfileio.cc:56 hpiontrackerparrootfileio.cc:57 hpiontrackerparrootfileio.cc:58 hpiontrackerparrootfileio.cc:59 hpiontrackerparrootfileio.cc:60 hpiontrackerparrootfileio.cc:61 hpiontrackerparrootfileio.cc:62 hpiontrackerparrootfileio.cc:63 hpiontrackerparrootfileio.cc:64 hpiontrackerparrootfileio.cc:65 hpiontrackerparrootfileio.cc:66 hpiontrackerparrootfileio.cc:67 hpiontrackerparrootfileio.cc:68 hpiontrackerparrootfileio.cc:69 hpiontrackerparrootfileio.cc:70 hpiontrackerparrootfileio.cc:71 hpiontrackerparrootfileio.cc:72 hpiontrackerparrootfileio.cc:73 hpiontrackerparrootfileio.cc:74 hpiontrackerparrootfileio.cc:75 hpiontrackerparrootfileio.cc:76 hpiontrackerparrootfileio.cc:77 hpiontrackerparrootfileio.cc:78 hpiontrackerparrootfileio.cc:79 hpiontrackerparrootfileio.cc:80 hpiontrackerparrootfileio.cc:81 hpiontrackerparrootfileio.cc:82 hpiontrackerparrootfileio.cc:83 hpiontrackerparrootfileio.cc:84 hpiontrackerparrootfileio.cc:85 hpiontrackerparrootfileio.cc:86 hpiontrackerparrootfileio.cc:87 hpiontrackerparrootfileio.cc:88 hpiontrackerparrootfileio.cc:89 hpiontrackerparrootfileio.cc:90 hpiontrackerparrootfileio.cc:91 hpiontrackerparrootfileio.cc:92