픽셀화된 검출기를 위한 유사 신호 생성 모델
qupid - Quasi Signal Generation Model for Pixelized Detector

Repository is in github, C++ version, github, python version

DOI

개발 동기

alpha입자나 gamma입자 등 방사선 입자가 디지털 픽셀 검출기에 입사할 때, 발생하는 점화 픽셀 클러스터의 형태를 모의실험하기 위해 개발하였다.

구동 환경

C++, with ROOT(시각화를 위한 도구)

(pyqupid) Python3.8 with numpy, scipy

구성 요소

  1. 시그널
    • 2D 가우시안 신호 (등방성, 비등방성)
  2. 검출기
  3. 클러스터링 알고리즘

신호 생성 및 분석 과정

  1. 신호 분포(아날로그)를 수학적으로 정의함. (qupid.Generator.AnalogSignal)
  2. 수학적으로 정의된 함수를 주어진 계수, 상수를 활용하여 분포를 분포함수로 변환함. (qupid.Generator.AnalogSignal.GetSignal(X,Y))
  3. 정의된 신호 분포함수를 검출기의 주입 신호 집합에 추가함. (신호를 검출기에 주입) (qupid.Generator.Digitizer.InjectSignal(signal))
  4. 검출기에 포함된 각 픽셀의 면적에 대해 주입 신호 집합에 포함된 모든 신호의 합을 적분한 값을 계산함. (각 픽셀의 아날로그 신호 크기) (qupid.Generator.Digitizer.GetDigitalSignal())
  5. 각 픽셀에 계산된 신호의 값이 주어진 값 (threshold) 보다 높은지 판단하여 높은 경우 true, 아닐 경우 false인 배열을 반환함 (전체 검출기의 배열의 크기와 동일). (qupid.Generator.Digitizer.GetDigitizedSignal())
  6. 만약, threshold보다 높이 신호가 계산된 픽셀의 번호만 반환하기 원하는 경우, qupid.Generator.Digitizer.GetDigitizedSignal_List() 를 활용한다.
  7. 이후, 원하는 방식으로 정보를 내보내어 클러스터링 한 후 점화 픽셀 클러스터의 성질에 대해 계산한다.
  8. 통계값을 형성하기 위한 몬테카를로 생성기 또한 본 모의실험에 내장되어있다. (qupid.MonteCarloGenerator.MonteCarlo)
    • 현재, 균일분포의 무작위 생성기만 내장되어있다.
    • 균일한 중심위치분포, 균일한 신호크기 분포, 균일한 신호의 분포표준편차 분포를 가지는 신호는 이미 만들어져있다. (qupid.MonteCarloGenerator.GaussianSignalISOMonteCarlo)

아래는, 위 계산과정 중 도출되는 그래프들이다.

아날로그 신호의 분포 아날로그 신호를 기반으로, 적분할 부분을 산술적으로 정의함. 아날로그 신호를 픽셀 영역에 대해 적분한 값 (픽셀 당 신호값) 픽셀당 신호값이 값이 일정 값을 넘을 경우 점화된 픽셀로 인식
아날로그 신호를 기반으로, 어느 픽셀을 적분할 지 산술적으로 정한 후 (픽셀의 양 꼭지점의 신호의 평균값으로 정한다.) 신호를 픽셀별로 적분한다. 그리고 그 적분값을 신호값으로 하여, 신호값이 일정 역치값을 넘는 경우에만 점화한다.
클릭하여 열기) 실제 실험 결과 예시
실제 실험에서 검출된 점화 픽셀 클러스터의 예시
실제 실험에서 검출된 점화 픽셀 클러스터의 예시

추후 해야할 것

  • 실제 방사선의 신호와 검출기의 반응성을 고려한 보정작업
  • 주석 보충 (python-sphinx 레퍼런스 보충)
  • 튜토리얼 및 예시 매크로 제작
  • 예시 플롯 제작