Hello, I'm looking for the method which would give me the number of subpads which are attached to a given pad... I tried: TCanvas* Current = gPad->GetCanvas(); (From this I get a pointer to the Canvas in which my gPad is) then: int_t Total_Number_of_Pads = ((TList*) Current->GetListOfPrimitives())->GetSize(); This happen to give me a number which is actually the number of pads attached to the canvas... however, when I take a random Pad in this canvas and divide it into subpads (lets say 4 = (2,2)) and with the following recursive program I try to put all of the 1D spectra in a LinY scale: Linyall() { // Auto Lin in Y direction for all Pads belonging // to the canvas in which gPad is active Int_t Current_Pad = 0, Pads = 0; TCanvas* Current = gPad->GetCanvas(); Int_t Pad_Number = gPad->GetNumber(); Pads = ((TList*) Current->GetListOfPrimitives())->GetSize(); Current->cd(Current_Pad); if (Pads==0) { gPad->SetLogy(0); gPad->Modified(); } else gPad->cd(Current_Pad++); while (Pads>0) { Pads = 0 ; Pads = ((TList*) gPad->GetListOfPrimitives())->GetSize(); if (Pads==0) { gPad->SetLogy(0); gPad->Modified(); } else { Current_Pad=0; gPad->cd(Current_Pad++); } } Current->cd(Pad_Number); gPad->Modified(); } The program seems to loop endlessly, the reason is in fact that the command: Pads = ((TList*) gPad->GetListOfPrimitives())->GetSize(); doesn't give the number of Subpads in the Pads anymore... So, I suspect there is a method that I missed which return the number of SubPads into a given Pad. Thanks for any help ! Fred (TRIUMF - Canada)
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:41 MET