本文整理汇总了C++中TVirtualPad类的典型用法代码示例。如果您正苦于以下问题:C++ TVirtualPad类的具体用法?C++ TVirtualPad怎么用?C++ TVirtualPad使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TVirtualPad类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GetPad
//________________________________________________________
TVirtualPad* GFHistManager::GetPad(Int_t layer, Int_t histNum)
{
// pointer to pad where hists from layer/histNum are painted in
// callable after draw!
Int_t totHistsYet = 0;
Int_t numHists = 0;
TCanvas *can = NULL;
for (Int_t numCan = 0; ; ++numCan) {
can = this->GetCanvas(layer, numCan);
if (!can) break;
numHists = TMath::Max(1, this->NumberOfSubPadsOf(can));
totHistsYet += numHists;
if (totHistsYet > histNum) {
totHistsYet -= numHists;
break;
}
}
TVirtualPad *result = NULL;
if (can) {
TVirtualPad *oldPad = gPad;
if (numHists <= 1) can->cd(0); // one hist per canvas: no pads!
else can->cd(histNum - totHistsYet + 1);
result = gPad;
oldPad->cd();
}
return result;
}
开发者ID:12345ieee,项目名称:cmg-cmssw,代码行数:32,代码来源:GFHistManager.C
示例2: MakeFourView
//_______________________________________________________________________________________
void MakeFourView(TVirtualPad *pad=0)
{
// Creates 4 pads view of the pad (or qPad)
// ------------------------------
// | | |
// | | |
// | | |
// | Front | Top |
// | view | view |
// | | |
// | | |
// | | |
// ---------------+-------------
// | | |
// | | |
// | | |
// | Side | Spacial |
// | view | view |
// | | |
// | | |
// | | |
// ------------------------------
// begin_html <P ALIGN=CENTER> <IMG SRC="gif/FourStarView.gif" ></P> end_html
//
TVirtualPad *thisPad = pad;
if (!thisPad) thisPad = qPad();
TView *view = 0;
TList *thisPrimitives = 0;
if (thisPad && (thisPrimitives = thisPad->GetListOfPrimitives()) && (view = thisPad->GetView()) )
{
Double_t min[3],max[3];
view->GetRange(min,max);
Int_t system = view->GetSystem();
TCanvas *c = new TCanvas(" 4 views", thisPad->GetTitle(),600,600);
c->Divide(2,2);
TIter *next= new TIter(thisPrimitives);
for (int i =1; i <= 4; i++) {
c->cd(i);
TList *newPrimitives = qPad()->GetListOfPrimitives();
TObject *obj = 0;
while (obj = next->Next()) newPrimitives->Add(obj);
TView *newView = new TView(system);
newView->SetRange(min,max);
next->Reset();
}
delete next;
// set separate view;
// Fron view
Int_t j = 1;
c->cd(j++); FrontView();
c->cd(j++); TopView();
c->cd(j++); SideView();
c->cd(j++); RotateView(-30.0,60.0,0);
c->Modified();
c->Update();
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:58,代码来源:PadControlPanel.C
示例3: SetBackround
//_______________________________________________________________________________________
static void SetBackround(Color_t color, TVirtualPad *pad=0)
{
TVirtualPad *thisPad = pad;
if (!thisPad) thisPad = qPad();
if (thisPad) {
thisPad->SetFillColor(color);
thisPad->Modified();
thisPad->Update();
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:11,代码来源:PadControlPanel.C
示例4: DynamicExec
void DynamicExec()
{
// Example of function called when a mouse event occurs in a pad.
// When moving the mouse in the canvas, a second canvas shows the
// projection along X of the bin corresponding to the Y position
// of the mouse. The resulting histogram is fitted with a gaussian.
// A "dynamic" line shows the current bin position in Y.
// This more elaborated example can be used as a starting point
// to develop more powerful interactive applications exploiting CINT
// as a development engine.
//
// Author: Rene Brun
TObject *select = gPad->GetSelected();
if(!select) return;
if (!select->InheritsFrom("TH2")) {gPad->SetUniqueID(0); return;}
TH2 *h = (TH2*)select;
gPad->GetCanvas()->FeedbackMode(kTRUE);
//erase old position and draw a line at current position
int pyold = gPad->GetUniqueID();
int px = gPad->GetEventX();
int py = gPad->GetEventY();
float uxmin = gPad->GetUxmin();
float uxmax = gPad->GetUxmax();
int pxmin = gPad->XtoAbsPixel(uxmin);
int pxmax = gPad->XtoAbsPixel(uxmax);
if(pyold) gVirtualX->DrawLine(pxmin,pyold,pxmax,pyold);
gVirtualX->DrawLine(pxmin,py,pxmax,py);
gPad->SetUniqueID(py);
Float_t upy = gPad->AbsPixeltoY(py);
Float_t y = gPad->PadtoY(upy);
//create or set the new canvas c2
TVirtualPad *padsav = gPad;
TCanvas *c2 = (TCanvas*)gROOT->GetListOfCanvases()->FindObject("c2");
if(c2) delete c2->GetPrimitive("Projection");
else c2 = new TCanvas("c2","Projection Canvas",710,10,700,500);
c2->SetGrid();
c2->cd();
//draw slice corresponding to mouse position
Int_t biny = h->GetYaxis()->FindBin(y);
TH1D *hp = h->ProjectionX("",biny,biny);
hp->SetFillColor(38);
char title[80];
sprintf(title,"Projection of biny=%d",biny);
hp->SetName("Projection");
hp->SetTitle(title);
hp->Fit("gaus","ql");
hp->GetFunction("gaus")->SetLineColor(kRed);
hp->GetFunction("gaus")->SetLineWidth(6);
c2->Update();
padsav->cd();
}
开发者ID:alcap-org,项目名称:AlcapDAQ,代码行数:55,代码来源:DynamicSlice.C
示例5: pHitSpecPos
TCanvas* pHitSpecPos( )
{
TCanvas* c = new TCanvas("cHitSpecPos","cHitSpecPos",1000,1100);
c->Divide(2,2);
TVirtualPad* p; TH2D *h;
TText t; t.SetTextColor(4);
p =c->cd(1); p->SetLogy(); p->SetGrid(1,0);
h = (TH2D*)gROOT->FindObject("hHitSpec_PtVsPhi_BarMinus");
h->GetYaxis()->SetRange(4,33);
h->DrawCopy("box");
t.DrawTextNDC(0.17,0.15, "BARREL MU MINUS");
p =c->cd(2); p->SetLogy(); p->SetGrid(1,0);
h = (TH2D*)gROOT->FindObject("hHitSpec_PtVsPhi_BarPlus");
h->GetYaxis()->SetRange(4,32);
h->DrawCopy("box");
t.DrawTextNDC(0.17,0.15, "BARREL MU PLUS");
p =c->cd(3); p->SetLogy(); p->SetGrid(1,0);
h = (TH2D*)gROOT->FindObject("hHitSpec_PtVsPhi_EndMinus");
h->GetYaxis()->SetRange(4,32);
h->DrawCopy("box");
t.DrawTextNDC(0.17,0.15, "ENDCAP MU MINUS");
p =c->cd(4); p->SetLogy(); p->SetGrid(1,0);
h = (TH2D*)gROOT->FindObject("hHitSpec_PtVsPhi_EndPlus");
h->GetYaxis()->SetRange(4,32);
h->DrawCopy("box");
t.DrawTextNDC(0.17,0.15, "ENDCAP MU PLUS");
return c;
}
开发者ID:konec,项目名称:usercode-L1RpcTriggerAnalysis,代码行数:33,代码来源:plotsHitSpec.C
示例6: makeimage
void makeimage(const char *MacroName, const char *ImageName, const char *OutDir, bool cp)
{
gROOT->ProcessLine(Form(".x %s",MacroName));
if (cp) gSystem->Exec(TString::Format("cp %s %s/macros", MacroName, OutDir));
TIter iCanvas(gROOT->GetListOfCanvases());
TVirtualPad* pad = 0;
while ((pad = (TVirtualPad*) iCanvas())) {
pad->SaveAs(TString::Format("%s/html/%s",OutDir,ImageName));
}
}
开发者ID:leloulight,项目名称:rootsubtree,代码行数:12,代码来源:makeimage.C
示例7: plotTrk
void plotTrk() {
gStyle->SetOptStat(0);
gStyle->SetOptTitle(1);
char c[50];
c1->Clear();
c1->Divide(2,3);
for(int hid=0; hid<6; hid++){
TVirtualPad* pad = c1->cd(hid+1);
pad->SetLogy(lTrkHist[hid]);
double xmin, xmax, ymin=0.0, ymax=0.0;
if(lTrkHist[hid]==1) ymin=0.1;
for(int quad=0; quad<kFgtNumQuads; quad++){
sprintf(c,"Quad%1s-%s",cquad[quad],cTrkHist[hid]);
//printf("Getting %s\n",c);
TH1F *h = histTrk[quad][hid] = (TH1F*)file->Get(c);
xmin=h->GetXaxis()->GetXmin();
xmax=h->GetXaxis()->GetXmax();
double m=h->GetMaximum();
if(ymax<m) ymax=m;
//printf("quad=%d max=%6.1f ymax=%6.1f xmin=%6.1f xmax=%6.1f\n",quad,m,ymax,xmin,xmax);
}
ymax*=1.2; if(lTrkHist[hid]==1){ymax*=20.0;}
sprintf(c,"%s",cTrkHist[hid]);
TH2F *frame = new TH2F(c,c,1,xmin,xmax,1,ymin,ymax); frame->SetStats(0); frame->Draw();
for(int quad=0; quad<kFgtNumQuads; quad++){
TH1F *h=histTrk[quad][hid];
h->SetLineColor(colorQuad[quad]); h->SetLineWidth(3);
if(hid<5){
h->Draw("SAME");
float mean=h->GetMean();
if(hid==1 || hid==4) {sprintf(c,"%s mean=%6.4f",cquad[quad],mean);}
else {sprintf(c,"%s mean=%6.2f",cquad[quad],mean);}
}else{
h->SetMarkerColor(colorQuad[quad]); h->SetMarkerStyle(20); h->SetMarkerSize(1);
h->Draw("SAME PL");
sprintf(c,"Quad%s",cquad[quad]);
}
TText *t1;
float x1= 0.2, x2= 0.55;
float y1=0.8 - 0.07*quad;
float y2=0.8 - 0.07*(quad-2);
if(quad<2) { t1 = new TText(x1,y1,c); }
else { t1 = new TText(x2,y2,c); }
t1->SetNDC();
t1->SetTextSize(0.06);
t1->SetTextColor(colorQuad[quad]);
t1->Draw();
}
}
c1->Update();
save("trk");
}
开发者ID:star-bnl,项目名称:star-fgt,代码行数:52,代码来源:makeqaplot.C
示例8: DrawInPad
//#endif
void DrawInPad(TVirtualPad* p,
Int_t sub,
TH1* h,
Bool_t logy=false)
{
TVirtualPad* pp = p->cd(sub);
pp->SetRightMargin(0.02);
if (logy) pp->SetLogy();
TH1* copy = h->DrawCopy("hist");
copy->GetXaxis()->SetLabelSize(0.13);
copy->GetYaxis()->SetLabelSize(0.08);
copy->SetDirectory(0);
}
开发者ID:XuQiao,项目名称:HI,代码行数:14,代码来源:Analyze.C
示例9: splithist
void splithist(double ratio=0.2){
TVirtualPad* pmain = TVirtualPad::Pad();
double h = 1. - pmain->GetTopMargin() - pmain->GetBottomMargin();
double xlow = 0.; //gStyle->GetPadLeftMargin();
double xhigh = 1.; // - gStyle->GetPadRightMargin();
double ytop = 1.; //- gStyle->GetPadTopMargin();
double ybot = 0.; //gStyle->GetPadBottomMargin();
double ymid = pmain->GetBottomMargin() + ratio * h; //ybot + ratio * (ytop-ybot);
double yp1bot = ymid;
double yp2top = ymid;
TPad* p1 = new TPad(TString(pmain->GetName()) + "_1", pmain->GetTitle(),
xlow, yp1bot, xhigh, ytop);
p1->SetNumber(1);
TPad* p2 = new TPad(TString(pmain->GetName()) + "_2", pmain->GetTitle(),
xlow, ybot, xhigh, yp2top);
p2->SetNumber(2);
p1->SetFillStyle(4000);
p2->SetFillStyle(4000);
double p1h = ytop - yp1bot;
double p2h = yp2top - ybot;
/*
p1->SetTopMargin(pmain->GetTopMargin()/p1h);
p1->SetBottomMargin((ymid-yp1bot)/p1h);
p1->SetLeftMargin(pmain->GetLeftMargin());
p1->SetRightMargin(pmain->GetRightMargin());
p2->SetTopMargin((ymid-yp2top)/p2h);
p2->SetBottomMargin(pmain->GetBottomMargin()/p2h);
p2->SetLeftMargin(pmain->GetLeftMargin());
p2->SetRightMargin(pmain->GetRightMargin());
*/
p1->SetTopMargin(0.11);
p1->SetBottomMargin(0.);
p1->SetRightMargin(0.02);
p2->SetTopMargin(0.);
p2->SetBottomMargin(0.3);
p2->SetRightMargin(0.02);
p2->Draw();
p1->Draw();
pmain->Modified();
p1->cd();
}
开发者ID:UGent,项目名称:Tupel,代码行数:56,代码来源:macro_exc_inc.C
示例10: Inscrease3DScale
//_______________________________________________________________________________________
static void Inscrease3DScale()
{
TVirtualPad *thisPad = qPad();
if (thisPad) {
TView *view = thisPad->GetView();
if (!view) return;
Double_t min[3],max[3];
view->GetRange(min,max);
int i;
for (i=0;i<3; i++) {max[i] *= 0.8; min[i]=max[i]*0.1;}
view->SetRange(min,max);
thisPad->Modified();
thisPad->Update();
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:16,代码来源:PadControlPanel.C
示例11: Centered3DImages
//_______________________________________________________________________________________
static void Centered3DImages()
{
// This macro prints out the sizes of the sekected 3d pad
TVirtualPad *thisPad = qPad();
if (thisPad) {
TView *view = thisPad->GetView();
if (!view) return;
Double_t min[3],max[3];
view->GetRange(min,max);
int i;
for (i=0;i<3; i++) min[i]=-max[i];
view->SetRange(min,max);
thisPad->Modified();
thisPad->Update();
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:17,代码来源:PadControlPanel.C
示例12: exec2
void exec2()
{
if (!gPad) {
Error("exec2", "gPad is null, you are not supposed to run this macro");
return;
}
TObject *select = gPad->GetSelected();
if(!select) return;
if (!select->InheritsFrom(TH2::Class())) {gPad->SetUniqueID(0); return;}
gPad->GetCanvas()->FeedbackMode(kTRUE);
//erase old position and draw a line at current position
int pyold = gPad->GetUniqueID();
int px = gPad->GetEventX();
int py = gPad->GetEventY();
float uxmin = gPad->GetUxmin();
float uxmax = gPad->GetUxmax();
int pxmin = gPad->XtoAbsPixel(uxmin);
int pxmax = gPad->XtoAbsPixel(uxmax);
if(pyold) gVirtualX->DrawLine(pxmin,pyold,pxmax,pyold);
gVirtualX->DrawLine(pxmin,py,pxmax,py);
gPad->SetUniqueID(py);
Float_t upy = gPad->AbsPixeltoY(py);
Float_t y = gPad->PadtoY(upy);
//create or set the new canvas c2
TVirtualPad *padsav = gPad;
TCanvas *c2 = (TCanvas*)gROOT->GetListOfCanvases()->FindObject("c2");
if(c2) delete c2->GetPrimitive("Projection");
else c2 = new TCanvas("c2");
c2->cd();
//draw slice corresponding to mouse position
TH2 *h = (TH2*)select;
Int_t biny = h->GetYaxis()->FindBin(y);
TH1D *hp = h->ProjectionX("",biny,biny);
char title[80];
sprintf(title,"Projection of biny=%d",biny);
hp->SetName("Projection");
hp->SetTitle(title);
hp->Fit("gaus","ql");
c2->Update();
padsav->cd();
}
开发者ID:MycrofD,项目名称:root,代码行数:47,代码来源:exec2.C
示例13: HighlightFragment
//______________________________________________________________________________
void HighlightFragment()
{
// TODO templates: what and how highlighing
if (!gPad || !gr) return;
// not correct
TVirtualPad *ph = (TVirtualPad *)gPad->FindObject("ph");
if (!ph) {
ph = new TPad("ph", "ph", 0.0, 0.2, 1.0, 1.0);
ph->SetFillColor(kBlue-10);
ph->Draw();
}
Int_t ih = gr->GetHighlightPoint();
if (ih == -1) return;
TRsnFragment *frag = group->FragmentAt(ih);
if (!frag) return;
TVirtualPad *save = gPad;
ph->cd();
TObject *element = frag->FindElement(tagname);
if (!element) ph->Clear();
else element->Draw();
save->cd();
}
开发者ID:musinsky,项目名称:RsnResults,代码行数:26,代码来源:Highlight.C
示例14: QtPrintDialog
void QtPrintDialog(TVirtualPad *pad = 0) {
TVirtualPad *pd = pad;
if (!pd) pd = TPad::Pad(); // ->GetCanvas();
if (pd) {
QPrinter p;
// Open the Qt "Setup Printer" dialog to configure the "QPrinter p" object
QPrintDialog printDialog(&p);
if (printDialog.exec() == QDialog::Accepted) {
Int_t id = pd->GetPixmapID();
QPixmap *pix = (QPixmap *)(TGQt::iwid(id));
QPainter pnt(&p);
pnt.drawPixmap(0,0,*pix);
}
} else {
printf(" No TCanvas has been selected yet! \n");
}
}
开发者ID:Y--,项目名称:root,代码行数:18,代码来源:QtPrintDialog.C
示例15: AdjustScales
//_______________________________________________________________________________________
static void AdjustScales()
{
TVirtualPad *thisPad = qPad();
if (thisPad) {
TView *view = thisPad->GetView();
if (!view) return;
Double_t min[3],max[3];
view->GetRange(min,max);
int i;
Double_t maxSide = 0;
// Find the largest side
for (i=0;i<3; i++) maxSide = TMath::Max(maxSide,max[i]-min[i]);
//Adjust scales:
for (i=0;i<3; i++) max[i] += maxSide - (max[i]-min[i]);
view->SetRange(min,max);
thisPad->Modified();
thisPad->Update();
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:20,代码来源:PadControlPanel.C
示例16: AddGrid
//_______________________________________________________________________________________
static void AddGrid()
{
TVirtualPad *thisPad = qPad();
if (thisPad) {
TView *view = thisPad->GetView();
if (!view) return;
Double_t min[3],max[3];
view->GetRange(min,max);
TList *list = thisPad->GetListOfPrimitives();
TString histName = thisPad->GetName();
TH2F *m_DummyHist = 0;
const Char_t *dummyName = "Axis3D";
histName += dummyName;
m_DummyHist = list->FindObject(histName.Data());
if (!m_DummyHist) {
m_DummyHist = new TH2F(histName.Data(),"",1,min[0],max[0],1,min[1],max[1]);
m_DummyHist->SetDirectory(0);
m_DummyHist->Draw("surf,same");
}
m_DummyHist->GetXaxis()->SetLimits(min[0],max[0]);
m_DummyHist->GetYaxis()->SetLimits(min[1],max[1]);
m_DummyHist->GetZaxis()->SetLimits(min[2],max[2]);
thisPad->Modified();
thisPad->Update();
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:31,代码来源:PadControlPanel.C
示例17: fixsplithist
void fixsplithist(TH1* htop, TH1* hbot){
TVirtualPad* pmain = TVirtualPad::Pad()->GetCanvas();
if(!pmain) return;
TVirtualPad* p1 = pmain->cd(1);
TVirtualPad* p2 = pmain->cd(2);
if(!p1 || !p2) return;
double scale = p1->GetHNDC() / p2->GetHNDC();
double s = htop->GetYaxis()->GetLabelSize() * scale;
double ss = htop->GetYaxis()->GetLabelSize();
hbot->GetYaxis()->SetLabelSize(s);
htop->GetYaxis()->SetLabelSize(ss);
s = htop->GetYaxis()->GetTitleSize() * scale;
hbot->GetYaxis()->SetTitleSize(s);
hbot->GetYaxis()->SetTitleOffset(0.5);
htop->GetYaxis()->SetTitleOffset(0.5);
s = htop->GetYaxis()->GetLabelOffset() * scale;
s = htop->GetXaxis()->GetLabelSize() * scale;
hbot->GetXaxis()->SetLabelSize(s);
htop->GetXaxis()->SetLabelSize(0.);
s = htop->GetXaxis()->GetTitleSize() * scale;
hbot->GetXaxis()->SetTitleSize(s);
s = htop->GetXaxis()->GetLabelOffset() * scale;
hbot->GetXaxis()->SetLabelOffset(s);
hbot->GetYaxis()->SetNdivisions(5);
}
开发者ID:UGent,项目名称:Tupel,代码行数:36,代码来源:macro_exc_inc.C
示例18: makeimage
void makeimage(const char *MacroName, const char *ImageName, const char *OutDir, bool cp, bool py)
{
if (!py) gROOT->ProcessLine(Form(".x %s",MacroName));
else gROOT->ProcessLine(Form("TPython::ExecScript(\"%s\");",MacroName));
if (cp) {
TString MN = MacroName;
Int_t i = MN.Index("(");
Int_t l = MN.Length();
if (i>0) MN.Remove(i, l);
gSystem->Exec(TString::Format("cp %s %s/macros", MN.Data(), OutDir));
}
TIter iCanvas(gROOT->GetListOfCanvases());
TVirtualPad* pad = 0;
int ImageNum = 0;
while ((pad = (TVirtualPad*) iCanvas())) {
ImageNum++;
pad->SaveAs(TString::Format("%s/html/pict%d_%s",OutDir,ImageNum,ImageName));
}
FILE *f = fopen("NumberOfImages.dat", "w");
fprintf(f,"%d\n",ImageNum);
fclose(f);
}
开发者ID:A2-Collaboration,项目名称:root,代码行数:24,代码来源:makeimage.C
示例19: setLogy
/* *********** multi-pad canvases ******************** */
void setLogy(TCanvas *c, bool on = true) {
c->Modified();
c->Update();
//gSystem->ProcessEvents();
TObject *obj;
TIter next(c->GetListOfPrimitives());
while ((obj = next())) {
if (obj->InheritsFrom(TVirtualPad::Class())) {
TVirtualPad *pad = (TVirtualPad*)obj;
pad->Modified();
pad->Update();
pad->SetLogy(on);
pad->Modified();
pad->Update();
}
}
}
开发者ID:evan-phelps,项目名称:phys-ana-omega,代码行数:18,代码来源:rootutils.C
示例20: RotateView
//_______________________________________________________________________________________
static void RotateView(Float_t phi, Float_t theta, TVirtualPad *pad=0)
{
TVirtualPad *thisPad = pad;
if (!thisPad) thisPad = qPad();
if (thisPad) {
TView *view = thisPad->GetView();
if (view) {
Int_t iret;
Float_t p = phi;
Float_t t = theta;
view->SetView(p, t, 0, iret);
thisPad->SetPhi(-90-p);
thisPad->SetTheta(90-t);
thisPad->Modified();
thisPad->Update();
}
}
}
开发者ID:star-bnl,项目名称:star-macros,代码行数:19,代码来源:PadControlPanel.C
注:本文中的TVirtualPad类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论