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  ~MuonAlignmentInputXML() override;
37 
38  // ---------- const member functions ---------------------
39 
40  // ---------- static member functions --------------------
41 
42  // ---------- member functions ---------------------------
43 
44  AlignableMuon *newAlignableMuon(const edm::EventSetup &iSetup) const override;
45 
46 private:
47  MuonAlignmentInputXML(const MuonAlignmentInputXML &) = delete; // stop default
48 
49  const MuonAlignmentInputXML &operator=(const MuonAlignmentInputXML &) = delete; // stop default
50 
51  void recursiveGetId(std::map<unsigned int, Alignable *> &alignableNavigator,
52  const align::Alignables &alignables) const;
53 
54  void fillAliToIdeal(std::map<Alignable *, Alignable *> &alitoideal,
55  const align::Alignables &alignables,
56  const align::Alignables &ideals) const;
57 
58  Alignable *getNode(std::map<unsigned int, Alignable *> &alignableNavigator,
59  const XERCES_CPP_NAMESPACE::DOMElement *node,
60  const AlignableObjectId &) const;
62  std::map<unsigned int, Alignable *> &alignableNavigator,
63  const XERCES_CPP_NAMESPACE::DOMElement *node,
64  const AlignableObjectId &) const;
66  std::map<unsigned int, Alignable *> &alignableNavigator,
67  const XERCES_CPP_NAMESPACE::DOMElement *node,
68  const AlignableObjectId &) const;
69 
70  double parseDouble(const XMLCh *str, const char *attribute) const;
72 
73  void do_setposition(const XERCES_CPP_NAMESPACE::DOMElement *node,
74  std::map<Alignable *, bool> &aliset,
75  std::map<Alignable *, Alignable *> &alitoideal) const;
76  void do_setape(const XERCES_CPP_NAMESPACE::DOMElement *node,
77  std::map<Alignable *, bool> &aliset,
78  std::map<Alignable *, Alignable *> &alitoideal) const;
79  void do_setsurveyerr(const XERCES_CPP_NAMESPACE::DOMElement *node,
80  std::map<Alignable *, bool> &aliset,
81  std::map<Alignable *, Alignable *> &alitoideal) const;
82  void do_moveglobal(const XERCES_CPP_NAMESPACE::DOMElement *node,
83  std::map<Alignable *, bool> &aliset,
84  std::map<Alignable *, Alignable *> &alitoideal) const;
85  void do_movelocal(const XERCES_CPP_NAMESPACE::DOMElement *node,
86  std::map<Alignable *, bool> &aliset,
87  std::map<Alignable *, Alignable *> &alitoideal) const;
88  void do_rotatelocal(const XERCES_CPP_NAMESPACE::DOMElement *node,
89  std::map<Alignable *, bool> &aliset,
90  std::map<Alignable *, Alignable *> &alitoideal) const;
91  void do_rotatebeamline(const XERCES_CPP_NAMESPACE::DOMElement *node,
92  std::map<Alignable *, bool> &aliset,
93  std::map<Alignable *, Alignable *> &alitoideal) const;
94  void do_rotateglobalaxis(const XERCES_CPP_NAMESPACE::DOMElement *node,
95  std::map<Alignable *, bool> &aliset,
96  std::map<Alignable *, Alignable *> &alitoideal) const;
97 
98  // ---------- member data --------------------------------
100 
103  XMLCh *str_name;
104  XMLCh *str_DTBarrel;
105  XMLCh *str_DTWheel;
109  XMLCh *str_DTLayer;
112  XMLCh *str_CSCRing;
114  XMLCh *str_CSCLayer;
116  XMLCh *str_setape;
124  XMLCh *str_rawId;
125  XMLCh *str_wheel;
126  XMLCh *str_station;
127  XMLCh *str_sector;
129  XMLCh *str_layer;
130  XMLCh *str_endcap;
131  XMLCh *str_ring;
132  XMLCh *str_chamber;
133  XMLCh *str_axisx;
134  XMLCh *str_axisy;
135  XMLCh *str_axisz;
136  XMLCh *str_angle;
137  XMLCh *str_x;
138  XMLCh *str_y;
139  XMLCh *str_z;
140  XMLCh *str_phix;
141  XMLCh *str_phiy;
142  XMLCh *str_phiz;
143  XMLCh *str_alpha;
144  XMLCh *str_beta;
145  XMLCh *str_gamma;
146  XMLCh *str_rphi;
147  XMLCh *str_phi;
148  XMLCh *str_xx;
149  XMLCh *str_xy;
150  XMLCh *str_xz;
151  XMLCh *str_xa;
152  XMLCh *str_xb;
153  XMLCh *str_xc;
154  XMLCh *str_yy;
155  XMLCh *str_yz;
156  XMLCh *str_ya;
157  XMLCh *str_yb;
158  XMLCh *str_yc;
159  XMLCh *str_zz;
160  XMLCh *str_za;
161  XMLCh *str_zb;
162  XMLCh *str_zc;
163  XMLCh *str_aa;
164  XMLCh *str_ab;
165  XMLCh *str_ac;
166  XMLCh *str_bb;
167  XMLCh *str_bc;
168  XMLCh *str_cc;
169  XMLCh *str_none;
170  XMLCh *str_ideal;
172 };
173 
174 #endif
void do_setsurveyerr(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable * > &alitoideal) const
Alignable * getNode(std::map< unsigned int, Alignable * > &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId &) const
double parseDouble(const XMLCh *str, const char *attribute) const
void do_rotatelocal(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_movelocal(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable * > &alitoideal) const
void do_moveglobal(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable * > &alitoideal) const
void do_rotatebeamline(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable * > &alitoideal) const
const MuonAlignmentInputXML & operator=(const MuonAlignmentInputXML &)=delete
void recursiveGetId(std::map< unsigned int, Alignable * > &alignableNavigator, const align::Alignables &alignables) const
void do_setape(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.
AlignableMuon * newAlignableMuon(const edm::EventSetup &iSetup) const override
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
MuonAlignmentInputXML(const std::string &fileName)
void do_rotateglobalaxis(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable * > &alitoideal) const
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
void do_setposition(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map< Alignable *, bool > &aliset, std::map< Alignable *, Alignable * > &alitoideal) const
void set_one_position(Alignable *ali, const align::PositionType &pos, const align::RotationType &rot) const
#define str(s)
Constructor of the full muon geometry.
Definition: AlignableMuon.h:33