实验中,F8PPAC1-3测量靶前束流的入射方向。靶后两套望远镜系统(MUST2)测量反应产生的轻粒子,剩余重核由零度磁谱仪(ZDS)探测。为了减少散射粒子在靶内的能量损失,把靶框旋转45° 朝向望远镜摆放。靶前放置了厚铁块组成的屏蔽体,避免束流中偏离中心线的粒子达到靶后的探测系统。
Trigger = beamTrig + must2Trig
F8PPACRawData[i][j] -Raw Data(原始信息,道值)
Branch | PPAC |
---|---|
F8PPACRawData[0][0] | PPAC 1 Layer A $T_{x1}$ |
F8PPACRawData[0][1] | PPAC 1 Layer A $T_{x2}$ |
F8PPACRawData[0][2] | PPAC 1 Layer A $T_{y1}$ |
F8PPACRawData[0][3] | PPAC 1 Layer A $T_{y2}$ |
F8PPACRawData[0][4] | PPAC 1 Layer A $T_a$ |
F8PPACRawData[1][0-4] | PPAC 1 Layer B |
F8PPACRawData[2][0-4] | PPAC 2 Layer A |
F8PPACRawData[3][0-4] | PPAC 2 Layer B |
F8PPACRawData[4][0-4] | PPAC 3 |
$ T_{x_1}=D/v+t_{x_1}+t_{o_1} $
$ T_{x_2}=D/v+t_{x_2}+t_{o_2} $
$ T_{x_1}+T_{x_2}=2D/v+T_{delay}+(t_{o_1}+t_{o_1})$
$T_{x_1}-T_{x_2}=t_{x_1}-t_{x_2}+(t_{o_1}-t_{o_2})$
上述时间信号不仅与感应信号在探测器中的传输时间相关,也与束流的到达时间(飞行时间)有关。 研究探测器的信号特征时,我们希望得到只和探测器性能有关的参数,此时参数的变化规律只与探测器特性有关,与束流的到达时间无关。
$ dt_{x_1}=T_{x_1}-T_a=t_{x_1}+(t_{o_1}+t_{o_a})$
$dt_{x_2}=T_{x_2}-T_a=t_{x_2}+(t_{o_2}+t_{o_a})$
$dt_{x_1}-dt_{x_1}=t_{x_1}-t_{x_2}+(t_{o_1}-t_{o_2})$
$dt_{x_1}+dt_{x_2}=t_{x_1}+t_{x_2}+(t_{o_1}+t_{o_2}-2t_{o_a})$=Const.
//%jsroot on
TFile *ipf = new TFile("f8ppac001.root");// $HOME/data/MUST2@BigRIPS/ROOTFILE/
TTree *tree = (TTree*) ipf->Get("tree");
TCanvas *c1 = new TCanvas("c1","c1");
tree->Draw("F8PPACRawData[0][0]>>hx1(1000,0,4200)");//F8PPAC1A-Tx1
tree->Draw("F8PPACRawData[0][1]>>hx2(1000,0,4200)");//F8PPAC1A-Tx2
TH1D *hx1 = (TH1D*)gROOT->FindObject("hx1");
TH1D *hx2 = (TH1D*)gROOT->FindObject("hx2");
hx1->SetLineColor(kBlue);
hx2->SetLineColor(kBlack);
hx1->Draw();
hx2->Draw("same");
c1->SetLogy();
c1->Draw();
tree->Draw("F8PPACRawData[0][2]>>hy1(1000,0,4200)");//F8PPAC1A-Ty1
tree->Draw("F8PPACRawData[0][3]>>hy2(1000,0,4200)");//F8PPAC1A-Ty2
TH1D *hy1 = (TH1D*)gROOT->FindObject("hy1");
TH1D *hy2 = (TH1D*)gROOT->FindObject("hy2");
hy1->SetLineColor(kBlue);
hy2->SetLineColor(kBlack);
hy1->Draw();
hy2->Draw("same");
c1->SetLogy();
c1->Draw();
tree->Draw("F8PPACRawData[0][4]>>ha(1000,0,4200)");//F8PPAC1A-Ta
ha->Draw();
c1->Draw();
TCut ca = "Ta>0 && Ta<4000";
TCut cx1 = "Tx1>0 && Tx1<4000" && ca;
TCut cx2 = "Tx2>0 && Tx2<4000" && ca;
TCut cy1 = "Ty1>0 && Ty1<4000" && ca;
TCut cy2 = "Ty2>0 && Ty2<4000" && ca;
TCut cppac=cx1 && cx2 && cy1 && cy2;
// F8PPAC
tree->SetAlias("Tx1", "F8PPACRawData[0][0]");//F8PPAC1A-txl
tree->SetAlias("Tx2", "F8PPACRawData[0][1]");//F8PPAC1A-txr
tree->SetAlias("Ty1", "F8PPACRawData[0][2]");//F8PPAC1A-tyu
tree->SetAlias("Ty2", "F8PPACRawData[0][3]");//F8PPAC1A-tyd
tree->SetAlias("Ta", "F8PPACRawData[0][4]");//F8PPAC1A-Anode
tree->SetAlias("dtx1", "Tx1-Ta");
tree->SetAlias("dtx2", "Tx2-Ta");
tree->SetAlias("dty1", "Ty1-Ta");
tree->SetAlias("dty2", "Ty2-Ta");
tree->Draw("dtx1>>hdx1(2000,-4000,4000)", cx1 );
tree->Draw("dtx1>>hdx1(2000,-4000,4000)", cx1 && "Tx1>0" );
tree->Draw("dtx1>>hdx1(2000,-4000,4000)",cx1);
tree->Draw("dtx2>>hdx2(2000,-4000,4000)",cx2);
TH1D *hdx1 = (TH1D*)gROOT->FindObject("hdx1");
TH1D *hdx2 = (TH1D*)gROOT->FindObject("hdx2");
hdx1->SetLineColor(kBlue);
hdx2->SetLineColor(kBlack);
hdx1->Draw();
hdx2->Draw("same");
c1->SetLogy();
c1->Draw();
c1->Draw();
tree->Draw("dtx1-dtx2>>(2000,-4000,4000)",cx1 && cx2);
c1->SetLogy();
c1->Draw();
$ T_{x_1}+T_{x_2}=2D/v+T_{delay}+(t_{o_1}+t_{o_1})$=$2D/v+Const.$ - 与束流速度有关
$dt_{x_1}+dt_{x_2}=t_{x_1}+t_{x_2}+(t_{o_1}+t_{o_2}-2t_{o_a})$=$Const.$ - 与束流速度无关
tree->Draw("Tx1:Tx2>>(1000,0,2500,1000,0,2500)",cx1 && cx1,"colz");
gStyle->SetPalette(1);
c1->SetLogy(0);
c1->Draw();
tree->Draw("dtx1:dtx2>>(1000,-100,1500,1000,-100,1500)",cx1 && cx2 && ca,"colz");
gStyle->SetPalette(1);
c1->Draw();
在束流强度较大时,需要考虑堆积(Pileup)事件的排除。
当同时有2个或以上的粒子打在 PPAC 上时,到达 delayline 的 x 的两端的时间由不同粒子的信号给出。
(TDC 只记录与 start 信号最近的第一个信号)。
此时,$T_{x_1}+T_{x_2} < T_{delay}$。即 delayline 的两端信号传输时间和不再是常数。这个条件可作为信号堆积的标志。
从上述讨论可知,PPAC 无堆积条件:前后两个粒子到达探测器的时间间隔大于 $T_{delay}$
tree->Draw("dtx1+dtx2>>hdxt(1200,400,1600)",cx1 && cx2 && ca);
hdxt->Fit("gaus","","",1130,1200);
gPad->SetLogy();
hdxt->Draw();
c1->Draw();
FCN=21486 FROM MIGRAD STATUS=CONVERGED 86 CALLS 87 TOTAL EDM=4.11835e-11 STRATEGY= 1 ERROR MATRIX ACCURATE EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 Constant 3.03545e+04 5.47631e+01 2.79199e+00 3.33928e-08 2 Mean 1.17219e+03 1.02827e-02 7.33299e-04 3.35781e-04 3 Sigma 7.95989e+00 1.01087e-02 2.01749e-05 -1.84311e-02
TF1 *fx = hdxt->GetFunction("gaus");
Double_t xpeak = fx->GetParameter(1);
Double_t xsigma = fx->GetParameter(2);
cout << xpeak + 3*xsigma << endl;
1196.07
tree->Draw("dty1+dty2>>hdyt(1200,0,1200)",cy1 && cy2 && ca);
hdyt->Fit("gaus","","",600,680);
gPad->SetLogy();
hdyt->Draw();
c1->Draw();
FCN=22514.9 FROM MIGRAD STATUS=CONVERGED 66 CALLS 67 TOTAL EDM=4.06657e-11 STRATEGY= 1 ERROR MATRIX UNCERTAINTY 2.2 per cent EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 Constant 2.71081e+04 4.89719e+01 -8.59851e-03 -1.21529e-07 2 Mean 6.61670e+02 1.21740e-02 7.22800e-06 8.53369e-04 3 Sigma 8.43106e+00 1.15025e-02 -1.17691e-07 -2.94895e-02
TF1 *fy = hdyt->GetFunction("gaus");
Double_t ypeak = fy->GetParameter(1);
Double_t ysigma = fy->GetParameter(2);
TString spileup;
spileup.Form("abs(dtx1+dtx2-%f)<3*%f",xpeak,xsigma);
TCut cxpileup = spileup.Data();
spileup.Form("abs(dty1+dty2-%f)<3*%f",ypeak,ysigma);
TCut cypileup = spileup.Data();
TCut cpileup = cxpileup && cypileup;
tree->Draw("(Tx1+Tx2)/2:Ta>>(100,250,550,200,400,1400)",cppac,"colz");
gPad->SetLogy(0);
gPad->SetLogz();
c1->Draw();
tree->Draw("(Tx1+Tx2)/2:Ta>>(100,250,550,200,400,1400)",cppac&&cpileup,"colz");
gPad->SetLogy(0);
gPad->SetLogz();
c1->Draw();
tree->Draw("dty1-dty2:dtx1-dtx2",cppac && cpileup,"colz");
gPad->SetLogy(0);
c1->Draw();