CP::AsymptMatrixTool Node1 CP::AsymptMatrixTool + AsymptMatrixTool() + ~AsymptMatrixTool() + initialize() # addEventCustom() # getEventWeightCustom() # clientForDB() Node2 CP::BaseLinearFakeBkgTool + BaseLinearFakeBkgTool() + ~BaseLinearFakeBkgTool() + initialize() + getEventWeight() + getTotalYield() + register1DHistogram() + register2DHistogram() + register3DHistogram() + assignYieldRange() + saveProgress() # incrementTotalYield() # getEventWeightCustom() - getEventWeightCommon() - mergeSubjobs() Node2->Node1 Node3 CP::BaseFakeBkgTool # m_initialized # m_needEventInfo # m_convertWhenMissing # m_externalWeight # m_hasher # m_useDB # m_unlimitedSystematicVariations # m_lockedSystematicVariations + BaseFakeBkgTool() + ~BaseFakeBkgTool() + initialize() + addEvent() + register1DHistogram() + register2DHistogram() + register3DHistogram() + isAffectedBySystematic() + affectingSystematics() + recommendedSystematics() and 13 more... # clientForDB() # addEventCustom() # getCachedFinalState() # getListOfEfficienciesAffectedBy() # CheckHistogramCompatibility() - importEfficiencies() - identifyCpSystematicVariation() Node3->Node2 Node66 CP::ILinearFakeBkgTool + getEventWeight() Node66->Node2 Node67 FakeBkgTools::ExtraProperty Manager< BaseLinearFakeBkgTool, BaseFakeBkgTool > Node67->Node2 Node68 std::vector< FakeBkgTools ::Yield > Node68->Node2 #m_yields Node70 std::map< FakeBkgTools ::FinalState, FakeBkgTools ::Weight > Node70->Node2 #m_cachedWeights Node72 std::map< TH1 *, std ::pair< uint32_t, uint32_t > > + elements Node72->Node2 #m_histogramYieldsRange Node73 std::vector< std::array < double, 2 > > Node73->Node1 #m_derivatives #m_components Node74 std::array< double, 2 > + elements Node74->Node73 +elements