Skip to content

CatProduction in Korean.

Geonmo Ryu edited this page Dec 1, 2016 · 1 revision

CATTuple 생성하기

기본 순서는 다음과 같습니다.

1. Job submit 준비

  1. google doc에 dummy 샘플 리스트 생성
  • 가장 마지막 prod에 사용된 탭을 복사 해 쓰면 편리합니다.
  • 완료 이전에 일반 유저가 사용하는 것을 방지하기 위해 셀 전체 색을 빨간색으로 바꿔 두고 시작합시다.
  1. catGetDatasetInfo 스크립트 수정해서 새로운 탭의 gid 추가
    • 페이지를 열었을 때 주소창 마지막 부분에 gid=12345678 식으로 되어 있을 때 숫자를 가져와서 catGetDatasetInfo 스크립트 상단의 dict에 추가해 주면 됩니다. catGetDatasetInfo#L16
  2. 수정된 catGetDatasetInfo 스크립트를 실행해 dataset json파일 가져오기

2. crab job submit

  1. crabSubmit 스크립트로 잡 생성 및 submit
  2. 제대로 완료 될 때까지 crab status로 체크하고 실패하는 경우 resubmit
  • 경우에 따라서는 1주일 이상 걸립니다.
  • Real data는 100%완료해야 함
  • MC는 일부 실패해도 괜찮지만 될 수 있는 한 많이 처리되도록 한다
  1. Real data에서는 crab report 명령어로 processedLumis json파일 생성
  2. processedLumis json파일은 silver JSON기준으로 만들어지므로 golden JSON과 교집합이 되는 json파일을 생성합니다. joinLumiJsonByAnd 스크립트를 이용하면 됩니다. joinLumiJsonByAnd $CMSSW_BASE/src/CATTools/CatProducer/data/LumiMask/ Cert_13TeV_16Dec2015ReReco_Collisions15_25ns_JSON.txt
  3. /xrootd/store/group/CAT 아래 각각 디렉토리에 processed lumi json파일 포함 도움이 될 만한 파일들 복사하기

3. 데이터 검증 및 정보입력

  1. google doc에 성공한 데이터들의 LFN입력 (/store/group/CAT으로 시작. 마지막 /0000/catTuple_*.root는 빼고 입력)
  2. 다시 catGetDatasetInfo를 실행해 업데이트 된 테이블을 가져오고 파일 리스트 생성
  3. process된 이벤트 수 계산
  • for i in dataset_*.txt; do cat $i | grep -v '^#' | xargs -P20 -n1 edmFileUtil | grep events | awk '{x+=$6}END{print "'$i' " x}'; done
  • 모든 파일을 열어 정보를 읽어 합치기 때문에 매우 오래 걸립니다.
  • 깨진 파일이 있으면 기록 해 놓고 해당 dataset_*.txt 파일을 수정해 해당 파일을 주석 처리 해 둡니다.
  • 각 dataset의 event수를 입력하고 해당 셀의 색깔을 reset합니다.
  1. 데이터셋의 luminosity계산하기
  • brilcalc lumi --normtag /afs/cern.ch/user/l/lumipro/public/normtag_file/OfflineNormtagV2.json -i processedLumis.json -b stable -u /pb
  • PdmV 홈페이지나 lumi group의 hypernews를 찾아가서 가장 최신 버젼의 normtag를 사용해야 합니다. (잘못 사용하면 luminosity값의 차이가 많이 발생함)
  • 간이로는 input json파일을 넣어서 계산할 수 있으나 실제 process 된 데이터의 정확한 lumi를 데이터셋 별로 계산하려면 processedlumis파일이 필요함
  • real data의 luminosity 열에 값을 입력하고 해당 셀의 색깔을 reset합니다.

(Draft) TTLL Validation

TTLL analyzer를 모든 샘플에 대해 실행해 validation합니다.

cd $CMSSW_BASE/src/CATTools/CatAnalysis/test/TTLL
./pass1.1_eventSel.py
cd pass1
./submit_sig_central.sh; ./submit_bkg_central.sh; ./submit_dat_central.sh

condor잡이 다 끝나면 다음을 실행합니다.

pass1.2_cleanup.py
pass2.1_selectSamples.py
pass2.2_scaleMerge.py
pass2.3_DYEstimation.py
pass2.4_preview.py

(Draft) 데이터 샘플 리스트 finalize

production이 완료되어 gDoc 입력까지 완료되었으면 이를 git에 올립니다.

  • 기존 production에서 일부를 수정하는 경우
$CMSSW_BASE/src/CATTools/CatAnalyzer/data/dataset
git checkout v76X
git pull
catGetDatasetInfo
## gDoc에서 production note를 보고 제거할 파일이 있으면 파일 리스트를 직접 열어 주석처리한다. 
git commit -m 'updated sample information' -a
git push
git tag v763_p1
git push --tags
  • 새로운 production sample을 추가하는 경우
$CMSSW_BASE/src/CATTools/CatAnalyzer/data/dataset
## Move previous contents in head branch to legacy, previous prod can be modified in some cases
git reset --hard
git fetch
git checkout v76X-legacy
git merge v76X
git commit -m 'merged latest prod' -a
git push origin v76X-legacy

## Update the master
git checkout v76X
catGetDatasetInfo
## gDoc에서 production note를 보고 제거할 파일이 있으면 파일 리스트를 직접 열어 주석처리한다.
git commit -m 'new production' -a
git push
git tag v764
git push --tags