Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-14 09:23:21

0001 /*****************************************************************************
0002  * Project: RooFit                                                           *
0003  * Package: RooFitCore                                                       *
0004  *    File: $Id: RooAICRegistry.h,v 1.11 2007/05/11 09:11:30 verkerke Exp $
0005  * Authors:                                                                  *
0006  *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
0007  *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
0008  *                                                                           *
0009  * Copyright (c) 2000-2005, Regents of the University of California          *
0010  *                          and Stanford University. All rights reserved.    *
0011  *                                                                           *
0012  * Redistribution and use in source and binary forms,                        *
0013  * with or without modification, are permitted according to the terms        *
0014  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
0015  *****************************************************************************/
0016 #ifndef ROO_AIC_REGISTRY
0017 #define ROO_AIC_REGISTRY
0018 
0019 #include <vector>
0020 #include "Rtypes.h"
0021 
0022 class RooArgSet;
0023 
0024 typedef RooArgSet* pRooArgSet ;
0025 
0026 class RooAICRegistry {
0027 
0028 public:
0029   RooAICRegistry(UInt_t size = 10) ;
0030   RooAICRegistry(const RooAICRegistry &other);
0031   RooAICRegistry &operator=(const RooAICRegistry &other);
0032   RooAICRegistry(RooAICRegistry &&other) = default;
0033   RooAICRegistry &operator=(RooAICRegistry &&other) = default;
0034   virtual ~RooAICRegistry() ;
0035 
0036   Int_t store(const std::vector<Int_t>& codeList, RooArgSet* set1 = nullptr, RooArgSet* set2 = nullptr,
0037               RooArgSet* set3 = nullptr, RooArgSet* set4 = nullptr) ;
0038   const std::vector<Int_t>& retrieve(Int_t masterCode) const ;
0039   const std::vector<Int_t>&  retrieve(Int_t masterCode, pRooArgSet& set1) const ;
0040   const std::vector<Int_t>&  retrieve(Int_t masterCode, pRooArgSet& set1, pRooArgSet& set2) const ;
0041   const std::vector<Int_t>&  retrieve(Int_t masterCode, pRooArgSet& set1,
0042                                       pRooArgSet& set2, pRooArgSet& set3, pRooArgSet& set4) const ;
0043   size_t size() const;
0044 
0045 private:
0046   void copyImpl(const RooAICRegistry &other);
0047 
0048 protected:
0049 
0050   std::vector<std::vector<Int_t> > _clArr; ///<! Array of array of code lists
0051   std::vector<pRooArgSet> _asArr1;         ///<! Array of 1st RooArgSet pointers
0052   std::vector<pRooArgSet> _asArr2;         ///<! Array of 2nd RooArgSet pointers
0053   std::vector<pRooArgSet> _asArr3;         ///<! Array of 3rd RooArgSet pointers
0054   std::vector<pRooArgSet> _asArr4;         ///<! Array of 4th RooArgSet pointers
0055 
0056   ClassDef(RooAICRegistry,2) // Registry for analytical integration codes
0057 } ;
0058 
0059 #endif