#include "hmdcunpackerpar.h"
#include "hades.h"
#include "hmessagemgr.h"
#include "hevent.h"
#include "heventheader.h"
#include "hpario.h"
#include "hdetpario.h"
#include "hparamlist.h"
ClassImp(HMdcUnpackerPar)
    HMdcUnpackerPar::HMdcUnpackerPar(const char* name, const char* title, const char* context)
    : HParCond(name,title,context)
{
    
    strcpy(detName,"Mdc");
    decodeVersion = -1;
    tdcMode = -1;
    doAddrCorr = -1;
	mapOutUnusedChannels = -1;
}
HMdcUnpackerPar::~HMdcUnpackerPar(void)
{
    
}
Bool_t HMdcUnpackerPar::getParams(HParamList *l)
{
    
    if (!l) return kFALSE;
    if(!(l->fill("decodeVersion", &decodeVersion))) return kFALSE;
    if(!(l->fill("tdcMode",&tdcMode))) return kFALSE;
    if(!(l->fill("doAddrCorr",&doAddrCorr))) return kFALSE;
    if(!(l->fill("doMapOutUnusedChannels",&mapOutUnusedChannels))) return kFALSE;
    return kTRUE;
}
Bool_t HMdcUnpackerPar::init(HParIo* inp,Int_t* set)
{
    
    HDetParIo* input=inp->getDetParIo("HCondParIo");
    if (input) return (input->init(this,set));
    return kFALSE;
}
void HMdcUnpackerPar::printParam(void)
{
    
    SEPERATOR_msg("#",60);
    INFO_msg(10,HMessageMgr::DET_MDC,"HMdcUnpackerPar:");
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),"decodeVersion:\t\t%d",decodeVersion);
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),"tdcMode:\t\t%d",tdcMode);
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),"addr. corr:\t\t%d",doAddrCorr);
	gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),"map unused:\t\t%d",mapOutUnusedChannels);
    SEPERATOR_msg("#",60);
}
void HMdcUnpackerPar::putParams(HParamList *l)
{
    
    if (!l) return;
    l->add("decodeVersion",decodeVersion);
    l->add("tdcMode",tdcMode);
    l->add("doAddrCorr",doAddrCorr);
	l->add("doMapOutUnusedChannels",mapOutUnusedChannels);
}
void HMdcUnpackerPar::setParamContext(const char *context)
{
    
    paramContext=context;
}
Int_t HMdcUnpackerPar::write(HParIo* output)
{
    
    HDetParIo* out=output->getDetParIo("HCondParIo");
    if (out) return out->write(this);
    return -1;
}
Int_t HMdcUnpackerPar::getDecodeVersion(void)
{
    
    return decodeVersion;
}
Int_t HMdcUnpackerPar::getTdcMode(void)
{
    
    
    
    
    return tdcMode;
}
Int_t HMdcUnpackerPar::getDoAddrCorr(void)
{
    
    return doAddrCorr;
}
Int_t HMdcUnpackerPar::getMapUnusedChannels(void)
{
  
  return mapOutUnusedChannels;
}