譚美華
(湖南科技學院 理學院,湖南 永州 425199)
CalcHEP(Calculations in High Energy Physics)是在各種理論模型中微擾理論的最低階下自動計算基本粒子物理中的產(chǎn)生截面和衰變寬度的軟件包。CalcHEP 的主要思想是提供一個交互環(huán)境,通過它用戶可以從拉格朗日量出發(fā)高度自動并有效地得到最終的各種分布,與它功能類似的其他程序包 有 GRACE[1], SHERPA[2], CompHEP[3],WHIZARD[4],MADGRAPH[5],等等。經(jīng)過多年發(fā)展,CalcHEP 已經(jīng)成為現(xiàn)代對撞機物理研究的一種有效和強大的工具,CalcHEP 的主要優(yōu)點是有方便的交互式菜單驅(qū)動圖形用戶界面(GUI)、使用的符號與粒子物理中的符號非常相似,初學者也非常容易上手。靈活性是CalcHEP 的另一優(yōu)點,可以使用內(nèi)部圖形編輯器,也可以使用外部編輯器創(chuàng)建或修改模型,允許與標準模型(SM)之外的各種模型(BSM)一起工作,許多其他CalcHEP 格式的完整模型集可在高能物理模型數(shù)據(jù)庫(HEPMDB)上獲得,可供下載導入使用,并且通過 LanHEP[6]包也很容易為CalcHEP 提供新的模型。CalcHEP 也可以作為其他外部程序的矩陣元生成器,為外部包產(chǎn)生優(yōu)化的代碼。
CalcHEP 有兩個圖形用戶界面模塊:符號模塊和數(shù)值模塊。符號會話允許用戶動態(tài)地使用物理模型,符號計算平方矩陣元,將結(jié)果導出為c 代碼,并將c 代碼編譯到可執(zhí)行以便于其后的數(shù)值計算部分 n_calchep 調(diào)用。數(shù)值模塊對相位空間上的積分進行計算,以確定高能粒子物理過程的碰撞截面或衰變寬度,同時考慮到用戶定義的運動學截斷,它還可以用直方圖顯示事例的各種運動學分布。此外,CalcHEP 可以在非交互模式下運行,使用為用戶提供的各種腳本批處理接口。批處理接口接受用戶的輸入,自動計算產(chǎn)生和衰變過程,并將子過程結(jié)果結(jié)合起來。批處理接口還支持對多個參數(shù)進行掃描,并在多核機器的處理器上或在高性能計算集群的處理器上并行整個計算,使用多個處理器進行并行計算這一個特征以顯著提高符號和數(shù)值計算的速度。
CalcHEP 程序的源碼安裝包可以從這個網(wǎng)站(http://theory.sinp.msu.ru)下載獲得。值得注意的是CalcHEP 是基于類 Linux 系統(tǒng)平臺的,以 RHEL8為例來介紹 CalcHEP 的安裝部署。進入到下載目錄,用命令tar-xvzf calchep_3.8.4.tgz 解壓下載的壓縮包文件將得到一個 calchep_3.8.4 目錄,用$CALCHEP 表示這個目錄路徑,進入這個目錄,運行gmake 或者make 命令進行編譯,如果編譯成功,在結(jié)束時應該獲得如圖1 所示的成功消息。然后按照提示運行./mkWORKdir $HOME/work 命令創(chuàng)建一個工作目錄,目錄中包含的腳本 calchep 和calchep_batch 分別啟動圖形用戶界面和批處理會話,其實 calchep 會在符號計算階段調(diào)用符號模塊s_calchep 和數(shù)值計算時調(diào)用數(shù)值模塊 n_calchep。我們以$WORK 表示這個工作目錄,將在其中執(zhí)行計算工作。
圖1 CalcHEP 的安裝編譯
在工作目錄$WORK 運行./calchep 命令即可啟動CalcHEP 圖形用戶界面如圖2 所示,它是方便的交互式菜單驅(qū)動的圖形用戶界面,菜單在右上方,可以選擇內(nèi)置的SM 標準模型,也可以導入外部的BSM 模型。在交互式符號和數(shù)值會話期間的任何時候,可以按F1 鍵或者F2 鍵顯示在線幫助上下文或者說明手冊,更多具體詳細的細節(jié)也可以參考它的官方幫助文檔。
圖2 CalcHEP 的圖形用戶界面
用于符號計算的菜單系統(tǒng)有8 級菜單,交互式符號會話的菜單流程如圖3 所示。通過計算一個pp→W+bB 碰撞過程的例子,按照菜單流程圖一步一步地來介紹 CalcHEP 圖形用戶界面的基本用法并同時展示它強大的計算功能。
圖3 交互式符號會話的菜單流程
菜單1 中提供了可用模型的列表如圖2 所示,并允許用戶在其中選擇用于計算的模型,另外,在這個列表的底部是導入模型條目,它允許用戶將一個新的粒子相互作用模型導入到CalcHEP 中,如果對模型的獨立參數(shù)、約束參數(shù)和粒子性質(zhì)等不需要作其他的修改,移動“高亮條”選擇這一個模型點擊進入菜單5,如圖4 所示。在這個屏幕的頂部顯示這個模型的基本粒子列表,每個條目包含粒子名稱,后面跟著括號中的反粒子名稱,并以粒子的完整的描述性名稱結(jié)尾。在粒子列表下面,CalcHEP顯示提示輸入過程:并向用戶提供一個文本輸入框,在該框中可以輸入需要計算的過程,通過指定初態(tài)和末態(tài)的粒子進入散射或衰變過程,其中支持1→2,1→3,…,1→8 衰變過程和 2→1,2→2,…,2→7 散射過程,也就是初態(tài)和末態(tài)總共最多不超過9 個粒子,初態(tài)粒子和末態(tài)粒子用->隔開,在過程輸入期間的任何時候,用戶可以按ESC 鍵返回到上一步的輸入和按F1 鍵以獲得過程輸入的在線幫助。
圖4 指定初態(tài)和末態(tài)粒子進入散射過程
過程輸入完后進入菜單6,CalcHEP 會自動計算并生成滿足約束條件的所有Feynman 圖,此菜單窗口的第1 個菜單項View diagrams 允許用戶查看生成的 Feynman 圖的圖形表示以及有關生成的圖和子過程的數(shù)量信息,如圖5 所示8 個子過程,可以通過使用PgUp 和PgDn 鍵移動高亮條或使用鼠標在子過程之間移動,按下 Enter 鍵或鼠標單擊高亮顯示的子過程,則圖表查看器將打開高亮顯示子過程的Feynman 圖。
圖5 子過程的數(shù)量信息
在構(gòu)建Feynman 圖出現(xiàn)在屏幕上之后,如圖6所示,可創(chuàng)建相應LaTex 的輸出格式,也可以在對它們平方之前選擇刪除不需要的圖。第2 個菜單項Squaring diagrams 是創(chuàng)建平方圖。隨后CalcHEP 使用這些平方圖來計算平方矩陣元。
圖6 生成的Feynman 圖
進入菜單7,View squared diagrams 菜單項類似于前面菜單6 的View diagrams 菜單項,但是它生成并顯示平方費曼圖,每個平方圖都是AB*的圖形表示,其中A 和B 是在上一步中構(gòu)造的費曼圖??墒褂脙?nèi)置的快速符號計算器來計算平方矩陣元的解析表達式,如果平方圖已經(jīng)計算過,每個子圖將包含一個CALC,ZERO,Out of memory 或Del標識,如圖7 所示,它們的意思分別是平方圖已計算、值是零、計算耗盡內(nèi)存或者平方圖已被刪除了。第2 個菜單項Symbolic calculation 是符號計算,并指示CalChep 使用生成的平方圖開始平方矩陣元的符號計算,在此計算過程中顯示CalcHEP 的當前狀態(tài),其中包括當前正在處理的圖表和剩下的圖表。
圖7 生成平方費曼圖
符號計算執(zhí)行完成之后進入菜單 8,結(jié)果的輸出和數(shù)值計算的啟動,如圖8 所示。此菜單中有3項,分別允許用戶以 REDUCE,MATHEMATICA或 FORM 格式導出平方圖的符號表達式為適合各自相應程序的格式,每個都將表達式寫入工作目錄中的results 子目錄的文件中,用于以后在相應的軟件中作進一步的符號或數(shù)值操作,例如可以在平方圖上求和、執(zhí)行替換或計算總截面。也可以點擊第1 個菜單項c-code,它將使CalcHEP 為平方圖生成優(yōu)化的c 代碼并寫入工作目錄的results 子目錄。
圖8 符號計算執(zhí)行完成
在執(zhí)行完第1 個菜單項編寫了c 代碼之后,用戶可以執(zhí)行第 2 個菜單項 C-compiler,從而導致CalcHEP 編譯c 代碼并創(chuàng)建可執(zhí)行的n_calchep,到此就完成了符號模塊的會話并進入到數(shù)值模塊會話階段的菜單1,如圖9 所示,它將啟動產(chǎn)生的交互式數(shù)值會話,該會話會出現(xiàn)在用戶的屏幕上。
圖9 數(shù)值會話啟動窗口
在前面交互式符號模塊會話中,我們描述了任何粒子物理相互作用模型的碰撞或衰變過程的c 代碼的生成和編譯過程。接下來我們將描述如何在交互模式下的數(shù)值模塊會話中使用生成的可執(zhí)行文件來計算碰撞截面或衰變寬度,圖 10 給出交互式數(shù)值會話菜單系統(tǒng)流程的示意圖。
圖10 數(shù)值會話菜單系統(tǒng)流程示意圖
數(shù)值模塊會話的菜單1 如圖9 所示,第1 個菜單項是 subprocess,如果符號會話期間生成的代碼包含多個子過程,則它允許選擇其中哪一個子過程用于數(shù)值處理;第2 個菜單項IN state,允許設置傳入粒子的動量、螺旋度和它們的部分子分布函數(shù);第3 個菜單項是Model parameters,它將列出所有獨立的參數(shù),并允許用戶逐個修改模型獨立參數(shù)的數(shù)值,這些參數(shù)用于數(shù)值計算;第 4 個菜單項是Constraints,需要計算的約束參數(shù)將出現(xiàn)在可以滾動的列表中,用戶還可以在此菜單列表中選擇一個相關參數(shù),以查看其對獨立參數(shù)的依賴關系;下面還有幾個菜單項可以分別用來:設置強耦合常數(shù)如圖 11 所示,修改不穩(wěn)定粒子的傳播子的行為,聲明粒子集的別名如圖 12 所示,設置蒙特卡羅相位空間積分和事例生成的截斷,修改相位空間的映射,以改進蒙特卡羅積分等。
圖11 設置強耦合常數(shù)
圖12 聲明粒子集的別名
如果前面9 個菜單項的內(nèi)容都滿意了,就可以點擊第10 個菜單項Monte Carlo simulation 進入圖10 中的菜單6。經(jīng)過蒙特卡羅積分計算后,可以用圖表查看器顯示直方圖或曲線,它允許用戶控制繪圖坐標的某些方面以及導出繪圖數(shù)據(jù),例如,微分截面對M(b,B)的分布如圖13 所示,其中有3 個峰值位于91 GeV,125 GeV 和171 GeV,它們分別來自Z 玻色子、希格斯粒子和頂夸克t 的衰變。微分截面對M(W+,b) 的分布如圖14 所示,看到1 個峰值位于172 GeV,這是來自頂夸克t 的衰變。
圖13 微分截面對M(b,B)分布圖
圖14 微分截面對M(W+,b)分布圖
最初,CalcHEP 是為具有圖形用戶界面的交互式計算而設計的,雖然圖形界面會話模式能完成幾乎所有工作,然而,有時批處理系統(tǒng)是理想的,例如,當計算需要很長時間,或者用戶的興趣在參數(shù)空間或子過程上進行掃描時,為了解決這一問題,引入了盲模式。如果s_calchep 或n_calchep 命令使用了-blind 參數(shù)標志,他們將讀取下一個參數(shù)并將其解釋為一系列命令,這些命令是用一種特殊的符號編寫的[7],它與用戶在交互會話期間執(zhí)行的菜單擊鍵相匹配。對于初學用戶來說,確定適當?shù)拿钚蛄凶址赡苡行├щy。因此,s_calchep 和n_calchep 命令都可使用+blind 參數(shù)標志,在+blind模式下,交互式圖形界面打開,用戶可以像往常一樣運行它們,當用戶退出時,Calchep 將命令序列字符串寫入標準輸出,然后,用戶可以復制它并酌情修改以使用-blind 模式。盲模式可用來編寫腳本,這些腳本存儲在$CALCHEP/bin 子目錄中,雖然這些 shell 腳本提高了用戶在批處理模式下運行所需過程的能力,但在進行涉及參數(shù)空間掃描、許多子過程和并行化的大型復雜計算時,仍然存在一些局限性。為了克服這些挑戰(zhàn),CalcHEP 提供了一個Perl腳本,我們稱之為批處理接口calchep_batch。這個Perl 接口的主要特點是:輸入是一個純文本文件,我們稱之為批處理文件batch_file,它由一系列關鍵字以及這些關鍵字的值組成,交互式會話中可用的大多數(shù)選項都由批處理文件中的關鍵字支持,因此大多數(shù)計算可以使用批處理接口完成。一旦用戶創(chuàng)建批處理文件并運行批處理接口,在完成之前不需要用戶輸入,它可以在后臺運行并定期檢查。在用戶創(chuàng)建了他們的批處理文件之后,通常從工作目錄中執(zhí)行./calchep_batch batch_file 命令運行批處理接口,計算的進度存儲在一系列html 文件中,這些文件可以在Web 瀏覽器中查看。這些html 頁面包含有關計算進度的信息以及已經(jīng)完成的計算結(jié)果。
現(xiàn)在我們來介紹使用批處理接口進行計算的一個示例,給出輸入和輸出的全部細節(jié),還可以使用這個示例作為其他計算的模板,我們的例子是e+e-→Zh 這個過程,我們可以用文本編輯器,例如vi/vim 編輯器來創(chuàng)建這個過程例子的批處理文件$CALCHEP/utile/batch_file,它有如圖15 所示的格式形式,每個關鍵字都在一個單獨的行上,第一部分應該包含模型說明,這是由模型名稱完成的,并且應該與CalcHEP 模型列表中的名稱完全匹配,計算的規(guī)范也應指定,選擇是費曼規(guī)范,在Feynman規(guī)范中更適合計算。
圖15 一個批處理文件格式的例子
此批處理示例可以在工作目錄中,使用./calchep_batch batch_file 命令來運行,它將計算e+e-→Zh 過程的截面,這個批處理會話的結(jié)果可以在Web 瀏覽器中觀察到,如圖16 所示該過程的總截面為17.965 fb。
圖16 Web 瀏覽器中觀察結(jié)果
此外批處理還將生成 10k 事例,并將它們以LHEF 格式寫入文件 ee_zh-single.lhe,該文件位于的$WORK/Events/子目錄中,也為Web 瀏覽器不方便的情況下創(chuàng)建進度頁的純文本版本,可以用內(nèi)置的顯示分布命令來查看它的分布,如圖17 所示。
圖17 e+e-→Zh 過程的截面分布
高能物理計算程序包 CalcHEP 對探索由粒子物理理論家、唯象家和實驗家建立的標準模型(SM)和各種超標準模型(BSM)非常有幫助。以 RHEL8系統(tǒng)平臺作為計算環(huán)境,具體介紹CalcHEP 的安裝方法和 CalcHEP 工作環(huán)境的部署方法。通過CalcHEP 交互式的圖形用戶界面介紹了符號會話和數(shù)值會話的操作流程,并對一個高能物理粒子碰撞過程pp→W+bB 進行了計算,符號會話計算得到碰撞過程的費曼圖和平方費曼圖。數(shù)值會話得到了碰撞截面分布。通過批處理接口計算 e+e-→Zh 過程的截面介紹了批處理接口的功能。CalcHEP 作為一款功能強大的高能對撞機物理計算工具,值得廣大粒子物理學研究工作者和學習愛好者學習和使用。