Hi, I am trying to make a class to show the band defined by a MC using different of the tuning parameters. I do this via inheriting from TPolyLine: ---------- TBand.h ---------------- #ifndef TBAND_H #define TBAND_H #if !defined(__CINT__) || defined(__MAKECINT__) #include <TPolyLine.h> #endif class TBand : public TPolyLine{ Int_t fND; // Number of default Points Float_t *fXD; Float_t *fYD; public: TBand(); TBand(TH1F *H); ~TBand(); void AddHisto(TH1F *H); void DefaultHisto(); }; #endif // A constructor TBand::TBand(){ fND=0; fXD=0; fYD=0; } ------------ TBand.C ------------------ #include "TBand.h" TBand::TBand(TH1F *H){ Float_t *fx,*fy; int i; DefaultHisto(H); fN=2*fND; fx=(Float_t *)new Float_t[fN]; fy=(Float_t *)new Float_t[fN]; cout << "2. " << fx << " " << fX << endl; fX=(Float_t *)fx; fY=(Float_t *)fy; cout << "1. " << fx << " " << fX << endl; for(i=1; i<= fND ; i++){ fx[i-1] =H->GetBinCenter(i); fx[fN-i] = H->GetBinCenter(i); fY[i-1] = fY[fN-i] = H->GetBin(i); } } void TBand::DefaultHisto(TH1F *H){ fND=H->GetNbinsX(); if(!fND) return; fXD=(Float_t *)new Float_t[fND]; fYD=(Float_t *)new Float_t[fND]; for(int i=1; i<= fND ; i++){ fXD[i]=H->GetBinCenter(i); fYD[i]=H->GetBin(i); } } ----------------------------------------------- Now starting the code and looking what is written into the protected data member fX one sees: root [0] .L TBand.C root [1] TFile f("gen/qcdins_new.root") root [2] h133->Draw("bsph >> hi") // Make some histo root [5] TBand tb(hi) // Init Band 1. 0x209895b8 0xc8 2. 0x209895b8 0x209898e8 ????????????????????/ which gives a nice segmentation violation some lines later. Obviously the class can not overwrite the protected data member! Could someone help me, please? Cheers, Birger /------------------------------------------------------------\ | Birger Koblitz koblitz@mail.desy.de | | Max-Planck-Institut fuer Physik | | (Werner Heisenberg-Institut) | | DESY-FH1K Tel. (40) 8998-3971 | | Notkestr. 85 | | D-22603 HAMBURG | \------------------------------------------------------------/
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:26 MET