Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-10161

TTree with TClonesArray of TF1s written with ROOT 5 unreadable with ROOT 6

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 6.16/00
    • Fix Version/s: 6.18/00, 6.16/02
    • Component/s: I/O, TTree
    • Labels:
      None
    • Environment:

      lxplus.cern.ch, ROOT 5.34/30, ROOT 6.16/00 used in recent versions of AliRoot/AliPhysics.

       

      Description

      The attached file test.root was generated using ROOT5 and contains a TTree which has two branches ,f_Int0 and f_Int1, which are TClonesArrays of TF1s.

      This file is unreadable in ROOT6, see below.

      Since the TF1 Streamers were not written in the original file, one first needs to load them from the file Root5Streamers.root

      > root.exe Root5Streamers.root
      root [1] TFile::Open("test.root")
      root [2] fTS->GetEntry(0)
      Warning in <TStreamerInfo::BuildOld>: Cannot convert TFormula::fParams from type: Double_t* to type: map<TString,int,TFormulaParamOrder>, skip element
      Warning in <TStreamerInfo::BuildOld>: Cannot convert TFormula::fLinearParts from type: TObjArray to type: vector<TObject*>, skip element
      Warning in <TStreamerInfo::Compile>: Counter fNpar should not be skipped from class TFormula
      Warning in <TStreamerInfo::Compile>: Counter fNoper should not be skipped from class TFormula
      Warning in <TStreamerInfo::Compile>: Counter fNconst should not be skipped from class TFormula
      Warning in <TStreamerInfo::BuildOld>: Cannot convert TF1::fParErrors from type: Double_t* to type: vector<double>, skip element
      Warning in <TStreamerInfo::BuildOld>: Cannot convert TF1::fParMin from type: Double_t* to type: vector<double>, skip element
      Warning in <TStreamerInfo::BuildOld>: Cannot convert TF1::fParMax from type: Double_t* to type: vector<double>, skip element
      Warning in <TStreamerInfo::BuildOld>: Cannot convert TF1::fSave from type: Double_t* to type: vector<double>, skip element
      Warning in <TStreamerInfo::Compile>: Counter fNsave should not be skipped from class TF1
      Error in <TBufferFile::CheckByteCount>: object of class TClonesArray read too many bytes: 12859 instead of 5813
      Warning in <TBufferFile::CheckByteCount>: TClonesArray::Streamer() not in sync with data on file test.root, fix Streamer()
      Error in <TBufferFile::CheckByteCount>: object of class TClonesArray read too few bytes: 2619 instead of 5813
      (int) 11779
      
      

      Without loading Root5Streamers.root, the following happens:

      [1] fTS->GetEntry(0)
      Killed
      

       

        Attachments

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              cmayer Christoph Mayer
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Actual Start:
                Actual End: