Hello rooters, during an analysis loop, I want to fill one histogram, draw it, reset it and fill it with a different value, draw it again. It works fine, if I do it on the command line, but if I try to do it in a macro, it draws the histogram with the last value in all of the pads. See macro below. This behaviour occurs, because TH1::Draw() only attaches a reference to the pad. According to the documentation, the effective drawing is performed when the canvas receives a signal to be painted, which is after a carriage return, in this case at the end of the macro. Is there a way to invoke the drawing of the pad before that? Another effect is, that if the histogram is drawn with different values in different pads and one invokes TCanvas::Print() all histograms are replaced with the histogram containing the latest value. Is there a way to work with just one histogram? cheers, Judith { TCanvas *cw; if(!cw) cw = new TCanvas("test","test",700,700); cw->Clear(); cw->Divide(1,2); TH1D ht("ht","ht",4,0.,3.); cw->cd(1); ht.Fill(0.); ht.Draw(); cw->cd(2); ht.Reset(); ht.Fill(2.); ht.Draw(); }
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:39 MET