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