Hi Martin, it turned out to be a bug in the TH1 assignment/copy operator. Fix is now in CVS and your test works. Cheers, Fons. Rene Brun wrote: > > Hi Martin, > > You are deleting your histogram after pMult_[i] = *pDum; > You then have an illegal access when you attempt to Fill it. > > Rene Brun > > Martin Karlsson wrote: > > > > Dear Rooters, > > > > I'm having problems with filling of TH1F. > > > > I'm working on an application in which a bunch of histograms are declared as > > 'pointer to array'. > > Before, I used v. 2.23/12 and it worked without any problems; now, however I > > have upgraded to version > > 3.00/06 and then when I run the program it crashes (seg. violation). It turns > > out that the crash occurs when a Fill() call is done and it is an over- or > > under flow that is to be filled. > > > > The following test program illustrates the problem: > > //////////////////////////////// > > int main() > > { > > TROOT litta("try","try "); > > > > TH1F simp; > > TH1F * pMult_=NULL; > > > > char hname[100], htitle[100]; > > > > pMult_ = new TH1F[2]; > > for( Int_t i = 0; i < 2; i++) > > { > > sprintf( hname, "pMult_%d", i); > > sprintf( htitle, "pointer to Mult %d", i); > > TH1F * pDum = new TH1F(hname, htitle, 11, -0.5, 10.5); > > pMult_[i] = *pDum; > > delete pDum; > > } > > > > simp = TH1F("simp","simp", 11, -0.5, 10.5); > > > > for(Int_t i = 0; i < 13; i++) > > { > > pMult_[0].Fill(i); > > pMult_[1].Fill(i); > > } > > > > delete [] pMult_; > > > > return 0; > > } > > ///////////////////////////// > > > > If I compile this (with the --new option sent to root-config (as I'm using a > > TMapFile in my application)) and then run it, the Fill() call with under- or > > overflow will crash (seg violation) the program. > > > > I can get the small test program to work if I do one of the following: > > *compile WITHOUT (sic) -- new flag > > *just run as a macro > > *use v. 2.23/12 > > *remove the non-pointer-TH1F simp > > *change the number of bins to say <11 or > 12 !!! > > > > So, I'm a bit confused about this behavior... of course I could re-declare all > > my histograms but that's not fun and I do like to know what I'm doing wrong. > > So if anyone has a clue I would very much appreciate being enlightened. > > > > Best Regards, > > Martin > > > > P.S. I use RH 6.1 on a SMP i686 (two processors) and with egcs-1.1.2 > > > > > > > > -- > > Martin Karlsson > > Department of Nuclear Physics, University of Lund > > Box 118, SE-221 00 Lund, Sweden > > Phone: +46 (0)46 222 96 77 or +46 (0)736 87 84 15 > > Fax: +46 (0)46 222 76 29 > > > > -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET