30 class RooStudyManager ;
 
   31 class RooStudyPackage ;
 
   33 class RooAbsStudy : 
public TNamed {
 
   36   RooAbsStudy() :  _storeDetails(kFALSE), _summaryData(0), _detailData(0), _ownDetailData(kTRUE) {} ;
 
   37   RooAbsStudy(
const char* name, 
const char* title) ;
 
   38   RooAbsStudy(
const RooAbsStudy& other) ;
 
   39   virtual RooAbsStudy* clone(
const char* newname=
"") 
const = 0 ;
 
   40   TObject* Clone(
const char* newname=
"")
 const { 
return clone(newname) ; }
 
   41   virtual ~RooAbsStudy() ;
 
   43   virtual Bool_t attach(RooWorkspace& ) { 
return kFALSE ; } ;
 
   44   virtual Bool_t initialize() { 
return kFALSE ; } ;
 
   45   virtual Bool_t execute() { 
return kFALSE ; } ;
 
   46   virtual Bool_t finalize() { 
return 0 ; } ;
 
   47   void storeDetailedOutput(Bool_t flag) { _storeDetails = flag ; }
 
   49   RooDataSet* summaryData() { 
return _summaryData ; }
 
   50   RooLinkedList* detailedData() { 
return _detailData ; }
 
   52   void releaseDetailData() { _ownDetailData = kFALSE ; }
 
   54   virtual void dump() {} ;
 
   58   friend class RooStudyManager ;
 
   59   friend class RooStudyPackage ;
 
   60   void registerSummaryOutput(
const RooArgSet& allVars, 
const RooArgSet& varsWithError=RooArgSet(), 
const RooArgSet& varsWithAsymError=RooArgSet()) ;
 
   61   void storeSummaryOutput(
const RooArgSet& vars) ;
 
   62   void storeDetailedOutput(TNamed& 
object) ;
 
   63   void aggregateSummaryOutput(TList* chunkList) ;
 
   67   Bool_t _storeDetails ;
 
   68   RooDataSet* _summaryData ; 
 
   69   RooLinkedList*  _detailData ;  
 
   70   Bool_t      _ownDetailData ;
 
   72   ClassDef(RooAbsStudy,1)