Hello, I'm looking for a "true" Clone function for TH1F. To illustrate what I mean, here is a part of my code (fPDF is a TH1F* member variable of QDis): int QDis::LoadPDF(const char *aPDFFileName, const char *aPDFHistogramName) { // Loads a PDF histogram from a file with the proper attributes. ClearPDF(); TFile *f = new TFile(aPDFFileName, "READ"); TH1F* th1fbuf = dynamic_cast<TH1F*>(f->Get(aPDFHistogramName)); if(th1fbuf){ fPDF=dynamic_cast<TH1F*>(th1fbuf->Clone()); } f->Close(); delete f; return (th1fbuf && fPDF); } void QDis::ClearPDF(){ if(fPDF){ delete fPDF; fPDF=NULL; } } Here is a simple main() function: int main(); int main() { QDis mydis; mydis.LoadPDF("observed.root","observed"); mydis.ClearPDF(); } Since the instance of fPDF seems to share some pointers with the instance of th1fbuf (and of TFile *f), I get an error message when I try to call ClearPDF() in main(), because f has been deleted in LoadPDF. So, is there a "true" Clone() member function for TH1F? I've tried the Copy() member function, but I get the same error: *** Break *** segmentation violation Thank you! Pierre-Luc Drouin SNO, Carleton University
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:01 MET