Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
xml
BinningProjectorXML.cxx
Go to the documentation of this file.
1
12
// for truncation warning
13
#ifdef _MSC_VER
14
#include "msdevstudio/MSconfig.h"
15
#endif
16
17
#include "
BinningProjectorXML.h
"
18
19
#include "
BinsBaseXML.h
"
20
#include "
NTupleXML.h
"
21
22
#include "
XmlController.h
"
23
#include "
XmlDocument.h
"
24
#include "
XmlElement.h
"
25
26
#include "
axes/Range.h
"
27
#include "
binners/BinsBase.h
"
28
#include "
datasrcs/DataSource.h
"
29
#include "
projectors/BinningProjector.h
"
30
31
#include <cassert>
32
33
using
std::list;
34
using
std::string;
35
using
std::vector;
36
37
using namespace
hippodraw;
38
39
BinningProjectorXML::BinningProjectorXML
(
XmlController
* controller )
40
:
BaseXML
(
"BinningProjector"
, controller )
41
{
42
m_binsbaseXML
=
new
BinsBaseXML
( controller );
43
m_ntupleXML
=
new
NTupleXML
( controller );
44
}
45
46
BinningProjectorXML::
47
~BinningProjectorXML
()
48
{
49
delete
m_binsbaseXML
;
50
delete
m_ntupleXML
;
51
}
52
53
XmlElement
*
54
BinningProjectorXML::
55
createElement
(
const
BinningProjector
& projector )
56
{
57
XmlElement
* tag =
BaseXML::createElement
();
// in base class
58
const
void
* addr = reinterpret_cast <
const
void
* > ( & projector );
59
int
id
=
m_controller
-> getId ( addr );
60
setId
( *tag,
id
);
61
62
createChildren
( tag, projector );
63
64
return
tag;
65
}
66
void
67
BinningProjectorXML::
68
createChildren
(
XmlElement
* tag,
const
BinningProjector
& projector )
69
{
70
const
BinsBase
* bins = projector.
getBinner
();
71
XmlElement
* element =
m_binsbaseXML
->
createElement
( *bins );
72
73
tag->
appendChild
( *element );
74
delete
element;
75
76
BinningProjector
& proj = const_cast <
BinningProjector
& > ( projector );
77
if
( projector.
hasDataSourceBindings
() == false ) {
78
proj.
prepareValues
();
79
const
DataSource
* ntuple = projector.
getProjectedValues
();
80
element =
m_ntupleXML
->
createElement
( *ntuple );
81
82
tag -> appendChild ( *element );
83
delete
element;
84
}
85
}
86
87
void
88
BinningProjectorXML::
89
getObject
(
const
XmlElement
* parent,
ProjectorBase
* pbase )
90
{
91
const
XmlElement
* bp_element =
getNode
( parent );
92
if
( bp_element == 0 )
return
;
93
94
const
XmlElement
* element =
m_binsbaseXML
->
getNode
( bp_element );
95
BinsBase
* bins =
m_binsbaseXML
->
createObject
( element );
96
97
BinningProjector
* projector = dynamic_cast <
BinningProjector
* > ( pbase );
98
projector->
setBinner
( bins );
99
}
100
101
void
102
BinningProjectorXML::
103
setBins
(
const
XmlElement
* parent,
ProjectorBase
* pbase )
104
{
105
const
XmlElement
* bp_element =
getNode
( parent );
106
if
( bp_element == 0 )
return
;
107
108
const
XmlElement
* nt_element =
m_ntupleXML
->
getNode
( bp_element );
109
const
DataSource
* ntuple =
m_ntupleXML
->
getObject
( *nt_element );
110
111
BinningProjector
* projector = dynamic_cast <
BinningProjector
* > ( pbase );
112
projector -> setBinContents ( ntuple );
113
}
Generated for HippoDraw Class Library by