thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Analysis
LWH
TreeFactory.h
1
// -*- C++ -*-
2
//
3
// TreeFactory.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2019 Leif Lonnblad
5
//
6
// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef LWH_TreeFactory_H
10
#define LWH_TreeFactory_H
11
//
12
// This is the declaration of the TreeFactory class.
13
//
14
15
#include "AITreeFactory.h"
16
#include <string>
17
#include <stdexcept>
18
#include "Tree.h"
19
20
namespace
LWH
{
21
22
using namespace
AIDA;
23
27
class
TreeFactory
:
public
ITreeFactory {
28
29
public
:
30
32
virtual
~TreeFactory
() {
33
clear
();
34
}
35
39
ITree *
create
() {
40
Tree
* tree =
new
Tree
;
41
trees
.insert(tree);
42
return
tree;
43
}
44
53
Tree
*
createTree
(
const
std::string & storeName) {
54
return
new
Tree
(storeName);
55
}
56
68
ITree *
create
(
const
std::string & storeName,
69
const
std::string & storeType =
""
,
70
bool
readOnly =
false
,
bool
createNew =
false
,
71
const
std::string & =
""
) {
72
if
( storeType !=
"xml"
&& storeType !=
""
&& storeType !=
"flat"
)
73
throw
std::runtime_error(
"Can only store trees in xml or flat format."
);
74
if
( readOnly || !createNew )
75
throw
std::runtime_error(
"Cannot read in trees."
);
76
return
new
Tree
(storeName, storeType !=
"flat"
);
77
}
78
79
private
:
80
82
void
clear
() {
83
for
( std::set<Tree *>::iterator it =
trees
.begin();
84
it !=
trees
.end(); ++it )
delete
*it;
85
trees
.clear();
86
}
87
89
std::set<Tree *>
trees
;
90
91
};
92
93
}
94
95
#endif
/* LWH_TreeFactory_H */
LWH::TreeFactory
The creator of trees.
Definition:
TreeFactory.h:27
LWH::TreeFactory::clear
void clear()
Delete all trees.
Definition:
TreeFactory.h:82
LWH::TreeFactory::createTree
Tree * createTree(const std::string &storeName)
Creates a new Tree and associates it with a store.
Definition:
TreeFactory.h:53
LWH::TreeFactory::create
ITree * create(const std::string &storeName, const std::string &storeType="", bool readOnly=false, bool createNew=false, const std::string &="")
Creates a new Tree and associates it with a store.
Definition:
TreeFactory.h:68
LWH::TreeFactory::trees
std::set< Tree * > trees
The created trees.
Definition:
TreeFactory.h:89
LWH::TreeFactory::create
ITree * create()
Creates a new tree that is not associated with a store.
Definition:
TreeFactory.h:39
LWH::TreeFactory::~TreeFactory
virtual ~TreeFactory()
Destructor.
Definition:
TreeFactory.h:32
LWH::Tree
The Tree class is a simple implementation of the AIDA::ITree interface.
Definition:
Tree.h:32
LWH
The LWH namespace contains a Light-Weight Histogram package which implements the most rudimentary his...
Definition:
AnalysisFactory.h:35
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6