using namespace std;
#include "hshowerparrootfileio.h"
#include "hparrootfileio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hruntimedb.h"
#include "hdetparrootfileio.h"
#include "hshowergeometry.h"
#include "hshowerdigidetpar.h"
#include "hshowerhitfpar.h"
#include "hshowercalpar.h"
#include "hshowerhist.h"
#include "hshowerunpackparam.h"
#include "hshowerparset.h"
#include <iostream>
#include <iomanip>
ClassImp(HShowerParRootFileIo)
HShowerParRootFileIo::HShowerParRootFileIo(HParRootFile* f) : HDetParRootFileIo(f) {
fName="HShowerParIo";
initModules=new TArrayI(18);
}
HShowerParRootFileIo::~HShowerParRootFileIo() {
if (modulesFound) {
delete modulesFound;
modulesFound=0;
}
if (initModules) {
delete initModules;
initModules=0;
}
}
Bool_t HShowerParRootFileIo::init(HParSet* pPar,Int_t* set) {
if (!isActiv) readModules("Shower");
const Text_t* name = ((TNamed*)pPar)->GetName();
printf("Shower par file io init - %s\n", name);
if (pFile) {
if (strcmp(name,"ShowerGeometry")==0) {
if (HDetParRootFileIo::read((HShowerGeometry*)pPar)){
((HShowerGeometry*)pPar)->attachTables();
return kTRUE;
}
return kFALSE;
}
if (strcmp(name,"ShowerDigiPar")==0) return read((HShowerDigiDetPar*)pPar,set);
if (strcmp(name,"ShowerHitFinderParams")==0) return read((HShowerHitFPar*)pPar,set);
if (strcmp(name,"ShowerCalPar")==0) return read((HShowerCalPar*)pPar,set);
if (strcmp(name,"ShowerHist")==0) return read((HShowerHist*)pPar,set);
if (strcmp(name,"ShowerUnpackParam")==0) return read((HShowerUnpackParam*)pPar,set);
}
cerr<<"initialization of "<<name<<" not possible from ROOT file!"<<endl;
return kFALSE;
}
Bool_t HShowerParRootFileIo::readObject(HShowerParSet *pPar) {
Text_t* name = (Char_t*)pPar->GetName();
Int_t version = findInputVersion(name);
if(version<=0){
printf("Container %s not found in RuntimeDB in the %d ROOT input\n",name,inputNumber);
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
TKey *key = (TKey*)gDirectory->GetKey(name,version);
if(key)
{
key->Read(pPar);
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
} else {
pPar->setInputVersion(-1,inputNumber);
}
return (key != NULL);
}
Bool_t HShowerParRootFileIo::read(HShowerGeometry* pPar,Int_t* set) {
return kFALSE;
pPar->attachTables();
printf("Container ShowerGeometry initialized from the %d ROOT input\n",inputNumber);
return kTRUE;
}
Bool_t HShowerParRootFileIo::read(HShowerDigiDetPar* pPar,Int_t* set) {
if (!readObject(pPar))
return kFALSE;
printf("Container ShowerDigiDetPar initialized from the %d ROOT input\n",inputNumber);
return kTRUE;
}
Bool_t HShowerParRootFileIo::read(HShowerHitFPar* pPar,Int_t* set) {
if (!readObject(pPar))
return kFALSE;
printf("Container ShowerHitFPar initialized from the %d ROOT input\n",inputNumber);
return kTRUE;
}
Bool_t HShowerParRootFileIo::read(HShowerCalPar* pPar,Int_t* set) {
if (!readObject(pPar))
return kFALSE;
printf("Container ShowerCalPar initialized from the %d ROOT input\n",inputNumber);
return kTRUE;
}
Bool_t HShowerParRootFileIo::read(HShowerHist* pPar,Int_t* set) {
pPar->defaultInit();
return kTRUE;
}
Bool_t HShowerParRootFileIo::read(HShowerUnpackParam* pPar,Int_t* set) {
if (!readObject(pPar))
return kFALSE;
printf("Container ShowerUnpackParam initialized from %d ROOT input\n",inputNumber);
return kTRUE;
}
void HShowerParRootFileIo::readContainer(HShowerParSet *pPar,const Char_t *name,Int_t version)
{
Char_t buff[256];
sprintf(buff,"%s;%i",name,version);
pPar->Read(buff);
}
Last change: Sat May 22 13:14:01 2010
Last generated: 2010-05-22 13:14
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.