本文整理汇总了C++中TPaveText::ReadFile方法的典型用法代码示例。如果您正苦于以下问题:C++ TPaveText::ReadFile方法的具体用法?C++ TPaveText::ReadFile怎么用?C++ TPaveText::ReadFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TPaveText
的用法示例。
在下文中一共展示了TPaveText::ReadFile方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tpcanalspectra
void tpcanalspectra(Int_t isec =1, Int_t r1= 2)
{
AliTPCParam * tpcparam = gtpc->GetParam();
//make window for displaying results
TCanvas * c_occu = new TCanvas("occuhis","Occupancy dependence",700,900);
c_occu->Update();
TPad * pad1 = new TPad("ocpad1","occupancy1",0.05,0.61,0.95,0.95,21);
pad1->Draw();
TPad * pad2 = new TPad("ocpad2","occupancy",0.05,0.61,0.95,0.95,21);
pad2->Draw();
TPad * pad3 = new TPad("ocpad3","occupancy1",0.05,0.25,0.95,0.60,21);
pad3->Draw();
TPad * pad4 = new TPad("ocpad4","occupancy",0.05,0.25,0.95,0.60,21);
pad4->Draw();
//add comments to the histograms
TPaveText * comment = new TPaveText(0.05,0.03,0.95,0.2,"NDC");
comment->SetTextAlign(12);
comment->SetFillColor(42);
comment->ReadFile("comment.txt");
comment->Draw();
TH2F his
//prepare histogram
for (Int_t i=1;i<irow;i+=lstep)
{
tpcanal(isec,i,10,&res[0],kFALSE,tmin);
}
//plot occupancy histogram
pad1->SetGridx();
pad1->SetGridy();
}
示例2: tpcdraw
void tpcdraw(Int_t sec, Int_t row, Int_t pad)
{
gStyle->SetOptStat(0);
//calculate occupancy for selected sector and pad row
//for selected pad is obtained signal shape
Double_t par[3];
gtpc.SetSecRowTime(sec,row);
gtpc.SetHisto(pad);
gtpc.Draw("box");
//plot histograms with specified options
//move pads to another position be possible add text
gtpc.GetPad1().SetPad(0.05,0.72,0.95,0.95);
gtpc.GetPad2().SetPad(0.05,0.47,0.95,0.70);
gtpc.GetPad3().SetPad(0.05,0.22,0.95,0.45);
//fit histogram of occupancy on specified range <150,500>
gtpc.GetPad2().cd();
g1 = new TF1("pol0_r","pol0",150,500);
gtpc.GetHis3()->Fit("pol0_r","R0Q");
g1->GetParameters(&par[0]);
Float_t error = g1->GetParError(0);
fitText = new TPaveText(0.15,0.7,0.3,0.9,"NDC");
fitText->AddText("p0 fit on interval <150-500>");
char s[100];
sprintf(s,"%0.3f+- %0.3f",par[0],error);
fitText->AddText(s);
fitText->Draw();
gtpc.GetPad2().Update();
//set logarithmic
gtpc.GetPad3().cd();
gtpc.GetPad3().SetLogy();
gtpc.GetPad3().Draw();
//add comments to the histograms
gtpc.GetCanvas().cd();
TPaveText * comment = new TPaveText(0.05,0.03,0.95,0.2,"NDC");
comment->SetTextAlign(12);
comment->SetFillColor(42);
comment->ReadFile("comment.txt");
comment->Draw();
gtpc.GetCanvas().Update();
}
示例3: oDependence
void oDependence()
{
//set plot options
gStyle->SetOptFit(1);
gStyle->SetOptStat(1);
TCanvas * c1 = new TCanvas("canPRF","Pad response function",700,900);
TPad * pad1 = new TPad("pad1THR","",0.05,0.55,0.45,0.95,21);
pad1->Draw();
TPad * pad2 = new TPad("pad2PRF","",0.55,0.55,0.95,0.95,21);
pad2->Draw();
TPad * pad3 = new TPad("pad3PRF","",0.55,0.05,0.95,0.45,21);
pad3->Draw();
pad1->cd();
pad1->SetGridx();
pad1->SetGridy();
pad2->SetGridx();
pad2->SetGridy();
pad3->SetGridx();
pad3->SetGridy();
//make histogram of threshold dependence
TH1F * hotd =new TH1F("Occupancy dependence on threshold",
"Ocupancy at first pad row as function of threshold",
25,0.,25.);
hotd->SetBinContent(5,0.625);
hotd->SetBinError(5,0.02);
hotd->SetBinContent(10,0.559);
hotd->SetBinError(10,0.02);
hotd->SetBinContent(20,0.478);
hotd->SetBinError(20,0.02);
hotd->SetXTitle("Threshold [channels]");
hotd->SetYTitle("occupancy");
hotd->Fit("pol1","+");
hotd->Draw("error");
//make histogram of PRF dependence
TH1F * hoprfd =new TH1F("Occupancy dependence on PRF width",
"Occupancy at first pad row as function of generic PRF sigma for 2.05x0.35 cm pad size ",
65, 0.,6.5);
hoprfd->SetBinContent(10,0.492);
hoprfd->SetBinError(10,0.02);
hoprfd->SetBinContent(20,0.524);
hoprfd->SetBinError(20,0.02);
hoprfd->SetBinContent(30,0.559);
hoprfd->SetBinError(30,0.02);
hoprfd->SetXTitle("Sigma of PRF [mm]");
hoprfd->SetYTitle("occupancy");
pad2->cd();
hoprfd->Fit("pol1","+");
hoprfd->Draw("error");
pad2->Draw();
//pad 3 histogram
pad3->cd();
TH1F * hoprfd88 =new TH1F("Occupancy dependence on PRF width 08x08",
"Occupancy at first pad row as function of generic PRF sigma for 0.8x0.8 cm pad size ",
65, 0.,6.5);
hoprfd88->SetBinContent(20,0.322);
hoprfd88->SetBinError(20,0.02);
hoprfd88->SetBinContent(30,0.344);
hoprfd88->SetBinError(30,0.02);
hoprfd88->SetBinContent(40,0.369);
hoprfd88->SetBinError(40,0.02);
hoprfd88->SetBinContent(60,0.416);
hoprfd88->SetBinError(60,0.02);
hoprfd88->SetXTitle("Sigma of PRF [mm]");
hoprfd88->SetYTitle("occupancy");
hoprfd88->Fit("pol1","+");
hoprfd88->Draw("error");
c1->cd();
TPaveText * comment = new TPaveText(0.05,0.15,0.45,0.35,"NDC");
comment->SetTextAlign(12);
comment->SetFillColor(42);
comment->ReadFile("commentdep.txt");
comment->Draw();
}
示例4: tpcanalall
void tpcanalall(Int_t isec =1, Int_t lstep = 1,Float_t tmin=400)
{
AliTPCParam * tpcparam = gtpc->GetParam();
//make window for displaying results
TCanvas * c_occu = new TCanvas("coccu","Occupancy dependence",700,900);
c_occu->Update();
TPad * pad1 = new TPad("occupancy","occupancy",0.05,0.25,0.95,0.95,21);
pad1->Draw();
//add comments to the histograms
TPaveText * comment = new TPaveText(0.05,0.03,0.95,0.2,"NDC");
comment->SetTextAlign(12);
comment->SetFillColor(42);
comment->ReadFile("comment.txt");
comment->Draw();
//prepare histogram
Int_t irow = tpcparam->GetNRow(isec);
Float_t xmin = tpcparam->GetPadRowRadii(isec,1);
Float_t xmax = tpcparam->GetPadRowRadii(isec,irow);
pad1->cd();
char s[220];
char sh[220];
sprintf(s,"occu_sector%d",isec);
sprintf(sh,"Occupancy in sector %d as function of pad raw",isec);
TH1F * occudep = new TH1F(s,sh,300,xmin,xmax);
Float_t res[20];
Float_t x;
for (Int_t i=2;i<irow;i+=lstep)
{
tpcanal(isec,i,10,&res[0],kFALSE,tmin);
x = tpcparam->GetPadRowRadii(isec,i) ;
Int_t index = (300*(x-xmin))/(xmax-xmin);
cout<<i<<" "<<index<<" "<<x<<" "<<res[0]<<" "<<res[1]<<"\n";
occudep->SetBinContent(index,res[0]);
occudep->SetBinError(index,res[1]);
}
//plot occupancy histogram
pad1->SetGridx();
pad1->SetGridy();
gStyle->SetOptFit(0);
occudep->Draw("error");
occudep->SetXTitle("pad row center position [cm]");
occudep->SetYTitle("occupancy");
//fit occupancy dependence
//linear fit
TF1 * g1 = new TF1("pol1_r","pol1");
occudep->Fit("pol1_r","+Q");
Double_t par[3];
Float_t error[3];
Float_t chi;
g1->GetParameters(&par[0]);
error[0]=g1->GetParError(0);
error[1]=g1->GetParError(1);
Float_t chi = g1->GetChisquare();
sprintf(s,"Linear fit ocupancy = (%2.3f - %2.3f) +(%2.1f+- %2.1f).r chi2 = %2.2f",
par[0],error[0],1000*par[1],1000*error[1],chi);
comment->AddText(s);
//(1-exp([0]1/(r*2+[1]**2) fit
TF1 * g1 = new TF1("polm1",occur,1,00,1);
occudep->Fit("polm1","+Q");
Double_t par[3];
Float_t error[3];
g1->GetParameters(&par[0]);
error[0]=g1->GetParError(0);
// error[1]=g1->GetParError(1);
chi = g1->GetChisquare();
sprintf(s,"(1-exp(P1/(x^2) fit P1=(%2.3f+- %2.3f) chi2=%2.2f ",
par[0],error[0],chi);
comment->AddText(s);
c_occu->Update();
}
示例5: tpccfind
//.........这里部分代码省略.........
/////////////////////HISTOGRAMS///DECLARATION///////////////////////
pad11->cd();
TH1F * hsx = new TH1F("hsx","Sigma of distribution in time",40,0,2);
pad12->cd();
TH1F * hsy = new TH1F("hsy","Sigma of distribution in pads",40,0,2);
pad21->cd();
TProfile * hsx2 = new TProfile("hsx2","Sigma of distribution in time",
20,100,500);
pad22->cd();
TProfile * hsy2 = new TProfile("hsy2","Sigma of distribution in pads",
20,100,500);
pad31->cd();
TH1F * harea = new TH1F("harea","Area of the peak",26,0,52);
pad32->cd();
TH1F * hmax = new TH1F("hmax","Maximal amplitude in peak",30,0,150);
pad41->cd();
TProfile * harea2= new TProfile("harea2","Area dependence z coordinata",
20,100,500);
pad42->cd();
TProfile * hmax2 = new TProfile("hmax2","Maximal amplitude dependence",
20,100,500);
pad41->cd();
pad11_2->cd();
TProfile * harea2p= new TProfile("harea2p","Area dependence on pad coordinata",
20,0,100);
pad12_2->cd();
TProfile * hmax2p = new TProfile("hmax2p","Maximal amplitude dependence on pad",
20,0,50);
//////////////////CALCULATION//////////////////////////////////////////
for (Int_t k = i1;k <=i2; k++)
{
tpcanal(1,k,10,0,kFALSE);
TClusterFinder * cf=new TClusterFinder(0,0,threshold,1);
cf->GetHisto(>pc.GetHis1());
TClonesArray * arr = cf->FindClusters();
cf->Delete();
Int_t size = arr->GetEntries();
if ( size>0 )
for (Int_t i=0 ; i<size;i++)
{
Int_t index;
TCluster *c=(TCluster*)arr->UncheckedAt(i);
hsx->Fill(TMath::Sqrt(c.fSigmaX2));
hsy->Fill(TMath::Sqrt(c.fSigmaY2));
if (TMath::Sqrt(c.fSigmaX2)<thr)
hsx2->Fill(c.fX,TMath::Sqrt(c.fSigmaX2),1);
if (TMath::Sqrt(c.fSigmaY2)<thr)
hsy2->Fill(c.fX,TMath::Sqrt(c.fSigmaY2),1);
hmax->Fill(c.fMax);
harea->Fill(c.fArea);
if (c.fArea<tharea) harea2->Fill(c.fX,c.fArea,1);
if (c.fMax<thmax) hmax2->Fill(c.fX,c.fMax,1);
if (c.fArea<tharea) harea2p->Fill(c.fY,c.fArea,1);
if (c.fMax<thmax) hmax2p->Fill(c.fY,c.fMax,1);
}
}
gStyle->SetOptStat(1);
pad11->cd();
hsx->Draw();
pad12->cd();
hsy->Draw();
pad21->cd();
hsx2->Draw();
pad22->cd();
hsy2->Draw();
pad31->cd();
harea->Draw();
pad32->cd();
hmax->Draw();
pad41->cd();
harea2->Draw();
pad42->cd();
hmax2->Draw();
c1->cd();
TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.14,"NDC");
comment->SetTextAlign(12);
comment->SetFillColor(42);
comment->ReadFile("clusters.txt");
comment->Draw();
c2->cd();
pad11_2->cd();
harea2p->Draw();
pad12_2->cd();
hmax2p->Draw();
}
示例6: tpcanal
void tpcanal(Int_t sec, Int_t row, Int_t pad, Float_t * res=0,
Bool_t bdraw = kTRUE,Float_t xmin=400,Float_t xmax=500)
{
//calculate occupancy
Double_t par[3];
gtpc.SetSecRowTime(sec,row);
gtpc.SetHisto(pad);
//fit occupancy dependence
gStyle->SetOptStat(0);
g1 = new TF1("pol0_r","pol0",xmin,xmax);
gtpc.GetHis3()->Fit("pol0_r","R0Q");
char s[100];
if (bdraw == kTRUE)
{
gtpc.Draw("box");
gtpc.GetPad3().cd();
gtpc.GetPad3().SetGridx();
gtpc.GetPad3().SetGridy();
gtpc.GetPad3().SetLogy();
gtpc.GetPad3().Draw();
gtpc.GetPad2().cd();
gtpc.GetPad2().SetGridx();
gtpc.GetPad2().SetGridy();
fitText = new TPaveText(0.1,0.7,0.4,0.9,"NDC");
gtpc.GetHis3()->Draw();
sprintf(s,"p0 fit on interval %3.0f+- %3.0f",xmin,xmax);
fitText->AddText(s);
}
g1->GetParameters(&par[0]);
Float_t error = g1->GetParError(0);
sprintf(s,"%0.3f+- %0.3f",par[0],error);
if (bdraw == kTRUE)
{
gtpc.GetHis3()->Fit("pol0_r","R0Q");
fitText->AddText(s);
fitText->Draw();
gtpc.GetPad2().Update();
//plot histograms with specified options
//move pads to another position be possible add text
gtpc.GetPad1().SetPad(0.05,0.72,0.95,0.95);
gtpc.GetPad2().SetPad(0.05,0.47,0.95,0.70);
gtpc.GetPad3().SetPad(0.05,0.22,0.95,0.45);
//add comments to the histograms
gtpc.GetCanvas().cd();
TPaveText * comment = new TPaveText(0.05,0.03,0.95,0.2,"NDC");
comment->SetTextAlign(12);
comment->SetFillColor(42);
comment->ReadFile("comment.txt");
comment->Draw();
}
if (res != 0)
{
res[0] = par[0];
res[1] = error;
cout<<s<<" "<<res[0]<<" "<<res[1]<<"\n";
}
}
示例7: fit1
void fit1() {
TCanvas *c1 = new TCanvas("c1_fit1","The Fit Canvas",200,10,700,500);
c1->SetGridx();
c1->SetGridy();
c1->GetFrame()->SetFillColor(21);
c1->GetFrame()->SetBorderMode(-1);
c1->GetFrame()->SetBorderSize(5);
gBenchmark->Start("fit1");
//
// We connect the ROOT file generated in a previous tutorial
// (see <a href="fillrandom.C.nbconvert.ipynb">Filling histograms with random numbers from a function</a>)
//
TString dir = gROOT->GetTutorialsDir();
dir.Append("/fit/");
TFile *file = TFile::Open("fillrandom.root");
if (!file) {
gROOT->ProcessLine(Form(".x %s../hist/fillrandom.C",dir.Data()));
file = TFile::Open("fillrandom.root");
if (!file) return;
}
//
// The function "ls()" lists the directory contents of this file
//
file->ls();
//
// Get object "sqroot" from the file. Undefined objects are searched
// for using gROOT->FindObject("xxx"), e.g.:
// TF1 *sqroot = (TF1*) gROOT.FindObject("sqroot")
//
TF1 * sqroot = 0;
file->GetObject("sqroot",sqroot);
if (!sqroot){
Error("fit1.C","Cannot find object sqroot of type TF1\n");
return;
}
sqroot->Print();
//
// Now get and fit histogram h1f with the function sqroot
//
TH1F* h1f = 0;
file->GetObject("h1f",h1f);
if (!h1f){
Error("fit1.C","Cannot find object h1f of type TH1F\n");
return;
}
h1f->SetFillColor(45);
h1f->Fit("sqroot");
// We now annotate the picture by creating a PaveText object
// and displaying the list of commands in this macro
//
TPaveText * fitlabel = new TPaveText(0.6,0.4,0.9,0.75,"NDC");
fitlabel->SetTextAlign(12);
fitlabel->SetFillColor(42);
fitlabel->ReadFile(Form("%sfit1_C.txt",dir.Data()));
fitlabel->Draw();
c1->Update();
gBenchmark->Show("fit1");
}