#include "hmdcdigitpar.h"
#include "hmessagemgr.h"
#include "hparamlist.h"
#include <stdlib.h>
ClassImp(HMdcDigitPar)
HMdcDigitPar::HMdcDigitPar(const Char_t* name,const Char_t* title,
                       const Char_t* context)
    : HParCond(name,title,context)
{
    
    layEff.Set(144);
    layEffScale.Set(144);
    layEffThickness.Set(144);
    scaleTime1Err.Set(4);
    scaleTime1ErrMIPS.Set(4);
    clear();
}
HMdcDigitPar::~HMdcDigitPar()
{
  
}
void HMdcDigitPar::clear()
{
    for(Int_t i=0;i<144;i++)
    {
      layEff[i]=-99;
      layEffScale[i]=-99;
      layEffThickness[i]=-99;
    }
    for(Int_t i=0;i<4;i++)
    {
        scaleTime1Err[i]=-99;
        scaleTime1ErrMIPS[i]=-99;
    }
    cellEffScale=-99;
    signalspeed=-99;
    status=kFALSE;
    resetInputVersions();
    changed=kFALSE;
}
void HMdcDigitPar::printParam(void)
{
    
    SEPERATOR_msg("#",60);
    INFO_msg(10,HMessageMgr::DET_MDC,"HMdcDigitPar:");
    INFO_msg(10,HMessageMgr::DET_MDC,"LayerEfficiency:");
    for(Int_t s=0;s<6;s++){
	for(Int_t m=0;m<4;m++){
	  gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),
				 "s %i m %i %5.4f %5.4f %5.4f %5.4f %5.4f %5.4f",
				 s,m,
				 layEff[(s*24)+(m*6)+0],layEff[(s*24)+(m*6)+1],layEff[(s*24)+(m*6)+2],
				 layEff[(s*24)+(m*6)+3],layEff[(s*24)+(m*6)+4],layEff[(s*24)+(m*6)+5]);
	}
    }
    INFO_msg(10,HMessageMgr::DET_MDC,"LayerEfficiencyScale:");
    for(Int_t s=0;s<6;s++){
	for(Int_t m=0;m<4;m++){
	  gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),
				 "s %i m %i %5.4f %5.4f %5.4f %5.4f %5.4f %5.4f",
				 s,m,
				 layEffScale[(s*24)+(m*6)+0],layEffScale[(s*24)+(m*6)+1],layEffScale[(s*24)+(m*6)+2],
				 layEffScale[(s*24)+(m*6)+3],layEffScale[(s*24)+(m*6)+4],layEffScale[(s*24)+(m*6)+5]);
	}
    }
    INFO_msg(10,HMessageMgr::DET_MDC,"LayerEfficiencyThickness:");
    for(Int_t s=0;s<6;s++){
	for(Int_t m=0;m<4;m++){
	  gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),
				 "s %i m %i %5.4f %5.4f %5.4f %5.4f %5.4f %5.4f",
				 s,m,
				 layEffThickness[(s*24)+(m*6)+0],layEffThickness[(s*24)+(m*6)+1],layEffThickness[(s*24)+(m*6)+2],
				 layEffThickness[(s*24)+(m*6)+3],layEffThickness[(s*24)+(m*6)+4],layEffThickness[(s*24)+(m*6)+5]);
	}
    }
    INFO_msg(10,HMessageMgr::DET_MDC,"Time1ErrScale:");
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),
			   "%5.4f %5.4f %5.4f %5.4f", scaleTime1Err[0],scaleTime1Err[1],scaleTime1Err[2],scaleTime1Err[3]);
    INFO_msg(10,HMessageMgr::DET_MDC,"Time1ErrScaleMIPS:");
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),
			   "%5.4f %5.4f %5.4f %5.4f", scaleTime1ErrMIPS[0],scaleTime1ErrMIPS[1],scaleTime1ErrMIPS[2],scaleTime1ErrMIPS[3]);
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),"cellEffScale: %6.4f ns/mm",cellEffScale);
    gHades->getMsg()->info(10,HMessageMgr::DET_MDC,GetName(),"SignalSpeed: %6.4f ns/mm",signalspeed);
    SEPERATOR_msg("#",60);
}
void HMdcDigitPar::putParams(HParamList* l)
{
    
    
    if (!l) return;
    l->add("layEff",     layEff);
    l->add("layEffScale",layEffScale);
    l->add("layEffThickness",layEffThickness);
    l->add("scaleTime1Err",scaleTime1Err);
    l->add("scaleTime1ErrMIPS",scaleTime1ErrMIPS);
    l->add("cellEffScale",cellEffScale);
    l->add("signalspeed",signalspeed);
}
Bool_t HMdcDigitPar::getParams(HParamList* l)
{
    if (!l) return kFALSE;
    if(!( l->fill("layEff",     &layEff)))       return kFALSE;
    if(!( l->fill("layEffScale",&layEffScale)))  return kFALSE;
    if(!( l->fill("layEffThickness",&layEffThickness)))  return kFALSE;
    if(!( l->fill("scaleTime1Err",&scaleTime1Err)))  return kFALSE;
    if(!( l->fill("scaleTime1ErrMIPS",&scaleTime1ErrMIPS)))  return kFALSE;
    if(!( l->fill("cellEffScale",&cellEffScale)))return kFALSE;
    if(!( l->fill("signalspeed",&signalspeed)))  return kFALSE;
    return kTRUE;
}