Re: [ROOT] list contour problem

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Mar 08 2004 - 17:21:00 MET


Hi Gabi,

You must call 
  c1->Update();
after the line
  h2->Draw("list cont");

see Users Guide Chapter 9, section "Updating the pad"

Rene Brun

Gabriel Tabacaru wrote:
> 
> Hi everbody!
> 
> I have a 2-d histogram and I'd like to get the graphs corresponding to
> the contour lines. According to the documentation , making
> h2->Draw("cont list") should save me these objects (contours) into
> Specials.
> The browser can see the Specials "contours" but double click on one of the
> graphs break(Segmentation violation) the root.
> Trying to get the graphs objects via macro look like impossible for the
> moment. Does anybody have a solution for this ?
> 
> I think that this problem was reported before but I can't figure out a
> good answer. I have root 4.00/02 CVS on PC Pentium 4 RedHat 9.
> 
> Regards,
> Gabi
> --
> ===============================================
> Dr. Gabriel Tabacaru                          =
> Cyclotron Institute - Texas A&M University    =
> Univ. Drive                                   =
> MS 3366, College Station, Texas 77843-3366    =
> USA                                           =
> Tel.  : ++ 979 845 1411                       =
> e-mail: tabacaru@comp.tamu.edu                =
>         tabacaru@tamu.edu                     =
> ===============================================
> =================================================================
> MACRO test_contour.C
> {
> gROOT->Reset();
> 
> TH2F *h2=new TH2F("h2","h2",30,-0.5,0.5,30,-0.5,0.5);
> for(Int_t i=0;i<1000;i++){
>   Float_t x=gRandom->Gaus(0,0.2);
>   Float_t y=gRandom->Gaus(0.2,0.2);
>   h2->Fill(x,y);
> }
> TCanvas *c1=new TCanvas("c1","c1",600,600);
> h2->Draw("list cont");
> 
> TObjArray *contours=
> (TObjArray*)gROOT->GetListOfSpecials()->FindObject("contours");
> Int_t nc=contours->GetSize();
> cout<<nc<<endl;
> //TList *list=(TList*)contours->At(3);
> //TGraph *gr1=(TGraph*)list->First();
> }
> root [0] .x test_contour.C
> Processing test_contour.C...
> Error: illegal pointer to class object contours 0x0 85  FILE:test_contour.C
> LINE:16
> *** Interpreter error recovered ***
> root [1] TBrowser b
>         Double click on root->Specials->Contours->TList->Graph
> root [2]
>  *** Break *** segmentation violation
>  Generating stack trace...
>  0x41275054 in TRootBrowser::ProcessMessage(long, long, long) + 0xe66 from
> /opt/root/root/lib/libGui.so
>  0x412065a0 in TGFrame::HandleClientMessage(Event_t*) + 0x36 from
> /opt/root/root/lib/libGui.so
>  0x4120914e in TGMainFrame::HandleClientMessage(Event_t*) + 0x22 from
> /opt/root/root/lib/libGui.so
>  0x41206331 in TGFrame::HandleEvent(Event_t*) + 0x1fd from
> /opt/root/root/lib/libGui.so
>  0x411eddd3 in TGClient::HandleEvent(Event_t*) + 0xd1 from
> /opt/root/root/lib/libGui.so
>  0x411edac7 in TGClient::ProcessOneEvent() + 0x71 from
> /opt/root/root/lib/libGui.so
>  0x411edb59 in TGClient::HandleInput() + 0x2d from
> /opt/root/root/lib/libGui.so
>  0x411ec65a in TGInputHandler::Notify() + 0x1e from
> /opt/root/root/lib/libGui.so 0x401c6909 in
> TUnixSystem::DispatchOneEvent(bool) + 0x3b from
> /opt/root/root/lib/libCore.so
>  0x4013553c in TSystem::InnerLoop() + 0x18 from
> /opt/root/root/lib/libCore.so
>  0x401354e1 in TSystem::Run() + 0x6f from /opt/root/root/lib/libCore.so
>  0x400e630d in TApplication::Run(bool) + 0x2d from
> /opt/root/root/lib/libCore.so 0x40dd9697 in TRint::Run(bool) + 0x31d from
> /opt/root/root/lib/libRint.so
>  0x08048861 in main + 0x71 from /opt/root/root/bin/root.exe
>  0x42015574 in __libc_start_main + 0xe4 from /lib/tls/libc.so.6
>  0x08048761 in _Unwind_Resume + 0x31 from /opt/root/root/bin/root.exe
> Root >
>  *** Break *** segmentation violation
>  Generating stack trace...
>  0x412065a0 in TGFrame::HandleClientMessage(Event_t*) + 0x36 from
> /opt/root/root/lib/libGui.so
>  0x4120914e in TGMainFrame::HandleClientMessage(Event_t*) + 0x22 from
> /opt/root/root/lib/libGui.so
>  0x41206331 in TGFrame::HandleEvent(Event_t*) + 0x1fd from
> /opt/root/root/lib/libGui.so
>  0x411eddd3 in TGClient::HandleEvent(Event_t*) + 0xd1 from
> /opt/root/root/lib/libGui.so
>  0x411edac7 in TGClient::ProcessOneEvent() + 0x71 from
> /opt/root/root/lib/libGui.so
>  0x411edb59 in TGClient::HandleInput() + 0x2d from
> /opt/root/root/lib/libGui.so
>  0x411ec65a in TGInputHandler::Notify() + 0x1e from
> /opt/root/root/lib/libGui.so 0x401c6909 in
> TUnixSystem::DispatchOneEvent(bool) + 0x3b from
> /opt/root/root/lib/libCore.so
>  0x4013553c in TSystem::InnerLoop() + 0x18 from
> /opt/root/root/lib/libCore.so
>  0x401354e1 in TSystem::Run() + 0x6f from /opt/root/root/lib/libCore.so
>  0x400e630d in TApplication::Run(bool) + 0x2d from
> /opt/root/root/lib/libCore.so 0x40dd9697 in TRint::Run(bool) + 0x31d from
> /opt/root/root/lib/libRint.so
>  0x08048861 in main + 0x71 from /opt/root/root/bin/root.exe
>  0x42015574 in __libc_start_main + 0xe4 from /lib/tls/libc.so.6
>  0x08048761 in _Unwind_Resume + 0x31 from /opt/root/root/bin/root.exe
> Root >



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET