CMS 3D CMS Logo

MuonAlignmentInputXML.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignment_MuonAlignmentInputXML_h
00002 #define Alignment_MuonAlignment_MuonAlignmentInputXML_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     MuonAlignment
00006 // Class  :     MuonAlignmentInputXML
00007 // 
00016 //
00017 // Original Author:  Jim Pivarski
00018 //         Created:  Mon Mar 10 16:37:55 CDT 2008
00019 // $Id: MuonAlignmentInputXML.h,v 1.4 2008/06/20 15:28:12 pivarski Exp $
00020 //
00021 
00022 // system include files
00023 #include <string>
00024 #include <xercesc/dom/DOMElement.hpp>
00025 
00026 // user include files
00027 #include "Alignment/MuonAlignment/interface/MuonAlignmentInputMethod.h"
00028 #include "Alignment/CommonAlignment/interface/Alignable.h"
00029 
00030 // forward declarations
00031 
00032 class MuonAlignmentInputXML: public MuonAlignmentInputMethod {
00033    public:
00034       MuonAlignmentInputXML(std::string fileName);
00035       virtual ~MuonAlignmentInputXML();
00036 
00037       // ---------- const member functions ---------------------
00038 
00039       // ---------- static member functions --------------------
00040 
00041       // ---------- member functions ---------------------------
00042 
00043       virtual AlignableMuon *newAlignableMuon(const edm::EventSetup &iSetup) const;
00044 
00045    private:
00046       MuonAlignmentInputXML(const MuonAlignmentInputXML&); // stop default
00047 
00048       const MuonAlignmentInputXML& operator=(const MuonAlignmentInputXML&); // stop default
00049 
00050       void recursiveGetId(std::map<unsigned int, Alignable*> &alignableNavigator, const std::vector<Alignable*> &alignables) const;
00051 
00052       void fillAliToIdeal(std::map<Alignable*, Alignable*> &alitoideal, const std::vector<Alignable*> alignables, const std::vector<Alignable*> ideals) const;
00053 
00054       Alignable *getNode(std::map<unsigned int, Alignable*> &alignableNavigator, const xercesc_2_7::DOMElement *node) const;
00055       Alignable *getDTnode(align::StructureType structureType, std::map<unsigned int, Alignable*> &alignableNavigator, const xercesc_2_7::DOMElement *node) const;
00056       Alignable *getCSCnode(align::StructureType structureType, std::map<unsigned int, Alignable*> &alignableNavigator, const xercesc_2_7::DOMElement *node) const;
00057 
00058       double parseDouble(const XMLCh *str, const char *attribute) const;
00059       void set_one_position(Alignable *ali, const align::PositionType &pos, const align::RotationType &rot) const;
00060 
00061       void do_setposition (const xercesc_2_7::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
00062       void do_setape      (const xercesc_2_7::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
00063       void do_setsurveyerr(const xercesc_2_7::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
00064       void do_moveglobal  (const xercesc_2_7::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
00065       void do_rotatelocal (const xercesc_2_7::DOMElement *node, std::map<Alignable*, bool> &aliset, std::map<Alignable*, Alignable*> &alitoideal) const;
00066 
00067       // ---------- member data --------------------------------
00068       std::string m_fileName;
00069 
00070       XMLCh *str_operation;
00071       XMLCh *str_collection;
00072       XMLCh *str_name;
00073       XMLCh *str_DTBarrel;
00074       XMLCh *str_DTWheel;
00075       XMLCh *str_DTStation;
00076       XMLCh *str_DTChamber;
00077       XMLCh *str_DTSuperLayer;
00078       XMLCh *str_DTLayer;
00079       XMLCh *str_CSCEndcap;
00080       XMLCh *str_CSCStation;
00081       XMLCh *str_CSCRing;
00082       XMLCh *str_CSCChamber;
00083       XMLCh *str_CSCLayer;
00084       XMLCh *str_setposition;
00085       XMLCh *str_setape;
00086       XMLCh *str_setsurveyerr;
00087       XMLCh *str_moveglobal;
00088       XMLCh *str_rotatelocal;
00089       XMLCh *str_relativeto;
00090       XMLCh *str_rawId;
00091       XMLCh *str_wheel;
00092       XMLCh *str_station;
00093       XMLCh *str_sector;
00094       XMLCh *str_superlayer;
00095       XMLCh *str_layer;
00096       XMLCh *str_endcap;
00097       XMLCh *str_ring;
00098       XMLCh *str_chamber;
00099       XMLCh *str_axisx;
00100       XMLCh *str_axisy;
00101       XMLCh *str_axisz;
00102       XMLCh *str_angle;
00103       XMLCh *str_x;
00104       XMLCh *str_y;
00105       XMLCh *str_z;
00106       XMLCh *str_phix;
00107       XMLCh *str_phiy;
00108       XMLCh *str_phiz;
00109       XMLCh *str_alpha;
00110       XMLCh *str_beta;
00111       XMLCh *str_gamma;
00112       XMLCh *str_xx;
00113       XMLCh *str_xy;
00114       XMLCh *str_xz;
00115       XMLCh *str_xa;
00116       XMLCh *str_xb;
00117       XMLCh *str_xc;
00118       XMLCh *str_yy;
00119       XMLCh *str_yz;
00120       XMLCh *str_ya;
00121       XMLCh *str_yb;
00122       XMLCh *str_yc;
00123       XMLCh *str_zz;
00124       XMLCh *str_za;
00125       XMLCh *str_zb;
00126       XMLCh *str_zc;
00127       XMLCh *str_aa;
00128       XMLCh *str_ab;
00129       XMLCh *str_ac;
00130       XMLCh *str_bb;
00131       XMLCh *str_bc;
00132       XMLCh *str_cc;
00133       XMLCh *str_none;
00134       XMLCh *str_ideal;
00135       XMLCh *str_container;
00136 };
00137 
00138 
00139 #endif

Generated on Tue Jun 9 17:24:11 2009 for CMSSW by  doxygen 1.5.4