#include "hrichIPUparpattern.h"
#include "hades.h"
#include "hpario.h"
#include "hdetpario.h"
#include "hmessagemgr.h"
ClassImp(HRichIPUParPattern)
void HRichIPUParPattern::setDefaults(void)
{
for (Int_t xx=0; xx < 29; xx++)
{
for (Int_t yy=0; yy < 5; yy++)
{
for (Int_t zz=0; zz < 2; zz++)
{
pattern[xx][yy][zz]=0;
}
}
}
}
HRichIPUParPattern::HRichIPUParPattern(const Char_t* name,const Char_t* title, const Char_t* context)
: HParSet(name,title,context)
{
strcpy(detName,"Trigger");
}
HRichIPUParPattern::~HRichIPUParPattern(void)
{
}
Bool_t HRichIPUParPattern::init(HParIo* inp,Int_t* set)
{
HDetParIo* input=inp->getDetParIo("HTriggerParIo");
if (input) return (input->init(this,set));
ERROR_msg(HMessageMgr::DET_TRIGGER,"Did not get input >HTriggerParIo<");
return kFALSE;
}
Int_t HRichIPUParPattern::write(HParIo* output)
{
HDetParIo* out=output->getDetParIo("HTriggerParIo");
if (out) return out->write(this);
return -1;
}
void HRichIPUParPattern::clear(void)
{
setDefaults();
status=kFALSE;
resetInputVersions();
}
void HRichIPUParPattern::readline(const Char_t *buf, Int_t *set)
{
Int_t gr,pg,re;
Int_t pat;
pat = -111;
sscanf(buf,"%i%i%i%i",&gr,&pg,&re,&pat);
if (pat == -111)
{
setNGroups(gr);
setNPadsinGroup(pg);
setNPadDimensions(re);
}
else
{
if( (gr > -1) && (gr < getNGroups() )
&& (pg > -1) && (pg < getNPadsinGroup() )
&& (re > -1) && (re < getNPadDimensions() ) )
{
if(gr<29||pg<5||re<2)
{
setPattern(gr,pg,re,pat);
}
else
{
ERROR_msg(HMessageMgr::DET_TRIGGER,"HRichIPUParPattern::readline():: array out of bounds! skipp!");
return;
}
}
else
{
ERROR_msg(HMessageMgr::DET_TRIGGER,"variables not properly set");
}
}
}
void HRichIPUParPattern::putAsciiHeader(TString& header)
{
header=
"# Parameters for RICH IPU Pattern\n"
"# Format:\n"
"# number_of_groups number_of_pads_in_group number_of_regions\n"
"# group pad region pattern\n";
}
Bool_t HRichIPUParPattern::writeline(Char_t *buf,Int_t s, Int_t m, Int_t c)
{
if(s>=29||m>=5||c>=2)
{
ERROR_msg(HMessageMgr::DET_TRIGGER,"HRichIPUParPattern::writeline():: array out of bounds! skipp!");
return kFALSE;
}
sprintf(buf,"%i %i %i %i\n",s,m,c,getPattern(s,m,c));
return kTRUE;
}
Bool_t HRichIPUParPattern::writesize(Char_t *buf)
{
sprintf(buf,"%i %i %i\n",getNGroups(),getNPadsinGroup(),getNPadDimensions());
return kTRUE;
}
void HRichIPUParPattern::printParam(void)
{
SEPERATOR_msg("=",60);
INFO_msg(10,HMessageMgr::DET_TRIGGER,"Parameters for RICH IPU Pattern");
INFO_msg(10,HMessageMgr::DET_TRIGGER,"Format:");
INFO_msg(10,HMessageMgr::DET_TRIGGER," number_of_groups number_of_pads_in_group number_of_regions\n");
INFO_msg(10,HMessageMgr::DET_TRIGGER," group pad region pattern\n");
SEPERATOR_msg("=",60);
gHades->getMsg()->info(10,HMessageMgr::DET_TRIGGER,GetName(),
"%s %d %s %d %s %d","number of groups",
getNGroups(), "number of pads in group",
getNPadsinGroup(),"number of regions",getNPadDimensions());
for (Int_t xx=0; xx < getNGroups(); xx++)
{
for (Int_t yy=0; yy < getNPadsinGroup(); yy++)
{
for (Int_t zz=0; zz< getNPadDimensions(); zz++)
{
if(xx<29||yy<5||zz<2)
{
gHades->getMsg()->info(10,HMessageMgr::DET_TRIGGER,GetName(),
"%d %d %d %d",xx, yy, zz, getPattern(xx,yy,zz));;
}
else
{
ERROR_msg(HMessageMgr::DET_TRIGGER,"printParam():: array out of bounds! skipp!");
}
}
}
}
SEPERATOR_msg("=",60);
}
Last change: Sat May 22 13:09:14 2010
Last generated: 2010-05-22 13:09
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.