using namespace std;
#include "htriggerparrootfileio.h"
#include "hparrootfileio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hruntimedb.h"
#include "htriggerdetector.h"
#include "htriggerparmulep.h"
#include "htriggerparmudilep.h"
#include "htriggerparmommap.h"
#include "htriggerparshowermap.h"
#include "htriggerparrichmap.h"
#include "hrichIPUparpattern.h"
#include "hrichIPUparthresholds.h"
#include "hrichIPUparlocmax.h"
#include <iostream>
#include <iomanip>
ClassImp(HTriggerParRootFileIo)
HTriggerParRootFileIo::HTriggerParRootFileIo(HParRootFile* f) : HDetParRootFileIo(f) {
fName="HTriggerParIo";
}
HTriggerParRootFileIo::~HTriggerParRootFileIo() {
}
Bool_t HTriggerParRootFileIo::init(HParSet* pPar,Int_t* set) {
if (!isActiv) readModules("Trigger");
const Text_t* name=pPar->GetName();
if (pFile) {
if (strcmp(name,"TriggerParMomMap")==0) return read((HTriggerParMomMap*)pPar,set);
if (strcmp(name,"TriggerParShowerMap")==0) return read((HTriggerParShowerMap*)pPar,set);
if (strcmp(name,"TriggerParRichMap")==0) return read((HTriggerParRichMap*)pPar,set);
if (strncmp(name,"TriggerParMuLep",strlen("TriggerParMuLep"))==0)
return HDetParRootFileIo::read(pPar);
if (strncmp(name,"TriggerParMuDilep",strlen("TriggerParMuDilep"))==0)
return HDetParRootFileIo::read(pPar);
if (strcmp(name,"RichIPUParPattern")==0) return read((HRichIPUParPattern*)pPar,set);
if (strcmp(name,"RichIPUParThresholds")==0) return read((HRichIPUParThresholds*)pPar,set);
if (strcmp(name,"RichIPUParThresholds_RICHIPUEmulation")==0) return read((HRichIPUParThresholds*)pPar,set);
if (strncmp(name,"RichIPUParLocMax",strlen("RichIPUParLocMax"))==0) return HDetParRootFileIo::read(pPar);
if (strncmp(name,"RichIPUParLocMax_RICHIPUEmulation",strlen("RichIPUParLocMax_RICHIPUEmulation"))==0) return HDetParRootFileIo::read(pPar);
}
cerr<<"initialization of "<<name<<" not possible from ROOT file!"<<endl;
return kFALSE;
}
Bool_t HTriggerParRootFileIo::read(HTriggerParMuLep* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HTriggerParMuLep* r=(HTriggerParMuLep*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HTriggerParMuLep& rTrigger=*r;
HTriggerParMuLep& pTrigger=*pPar;
pTrigger.setMUtheta(rTrigger.getMUtheta());
pTrigger.setMUphiOffset(rTrigger.getMUphiOffset());
pTrigger.setMUphiSlope(rTrigger.getMUphiSlope());
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HTriggerParMuDilep* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HTriggerParMuDilep* r=(HTriggerParMuDilep*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HTriggerParMuDilep& rTrigger=*r;
HTriggerParMuDilep& pTrigger=*pPar;
pTrigger.setMUcutoff(rTrigger.getMUcutoff());
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HTriggerParMomMap* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HTriggerParMomMap* r=(HTriggerParMomMap*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HTriggerParMomMap& rTrigger=*r;
HTriggerParMomMap& pTrigger=*pPar;
pTrigger.setTheta_bins(rTrigger.getTheta_bins());
pTrigger.setDeltatheta_bins(rTrigger.getDeltatheta_bins());
pTrigger.setPhi_bins(rTrigger.getPhi_bins());
for (Int_t xx=0;xx<rTrigger.getTheta_bins();xx++) {
for (Int_t yy=0;yy<rTrigger.getDeltatheta_bins();yy++) {
for (Int_t zz=0;zz<rTrigger.getPhi_bins();zz++) {
pTrigger.setMom(xx,yy,zz,rTrigger.getMom(xx,yy,zz));
}
}
}
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HTriggerParShowerMap* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HTriggerParShowerMap* r=(HTriggerParShowerMap*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HTriggerParShowerMap& rTrigger=*r;
HTriggerParShowerMap& pTrigger=*pPar;
for (Int_t xx=0;xx<32;xx++) {
for (Int_t yy=0;yy<32;yy++) {
pTrigger.setShowerTheta(xx,yy,rTrigger.getShowerTheta(xx,yy));
pTrigger.setShowerPhi(xx,yy,rTrigger.getShowerPhi(xx,yy));
}
}
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HTriggerParRichMap* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HTriggerParRichMap* r=(HTriggerParRichMap*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HTriggerParRichMap& rTrigger=*r;
HTriggerParRichMap& pTrigger=*pPar;
for (Int_t xx=0;xx<96;xx++) {
for (Int_t yy=0;yy<96;yy++) {
pTrigger.setRichTheta(xx,yy,rTrigger.getRichTheta(xx,yy));
pTrigger.setRichPhi(xx,yy,rTrigger.getRichPhi(xx,yy));
}
}
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HRichIPUParPattern* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HRichIPUParPattern* r=(HRichIPUParPattern*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HRichIPUParPattern& rRichIPU=*r;
HRichIPUParPattern& pRichIPU=*pPar;
pRichIPU.setNGroups(rRichIPU.getNGroups());
pRichIPU.setNPadsinGroup(rRichIPU.getNPadsinGroup());
pRichIPU.setNPadDimensions(rRichIPU.getNPadDimensions());
for (Int_t xx=0;xx<rRichIPU.getNGroups();xx++) {
for (Int_t yy=0;yy<rRichIPU.getNPadsinGroup();yy++) {
for (Int_t zz=0;zz<rRichIPU.getNPadDimensions();zz++) {
pRichIPU.setPattern(xx,yy,zz,rRichIPU.getPattern(xx,yy,zz));
}
}
}
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HRichIPUParThresholds* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HRichIPUParThresholds* r=(HRichIPUParThresholds*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HRichIPUParThresholds& rRichIPU=*r;
HRichIPUParThresholds& pRichIPU=*pPar;
for (Int_t xx=0;xx<2;xx++) {
for (Int_t yy=0;yy<6;yy++) {
pRichIPU.setThresholds(xx,yy,rRichIPU.getThresholds(xx,yy));
}
}
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Bool_t HTriggerParRootFileIo::read(HRichIPUParLocMax* pPar,Int_t* set) {
Text_t* name=(Char_t*)pPar->GetName();
Int_t version=findInputVersion(name);
if (version==-1) {
pPar->setInputVersion(-1,inputNumber);
return kFALSE;
}
if (pPar->getInputVersion(inputNumber)==version
&& pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
HRichIPUParLocMax* r=(HRichIPUParLocMax*)findContainer(name,version);
Bool_t allFound=kTRUE;
if (r){
HRichIPUParLocMax& rRichIPU=*r;
HRichIPUParLocMax& pRichIPU=*pPar;
pRichIPU.setLocMax(rRichIPU.getLocMax());
pRichIPU.setLocMaxFlag(rRichIPU.getLocMaxFlag());
pPar->setInputVersion(version,inputNumber);
pPar->setChanged();
delete r;
}
return allFound;
}
Last change: Sat May 22 13:17:19 2010
Last generated: 2010-05-22 13:17
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.