-- KotaroWakamiya - 2018-02-27

NSWが入ったMC

このページはNSWが入ったときのMCの作り方と、それを処理するMuonSAのコードを記します。PackageやMCのデータは,login.icepp.jp:/home/wakamiya/wakamiya_micromegasに置いてるので、そこから取ってください。もしくは、神戸大学の山崎さん(Lxatut - lxatut:/data/data4/zp/yuji/mm/wakamiya)のところにあります。

注意点ですが、基本的には作業場所はLxplusでしてください。(login.iceppでもできる部分はありますが、何故かできないところがあります。)

MM digitizationについて

https://twiki.cern.ch/twiki/bin/view/Main/NSWSimulationInstructionsUpdatedOn20160510

MCの段階について

http://epp.phys.kyushu-u.ac.jp/~oda/pukiwiki/index.php?Athena%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C1%A5%A7%A1%BC%A5%F32016

  • Introduction

    MicromegasとsTGCのMCの作成には下記のの4段階があります。

    • Particle Generation (Event File)

      粒子の生成。

    • Detector Simulation with NSW (Hits File)

      生成された粒子が到来したたときの検出器のシミュレーション。

    • MM & sTGC Digitization (RDO File)

      Micromegas検出器とsTGC検出器の情報のデジタル化

    • MM Trigger Simulation (ESD File??)

      NSWトリガーがインストールされたときにできるデータファイル。(現段階(2018/2/6)ではまだインストールされていない。)

  • MCの作り方

    基本的にはMMdigitizationページ通りにやればよいが、Particle GenerationとDetector Simulation with NSW は恐ろしく時間がかかります。そこで、引継ぎでもらったMC (HitsFile)からMCを作成することをお勧めします。そこでMM Digitizationから説明します。MMのRootFileとMDTのRootFileは異なる過程で作成されるため(現段階(2018/2/6))、最終的にMMのRootFileとMDTのRootFileを合体させる方法を取ります。

  • MMのRootファイルを作る

    MMのRootFileはHits->RDOのMCを作る過程中で作成します。まずTestAreaのDirectoryをコピー。ここではHits->RDO->ESDまでMCを作る。

    • 1. source setsp.sh
    • 2. Batch.Reco_….shをsourceすると、1ファイルずつ、Hits->RDO->ESDまでデータを作る。

      MicromegasとsTGCの情報が入ったRootFileはHits->RDOの過程でアウトプットしてくれるようになっています。現状ではMDTのrootファイルはESDから作成します。(MMもESDから作成したいが、今のAthenaではESDになるとコンテナが残らない仕様になっていてます。(現段階(2018/2/6)))

      また….shはMultijet、Zmumu、SingleMuonPt30,100のHitsファイルにそれぞれように対応しています(コマンドは同じ)。同じディレクトリにlist.…があるが、そこにファイル名を入れ、.shのMCを読み込むディレクトリのPathを変えてください。

      MicromegasとsTGCの情報が入ったRootFileのアウトプットについていじりたければ、コマンドにもPythonファイル(WikiPRDValAlg.digi.py)を読み込むように書いているが、そのTrueかFalseかを書き直せばよいです。 

    • Batch.Reco_….shの中身
      • Hits->RDO、検出器動作をOn or OFFにする必要があります。(IDはAtlasProduction的にバグが入っているのでOffにしてください。)
      • Reco_tf.py \
        --preExec 'from DetFlags import DetFlags;DetFlags.ID_setOff();DetFlags.Calo_setOn();DetFlags.Muon_setOn();DetFlags.MDT_setOn();DetFlags.\
        CSC_setOn();DetFlags.TGC_setOn();DetFlags.RPC_setOn();DetFlags.sTGC_setOn();DetFlags.Micromegas_setOn();DetFlags.Truth_setOn();' \
        --inputHITSFile (自分で設定)\
        --outputRDOFile (自分で設定).RDO.pool.root \
        --maxEvents -1 \
        --postInclude (自分で設定)/TestArea/WorkArea/run/nsw_py/NSW.config.digi.py, (自分で設定)/TestArea/WorkArea/run/nsw_py/\
        WikiPRDValAlg.digi.py \
        --conditionsTag='OFLCOND-MC12b-SIM-00' \
        --geometryVersion 'ATLAS-R2-2015-03-01-00'

      • RDO->ESD(Athenaのプロセスをどこまでするか設定しています。)
      • Reco_tf.py \
        --preExec 'all:rec.doTrigger = False;rec.Production = False; doJetMissingETTag=False;rec.doTau=False;rec.doForwardDet=False;rec.doInDet=False;rec.doC\
        alo=False;rec.doMuon=True;rec.doEgamma=False;rec.doMuonCombined=False;rec.doApplyAODFix=False;' \
        --postInclude (自分で設定)TestArea/WorkArea/run/nsw_py/NSW.neo.config.digi.py \
        --inputRDOFile /afs/cern.ch/work/k/kwakamiy/TestArea/WorkArea/run/${line}.RDO/${line}.RDO.pool.root \
        --outputESDFile (自分で設定).ESD.pool.root \
        --maxEvents -1 \
        --conditionsTag='OFLCOND-MC12b-SIM-00' \
        --geometryVersion ATLAS-R2-2015-03-01-00

  • ESDからMDTのRootFileを作る

    MDTのRootFileは上の過程の後のESDから作成します。まずAthenaのDirectoryをコピーしてください。

    • 1. source setsp.sh
    • 2. cd Athena/MyNewPackage/run
    • 3. athena ….py

      ….pyは上と同様にMultijet、Zmumu、SingleMuonPt30,100のHitsファイルにそれぞれように対応しています(コマンドは同じ)。上で作成されたESDを指定してAthenaを走らせてやると、MDTのRootFileができます。

      MDTの情報やほかの検出器の情報を増やしたい場合はAthena/MyNewPackage/srcのMyAnalysisAlg.cxxで変数を追加してください。

  • MDTのRootFileとMMのRootFileを合体

    testArea.mergeのディレクトリをコピーしてください。merge.cxxでMMとMDTのRootFile名と合体したRootFile名を記入してください。

    • 1. root -l merge.cxx

      これをすることで合体できます。しかし、EventNumberなどでEventマッチさせてなく、今はMMのTruthのセグメントのPhiとOffline_muonのセグメントのPhiを使ってマッチさせています。もしイベントがズレていると、Phiの情報もずれるのでMergeが止まる仕様にしています。もし上の過程で変数を増やした場合、ここでもそれに対応して増やす必要があります。

  • 他のMCの作り方

    もしZmumuやMultijetのMCを作りたい場合、rucioなど使用してHitsFileをDownloadして同様に行えば大丈夫です。また今回Gridを使用していないが、引継ぎしている方にはGridを使用した方法やESDから一度にMDT,Micromegas,sTGCの情報をアウトプットする方法を確立してほしいです。今回MDTとMMのRootFileが同じ過程中に出ないため、最後に合体させる方法を採用したが、いつか同じESDにコンテナが入るようになれば、その過程も必要なくなります。

