00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * @(#)root/roofitcore:$Id: RooCacheManager.cxx 24261 2008-06-13 10:18:57Z wouter $ 00005 * Authors: * 00006 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * 00007 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu * 00008 * * 00009 * Copyright (c) 2000-2005, Regents of the University of California * 00010 * and Stanford University. All rights reserved. * 00011 * * 00012 * Redistribution and use in source and binary forms, * 00013 * with or without modification, are permitted according to the terms * 00014 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00015 *****************************************************************************/ 00016 00017 ////////////////////////////////////////////////////////////////////////////// 00018 // 00019 // BEGIN_HTML 00020 // Template class RooCacheManager manages the storage of any type of data indexed on 00021 // the choice of normalization and optionally the set of integrated observables. 00022 // The purpose of this class is to faciliate storage of intermediate results 00023 // in operator p.d.f.s whose value and inner working are often highly dependent 00024 // on the user provided choice of normalization in getVal(). 00025 // 00026 // For efficiency reasons these normalization set pointer are 00027 // derefenced as little as possible. This class contains a lookup 00028 // table for RooArgSet pointer pairs -> normalization lists. Distinct 00029 // pointer pairs that represent the same normalization/projection are 00030 // recognized and will all point to the same normalization list. Lists 00031 // for up to 'maxSize' different normalization/ projection 00032 // configurations can be cached. 00033 // END_HTML 00034 // 00035 // 00036 00037 #include "RooFit.h" 00038 #include <vector> 00039 #include "RooCacheManager.h" 00040 00041 using namespace std ; 00042 00043 #ifndef ROOFIT_R__NO_CLASS_TEMPLATE_SPECIALIZATION 00044 #define ROOFIT_R__NO_CLASS_TEMPLATE_SPECIALIZATION 00045 templateClassImp(RooCacheManager) 00046 #endif 00047 00048 00049 00050 00051