不变质量谱重建¶
在给定的反应条件下,反冲质子 $p$ 的发射角最大可达约 $40^\circ$,而反冲 $^{12}\mathrm{C}$ 的发射角最大可达约 $70^\circ$。与此同时,本实验的探测器布局主要针对前角区域优化,用于高效率测量前向发射的 $\alpha$ 和 $^{10}\mathrm{Be}$ 粒子;这类前向碎片在逆运动学条件下具有较高的探测效率。相比之下,大角度区域的立体角覆盖相对有限。
因此,对于大部分 $^{14}\mathrm{C}^{*}$ 反应事件,其重建不能依赖于对反冲靶测量。基于这一实验事实,下面重点研究不依赖于反冲靶核测量的信息重建方法,即利用前向测得的 $\alpha$ 和 $^{10}\mathrm{Be}$ 粒子,通过 $x$-$y$ 关联、$Q$ 值分析以及两体不变质量方法,对反应道和激发能谱进行重建。
靶核类型判断¶
对于 CH$_2$ 复合靶中的反应事例,若只测得碎裂末态 $\alpha$ 和 $^{10}\mathrm{Be}$,而未测得反冲靶核,则可利用 $x$-$y$ 关联图对靶核类型进行区分,并据此选择相应反应道。
反冲核 $A'$ 的动量可写为
$$ p_{A'}^2=(\vec p_a-\vec p_c-\vec p_d)^2 . $$
在低能条件下,反冲核动能近似为
$$ E_{K,A'} \approx \frac{p_{A'}^2}{2m_u A}, $$
其中 $m_u$ 为原子质量单位,$A$ 为反冲核质量数。另一方面,由能量守恒有
$$ E_{K,A'}=E_{K,a}-E_{K,c}-E_{K,d}+Q . $$
定义
$$ x=\frac{p_{A'}^2}{2m_u}, \qquad y=E_{K,c}+E_{K,d}-E_{K,a}, $$
则有近似线性关系
$$ y=\frac{x}{A}-Q . $$
因此,在 $x$-$y$ 平面中,不同靶核成分对应不同的分布带。对于本例的 CH$_2$ 靶,H 靶与 C 靶成分可在 $x$-$y$ 图中清楚分开。程序中选取两条直线之间的区域作为 H 靶事例,后续的不变质量谱分析均在这一 H 门内进行。
后续分析中,取两条经验直线之间的区域作为 H 靶候选事例: $$ y=9.5+\frac{58}{60}x, \qquad y=18.5+\frac{58}{60}x. $$
这里需要说明的是,$x$-$y$ 图的作用是先做靶核成分选择。C 靶事例主要作为宽本底存在,并不直接进入后续 H 靶不变质量谱的主分析流程。
void TargetID_CHn()
{
TFile *f = TFile::Open("C14_CHn_He4Be10x.root");
TTree *tree = (TTree*)f->Get("tree");
const double u = 1000.0; // mass: GeV -> MeV
const double mu = 931.494;
const double k = 58.0 / 60.0;
// masses and beam mean from TParameter
double mHe4 = ((TParameter<Double_t>*)f->Get("massHe4"))->GetVal() * u;
double mBe10 = ((TParameter<Double_t>*)f->Get("massBe10"))->GetVal() * u;
double mC14 = ((TParameter<Double_t>*)f->Get("massC14"))->GetVal() * u;
double ekBeamMean = ((TParameter<Double_t>*)f->Get("ekBeamMean"))->GetVal(); // MeV
// branches
Double_t ek[4], theta[4], phi[4];
Double_t weight_total;
tree->SetBranchAddress("ek", ek);
tree->SetBranchAddress("theta", theta);
tree->SetBranchAddress("phi", phi);
tree->SetBranchAddress("weight_total", &weight_total);
TH2F *hEP = new TH2F("hEP", "x-y", 400, 0, 80, 400, 0, 80);
TH1F *hQ = new TH1F("hQ", "Q (H gate)", 400, -20, -5);
// mean beam momentum
double pBeamMean = std::sqrt(ekBeamMean*ekBeamMean + 2.0*ekBeamMean*mC14);
TVector3 pvBeam;
pvBeam.SetMagThetaPhi(pBeamMean, 0.0, 0.0);
Long64_t nentries = tree->GetEntriesFast();
for (Long64_t i = 0; i < nentries; ++i) {
tree->GetEntry(i);
// alpha
double pAlpha = std::sqrt(ek[0]*ek[0] + 2.0*ek[0]*mHe4);
TVector3 pvAlpha;
pvAlpha.SetMagThetaPhi(pAlpha,
theta[0] * TMath::DegToRad(),
phi[0] * TMath::DegToRad());
// final 10Be
double pBe = std::sqrt(ek[1]*ek[1] + 2.0*ek[1]*mBe10);
TVector3 pvBe;
pvBe.SetMagThetaPhi(pBe,
theta[1] * TMath::DegToRad(),
phi[1] * TMath::DegToRad());
// missing recoil momentum
double pRec = (pvBeam - pvAlpha - pvBe).Mag();
double x = pRec * pRec / (2.0 * mu);
double y = ekBeamMean - ek[0] - ek[1];
hEP->Fill(x, y, weight_total);
// H-target gate
if (y < 9.5 + k*x) continue;
if (y > 18.5 + k*x) continue;
double Q = k*x - y;
hQ->Fill(Q, weight_total);
}
TCanvas *c1 = new TCanvas("c1", "Target identification", 800, 400);
c1->Divide(2, 1);
c1->cd(1);
hEP->Draw("colz");
TLine *l1 = new TLine(0, 9.5, 60, 67.5);
TLine *l2 = new TLine(0, 18.5, 60, 76.5);
l1->Draw();
l2->Draw();
gPad->SetLogz();
c1->cd(2);
hQ->Draw("hist");
c1->Draw();
}
TargetID_CHn();
不变质量谱¶
在完成 H 靶甄别之后,进一步在 H 门内构建 $\alpha+{}^{10}\mathrm{Be}$ 两体不变质量谱,以重建母核 $^{14}\mathrm{C}^{*}$ 的激发能。其不变质量定义为 $$ M_{\mathrm{inv}}^2=(E_{\alpha}+E_{{}^{10}\mathrm{Be}})^2-(\vec p_{\alpha}+\vec p_{{}^{10}\mathrm{Be}})^2, $$ 于是可得 $$ E_x(^{14}\mathrm{C})=M_{\mathrm{inv}}-m(^{14}\mathrm{C}_{\mathrm{g.s.}}). $$ 这里需要注意,末态 $^{10}\mathrm{Be}$ 既可能处于基态,也可能来自第一激发态 $$ ^{10}\mathrm{Be}^{*}(3.368\ \mathrm{MeV}) $$ 的退激过程。若该 $\gamma$ 未被探测,而在不变质量计算中仍统一把所有事例都按 $^{10}\mathrm{Be}$ 基态处理,则会使重建得到的 $^{14}\mathrm{C}$ 激发能出现系统偏移,并在一维谱中形成附加结构。因而,在构建不变质量谱之前,必须先利用 $Q$ 值信息区分 $^{10}\mathrm{Be}$ 的不同末态分支。
在本节中,为保持与前述靶核甄别的处理一致,仍采用 H 带对应的线性关系定义 $$ Q_{\mathrm{rec}}=\frac{58}{60}x-y. $$ 然后按经验门对 $^{10}\mathrm{Be}$ 分支进行区分:
- 当 $Q_{\mathrm{rec}}<-14.5\ \mathrm{MeV}$ 时,视为 $^{10}\mathrm{Be}^{*}(3.368)$ 分支;
- 当 $Q_{\mathrm{rec}}>-13.5\ \mathrm{MeV}$ 时,视为 $^{10}\mathrm{Be}$ 基态分支;
- 中间过渡区事例暂不参与不变质量重建,以减少分支混叠。
随后,对不同分支分别采用相应的 $^{10}\mathrm{Be}$ 质量假设构建两体不变质量。这样得到的重建激发能谱可与模拟真值 exC14 进行比较,用于检验该方法在 H 门条件下恢复 $^{14}\mathrm{C}$ 激发态结构的能力。
因此,本节的分析流程可以概括为:
- 从统一模拟文件中读取前向可测粒子信息;
- 利用 $x$-$y$ 关联图进行靶核甄别,选出 H 靶候选事例;
- 在 H 门内利用重建 $Q$ 值区分 $^{10}\mathrm{Be}$ 基态与激发态分支;
- 对不同分支分别采用相应质量,构建 $^{14}\mathrm{C}$ 的两体不变质量谱。
void MassSpectrum_CHn()
{
TFile *f = TFile::Open("C14_CHn_He4Be10x.root");
TTree *tree = (TTree*)f->Get("tree");
const double u = 1000.0; // mass: GeV -> MeV
const double mu = 931.494;
const double k = 58.0 / 60.0;
// masses and beam mean from TParameter
double mHe4 = ((TParameter<Double_t>*)f->Get("massHe4"))->GetVal() * u;
double mBe10 = ((TParameter<Double_t>*)f->Get("massBe10"))->GetVal() * u;
double mC14 = ((TParameter<Double_t>*)f->Get("massC14"))->GetVal() * u;
double ekBeamMean = ((TParameter<Double_t>*)f->Get("ekBeamMean"))->GetVal(); // MeV
// branches
Double_t ek[4], theta[4], phi[4];
Double_t exC14, weight_total;
tree->SetBranchAddress("ek", ek);
tree->SetBranchAddress("theta", theta);
tree->SetBranchAddress("phi", phi);
tree->SetBranchAddress("exC14", &exC14);
tree->SetBranchAddress("weight_total", &weight_total);
TH1F *hExcal = new TH1F("hExcal", "Excal", 400, 12, 22);
TH2F *hExcalQ = new TH2F("hExcalQ", "Excal-Q", 400, 12, 22, 400, -20, -5);
TH1F *hEx = new TH1F("hEx", "Ex true", 400, 12, 22);
TH2F *hExQ = new TH2F("hExQ", "Ex-Q", 400, 12, 22, 400, -20, -5);
// mean beam momentum
double pBeamMean = std::sqrt(ekBeamMean*ekBeamMean + 2.0*ekBeamMean*mC14);
TVector3 pvBeam;
pvBeam.SetMagThetaPhi(pBeamMean, 0.0, 0.0);
Long64_t nentries = tree->GetEntriesFast();
for (Long64_t i = 0; i < nentries; ++i) {
tree->GetEntry(i);
// ------------------------------------------------
// step 1: use final alpha + final 10Be to do H gate
// ------------------------------------------------
double pAlpha0 = std::sqrt(ek[0]*ek[0] + 2.0*ek[0]*mHe4);
TVector3 pvAlpha0;
pvAlpha0.SetMagThetaPhi(pAlpha0,
theta[0] * TMath::DegToRad(),
phi[0] * TMath::DegToRad());
double pBe0 = std::sqrt(ek[1]*ek[1] + 2.0*ek[1]*mBe10);
TVector3 pvBe0;
pvBe0.SetMagThetaPhi(pBe0,
theta[1] * TMath::DegToRad(),
phi[1] * TMath::DegToRad());
double pRec = (pvBeam - pvAlpha0 - pvBe0).Mag();
double x = pRec * pRec / (2.0 * mu);
double y = ekBeamMean - ek[0] - ek[1];
// H-target gate
if (y < 9.5 + k*x) continue;
if (y > 18.5 + k*x) continue;
// reconstructed Q from x-y band
double Q = k*x - y;
// ------------------------------------------------
// step 2: choose 10Be mass according to Q branch
// ------------------------------------------------
double mBeUse = -1.0;
if (Q < -14.5) mBeUse = mBe10 + 3.368; // 10Be*(3.368)
if (Q > -13.5) mBeUse = mBe10; // 10Be(gs)
// skip the transition region
if (mBeUse < 0.0) continue;
// ------------------------------------------------
// step 3: build two-body invariant mass
// ------------------------------------------------
double pAlpha = std::sqrt(ek[0]*ek[0] + 2.0*ek[0]*mHe4);
TVector3 pvAlpha;
pvAlpha.SetMagThetaPhi(pAlpha,
theta[0] * TMath::DegToRad(),
phi[0] * TMath::DegToRad());
double pBe = std::sqrt(ek[1]*ek[1] + 2.0*ek[1]*mBeUse);
TVector3 pvBe;
pvBe.SetMagThetaPhi(pBe,
theta[1] * TMath::DegToRad(),
phi[1] * TMath::DegToRad());
TLorentzVector lvAlpha(pvAlpha, ek[0] + mHe4);
TLorentzVector lvBe (pvBe, ek[1] + mBeUse);
double Minv = (lvAlpha + lvBe).M();
double Ex = Minv - mC14;
hExcal->Fill(Ex, weight_total);
hExcalQ->Fill(Ex, Q, weight_total);
// truth for comparison
hEx->Fill(exC14, weight_total);
hExQ->Fill(exC14, Q, weight_total);
}
TCanvas *c2 = new TCanvas("c2", "Invariant mass", 800, 800);
c2->Divide(2, 2);
c2->cd(1);
hExcal->Draw("hist");
c2->cd(2);
hExcalQ->Draw("colz");
gPad->SetLogz();
c2->cd(3);
hEx->Draw("hist");
c2->cd(4);
hExQ->Draw("colz");
gPad->SetLogz();
c2->Draw();
}
MassSpectrum_CHn();
由上图可见,校正后的不变质量谱 $Ex_{cal}$ 与真值谱 $Ex_{true}$ 在峰位上符合较好,说明在 H 靶门内,利用 $Q$ 值区分 $^{10}\mathrm{Be}$ 基态与第一激发态后,两体方法能够较好恢复 $^{14}\mathrm{C}$ 的真实激发能结构。与真值相比,Excal 的峰形略有展宽,主要来源于探测器分辨及重建误差。二维图 Excal-Q 进一步表明,不同事例清楚落在两条 $Q$ 分支上,分别对应 $^{10}\mathrm{Be}$ 基态和 $3.368\ \mathrm{MeV}$ 激发态。通过剔除两分支之间的过渡区,可有效减少通道混叠,从而抑制由未探测 $\gamma$ 引起的假峰或峰位偏移。结果说明,$Q$ 值甄别是不变质量谱分析的必要前置步骤。
作业:利用 $Q_3$ 条件重建 H 靶三体测量下的不变质量谱¶
在 7.5 节中,已经利用三体动量守恒方法重建了 H 靶反应的 $Q_3$ 谱。下面进一步以此为基础,完成 H 靶三体全末态测量条件下的不变质量谱重建。