#include "hprojection.h"
#include "TH1.h"
#include "TH2.h"
#include "TROOT.h"
ClassImp(HProjection)
void HProjection::project(TCanvas *p, Int_t canvid) {
if(!p) return;
TObject *select = p->GetSelected();
if(!select) return;
if(!select->InheritsFrom("TH2")) { p->SetUniqueID(0); return; }
if(strcmp(select->GetOption()," ")) { p->SetUniqueID(0); return; }
p->FeedbackMode(kTRUE);
Int_t pyold = p->GetUniqueID();
Int_t py = p->GetEventY();
Float_t uxmin = p->GetUxmin();
Float_t uxmax = p->GetUxmax();
Int_t pxmin = p->XtoAbsPixel(uxmin);
Int_t pxmax = p->XtoAbsPixel(uxmax);
if(pyold) gVirtualX->DrawLine(pxmin,pyold,pxmax,pyold);
gVirtualX->DrawLine(pxmin,py,pxmax,py);
p->SetUniqueID(py);
Float_t upy = p->AbsPixeltoY(py);
Float_t y = p->PadtoY(upy);
TCanvas *c2 = 0;
if(canvid == 1)
c2 = (TCanvas*)gROOT->GetListOfCanvases()->FindObject("proj");
if(canvid == 2)
c2 = (TCanvas*)gROOT->GetListOfCanvases()->FindObject("c2");
if(c2 && c2->GetPrimitive("Projection") &&
c2->GetPrimitive("Projection")->IsOnHeap())
delete c2->GetPrimitive("Projection");
if(!c2) c2 = new TCanvas("c2","c2",0,0,500,500);
c2->cd();
TH2* h = (TH2*)select;
Int_t biny = h->GetYaxis()->FindBin(y);
TH1D *hp = h->ProjectionX("",biny,biny);
Char_t title[80];
sprintf(title,"Projection of biny=%d",biny);
hp->SetName("Projection");
hp->SetTitle(title);
hp->Draw();
c2->Update();
}
Last change: Sat May 22 13:07:42 2010
Last generated: 2010-05-22 13:07
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.