def _writeheader(self): cursor = uproot.write.sink.cursor.Cursor(0) self._fVersion = self._fVersion = 1061404 self._fBEGIN = 100 cursor.write_fields(self._sink, self._format1, b"root", self._fVersion, self._fBEGIN) self._fEND = 0 self._fSeekFree = 0 self._fNbytesFree = 0 self._nfree = 0 self._endcursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format_end, self._fEND, self._fSeekFree, self._fNbytesFree, self._nfree) self._fNbytesName = 2 * len( self._filename ) + 36 + 8 # + 8 because two fields in TKey are 'q' rather than 'i' fCompress = uproot.const.kZLIB * 100 # FIXME! fUnits = 4 cursor.write_fields(self._sink, self._format2, self._fNbytesName, fUnits, fCompress) self._fSeekInfo = 0 self._seekcursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format_seekinfo, self._fSeekInfo) self._fNbytesInfo = 0 self._nbytescursor = uproot.write.sink.cursor.Cursor(cursor.index) cursor.write_fields(self._sink, self._format_nbytesinfo, self._fNbytesInfo) cursor.write_data(self._sink, b'\x00\x01' + uuid.uuid1().bytes)
def write_tattfill(self, cursor, sink): cnt = numpy.int64(self.length_tattfill() - 4) | uproot.const.kByteCountMask vers = 2 cursor.write_fields(sink, self._format_cntvers, cnt, vers) cursor.write_fields(sink, self._format_tattfill, self.fields["_fFillColor"], self.fields["_fFillStyle"])
def write_tnamed(self, cursor, sink, name, title): cnt = numpy.int64(self.length_tnamed(name, title) - 4) | uproot.const.kByteCountMask vers = 1 cursor.write_fields(sink, self._format_cntvers, cnt, vers) self.write_tobject(cursor, sink) cursor.write_string(sink, name) cursor.write_string(sink, title)
def write_tattline(self, cursor, sink): cnt = numpy.int64(self.length_tattline() - 4) | uproot.const.kByteCountMask vers = 2 cursor.write_fields(sink, self._format_cntvers, cnt, vers) cursor.write_fields(sink, self._format_tattline, self.fields["_fLineColor"], self.fields["_fLineStyle"], self.fields["_fLineWidth"])
def write_tlist(self, cursor, sink, values): cnt = numpy.int64(self.length_tlist(values) - 4) | uproot.const.kByteCountMask vers = 5 cursor.write_fields(sink, self._format_cntvers, cnt, vers) self.write_tobject(cursor, sink) cursor.write_string(sink, b"") cursor.write_fields(sink, self._format_tlist, len(values)) for value in values: raise NotImplementedError
def write_tattaxis(self, cursor, sink, axis): cnt = numpy.int64(self.length_tattaxis() - 4) | uproot.const.kByteCountMask vers = 4 cursor.write_fields(sink, self._format_cntvers, cnt, vers) cursor.write_fields(sink, self._format_tattaxis, axis["_fNdivisions"], axis["_fAxisColor"], axis["_fLabelColor"], axis["_fLabelFont"], axis["_fLabelOffset"], axis["_fLabelSize"], axis["_fTickLength"], axis["_fTitleOffset"], axis["_fTitleSize"], axis["_fTitleColor"], axis["_fTitleFont"])
def write_th1(self, cursor, sink, name): cnt = numpy.int64(self.length_th1(name) - 4) | uproot.const.kByteCountMask vers = 8 cursor.write_fields(sink, self._format_cntvers, cnt, vers) self.write_tnamed(cursor, sink, name, self.fTitle) self.write_tattline(cursor, sink) self.write_tattfill(cursor, sink) self.write_tattmarker(cursor, sink) cursor.write_fields(sink, self._format_th1_1, self.fields["_fNcells"]) self.write_taxis(cursor, sink, self.fXaxis) self.write_taxis(cursor, sink, self.fYaxis) self.write_taxis(cursor, sink, self.fZaxis) cursor.write_fields(sink, self._format_th1_2, self.fields["_fBarOffset"], self.fields["_fBarWidth"], self.fields["_fEntries"], self.fields["_fTsumw"], self.fields["_fTsumw2"], self.fields["_fTsumwx"], self.fields["_fTsumwx2"], self.fields["_fMaximum"], self.fields["_fMinimum"], self.fields["_fNormFactor"]) self.write_tarray(cursor, sink, self.fields["_fContour"]) self.write_tarray(cursor, sink, self.fields["_fSumw2"]) cursor.write_string(sink, self.fields["_fOption"]) self.write_tlist(cursor, sink, self.fields["_fFunctions"]) if len(self.fields["_fBuffer"]) != 0: raise NotImplementedError cursor.write_fields( sink, self._format_th1_3, self.fields["_fBufferSize"], 0, # FIXME: empty fBuffer self.fields["_fBinStatErrOpt"], self.fields["_fStatOverflows"])
def write(self, cursor, sink): self.cursor = uproot.write.sink.cursor.Cursor(cursor.index) self.sink = sink self.update() cursor.skip(self._format1.size) cursor.write_string(sink, self.fClassName) cursor.write_string(sink, self.fName) cursor.write_string(sink, self.fTitle) basketversion = 3 cursor.write_fields(sink, self._format_basketkey, basketversion, self.fBufferSize, self.fNevBufSize, self.fNevBuf, self.fLast) cursor.write_data(sink, b"\x00")
def write_taxis(self, cursor, sink, axis): cnt = numpy.int64(self.length_taxis(axis) - 4) | uproot.const.kByteCountMask vers = 10 cursor.write_fields(sink, self._format_cntvers, cnt, vers) self.write_tnamed(cursor, sink, axis["_fName"], axis["_fTitle"]) self.write_tattaxis(cursor, sink, axis) cursor.write_fields(sink, self._format_taxis_1, axis["_fNbins"], axis["_fXmin"], axis["_fXmax"]) self.write_tarray(cursor, sink, axis["_fXbins"]) if axis["_fFirst"] != 0 or axis["_fLast"] != 0 or axis[ "_fBits2"] != 0 or axis[ "_fTimeDisplay"] or axis["_fTimeFormat"] != b"" or axis[ "_fLabels"] or axis["_fModLabs"]: raise NotImplementedError cursor.write_data(sink, b"\x00" * 20)
def write(self, cursor, sink, isjagged=False): self.cursor = uproot.write.sink.cursor.Cursor(cursor.index) self.sink = sink self.update() cursor.skip(self._format1.size) cursor.write_string(sink, self.fClassName) cursor.write_string(sink, self.fName) cursor.write_string(sink, self.fTitle) basketversion = 3 if isjagged: if self.old_fLast == 0: raise Exception("isjagged flag should be False") cursor.write_fields(sink, self._format_basketkey, basketversion, self.fBufferSize, self.fNevBufSize, self.fNevBuf, self.old_fLast) else: cursor.write_fields(sink, self._format_basketkey, basketversion, self.fBufferSize, self.fNevBufSize, self.fNevBuf, self.fLast) self.old_fLast = self.fLast cursor.write_data(sink, b"\x00")
def write(self, cursor, sink, name): cnt = numpy.int64(self.length(name) - 4) | uproot.const.kByteCountMask vers = 2 cursor.write_fields(sink, self._format_cntvers, cnt, vers) self.write_th1(cursor, sink, name) self.write_tarray(cursor, sink, self.valuesarray)
def write_tarray(self, cursor, sink, values): cursor.write_fields(sink, self._format_tarray, len(values)) cursor.write_array(sink, values)
def write_tobject(self, cursor, sink): cursor.write_fields(sink, self._format_tobject1, 1, 0, uproot.const.kNotDeleted)
def write(self, cursor, sink, name): cnt = numpy.int64(self.length(name) - 4) | uproot.const.kByteCountMask vers = 1 cursor.write_fields(sink, self._format, cnt, vers, 1, 0, uproot.const.kNotDeleted) cursor.write_string(sink, self.value)