Experimental Particle Physics at Kyung hee University

Generator와 Rivet 구동법

연구실 환경에서 Rivet과 각종 MC generator를 구동하는 방법을 소개합니다.

  • Rivet framework을 이용하면 hepdata 리포지토리로부터 실험 결과를 다운로드 받고 각종 MC generator를 이용해 생성된 HepMC 파일을 읽어 직접 비교 분석할 수 있습니다.
  • HepMC 를 분석하는 코드를 처음부터 끝까지 직접 작성할 수 있지만, Rivet 프레임워크를 이용하면 FastJet과 연동, generator level에서의 b tagging, plotting, web page생성 등 많은 기능을 제공하기 때문에 매우 유용합니다.
  • 여러 generator별로 실행 환경을 구성하는 것은 생각보다 까다롭습니다. 가능한 한 검증 된 container image를 생성해 사용할 수 있도록 하겠습니다.

Rivet 구동하기

Rivet에 대한 설명은 Rivet 홈페이지를 참고하세요.

여기에서는 Rivet 및 관련 패키지를 직접 설치하지 않습니다.

  • 이미 잘 구성된 docker image가 있으니 가져다 사용합니다.
  • LHAPDF를 필요로 할 수 있는데, 이것도 이미 포함되어 있습니다. pdfset은 이미지에 포함되어 있지 않지만, CVMFS에 이미 다 들어있습니다. 가져다 씁시다.
singularity run -B/cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current:/usr/local/share/LHAPDF /store/sw/singularity/rivet/rivet-3.1.5.sif

실행하고 나면 Singularity>와 같은 식으로 프롬프트가 나타납니다. 다음 명령어들을 실행할 수 있는지 확인해 보세요.

rivet-config --libs
yoda-config --cflags
lhapdf-config --libs

위의 명령어가 실행된다면 이미 rivet을 사용할 준비가 된 상태입니다.

(작성중입니다)

rivet - 처음 구동해보기 준비물 : hepmc 파일 예시

rivet -a CMS_2018_I1620050 event_PYTHIA_0.hepmc

CMS_2018_I1620050 자리에 본인이 구동해보고싶은 analysis 입력 event_PYTHIA_0.hepmc 자리에 본인의 hepmc 파일 입력

rivet - 새로운 analysis 만들기

rivet-mkanalysis analysis_title
기본적인 analysis 틀이 만들어짐 (analysis_title.cc analysis_title.plot analysis_title.info)

기본적인 c++ 지식 필요 https://rivet.hepforge.org/analyses.html https://rivet.hepforge.org/code/dev/ 등등 페이지를 참조하여 rivet 문법 확인 후 analysistitle.cc 파일에 작성

다 작성하면

rivet-buildplugin analysistitle.cc

를 통해 analysis를 본인 리벳 폴더 안에 본인의 analysis 가 저장됨 (환경변수)

 export RIVET_ANALYSIS_PATH=$PWD
rivet --list-analyses

본인의 analysis 가 제대로 컴파일되어 저장된지 확인 analysistitle.plot 파일은 analysis 에서 x축 y축을 바꿀 수 있고, 다른 standard analysis의 .plot 파일을 통해 히스토그램의 bin을 확인할 수 있음 analysistitle.info 파일은

rivet - 새로운 analysis 구동하기

rivet -a analysistitle event_PYTHIA_0.hepmc

를 통해서 직접 만든 analysis 구동 가능

(optional) Rivet 이미지 만들기

만약 원하는 Rivet 이미지가 이미 hep 서버에 만들어져 있지 않아서 직접 만들어야 한다면 아래 명령어를 실행하면 됩니다.

  • 현재 사용 가능한 rivet 버전들 및 여러 variation들을 보고 싶다면 여기에 들어가서 확인하세요.
  • Docker image자체가 어떻게 만들어졌는지 보고 싶으면 링크에 들어가서 확인하세요. 여기에서는 3.1.5 버전 예시를 보여주고 있습니다.
  • 관리자 계정이 필요합니다.
singularity build rivet-3.1.5.sif docker://hepstore/rivet:3.1.5

aMC@NLO 구동하기

Rivet과 마찬가지로, 연구실 공용 이미지를 만들어 두고 사용합니다. aMC@NLO 는 최초 단순 설치는 압축 파일 다운로드 받고 해제하는 것 정도이지만, NLO 계산을 할 때는 외부 패키지들을 추가 다운로드 받고 압축 해제, 컴파일 등 과정을 거치는데, 직접 설치하다보면 다운로드 실패하거나, 중간에 패키지가 업데이트 되면서 꼬이는 경우가 있습니다. 잘 검증된 이미지가 있다면 그대로 사용하는 것을 권장합니다.

