Rene,
I'm wondering of the problem I've observed is a
threading problem: The difference between the mfc
and console applications is that in mfc, I use
multi-threaded dll runtime library and with the
console app, I use the single threaded non-dll
runtime library. I have included a file which
includes my root wrapper class:
main.cpp - console program, that works just fine
rawdata.h - definitition of raw data file
wrapper.h - definition of root wrapper class
wrapper.cpp - root wrapper class
Thanks,
Ed
> -----Original Message-----
> From: Ed Oltman
> Sent: Wednesday, November 13, 2002 5:26 PM
> To: Rene Brun
> Cc: Roottalk@Pcroot. Cern. Ch
> Subject: RE: [ROOT] trouble reading a large root file
>
>
> Hello Rene,
> The application that generates the root file is an MFC application - I
> could not call m_Ntuple->Print(). So, I built a console application and
> ran that. Strangly enough, the root code performed as it was expected -
> I was able to add a m_Ntuple->Print() and got the following. When I went
> to read the ntuple in to root, everything worked fine.
>
> Very puzzling..
>
> Ed
>
>
> the current keyboard layout is 437
> ******************************************************************
> ************
> *Tree :nt : Raw
> *
> *Entries : 55798842 : Total = 2013592842 bytes File Size =
> 697021417 *
> * : : Tree compression factor = 2.89
> *
> ******************************************************************
> ************
> *Br 0 :x :
> *
> *Entries : 55798842 : Total Size= 223720044 bytes File Size =
> 119308739 *
> *Baskets : 6987 : Basket Size= 32000 bytes Compression=
> 1.87 *
> *.................................................................
> ...........*
> *Br 1 :y :
> *
> *Entries : 55798842 : Total Size= 223720044 bytes File Size =
> 120235511 *
> *Baskets : 6987 : Basket Size= 32000 bytes Compression=
> 1.86 *
> *.................................................................
> ...........*
> *Br 2 :tof :
> *
> *Entries : 55798842 : Total Size= 223734094 bytes File Size =
> 144517194 *
> *Baskets : 6988 : Basket Size= 32000 bytes Compression=
> 1.55 *
> *.................................................................
> ...........*
> *Br 3 :z :
> *
> *Entries : 55798842 : Total Size= 223720044 bytes File Size =
> 22759189 *
> *Baskets : 6987 : Basket Size= 32000 bytes Compression=
> 9.82 *
> *.................................................................
> ...........*
> *Br 4 :v :
> *
> *Entries : 55798842 : Total Size= 223720044 bytes File Size =
> 11260843 *
> *Baskets : 6987 : Basket Size= 32000 bytes Compression=
> 19.85 *
> *.................................................................
> ...........*
> *Br 5 :delta :
> *
> *Entries : 55798842 : Total Size= 223748082 bytes File Size =
> 57303282 *
> *Baskets : 6988 : Basket Size= 32000 bytes Compression=
> 3.90 *
> *.................................................................
> ...........*
> *Br 6 :pulse :
> *
> *Entries : 55798842 : Total Size= 223748082 bytes File Size =
> 33798419 *
> *Baskets : 6988 : Basket Size= 32000 bytes Compression=
> 6.62 *
> *.................................................................
> ...........*
> *Br 7 :vap :
> *
> *Entries : 55798842 : Total Size= 223734094 bytes File Size =
> 849142 *
> *Baskets : 6988 : Basket Size= 32000 bytes Compression=
> 263.31 *
> *.................................................................
> ...........*
> *Br 8 :erate :
> *
> *Entries : 55798842 : Total Size= 223748082 bytes File Size =
> 186360721 *
> *Baskets : 6988 : Basket Size= 32000 bytes Compression=
> 1.20 *
> *.................................................................
> ...........*
> Press any key to continue
>
> > -----Original Message-----
> > From: Rene Brun [mailto:brun@pcbrun.cern.ch]
> > Sent: Wednesday, November 13, 2002 11:59 AM
> > To: Ed Oltman
> > Cc: Roottalk@Pcroot. Cern. Ch
> > Subject: Re: [ROOT] trouble reading a large root file
> >
> >
> > Hi Ed,
> >
> > It looks like this file has been overwritten at some point.
> > To help understanding this problem, could you
> > -add the statement m_Ntuple->Print() at the end of the job
> > producing the ntuple, just before closing the file.
> > and send me the output.
> >
> > If this does not crash, add the following statement between
> > m_Ntuple->Print() and closing the file:
> > m_Ntuple_Draw("pulse");
> >
> > Is it possible to have access to your input file (gzipped)
> > and your small program reading it and converting it to Root?
> >
> > Rene Brun
> >
> > On Wed, 13 Nov 2002, Ed Oltman wrote:
> >
> > > Hello,
> > > I am having trouble reading a "large" root file I generated
> > > with a stand-alone application (reads non-root data, produces
> > > a root file that consists of a couple of small histos and
> > > a TNtuple) I've used this stand-alone program thousands of
> > > times over the past year with no problem.
> > >
> > > This time, the data is much larger there are approximately
> > > 56 million entries in the TNtuple, each with 9 variables.
> > > I created the TFile with
> > >
> > > m_hFile = new TFile(pname,"RECREATE","ap data");
> > >
> > > I created the TNtuple with
> > >
> > > m_Ntuple = new
> > TNtuple("nt","Raw","x:y:tof:z:v:delta:pulse:vap:erate");
> > >
> > > The program that generates the ntuple terminates normally..
> The output
> > > file is 696,229,888 Bytes - smaller than the 1900 MByte limit
> > of a TTree.
> > >
> > > When I open with root, I get the errors shown below. Any ideas what I
> > > need to do to fix or diagnose the problem? Thanks
> > >
> > > I use root v3.03/9a on win2k.
> > >
> > >
> > > Ed Oltman
> > >
> > >
> > > C:\root>root
> > > the current keyboard layout is 437
> > > *******************************************
> > > * *
> > > * W E L C O M E to R O O T *
> > > * *
> > > * Version 3.03/09 29 October 2002 *
> > > * *
> > > * You are welcome to visit our Web site *
> > > * http://root.cern.ch *
> > > * *
> > > *******************************************
> > >
> > > Compiled for win32.
> > >
> > > CINT/ROOT C/C++ Interpreter version 5.15.61, Oct 6 2002
> > > Type ? for help. Commands must be C++ statements.
> > > Enclose multiple statements between { }.
> > > root [0] TFile *f = new TFile("ap.root")
> > > Error in <TObjArray::At>: index 64 out of bounds (size: 13, this:
> > > 0x016aeb90)
> > > Warning in <TExMap::Remove>: key 131136 not found at 356
> > > Warning in <TBuffer::CheckObject>: reference to object of
> > unavailable class
> > > TObject, pointer will be
> > > 0
> > > Error in <TBuffer::CheckByteCount>: object of class
> > TStreamerInfo read too
> > > many bytes: 34 instead of
> > > 2
> > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer()
> > not in sync
> > > with data on file, fix S
> > > treamer()
> > > Warning in <TExMap::Remove>: key 131072 not found at 292
> > > Warning in <TBuffer::CheckObject>: reference to object of
> > unavailable class
> > > TObject, pointer will be
> > > 0
> > > Error in <TBuffer::CheckByteCount>: object of class
> > TStreamerInfo read too
> > > many bytes: 34 instead of
> > > 2
> > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer()
> > not in sync
> > > with data on file, fix S
> > > treamer()
> > > Error in <TBuffer::CheckByteCount>: object of class
> > TStreamerInfo read too
> > > many bytes: 30 instead of
> > > 2
> > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer()
> > not in sync
> > > with data on file, fix S
> > > treamer()
> > > Warning in <TExMap::Remove>: key 50399232 not found at 141
> > > Warning in <TBuffer::CheckObject>: reference to object of
> > unavailable class
> > > TObject, pointer will be
> > > 0
> > > Error in <TBuffer::CheckByteCount>: object of class
> > TStreamerInfo read too
> > > many bytes: 28 instead of
> > > 2
> > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer()
> > not in sync
> > > with data on file, fix S
> > > treamer()
> > > ERROR reading TStreamerInfo: fClassVersion=-2147483557
> > > ERROR reading TStreamerInfo: fClassVersion=-2147483557
> > > ERROR reading TStreamerInfo: fClassVersion=385881856
> > > root [1]ERROR reading TStreamerInfo: fClassVersion=385881856
> > >
> > >
> > > I tried
> > >
> > > f->Recover() and got the following:
> > > root [5] f->Recover()
> > > Info in <TFile::Recover>: recovered key TH1C:pHeader at address 192
> > > Info in <TFile::Recover>: recovered key TList:StreamerInfo at address
> > > 39341120
> > > Info in <TFile::Recover>: recovered key TNtuple:nt at address 77927255
> > > Info in <TFile::Recover>: recovered key TNtuple:nt at address
> 116052219
> > > Info in <TFile::Recover>: recovered key TH1F:pHits at address
> 696225755
> > > Info in <TFile::Recover>: recovered key TH1F:pDoubles at
> > address 696225803
> > > Info in <TFile::Recover>: recovered key TH1F:pFlag at address
> 696225861
> > > Info in <TFile::Recover>: recovered key TFile:C:\root\ap.root
> at address
> > > 696225909
> > > Info in <TFile::Recover>: recovered key TFile:C:\root\ap.root
> at address
> > > 696226249
> > > (Int_t)9
> > >
> > > but was still unable to do anything with the file..
> > >
> > > I tried f->Dump():
> > >
> > > root [11] f->Dump()
> > > ==>Dumping object at:989530, name=ap.root, class=TFile
> > >
> > > fSumBuffer 0 Sum of buffer sizes
> of objects
> > > written so far
> > > fSum2Buffer 0 Sum of squares of
> > buffer sizes of
> > > objects written so far
> > > fBytesWrite 0 Number of bytes
> > written to this
> > > file
> > > fBytesRead 6.4407e+007 Number of bytes
> read from this
> > > file
> > > fBEGIN 64 First used byte in file
> > > fEND 696226329 Last used byte in file
> > > fSeekFree 696226249 Location on disk of
> > free segments
> > > structure
> > > fSeekInfo 39341120 Location on disk of
> > StreamerInfo
> > > record
> > > fD 7 File descriptor
> > > fVersion 30309 File format version
> > > fCompress 1 Compression level from 0(not
> > > compressed) to 9 (max compres
> > > sion)
> > > fNbytesFree 76 Number of bytes for
> > free segments
> > > structure
> > > fNbytesInfo 159 Number of bytes for
> > StreamerInfo
> > > record
> > > fWritten 0 Number of objects
> > written so far
> > > fNProcessIDs 0 Number of TProcessID
> > written to
> > > this file
> > > fOption ->9895ec File options
> > > fOption.*fData READ
> > > fUnits 4 Number of bytes for
> > file pointers
> > > *fFree ->0 Free segments linked
> > list table
> > > *fClassIndex ->169ee68 !Index of
> > TStreamerInfo classes
> > > written to this file
> > > *fCache ->0 !Page cache used to
> > reduce number
> > > of small I/O's
> > > *fProcessIDs ->16adb20 !Array of pointers to
> > TProcessIDs
> > > fModified 1 true if directory has been
> > > modified
> > > fWritable 0 true if directory
> is writable
> > > fDatimeC ->989550 Date and time when
> > directory is
> > > created
> > > fDatimeC.fDatime 20021113/105303
> > > fDatimeM ->989558 Date and time of last
> > modification
> > > fDatimeM.fDatime 20021113/111332
> > > fNbytesKeys 340 Number of bytes for the keys
> > > fNbytesName 80 Number of bytes in TNamed at
> > > creation time
> > > fSeekDir 64 Location of
> directory on file
> > > fSeekParent 0 Location of parent
> > directory on
> > > file
> > > fSeekKeys 696225909 Location of Keys
> > record on file
> > > *fFile ->989530 pointer to current
> > file in memory
> > > *fMother ->0 pointer to mother of
> > the directory
> > > *fList ->167cab8 Pointer to objects
> > list in memory
> > > *fKeys ->167cb28 Pointer to keys
> list in memory
> > > fUUID ->989584 Unique identifier
> > > fUUID.fUUIDIndex 0 !index in the list
> of UUIDs in
> > > TProcessUUID
> > > fUUID.fTimeLow 1607350938 60 bit time, lower 32 bits
> > > fUUID.fTimeMid 63272 middle 16 time bits
> > > fUUID.fTimeHiAndVersion 4566 high 12 time bits + 4
> > UUID version
> > > bits
> > > fUUID.fClockSeqHiAndReserved 171 high 6 clock bits + 2 bits
> > > reserved
> > > fUUID.fClockSeqLow 70 low 8 clock bits
> > > fUUID.fNode[6] 95 6 node id bytes
> > > fName ->98953c object identifier
> > > fName.*fData ap.root
> > > fTitle ->989544 object title
> > > fTitle.*fData ap data
> > > fUniqueID 0 object unique identifier
> > > fBits 50332705 bit field status word
> > >
> > >
> >
> >
> >
> >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:18 MET