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 
28 // user include files
31 
32 // forward declarations
33 
35  public:
37  ~MuonAlignmentInputXML() override;
38 
39  // ---------- const member functions ---------------------
40 
41  // ---------- static member functions --------------------
42 
43  // ---------- member functions ---------------------------
44 
45  AlignableMuon *newAlignableMuon(const edm::EventSetup &iSetup) const override;
46 
47  private:
48  MuonAlignmentInputXML(const MuonAlignmentInputXML&) = delete; // stop default
49 
50  const MuonAlignmentInputXML& operator=(const MuonAlignmentInputXML&) = delete; // stop default
51 
52  void recursiveGetId(std::map<unsigned int, Alignable*> &alignableNavigator, const align::Alignables &alignables) const;
53 
54  void fillAliToIdeal(std::map<Alignable*, Alignable*> &alitoideal, const align::Alignables& alignables, const align::Alignables& ideals) const;
55 
56  Alignable *getNode(std::map<unsigned int, Alignable*> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId&) const;
57  Alignable *getDTnode(align::StructureType structureType, std::map<unsigned int, Alignable*> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId&) const;
58  Alignable *getCSCnode(align::StructureType structureType, std::map<unsigned int, Alignable*> &alignableNavigator, const XERCES_CPP_NAMESPACE::DOMElement *node, const AlignableObjectId&) const;
59 
60  double parseDouble(const XMLCh *str, const char *attribute) const;
62 
63  void do_setposition (const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
64  void do_setape (const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
65  void do_setsurveyerr(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
66  void do_moveglobal (const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
67  void do_movelocal (const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
68  void do_rotatelocal (const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
69  void do_rotatebeamline (const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
70  void do_rotateglobalaxis(const XERCES_CPP_NAMESPACE::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
71 
72  // ---------- member data --------------------------------
74 
75  XMLCh *str_operation;
77  XMLCh *str_name;
78  XMLCh *str_DTBarrel;
79  XMLCh *str_DTWheel;
80  XMLCh *str_DTStation;
81  XMLCh *str_DTChamber;
83  XMLCh *str_DTLayer;
84  XMLCh *str_CSCEndcap;
86  XMLCh *str_CSCRing;
88  XMLCh *str_CSCLayer;
90  XMLCh *str_setape;
93  XMLCh *str_movelocal;
98  XMLCh *str_rawId;
99  XMLCh *str_wheel;
100  XMLCh *str_station;
101  XMLCh *str_sector;
103  XMLCh *str_layer;
104  XMLCh *str_endcap;
105  XMLCh *str_ring;
106  XMLCh *str_chamber;
107  XMLCh *str_axisx;
108  XMLCh *str_axisy;
109  XMLCh *str_axisz;
110  XMLCh *str_angle;
111  XMLCh *str_x;
112  XMLCh *str_y;
113  XMLCh *str_z;
114  XMLCh *str_phix;
115  XMLCh *str_phiy;
116  XMLCh *str_phiz;
117  XMLCh *str_alpha;
118  XMLCh *str_beta;
119  XMLCh *str_gamma;
120  XMLCh *str_rphi;
121  XMLCh *str_phi;
122  XMLCh *str_xx;
123  XMLCh *str_xy;
124  XMLCh *str_xz;
125  XMLCh *str_xa;
126  XMLCh *str_xb;
127  XMLCh *str_xc;
128  XMLCh *str_yy;
129  XMLCh *str_yz;
130  XMLCh *str_ya;
131  XMLCh *str_yb;
132  XMLCh *str_yc;
133  XMLCh *str_zz;
134  XMLCh *str_za;
135  XMLCh *str_zb;
136  XMLCh *str_zc;
137  XMLCh *str_aa;
138  XMLCh *str_ab;
139  XMLCh *str_ac;
140  XMLCh *str_bb;
141  XMLCh *str_bc;
142  XMLCh *str_cc;
143  XMLCh *str_none;
144  XMLCh *str_ideal;
146 };
147 
148 
149 #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
Constructor of the full muon geometry.
Definition: AlignableMuon.h:37