project8 / katydid

Project 8 data analysis package
Other
5 stars 4 forks source link

Error when there are a lot of TimeInRunC to be saved #70

Closed guiguem closed 8 years ago

guiguem commented 8 years ago

When saving the output of discrim-1d with a low threshold (4dB above gain-variation) in a root file, some values of the TimeInRunC (from 0 to 2ms for a 10 ms acquisition) are not well saved: there are set to 10 ms... In the terminal, when accessing to this branch, the following error is displayed many times (actually as many times as the number of mis-set values of TimeInRuncC): Error in <TBasket::Streamer>: The value of fKeylen is incorrect (-6784) ; trying to recover by setting it to zero For some unknown reasons, this problem does not arise for the Slice number.

guiguem commented 8 years ago

More error here: decreased the SNR even more (SNR: 4) to get more entries in the tree: now abscissa is getting mad and the terminal keeps saying: Error R__unzip_header: error in header Error in <TBasket::ReadBasketBuffers>: Inconsistency found in header (nin=0, nbuf=0) Error in <TBasket::ReadBasketBuffers>: fNbytes = 732465661, fKeylen = 11388, fObjlen = 1889862115, noutot = 0, nout=0, nin=0, nbuf=0 root.exe then just gets unresponsive for 10 minutes. Something is going wrong here: following René Brun's advice (https://root.cern.ch/phpBB3/viewtopic.php?t=9138), I am trying to see if this is because the root file is corrupted. root [0] TFile f("testOut1.root"); root [1] f.Map(); 20160916/140541 At:100 N=122 TFile 20160916/140542 At:222 N=256 KeysList 20160916/140542 At:478 N=77 FreeSegments Address = 555 Nbytes = -816 =====G A P=========== 20160916/140541 At:1371 N=1149 TH1D CX = 1.28 20160916/140541 At:2520 N=8102 TH1D CX = 1.09 Address = 10622 Nbytes = -319 =====G A P=========== 20020916/085220 At:10941 N=2138909947 ??Bm?sX??N??"?v???&Q?Cݴ?3#݌?p? ]Y? CX = 0.83 20020916/085220 At:2138920888 N=1 END ` It seems that some basket are overwritten.

guiguem commented 8 years ago

It seems that this error happens when I use the basic-root-writer to create the file and the tree-root-writer to update it with this tree. When 2 separate files are created, these problems don't happen... Maybe a software fix might help, but fortunately this is not critical!

nsoblath commented 8 years ago

Ok, this explains it. That's definitely something not allowed in ROOT based on the current setup of the writers (each writer owns its own ROOT file, and there's no measures taken to allow sharing). Thanks for tracking that down. For now I have no plans to do this differently, but if its a feature you want, feel free to submit a separate issue requesting that.