KEBI

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

KBParameterContainer

정의

KBParameterContainer는 파라미터를 담는 컨테이너이다. 여기서 말하는 파라미터란, 프로젝트를 진행하면서 한번이라도 변경이 필요한 요소를 의미한다. 파라미터의 타입은 bool, int, double, TString 을 지원한다.

KBParameterConatiner는 이후 토픽에 나올 (TObject를 상속하는) TObjArray를 상속하였다. 따라서 ROOT 파일에 저장하는 것이 가능하다.

파라미터 설정

파라미터 설정에는 직접 설정과 파라미터 파일 입력, 두가지 방법이 있다. 직접 입력 방법은 SetPar("[이름]",[값]) 함수를 이용한다.

KBParameterContainer *par = new KBParameterContainer();
par -> SetPar("integer", 123);
par -> SetPar("name", TString("Giordao"));

파라미터를 미리 파일에 저정해두고 추가 할때는 AddFile("[파일이름]") 함수를 사용한다.

par -> AddFile("example.par")

파라미터 파일의 형식은 기본적으로 한 줄이 하나의 파라미터를 의미하며 세가지 요소를 순서대로 빈칸으로 구분하여 각각 입력해야 한다:

  • [이름]: 파라미터의 이름. 빈칸을 허용하지 않는다.
  • [타입 이니셜]: 다음중 하나, b(boolean), i(integer), d(double), s(TString)
  • [값]:

주석은 "#"를 사용한다. 다음은 파라미터 파일의 예제이다.

#Example parameter file
boolean  b  false  # not true!
double  d  666666.22

이때 파라미터 파일을 추가하면 "INPUT_PARAMETER_FILE[N]" 이라는 이름으로 파라미터 파일의 이름 또한 파라미터로 들어가게 된다. [N]은 들어간 파라미터 파일의 순서다. 파일의 값은 TString 타입, 절대경로로 입력된다.

값 꺼내오기

눈으로 확인할 때는 Print() 함수를 사용한다.

par -> Print();
[ParameterContainer] List of parameters :
  integer                    i  123
  name                      s  Giordano
  INPUT_PARAMETER_FILE0      s  /Path/to/example.par
  boolean                  b  false
  double                    d  666666

 값을 코드 안에서 가져올때는 타입 별로 다음 함수를 사용한다.

  • boolean: GetParBool("[이름]")
  • integer: GetParInt("[이름]")
  • double: GetParDouble("[이름]")
  • TString: GetParString("[이름]")
bool bool_par = par -> GetParBool("boolean");
int int_par = par -> GetParInt("integer");
double double_par = par -> GetParDouble("double");
TString name = par -> GetParString("name");
TString input_name0 = par -> GetParString("INPUT_PARAMETER_FILE0")

댓글

댓글 본문
작성자
비밀번호
버전 관리
ejungwoo
현재 버전
선택 버전
graphittie 자세히 보기