//this file looks like plain C, but it's actually -*- c++ -*-
#ifndef UNCERTAINTY_BREAKDOWN
#define UNCERTAINTY_BREAKDOWN

#include "TSStatisticsCalculator.h"


class TSBreakdownCalculator : public TSStatisticsCalculator {
public:
	const TString fFolderName = "Breakdown";
	
protected:
  
  virtual void info(TString message) override;
  
  void storeUncertainty(const RooRealVar* poi, TQFolder * uncond);
  void storeUncertainties(const RooAbsCollection& pois, TQFolder * uncond);
  void compareUncertainties(const TString& name, const RooAbsCollection* pois, TQFolder* uncond, TQFolder * cond, TQFolder* target);
  
public:
  
  TSBreakdownCalculator(RooWorkspace * ws, TQFolder* snapshots);

  bool runPreFit(TQTaggable* options, const RooAbsCollection& pois, TQFolder* fitresult);
	
  virtual TQFolder * runCalculation(TQFolder * options = 0) override;
  
  virtual ~TSBreakdownCalculator();
  
  ClassDefOverride(TSBreakdownCalculator, 0);
  
};

#endif
 TSBreakdownCalculator.h:1
 TSBreakdownCalculator.h:2
 TSBreakdownCalculator.h:3
 TSBreakdownCalculator.h:4
 TSBreakdownCalculator.h:5
 TSBreakdownCalculator.h:6
 TSBreakdownCalculator.h:7
 TSBreakdownCalculator.h:8
 TSBreakdownCalculator.h:9
 TSBreakdownCalculator.h:10
 TSBreakdownCalculator.h:11
 TSBreakdownCalculator.h:12
 TSBreakdownCalculator.h:13
 TSBreakdownCalculator.h:14
 TSBreakdownCalculator.h:15
 TSBreakdownCalculator.h:16
 TSBreakdownCalculator.h:17
 TSBreakdownCalculator.h:18
 TSBreakdownCalculator.h:19
 TSBreakdownCalculator.h:20
 TSBreakdownCalculator.h:21
 TSBreakdownCalculator.h:22
 TSBreakdownCalculator.h:23
 TSBreakdownCalculator.h:24
 TSBreakdownCalculator.h:25
 TSBreakdownCalculator.h:26
 TSBreakdownCalculator.h:27
 TSBreakdownCalculator.h:28
 TSBreakdownCalculator.h:29
 TSBreakdownCalculator.h:30
 TSBreakdownCalculator.h:31
 TSBreakdownCalculator.h:32
 TSBreakdownCalculator.h:33
 TSBreakdownCalculator.h:34