/usr/include/LWH/AnalysisFactory.h is in librivet-dev 1.8.3-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | // -*- C++ -*-
#ifndef LWH_AnalysisFactory_H
#define LWH_AnalysisFactory_H
//
// This is the declaration of the AnalysisFactory class.
//
#include "AIAnalysisFactory.h"
#include "TreeFactory.h"
#include "HistogramFactory.h"
#include "DataPointSetFactory.h"
#include <set>
/**
* The LWH namespace contains a Light-Weight Histogram package which
* implements the most rudimentary histogramming facilities according
* to the <a href="http://aida.freehep.org">AIDA</a> interface
* specifications. Currently the only thing that is supported is
* simple, equally binned, one dimensional histograms and data
* points. It is mainly intended to be used in applications where one
* needs to fill simple histograms and output them. With LWH it is
* then possible to do this without the overhead of a full AIDA
* implementation, but still having the option to use a full
* implementation later on with minimal changes. Note also that since
* LWH consists only of header files, the installation is trivial -
* just put the header files where they can be found by your compiler.
*/
namespace LWH {
using namespace AIDA;
/**
* The "master" factory from which other factories are obtained.
* Typically accessed by:
* <pre>IAnalysisFactory* af = AIDA_createAnalysisFactory();</pre>
*/
class AnalysisFactory: public IAnalysisFactory {
public:
/// Destructor.
virtual ~AnalysisFactory() {
clear();
}
/**
* Create an ITreeFactory.
* @return The ITreeFactory.
*/
ITreeFactory * createTreeFactory() {
return new TreeFactory;
}
/**
* Create an HistogramFactory.
* @param tree The ITree which created histograms will be associated to.
* @return The IHistogramFactory.
*
*/
IHistogramFactory * createHistogramFactory(ITree & tree) {
Tree & tr = dynamic_cast<Tree &>(tree);
HistogramFactory * hf = new HistogramFactory(tr);
histfacs.insert(hf);
return hf;
}
/**
* Not implemented in LWH.
* @return null pointer always.
*
*/
IDataPointSetFactory * createDataPointSetFactory(ITree & tree) {
Tree & tr = dynamic_cast<Tree &>(tree);
DataPointSetFactory * df = new DataPointSetFactory(tr);
datafacs.insert(df);
return df;
}
/**
* Not implemented in LWH.
* @return null pointer always.
*/
ITupleFactory * createTupleFactory(ITree &) {
return 0;
}
/**
* Not implemented in LWH.
* @return null pointer always.
*/
IFunctionFactory * createFunctionFactory(ITree &) {
return 0;
}
/**
* Not implemented in LWH.
* @return null pointer always.
*/
IPlotterFactory * createPlotterFactory(int = 0, char * * = 0,
const std::string & = "",
const std::string & = "") {
return 0;
}
/**
* Not implemented in LWH.
* @return null pointer always.
*/
IFitFactory * createFitFactory() {
return 0;
}
private:
/** Delete all produced factories. */
void clear() {
for ( std::set<HistogramFactory *>::iterator it = histfacs.begin();
it != histfacs.end(); ++it ) delete *it;
for ( std::set<DataPointSetFactory *>::iterator it = datafacs.begin();
it != datafacs.end(); ++it ) delete *it;
for ( std::set<TreeFactory *>::iterator it = treefacs.begin();
it != treefacs.end(); ++it ) delete *it;
histfacs.clear();
datafacs.clear();
treefacs.clear();
}
/** The histogram factories. */
std::set<HistogramFactory *> histfacs;
/** The dataset factories. */
std::set<DataPointSetFactory *> datafacs;
/** The tree factories. */
std::set<TreeFactory *> treefacs;
};
}
#endif /* LWH_AnalysisFactory_H */
|