|
||||
File indexing completed on 2025-01-18 09:28:09
0001 // -*- C++ -*- 0002 // AID-GENERATED 0003 // ========================================================================= 0004 // This class was generated by AID - Abstract Interface Definition 0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 0006 // ========================================================================= 0007 #ifndef AIDA_ITUPLEFACTORY_H 0008 #define AIDA_ITUPLEFACTORY_H 1 0009 0010 // This file is part of the AIDA library 0011 // Copyright (C) 2002 by the AIDA team. All rights reserved. 0012 // This library is free software and under the terms of the 0013 // GNU Library General Public License described in the LGPL.txt 0014 0015 #include <string> 0016 #include <vector> 0017 0018 namespace AIDA { 0019 0020 class IEvaluator; 0021 class IFilter; 0022 class ITuple; 0023 0024 /** 0025 * A factory for creating ITuples. 0026 * 0027 * @author The AIDA team (http://aida.freehep.org/) 0028 */ 0029 0030 class ITupleFactory { 0031 0032 public: 0033 /// Destructor. 0034 virtual ~ITupleFactory() { /* nop */; } 0035 0036 /** 0037 * Creates an NTuple 0038 * @param path The path of the created ITuple. The path can either be a relative or full path. 0039 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0040 * All the directories in the path must exist. The characther `/` cannot be used 0041 * in names; it is only used to delimit directories within paths. 0042 * @param title The title of the n-tuple 0043 * @param columnNames The names of the columns 0044 * @param columnType The types of the columns 0045 * @param options NTuple options (currently undefined) 0046 * 0047 */ 0048 virtual ITuple * create(const std::string & path, const std::string & title, const std::vector<std::string> & columnNames, const std::vector<std::string> & columnType, const std::string & options = "") = 0; 0049 0050 /** 0051 * Creates an NTuple 0052 * @param path The path of the created ITuple. The path can either be a relative or full path. 0053 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0054 * All the directories in the path must exist. The characther `/` cannot be used 0055 * in names; it is only used to delimit directories within paths. 0056 * @param title The title of the n-tuple 0057 * @param columns The names and types of the columns e.g. "float px, py, pz, float energy, int charge" 0058 * @param options NTuple options (currently undefined) 0059 * 0060 */ 0061 virtual ITuple * create(const std::string & path, const std::string & title, const std::string & columns, const std::string & options = "") = 0; 0062 0063 /** 0064 * Creates a logical chain of ITuples. All ITuples in the set must 0065 * have the same structure. Chained ITuple can not be filled. 0066 * Original n-tuple data is not copied. 0067 * @param path The path of the chained ITuple. The path can either be a relative or full path. 0068 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0069 * All the directories in the path must exist. The characther `/` cannot be used 0070 * in names; it is only used to delimit directories within paths. 0071 * @param title The title of the new n-tuple 0072 * @param set The array of ITuples to chain 0073 * 0074 */ 0075 virtual ITuple * createChained(const std::string & path, const std::string & title, const std::vector<ITuple *> & set) = 0; 0076 0077 /** 0078 * Creates a logical chain of ITuples. All ITuples in the set must 0079 * have the same structure. Chained ITuple can not be filled. 0080 * Original n-tuple data is not copied. 0081 * @param path The path of the chained ITuple. The path can either be a relative or full path. 0082 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0083 * All the directories in the path must exist. The characther `/` cannot be used 0084 * in names; it is only used to delimit directories within paths. 0085 * @param title The title of the new n-tuple 0086 * @param set The array of the names of the ITuples to chain 0087 * 0088 */ 0089 virtual ITuple * createChained(const std::string & path, const std::string & title, const std::vector<std::string> & set) = 0; 0090 0091 /** 0092 * Creates a new reduced tuple (less rows) from an existing one 0093 * by applying a filter. Data is explicitly copied to a new n-tuple. 0094 * @param path The path of the filtered ITuple. The path can either be a relative or full path. 0095 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0096 * All the directories in the path must exist. The characther `/` cannot be used 0097 * in names; it is only used to delimit directories within paths. 0098 * @param tuple Original n-tuple 0099 * @param filter IFilter to be used 0100 * 0101 */ 0102 virtual ITuple * createFiltered(const std::string & path, ITuple & tuple, IFilter & filter) = 0; 0103 0104 /** 0105 * Creates a new reduced tuple (less rows) from an existing one 0106 * by applying a filter. Only subset of the variables (columns) is copied. 0107 * Data is explicitly copied to a new n-tuple. 0108 * @param path The path of the filtered ITuple. The path can either be a relative or full path. 0109 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0110 * All the directories in the path must exist. The characther `/` cannot be used 0111 * in names; it is only used to delimit directories within paths. 0112 * @param tuple Original n-tuple 0113 * @param filter IFilter to be used 0114 * @param columns Names of columns to for a new n-tuple 0115 * 0116 */ 0117 virtual ITuple * createFiltered(const std::string & path, ITuple & tuple, IFilter & filter, const std::vector<std::string> & columns) = 0; 0118 0119 /** 0120 * Creates IFilter object given a string defining of the "cut" expression. 0121 * @param expression String defining of the "cut" expression. 0122 * 0123 */ 0124 virtual IFilter * createFilter(const std::string & expression) = 0; 0125 0126 /** 0127 * Creates a filter object given a string defining the "cut" expression. 0128 * Filter processes only subset of data. 0129 * @param expression String defining of the "cut" expression. 0130 * @param rowsToProcess How many rows to process 0131 * @param startingRow Row number where to start 0132 * 0133 */ 0134 virtual IFilter * createFilter(const std::string & expression, int rowsToProcess, int startingRow = 0) = 0; 0135 0136 /** 0137 * Create IEvaluator object given its expression. 0138 * @param expression String defining of the evaluator expression. 0139 * 0140 */ 0141 virtual IEvaluator * createEvaluator(const std::string & expression) = 0; 0142 }; // class 0143 } // namespace AIDA 0144 #endif /* ifndef AIDA_ITUPLEFACTORY_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |