/*****************************************************************************
 * Project: RooFit                                                           *
 * Package: RooFitCore                                                       *
 *    File: $Id: RooAICRegistry.h,v 1.11 2007/05/11 09:11:30 verkerke Exp $
 * Authors:                                                                  *
 *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
 *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
 *                                                                           *
 * Copyright (c) 2000-2005, Regents of the University of California          *
 *                          and Stanford University. All rights reserved.    *
 *                                                                           *
 * Redistribution and use in source and binary forms,                        *
 * with or without modification, are permitted according to the terms        *
 * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
 *****************************************************************************/
#ifndef ROO_AIC_REGISTRY
#define ROO_AIC_REGISTRY

#include <vector>
#include "Riosfwd.h"
#include <assert.h>
#include "Rtypes.h"
class RooArgSet ;

typedef RooArgSet* pRooArgSet ;

class RooAICRegistry {

public:
  RooAICRegistry(UInt_t size = 10) ;
  RooAICRegistry(const RooAICRegistry& other) ;
  virtual ~RooAICRegistry() ;

  Int_t store(const std::vector<Int_t>& codeList, RooArgSet* set1 = 0, RooArgSet* set2 = 0,
              RooArgSet* set3 = 0, RooArgSet* set4 = 0);
  const std::vector<Int_t>& retrieve(Int_t masterCode) const ;
  const std::vector<Int_t>&  retrieve(Int_t masterCode, pRooArgSet& set1) const ;
  const std::vector<Int_t>&  retrieve(Int_t masterCode, pRooArgSet& set1, pRooArgSet& set2) const ;
  const std::vector<Int_t>&  retrieve(Int_t masterCode, pRooArgSet& set1,
                                      pRooArgSet& set2, pRooArgSet& set3, pRooArgSet& set4) const ;

protected:

  std::vector<std::vector<Int_t> > _clArr;       //! Array of array of code lists
  std::vector<pRooArgSet> _asArr1;  //! Array of 1st RooArgSet pointers
  std::vector<pRooArgSet> _asArr2;  //! Array of 2nd RooArgSet pointers
  std::vector<pRooArgSet> _asArr3;  //! Array of 3rd RooArgSet pointers
  std::vector<pRooArgSet> _asArr4;  //! Array of 4th RooArgSet pointers

  ClassDef(RooAICRegistry,2) // Registry for analytical integration codes
} ;

#endif 
 RooAICRegistry.h:1
 RooAICRegistry.h:2
 RooAICRegistry.h:3
 RooAICRegistry.h:4
 RooAICRegistry.h:5
 RooAICRegistry.h:6
 RooAICRegistry.h:7
 RooAICRegistry.h:8
 RooAICRegistry.h:9
 RooAICRegistry.h:10
 RooAICRegistry.h:11
 RooAICRegistry.h:12
 RooAICRegistry.h:13
 RooAICRegistry.h:14
 RooAICRegistry.h:15
 RooAICRegistry.h:16
 RooAICRegistry.h:17
 RooAICRegistry.h:18
 RooAICRegistry.h:19
 RooAICRegistry.h:20
 RooAICRegistry.h:21
 RooAICRegistry.h:22
 RooAICRegistry.h:23
 RooAICRegistry.h:24
 RooAICRegistry.h:25
 RooAICRegistry.h:26
 RooAICRegistry.h:27
 RooAICRegistry.h:28
 RooAICRegistry.h:29
 RooAICRegistry.h:30
 RooAICRegistry.h:31
 RooAICRegistry.h:32
 RooAICRegistry.h:33
 RooAICRegistry.h:34
 RooAICRegistry.h:35
 RooAICRegistry.h:36
 RooAICRegistry.h:37
 RooAICRegistry.h:38
 RooAICRegistry.h:39
 RooAICRegistry.h:40
 RooAICRegistry.h:41
 RooAICRegistry.h:42
 RooAICRegistry.h:43
 RooAICRegistry.h:44
 RooAICRegistry.h:45
 RooAICRegistry.h:46
 RooAICRegistry.h:47
 RooAICRegistry.h:48
 RooAICRegistry.h:49
 RooAICRegistry.h:50
 RooAICRegistry.h:51
 RooAICRegistry.h:52
 RooAICRegistry.h:53