singularity run /store/sw/singularity/mg5/mg5_amc_3.3.1.sif
#singularity run /store/sw/singularity/mg5/mg5_amc_2.8.2.sif ## 구버전을 사용하려면 여기

기본 동작 방식으로 mg5_aMC 가 실행됩니다. 만약 shell을 직접 띄우고 실행하려면,

singularity exec /store/sw/singularity/mg5/mg5_amc_3.3.1.sif /bin/bash

를 실행합니다. mg5_aMC 는 /sw/MG5_aMC_v3_3_1/bin/mg5_aMC 에서 찾을 수 있습니다.

CVMFS에 설치된 LHAPDF 데이터 파일을 사용하려면 다음과 같은 방식으로 실행하면 됩니다.

singularity run -B/cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current:/sw/MG5_aMC_v3_3_1/HEPTools/lhapdf6_py3/share/LHAPDF \
                  /store/sw/singularity/mg5/mg5_amc_3.3.1.sif
#singularity exec -B/cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current:/sw/MG5_aMC_v3_3_1/HEPTools/lhapdf6_py3/share/LHAPDF \
#                   /store/sw/singularity/mg5/mg5_amc_3.3.1.sif /bin/bash

(optional) aMC@NLO 이미지 생성하기

이미지 생성 방법은 여기 를 참조합니다.

Powheg 구동하기

(작성중입니다) *https://powhegbox.mib.infn.it/ POWHEG BOX 메인페이지

LHAPDF, fastjet 필요

tar xf LHAPDF-T.X.Y.tar.gz
cd LHAPDF-T.X.Y
./configure --prefix=/path/for/installation
make
make install
export PYTHONPATH=path/to/lhapdf/lib/pythonx.y/site-packages/
export LD_LIBRARY_PATH=path/to/lhapdf/lib
export PATH=path/to/lhapdf/bin/:$PATH
export LHAPDF_DATA_PATH=path/to/lhapdf/share/LHAPDF
tar xf fasjet-x.y.z
cd fastjet-x.y.z
./configure --prefix=/path/for/installation
make 
make check
make install
export PATH=path/to/fastjet/bin/:$PATH

POWHEG BOX powheg box 메인 프로그램 설치

 $ svn checkout [--revision n] --username anonymous --password anonymous svn://powhegbox.mib.infn.it/trunk/POWHEG-BOX-V2

설치 후 POWHEG-BOX-V2 디렉토리로 이동해서

 $ svn list [--revision n] --username anonymous --password anonymous svn://powhegbox.mib.infn.it/trunk/User-Processes-V2 

User-Processes-V2 대신 원하는 process를 powheg box 리스트에서 찾아서 입력

make pwhg_main 

컴파일 끝나고 끝나면 powheg.input 파일을 원하는 설정으로 만들거나 cms-sw genproducts 안의 input 파일 찾아보고 사용

현재 확인한 구동가능한 process : ttH, ttb_NLO_dec (세부적인 사용방법은 각 process폴더 안의 doc 폴더 안에 존재)

Sherpa 구동하기

Sherpa docker image

singularity run docker://hepstore/rivet_sherpa

https://sherpa.hepforge.org/doc/SHERPA-MC-2.2.12.html Sherpa manual 기본적인 옵션들은 -h 참조

기본 구동 방법

Sherpa Run.dat 

Run.dat 파일을 manual 참조하여 작성 후 구동

Pythia8 구동하기

singularity run docker://hepstore/rivet_pythia

Pythia8의 경우 main 파일을 직접 작성하여 구동 하는것이 원칙 이지만

pythia8 내부의 example 폴더를 찾아보면 기본 main.cc 파일을 컴파일하여 main 파일을 사용할 수 있음

https://pythia.org/manuals/pythia8307/Welcome.html main 프로그램 샘플

예시 구동 방법:

./main89 main89mlm.cmnd output.hepmc

Herwig7 구동하기

singularity run docker://hepstore/rivet_herwig

herwig 환경 설정

source activate

원하는 .in 파일을 찾거나 작성 후

Herwig read XXXX.in

read를 하고나면 XXXX.run 파일이 만들어져있고

Herwig run XXXX.run

run 파일을 구동


public/docs/generators_and_rivet.txt · Last modified: 2022/04/07 05:07 by Haesung Park