Dear rooters, I have an online histogram need to be displayed and it has been done in a right way. But for some reason which I don't know I am not able to update the histogram with the Update function of TH1 class. In order to update the histogram on corrent pad I have to delete and then recreate the Canvas. My source code is as following. Could you give me any help? -------------------------------------------------------------------------- Tcanvas *smap; smap = (TCanvas*)gROOT->GetListOfCanvases()->FindObject(obj->GetName()); if (smap) { // hope not delete smap if already exist smap->Delete(); smap = new TCanvas(obj->GetName(), obj->GetName()); // } else { smap = new TCanvas(obj->GetName(), obj->GetName()); } smap->cd(); objs = gDirectory->Get(obj->GetName()); if (objs) { if (objs->IsA() == TH1F::Class()) { //__________Get histo from host netm = SDPtr->GetNMPtr(); if (netm) { netm->sendget((char*)objs->GetName(), smap); smap->Update(); } // } } /**********************************************************/ void NetManager::sendget(char* hname, TPad *fig) /**********************************************************/ { TMessage* mess; int len; // the client tells the server the histo name socket->Send(hname, kMESS_STRING); // now it receives such histo len = socket->Recv(mess); if (len<=0) { cout << "ERROR in Recv histogram!" << endl; } else { if (mess->What() == kMESS_OBJECT) { //char answer[3]; if (mess->IsA() == TH1F::Class()){ TH1F *h = (TH1F*) mess->ReadObject(mess->GetClass()); fig->cd(); h->Draw(); } } else if (mess->What() == kMESS_STRING){ char str[64]; mess->ReadString(str, 64); cout << "ERROR: " << str << endl; } delete mess; } } MMMMMMMMMMMMMMMMMMMMMMMMMMMMM M Wen Mei M M DAQ-KLOE-LNF-INFN M via E. Fermi 40 M I-00044 Frascati (RM) W Italy W W tel: 94032753 W W WWWWWWWWWWWWWWWWWWWWWWWWWWWWW
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:38 MET