[ROOT] several pads

From: Vincent Régnard (regnard@ganil.fr)
Date: Tue May 21 2002 - 03:03:01 MEST


Hi,
I have 1D histos stored in a .root files and I would like to plot them in 
different pads within a canvas. I manage to do so (see how in the following 
lines). I am running into trouble when I want to modify the pads properties.
I would like to set xlogscale and ylogscale for each pad and modify the 
xaxislabelsize but cannot manage to obtain the pads pointers.
 I have been trying using the GetSelected() method but it 
revealed unsuccessfull leading to the following error message in cint:

"Error: illegal pointer to class object tmpcan 0x0 331  FILE:multiview.C 
LINE:40
*** Interpreter error recovered ***"
I saw GetSelcted() returns a TVirtualPad , I did not understand the goal of 
this class, is there a way to convert such an object into a standard TPad ?

If you have any idea how I could sort out this I would be thankfull.

_______________________________________________
{

/* multiview.C*/
int entires;
NB_MAX_HIST0 = 25;
int index = 0;
int i;
TH1F * h1_array[25];
/*executable statements*/
TIter nextkey( f->GetListOfKeys() );
TKey * key;

printf("Max number of histo : %d\n",25);

while ( (key = (TKey*)nextkey()) && (index < 25))
{/*store histos in an array*/
    h1_array[index] = (TH1F*)key->ReadObj();

    index ++;
}

/*set the number of pads*/
nb_x = (int)sqrt(index);
nb_y = (int)sqrt(index);
printf("nb_x * nb_y = %d \n",nb_x*nb_y);
if ((nb_x * nb_y) < index) {nb_y+=1;};
printf("nb_x * nb_y = %d \n",nb_x*nb_y);
if ((nb_x * nb_y) < index) {nb_x+=1;};
printf("Creating a %d * %d pad\n",nb_x,nb_y);

TCanvas * can = new TCanvas("can","canvas");
can->Divide(nb_x,nb_y);

/*draw stuff in different pads*/
for (i=1;i<=index;i++)
{
  TPad * tmpcan = new TPad();
  can->cd(i);
  //tmpcan=(TPad*)can->GetSelected();
  //tmpcan->SetLogx();
 
  h1_array[i-1]->Draw();
  delete tmpcan;
}

printf("Read %d histos\n",index);


printf("Exiting \n");
/*end of program*/
}

_____________________________________________
-- 

  ,           ,
 /             \
((__-^^-,-^^-__))
 `-_---' `---_-'
  `--|o` 'o|--'
     \  `  /
      ): :(
      :o_o:
       "-"   http://www.gnu.org



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:53 MET