我得到一些分析结果来创建一个文本文件。使用这个具有三行的文本文件,我想通过ROOT绘制3D直方图。但是,出现以下错误:
错误:成员引用类型'std :: ifstream'(aka'basic_ifstream
')不是指针;您是要使用'。'吗?
幸运的是,我曾经编写过相同类型的cc文件,因此比较并检查了所有代码,没有发现非法句子,依此类推。调用文本文件名正确。
*我编写的代码如下。
{
gROOT->Reset();
#include<fstream>
double x,y,z;
TCanvas *c1 = new TCanvas("c1","SNR_SOverSqrtS_Lam_ent_0618_1",1,10,500,400);
TH3S *h1 = new TH3S("h1","SNR_SOverSqrtS_Lam_ent",200,0,2,200,0,1,200,0,700);
ifstream data;
data->open("hist_SNR_SOverSqrtS_Lam_ent_0618.txt");
while(data>>x>>y>>z)
h1->Fill(x,y,z);
h1->SetXTitle("SN");
h1->SetYTitle("S/sqrt(S)");
h1->SetZTitle("Lambda Entry");
h1->Draw();
c1->Print("hist_SNR_SOverSqrtS_Lam_ent_0618.png");
}
*我制作的文本文件是以下格式。
1.52179e+00 2.38017e+01 5.66520e+02
1.38280e+00 2.14820e+01 4.61478e+02
1.38280e+00 2.14820e+01 4.61478e+02
1.48307e+00 2.19478e+01 4.81706e+02
1.48307e+00 2.19478e+01 4.81706e+02
1.41002e+00 1.90331e+01 3.62260e+02
1.54246e+00 1.95385e+01 3.81754e+02