NSWを用いたMuonSA

ここでは2018年2月までに開発したアルゴリズムのPackageについて述べる。

まずSAのディレクトリをコピーしてください。中には.Cと複数のディレクトリがあるはず。

  • SAのコード

    ある程度構造化しており、本体はMuonSA.Cです。これをroot -l .C+で読み込み、Loop()を回すことでMicromegasの再構成からPtの計算まですべて動きます。

    • MuonSA.C

      アルゴリズムの本体です。Loop()中に、NSW_recoやMDT_recoなど関数を色々書いていると思いますが、それらが各検出器での再構成の関数です。

    • mdt_reco.C

      MDTの再構成アルゴリズムを全て書いています。

  • cal_alphapt.C

    SuperPoint からαを計算するアルゴリズムを書いています。

  • BackExtrapolator.C

    PtαからインナーステーションにBack-ExtrapolateするLUTを書いています。

  • micromegas.C

    Truthの情報を用いた値をアウトプットするためのものです。

  • nsw_reco.C

    NSWを用いた再構成のアルゴリズムのすべてを書いています。

  • LUT.C

    αとβからPTを計算するためのLUTを書いています。LUTはhttps://gitlab.cern.ch/atlas/athena/blob/21.1/Trigger/TrigAlgorithms/TrigL2MuonSA/share/pt_endcap_run2.lutから採用しています。

  • MuonSA.h

    各関数と独自のクラスを定義しています。MM_InfoはMMの再構成に必要な情報を分けるために使用しています。Cal_Infoセグメント候補全ての情報と最終的に選べたものを詰めるために使用しています。Confirm_Infoは各過程でミスがないか確認するための変数を定義しています。

  • 各ディレクトリについて
    • data

      ここには依然作成したRootFileがあります。ファイル名でどんなファイルかわかるはずです。

    • Rcore

      ここではアルゴリズムに間違いがないか各過程で確認するため、解析後に必要な変数を新たなRootFileにしてアウトプットしています。何をアウトプットしているかはMuonSA.CでRootFileの設定をしているので、そこを確認してください。

    • Trigger

      ここは現行のMuonSAのコードが入っており、新しく開発する際に参考にしました。アルゴリズム動かす際には、必要ありません。

    • PDF_data

      ここはCanvasにかいたヒストグラムなどをPrintしPDFにしたものをここには置きました。アルゴリズムを見ると…->Print("…")で所々書いていることが分かると思います。

    • atlassyle

      ATLASのスタイルで書くためのPackageです。

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2018-03-14 - YujiYamazaki
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback