===== 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 홈페이지를 참고하세요.
* https://arxiv.org/abs/1912.05451 Rivet 논문과 매뉴얼, http://arxiv.org/abs/1003.0694 이전 Rivet 매뉴얼
* https://rivet.hepforge.org/ Rivet hepforge 메인 홈페이지
* https://gitlab.com/hepcedar/rivet Rivet gitlab 페이지
* https://hub.docker.com/u/hepstore Rivet docker image 모음
여기에서는 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들을 보고 싶다면 [[https://hub.docker.com/r/hepstore/rivet/tags|여기]]에 들어가서 확인하세요.
* Docker image자체가 어떻게 만들어졌는지 보고 싶으면 [[https://hub.docker.com/layers/hepstore/rivet/3.1.5/images/sha256-58a5ef5dc312846bcc9accd2861a217914bf416033e3c73c335ce33368ec7ec1?context=explore|링크]]에 들어가서 확인하세요. 여기에서는 3.1.5 버전 예시를 보여주고 있습니다.
* 관리자 계정이 필요합니다.
singularity build rivet-3.1.5.sif docker://hepstore/rivet:3.1.5
===== aMC@NLO 구동하기 =====
Rivet과 마찬가지로, 연구실 공용 이미지를 만들어 두고 사용합니다. aMC@NLO 는 최초 단순 설치는 압축 파일 다운로드 받고 해제하는 것 정도이지만, NLO 계산을 할 때는 외부 패키지들을 추가 다운로드 받고 압축 해제, 컴파일 등 과정을 거치는데, 직접 설치하다보면 다운로드 실패하거나, 중간에 패키지가 업데이트 되면서 꼬이는 경우가 있습니다. 잘 검증된 이미지가 있다면 그대로 사용하는 것을 권장합니다.
* [[https://launchpad.net/mg5amcnlo]] MG5 aMC@NLO 메인 페이지
* [[http://amcatnlo.web.cern.ch/amcatnlo]] aMC@NLO 오래된 페이지
* [[https://arxiv.org/abs/1804.10017]] aMC@NLO 2018년도 논문, [[https://arxiv.org/abs/1405.0301]] 2014년도 논문
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 이미지 생성하기 ====
이미지 생성 방법은 [[:public:docs:2021:singularity_amcatnlo_3x|여기]] 를 참조합니다.
===== 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 파일을 구동