ATLAS Offline Software
Loading...
Searching...
No Matches
mposWedgeHandler.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
8#include "GeoModelKernel/Units.h"
9
10#include <iostream>
11#include <vector>
12
15 : XMLHandler(s, c)
16{
17}
18
20 xercesc::DOMNode *t)
21{
22 bool res;
23 std::string volume=getAttributeAsString(c, t, "volume",res);
24 int iWedge=getAttributeAsInt(c, t, "wedge_number",8);
25 std::vector<double> iSectors=getAttributeAsVector(c, t, "sectors",res);
26
27 double dWedge=360./iWedge;
28
29 double radius=0;
30 for (int i=0;i<iWedge;i++)
31 {
32 double Wedge=dWedge*i;
33 if ((int)iSectors[i]==0) continue;
34 GeoTrf::Transform3D crot = GeoTrf::RotateZ3D(Wedge*GeoModelKernelUnits::degree);
35 double x=radius*std::cos(Wedge*GeoModelKernelUnits::degree);
36 double y=radius*std::sin(Wedge*GeoModelKernelUnits::degree);
37 double zpos=0;
38 GeoTrf::Vector3D cvec=GeoTrf::Vector3D(x,y,zpos);
39
40 new AGDDPositioner(c.GetPositionerStore(),
41 c.GetVolumeStore(),
42 volume,GeoTrf::Translation3D(cvec)*crot);
43 }
44}
std::pair< std::vector< unsigned int >, bool > res
#define y
#define x
int getAttributeAsInt(AGDDController &c, const xercesc::DOMNode *t, const std::string &) const
std::vector< double > getAttributeAsVector(AGDDController &c, const xercesc::DOMNode *t, const std::string &) const
XMLHandler(const std::string &n, AGDDController &c)
std::string getAttributeAsString(AGDDController &c, const xercesc::DOMNode *t, const std::string &) const
mposWedgeHandler(const std::string &, AGDDController &c)
virtual void ElementHandle(AGDDController &c, xercesc::DOMNode *t) override