CMS 3D CMS Logo

MuonAlignmentInputXML.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignment_MuonAlignmentInputXML_h
2 #define Alignment_MuonAlignment_MuonAlignmentInputXML_h
3 // -*- C++ -*-
4 //
5 // Package: MuonAlignment
6 // Class : MuonAlignmentInputXML
7 //
16 //
17 // Original Author: Jim Pivarski
18 // Created: Mon Mar 10 16:37:55 CDT 2008
19 // $Id: MuonAlignmentInputXML.h,v 1.8 2010/07/30 04:20:13 pivarski Exp $
20 //
21 
22 // system include files
23 #include <string>
24 #include "xercesc/dom/DOMElement.hpp"
25 #include "xercesc/util/XercesDefs.hpp"
26 
27 // user include files
30 
31 // forward declarations
32 
34 public:
36  const DTGeometry *dtGeometry,
37  const CSCGeometry *cscGeometry,
38  const GEMGeometry *gemGeometry,
39  const DTGeometry *dtGeometryIdeal,
40  const CSCGeometry *cscGeometryIdeal,
41  const GEMGeometry *gemGeometryIdeal);
42  ~MuonAlignmentInputXML() override;
43 
44  // ---------- const member functions ---------------------
45 
46  // ---------- static member functions --------------------
47 
48  // ---------- member functions ---------------------------
49 
50  AlignableMuon *newAlignableMuon() const override;
51 
52  MuonAlignmentInputXML(const MuonAlignmentInputXML &) = delete; // stop default
53 
54  const MuonAlignmentInputXML &operator=(const MuonAlignmentInputXML &) = delete; // stop default
55 
56 private:
57  void recursiveGetId(std::map<unsigned int, Alignable *> &alignableNavigator,
58  const align::Alignables &alignables) const;
59 
60  void fillAliToIdeal(std::map<Alignable *, Alignable *> &alitoideal,
61  const align::Alignables &alignables,
62  const align::Alignables &ideals) const;
63 
64  Alignable *getNode(std::map<unsigned int, Alignable *> &alignableNavigator,
65  const XERCES_CPP_NAMESPACE::DOMElement *node,
66  const AlignableObjectId &) const;
68  std::map<unsigned int, Alignable *> &alignableNavigator,
69  const XERCES_CPP_NAMESPACE::DOMElement *node,
70  const AlignableObjectId &) const;
72  std::map<unsigned int, Alignable *> &alignableNavigator,
73  const XERCES_CPP_NAMESPACE::DOMElement *node,
74  const AlignableObjectId &) const;
76  std::map<unsigned int, Alignable *> &alignableNavigator,
77  const XERCES_CPP_NAMESPACE::DOMElement *node,
78  const AlignableObjectId &) const;
79 
80  double parseDouble(const XMLCh *str, const char *attribute) const;
82 
83  void do_setposition(const XERCES_CPP_NAMESPACE::DOMElement *node,
84  std::map<Alignable *, bool> &aliset,
85  std::map<Alignable *, Alignable *> &alitoideal) const;
86  void do_setape(const XERCES_CPP_NAMESPACE::DOMElement *node,
87  std::map<Alignable *, bool> &aliset,
88  std::map<Alignable *, Alignable *> &alitoideal) const;
89  void do_setsurveyerr(const XERCES_CPP_NAMESPACE::DOMElement *node,
90  std::map<Alignable *, bool> &aliset,
91  std::map<Alignable *, Alignable *> &alitoideal) const;
92  void do_moveglobal(const XERCES_CPP_NAMESPACE::DOMElement *node,
93  std::map<Alignable *, bool> &aliset,
94  std::map<Alignable *, Alignable *> &alitoideal) const;
95  void do_movelocal(const XERCES_CPP_NAMESPACE::DOMElement *node,
96  std::map<Alignable *, bool> &aliset,
97  std::map<Alignable *, Alignable *> &alitoideal) const;
98  void do_rotatelocal(const XERCES_CPP_NAMESPACE::DOMElement *node,
99  std::map<Alignable *, bool> &aliset,
100  std::map<Alignable *, Alignable *> &alitoideal) const;
101  void do_rotatebeamline(const XERCES_CPP_NAMESPACE::DOMElement *node,
102  std::map<Alignable *, bool> &aliset,
103  std::map<Alignable *, Alignable *> &alitoideal) const;
104  void do_rotateglobalaxis(const XERCES_CPP_NAMESPACE::DOMElement *node,
105  std::map<Alignable *, bool> &aliset,
106  std::map<Alignable *, Alignable *> &alitoideal) const;
107 
108  // ---------- member data --------------------------------
110 
117 
120  XMLCh *str_name;
121  XMLCh *str_DTBarrel;
122  XMLCh *str_DTWheel;
126  XMLCh *str_DTLayer;
129  XMLCh *str_CSCRing;
131  XMLCh *str_CSCLayer;
134  XMLCh *str_GEMRing;
139  XMLCh *str_setape;
147  XMLCh *str_rawId;
148  XMLCh *str_wheel;
149  XMLCh *str_station;
150  XMLCh *str_sector;
152  XMLCh *str_layer;
153  XMLCh *str_endcap;
154  XMLCh *str_ring;
155  XMLCh *str_chamber;
158  XMLCh *str_axisx;
159  XMLCh *str_axisy;
160  XMLCh *str_axisz;
161  XMLCh *str_angle;
162  XMLCh *str_x;
163  XMLCh *str_y;
164  XMLCh *str_z;
165  XMLCh *str_phix;
166  XMLCh *str_phiy;
167  XMLCh *str_phiz;
168  XMLCh *str_alpha;
169  XMLCh *str_beta;
170  XMLCh *str_gamma;
171  XMLCh *str_rphi;
172  XMLCh *str_phi;
173  XMLCh *str_xx;
174  XMLCh *str_xy;
175  XMLCh *str_xz;
176  XMLCh *str_xa;
177  XMLCh *str_xb;
178  XMLCh *str_xc;
179  XMLCh *str_yy;
180  XMLCh *str_yz;
181  XMLCh *str_ya;
182  XMLCh *str_yb;
183  XMLCh *str_yc;
184  XMLCh *str_zz;
185  XMLCh *str_za;
186  XMLCh *str_zb;
187  XMLCh *str_zc;
188  XMLCh *str_aa;
189  XMLCh *str_ab;
190  XMLCh *str_ac;
191  XMLCh *str_bb;
192  XMLCh *str_bc;
193  XMLCh *str_cc;
194  XMLCh *str_none;
195  XMLCh *str_ideal;
197 };
198 
199 #endif
void do_moveglobal(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
void recursiveGetId(std::map< unsigned int, Alignable *> &alignableNavigator, const align::Alignables &alignables) const
Alignable * getNode(std::map< unsigned int, Alignable *> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId &) const
AlignableMuon * newAlignableMuon() const override
void do_rotateglobalaxis(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
const DTGeometry * dtGeometryIdeal_
void do_setape(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
const DTGeometry * dtGeometry_
void do_setposition(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
const MuonAlignmentInputXML & operator=(const MuonAlignmentInputXML &)=delete
void do_rotatebeamline(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
Allows conversion between type and name, and vice-versa.
void do_setsurveyerr(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
Alignable * getCSCnode(align::StructureType structureType, std::map< unsigned int, Alignable *> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId &) const
void do_rotatelocal(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
void do_movelocal(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable *> &alitoideal) const
const GEMGeometry * gemGeometryIdeal_
Alignable * getGEMnode(align::StructureType structureType, std::map< unsigned int, Alignable *> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId &) const
double parseDouble(const XMLCh *str, const char *attribute) const
const GEMGeometry * gemGeometry_
MuonAlignmentInputXML(const std::string &fileName, const DTGeometry *dtGeometry, const CSCGeometry *cscGeometry, const GEMGeometry *gemGeometry, const DTGeometry *dtGeometryIdeal, const CSCGeometry *cscGeometryIdeal, const GEMGeometry *gemGeometryIdeal)
const CSCGeometry * cscGeometryIdeal_
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
Alignable * getDTnode(align::StructureType structureType, std::map< unsigned int, Alignable *> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId &) const
void fillAliToIdeal(std::map< Alignable *, Alignable *> &alitoideal, const align::Alignables &alignables, const align::Alignables &ideals) const
#define str(s)
Constructor of the full muon geometry.
Definition: AlignableMuon.h:38
const CSCGeometry * cscGeometry_
void set_one_position(Alignable *ali, const align::PositionType &pos, const align::RotationType &rot) const