ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DetectorDescription
AGDD
AGDDHandlers
src
subtractionHandler.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
AGDDHandlers/subtractionHandler.h
"
6
#include "
AGDDControl/XercesParser.h
"
7
#include "
AGDDModel/AGDDSubtraction.h
"
8
#include "
AGDDControl/AGDDController.h
"
9
#include <iostream>
10
#include "
AGDDKernel/AGDDPositioner.h
"
11
#include "
AGDDKernel/AGDDVolumeStore.h
"
12
#include "
AGDDKernel/AGDDPositionerStore.h
"
13
14
using namespace
xercesc;
15
16
subtractionHandler::subtractionHandler
(
const
std::string& s,
17
AGDDController
& c)
18
:
XMLHandler
(s, c)
19
{
20
// std::cout<<"Creating handler for composition"<<std::endl;
21
}
22
23
void
subtractionHandler::ElementHandle
(
AGDDController
& c,
24
xercesc::DOMNode *t)
25
{
26
AGDDVolumeStore
& vs = c.GetVolumeStore();
27
AGDDSectionStore
&
ss
= c.GetSectionStore();
28
AGDDPositionerStore
& ps = c.GetPositionerStore();
29
30
bool
res
;
31
std::string name=
getAttributeAsString
(c, t,
"name"
,
res
);
32
AGDDSubtraction
*s=
new
AGDDSubtraction
(name, vs,
ss
);
33
34
StopLoop
(
true
);
35
36
DOMNode* child;
37
38
int
before=ps.NrOfPositioners();
39
40
IAGDDParser
& parser = *c.GetParser();
41
for
(child=t->getFirstChild();child!=0;child=child->getNextSibling())
42
{
43
if
(child->getNodeType()==DOMNode::ELEMENT_NODE) {
44
parser.elementLoop(c, child);
45
}
46
}
47
48
int
after=ps.NrOfPositioners();
49
for
(
int
i=before;i<after;i++)
50
{
51
AGDDPositioner
*posit=ps.GetPositioner(i);
52
if
(vs.
Exist
(posit->
Volume
()))
53
s->AddDaughter(posit);
54
}
55
56
std::string col=
getAttributeAsString
(c, t,
"color"
,
res
);
57
if
(
res
)
58
s->SetColor(col);
59
}
AGDDController.h
AGDDPositionerStore.h
AGDDPositioner.h
AGDDSubtraction.h
AGDDVolumeStore.h
res
std::pair< std::vector< unsigned int >, bool > res
Definition
JetGroupProductTest.cxx:11
ss
static Double_t ss
Definition
LArPhysWaveHECTool.cxx:37
XercesParser.h
AGDDController
Definition
AGDDController.h:30
AGDDPositionerStore
Definition
AGDDPositionerStore.h:14
AGDDPositioner
Definition
AGDDPositioner.h:18
AGDDPositioner::Volume
const std::string & Volume()
Definition
AGDDPositioner.cxx:21
AGDDSectionStore
Definition
AGDDSectionStore.h:15
AGDDSubtraction
Definition
AGDDSubtraction.h:13
AGDDVolumeStore
Definition
AGDDVolumeStore.h:15
AGDDVolumeStore::Exist
bool Exist(std::string)
Definition
AGDDVolumeStore.cxx:20
IAGDDParser
Definition
IAGDDParser.h:15
XMLHandler::StopLoop
void StopLoop(bool)
Definition
XMLHandler.cxx:28
XMLHandler::XMLHandler
XMLHandler(const std::string &n, AGDDController &c)
Definition
XMLHandler.cxx:15
XMLHandler::getAttributeAsString
std::string getAttributeAsString(AGDDController &c, const xercesc::DOMNode *t, const std::string &) const
Definition
XMLHandler.cxx:69
subtractionHandler::ElementHandle
virtual void ElementHandle(AGDDController &c, xercesc::DOMNode *t) override
Definition
subtractionHandler.cxx:23
subtractionHandler::subtractionHandler
subtractionHandler(const std::string &, AGDDController &c)
Definition
subtractionHandler.cxx:16
subtractionHandler.h
Generated on
for ATLAS Offline Software by
1.17.0