[ROOT] How Do we Access a PAD define in one class?

From: zaldy (zaldy@neutrino.kek.jp)
Date: Mon Jul 07 2003 - 18:53:38 MEST


Dear ROOT Experts,

I want to understand how ROOT implemets accessing a specific pad which is  
defined in some class primitives and access at another class methods.

For instance, I have 3 classes A, B, and C. 
Say, A defines all that is  necessary for the creation of a Canvases/Pads, 
while B and C have only methods which dump the information to the 
active pad via: 

              gPad->GetThePadNeeded();

I found this mailing list useful to start with:
http://root.cern.ch/cgi-bin/print_hit_bold.pl/root/roottalk/roottalk02/4941.html?GetPad#first_hit

IN MY UNDERSTANDING of THESE LINES,

//---------------------------------------------------------------<========
To access a subpad of a pad, eg subpad 4 of pad with name "p1", do:
  TPad *subpad = (TPad*)pad->GetPrimitive("p1_4");

To access a subpad N of a pad in general, you can do (eg in a loop):
  TPad *subpad=(TPad*)pad->GetPrimitive(Form(%s_%d",pad->GetName(),N));

In the development version in CVS, I have added a new function
   TVirtualPad  *TVirtualPad::GetPad(Int_t subpadnumber);
such that you can do
   TPad *subpad = pad->GetPad(N);
//-----------------------------------------------------------------<=======

THE USER HAS CREATED A METHOD THAT DIVIDES THE PAD INTO say, 8 pads LIKE: 

           TheMostWantedPad->Divide(2,4); 
           TheMostWantedPad->cd(1);
           ... 
           TheMostWantedPad->cd(2);
           ... 
           TheMostWantedPad->cd(8);  

           Then one can access a specific pad, because there is always 
           this method:    
           TheMostWantedPad->cd(Pad_Number); 

THE PAD_NUMBER HERE IS IMPORTATNT AND IS USED TO TIE UP AGAIN THE PREVIOUS 
(say, the 5th pad) PAD OF INTEREST.

Is this correct?

                  --------------------------
What if the user do not use the Divide method (like in the "canvas.C" at 
tutorial section. Just create the pad, then activate it using 
padWhateverName->cd(), without an integer argument as an ID to this Pad) 
), how do we access say the 5th pad if one wants to dump some data 
coming from another class object?

Thank you very much.

-- 

--------------------------------------------------------
                   Zaldy A. Nawang 
                   PS Users Room 2
                   Yon Gokan, 
                   E362, Neutrino Group, 
                   IPNS, KEK, 
                   Japan 
                    
                   e-mail: zaldy@neutrino.kek.jp
                   Tel. No. : (81) 029864 - 5387
--------------------------------------------------------



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET