// @(#)root/roostats:$Id: cranmer $ // Author: Kyle Cranmer, Akira Shibata /************************************************************************* * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOSTATS_ESTIMATESUMMARY_h #define ROOSTATS_ESTIMATESUMMARY_h #include "TH1.h" #include #include #include #include #include "TObject.h" namespace RooStats{ namespace HistFactory{ struct EstimateSummary : public TObject { enum ConstraintType{ Gaussian, Poisson }; struct NormFactor{ std::string name; double val, high, low; bool constant; }; class ShapeSys{ public: ShapeSys() : name(""), hist(NULL) {;} std::string name; TH1* hist; ConstraintType constraint; }; typedef std::vector vecstring; typedef std::vector vechist; typedef std::pair pairdouble; typedef std::map > mappair; // simple structure to hold necessary information about each channel EstimateSummary(); virtual ~EstimateSummary(); void Print(const char *opt = 0) const ; void AddSyst( const std::string & sname, TH1* low, TH1* high); bool operator==(const EstimateSummary &other) const ; bool CompareHisto( const TH1 * one, const TH1 * two) const ; //data members . std::string name; std::string channel; std::string normName; TH1* nominal; // x pb per jet bin. all histograms need index of binning to be consistent std::vector systSourceForHist; std::vector lowHists; // x pb per jet bin for - variations over list of systematics std::vector highHists; // x pb per jet bin for + variations over list of systematics std::map > overallSyst; // "acceptance"->(0.8,1.2) std::pair dummyForRoot; std::vector normFactor; bool IncludeStatError; // Flag to implement Statistical errors for this sample ConstraintType StatConstraintType; // The type of constraint binwise stat errors Double_t RelErrorThreshold; // The minimum relative uncertainty for a bin to use stat errors TH1* relStatError; // An (optional) externally provided shape for this error // bool doShapeFactor; // A flag to include a ShapeFactor ParamatarizedHistogram std::string shapeFactorName; // std::vector shapeSysts; // ClassDef(RooStats::HistFactory::EstimateSummary,1) }; } } #endif