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

ROOT6 does not expand typedef while computing class checksum

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reopened (View Workflow)
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: 6.00.beta2
    • Fix Version/s: None
    • Component/s: I/O
    • Labels:
      None
    • Environment:

      ROOT6 [hash: 18c9b126d9cd6b01cb33c9def77c48392f05f06f]
      Any CMSSW_7_0_ROOT6_X IB. e.g., CMSSW_7_0_ROOT6_X_2013-11-18-1400

    • Development:

      Description

      While looking into why CMSSW_7_0_ROOT6_X integration builds report different checksums, I found that ROOT6 does not expand typedef used in checksum computation, while ROOT5 does. Example:

      ROOT6
      ---------------------
      @from TClass
      @class [reco::JetExtendedAssociation::JetExtendedData] (3280341882)
       @name [mTracksAtVertexNumber] (214252419)
         @type [int] (1489849408)
       @name [mTracksAtVertexP4] (2676534584)
         @type [reco::JetExtendedAssociation::LorentzVector] (3963967411)
       @name [mTracksAtCaloNumber] (3555515907)
         @type [int] (1509650368)
       @name [mTracksAtCaloP4] (2708810325)
         @type [reco::JetExtendedAssociation::LorentzVector] (2861261730)
       @checksum 2861261730
      ---------------------
       
      ROOT5
      ---------------------
      @from TClass
      @class [reco::JetExtendedAssociation::JetExtendedData] (3280341882)
       @name [mTracksAtVertexNumber] (214252419)
         @type [int] (1489849408)
       @name [mTracksAtVertexP4] (2676534584)
         @type [ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiE4D<float> >] (902820277)
       @name [mTracksAtCaloNumber] (1304036281)
         @type [int] (849242610)
       @name [mTracksAtCaloP4] (1286275387)
         @type [ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiE4D<float> >] (2863467760)
       @checksum 2863467760
      ---------------------
       
      error: class 'reco::JetExtendedAssociation::JetExtendedData' has a different checksum for ClassVersion 10. Increment ClassVersion to 11 and assign it to checksum 2861261730

      It happens that ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiE4D<float> > is now reco::JetExtendedAssociation::LorentzVector.

      Here are more details:

      https://cmssdt.cern.ch/SDT/lxr/source/DataFormats/JetReco/interface/JetExtendedAssociation.h?v=CMSSW_7_0_X_2013-11-18-0200#068

      026     typedef math::PtEtaPhiELorentzVectorF LorentzVector;
       
      073       LorentzVector mTracksAtVertexP4;
      074       int mTracksAtCaloNumber;
      075       LorentzVector mTracksAtCaloP4;

      https://cmssdt.cern.ch/SDT/lxr/source/DataFormats/Math/interface/LorentzVector.h?v=CMSSW_7_0_X_2013-11-18-0200#020

      020   typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiE4D<float> > PtEtaPhiELorentzVectorF;

      Simply put ROOT6 did not "expand" (what's correct why to say?) the typedef.

      It's taking type as a typedef name, not the actual type (most bottom) it refers.

      reco::JetExtendedAssociation::LorentzVector -> math::PtEtaPhiELorentzVectorF -> ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiE4D<float> >

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              pcanal Philippe Canal
              Reporter:
              davidlt David Abdurachmanov (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated: