00001 // @(#)root/roostats:$Id: UpperLimitMCSModule.h 31276 2009-11-18 15:06:42Z moneta $ 00002 // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke, Nils Ruthmann 00003 /************************************************************************* 00004 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * 00005 * All rights reserved. * 00006 * * 00007 * For the licensing terms see $ROOTSYS/LICENSE. * 00008 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00009 *************************************************************************/ 00010 00011 00012 #ifndef UPPER_LIMIT_MCS_MODULE 00013 #define UPPER_LIMIT_MCS_MODULE 00014 00015 #include "RooAbsMCStudyModule.h" 00016 #include <string> 00017 00018 class RooArgSet; 00019 class RooDataSet; 00020 class RooRealVar; 00021 class RooAbsPdf; 00022 00023 namespace RooStats { 00024 00025 class ProfileLikelihoodCalculator; 00026 00027 00028 class UpperLimitMCSModule : public RooAbsMCStudyModule { 00029 public: 00030 00031 00032 UpperLimitMCSModule(const RooArgSet* poi, Double_t CL=0.95) ; 00033 UpperLimitMCSModule(const UpperLimitMCSModule& other) ; 00034 virtual ~UpperLimitMCSModule() ; 00035 00036 Bool_t initializeInstance() ; 00037 00038 Bool_t initializeRun(Int_t /*numSamples*/) ; 00039 RooDataSet* finalizeRun() ; 00040 00041 //Bool_t processAfterFit(Int_t /*sampleNum*/) ; 00042 Bool_t processBetweenGenAndFit(Int_t /*sampleNum*/) ; 00043 00044 private: 00045 00046 std::string _parName ; // Name of Nsignal parameter 00047 RooStats::ProfileLikelihoodCalculator* _plc; 00048 RooRealVar* _ul ; 00049 00050 const RooArgSet* _poi; // parameters of interest 00051 RooDataSet* _data ; // Summary dataset to store results 00052 Double_t _cl; 00053 RooAbsPdf* _model; 00054 00055 ClassDef(UpperLimitMCSModule,0) // MCStudy module to calculate upperlimit of a given poi 00056 }; 00057 00058 } 00059 00060 #endif 00061