MuonAlignmentInputXML

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
#ifndef Alignment_MuonAlignment_MuonAlignmentInputXML_h
#define Alignment_MuonAlignment_MuonAlignmentInputXML_h
// -*- C++ -*-
//
// Package:     MuonAlignment
// Class  :     MuonAlignmentInputXML
//
/**\class MuonAlignmentInputXML MuonAlignmentInputXML.h Alignment/MuonAlignment/interface/MuonAlignmentInputXML.h

 Description: <one line class summary>

 Usage:
    <usage>

*/
//
// Original Author:  Jim Pivarski
//         Created:  Mon Mar 10 16:37:55 CDT 2008
// $Id: MuonAlignmentInputXML.h,v 1.8 2010/07/30 04:20:13 pivarski Exp $
//

// system include files
#include <string>
#include "xercesc/dom/DOMElement.hpp"
#include "xercesc/util/XercesDefs.hpp"

// user include files
#include "Alignment/MuonAlignment/interface/MuonAlignmentInputMethod.h"
#include "Alignment/CommonAlignment/interface/Alignable.h"

// forward declarations

class MuonAlignmentInputXML : public MuonAlignmentInputMethod {
public:
  MuonAlignmentInputXML(const std::string &fileName,
                        const DTGeometry *dtGeometry,
                        const CSCGeometry *cscGeometry,
                        const GEMGeometry *gemGeometry,
                        const DTGeometry *dtGeometryIdeal,
                        const CSCGeometry *cscGeometryIdeal,
                        const GEMGeometry *gemGeometryIdeal);
  ~MuonAlignmentInputXML() override;

  // ---------- const member functions ---------------------

  // ---------- static member functions --------------------

  // ---------- member functions ---------------------------

  AlignableMuon *newAlignableMuon() const override;

  MuonAlignmentInputXML(const MuonAlignmentInputXML &) = delete;  // stop default

  const MuonAlignmentInputXML &operator=(const MuonAlignmentInputXML &) = delete;  // stop default

private:
  void recursiveGetId(std::map<unsigned int, Alignable *> &alignableNavigator,
                      const align::Alignables &alignables) const;

  void fillAliToIdeal(std::map<Alignable *, Alignable *> &alitoideal,
                      const align::Alignables &alignables,
                      const align::Alignables &ideals) const;

  Alignable *getNode(std::map<unsigned int, Alignable *> &alignableNavigator,
                     const XERCES_CPP_NAMESPACE::DOMElement *node,
                     const AlignableObjectId &) const;
  Alignable *getDTnode(align::StructureType structureType,
                       std::map<unsigned int, Alignable *> &alignableNavigator,
                       const XERCES_CPP_NAMESPACE::DOMElement *node,
                       const AlignableObjectId &) const;
  Alignable *getCSCnode(align::StructureType structureType,
                        std::map<unsigned int, Alignable *> &alignableNavigator,
                        const XERCES_CPP_NAMESPACE::DOMElement *node,
                        const AlignableObjectId &) const;
  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;
  void set_one_position(Alignable *ali, const align::PositionType &pos, const align::RotationType &rot) const;

  void do_setposition(const XERCES_CPP_NAMESPACE::DOMElement *node,
                      std::map<Alignable *, bool> &aliset,
                      std::map<Alignable *, Alignable *> &alitoideal) const;
  void do_setape(const XERCES_CPP_NAMESPACE::DOMElement *node,
                 std::map<Alignable *, bool> &aliset,
                 std::map<Alignable *, Alignable *> &alitoideal) const;
  void do_setsurveyerr(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_movelocal(const XERCES_CPP_NAMESPACE::DOMElement *node,
                    std::map<Alignable *, bool> &aliset,
                    std::map<Alignable *, Alignable *> &alitoideal) const;
  void do_rotatelocal(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;
  void do_rotateglobalaxis(const XERCES_CPP_NAMESPACE::DOMElement *node,
                           std::map<Alignable *, bool> &aliset,
                           std::map<Alignable *, Alignable *> &alitoideal) const;

  // ---------- member data --------------------------------
  std::string m_fileName;

  const DTGeometry *dtGeometry_;
  const CSCGeometry *cscGeometry_;
  const GEMGeometry *gemGeometry_;
  const DTGeometry *dtGeometryIdeal_;
  const CSCGeometry *cscGeometryIdeal_;
  const GEMGeometry *gemGeometryIdeal_;

  XMLCh *str_operation;
  XMLCh *str_collection;
  XMLCh *str_name;
  XMLCh *str_DTBarrel;
  XMLCh *str_DTWheel;
  XMLCh *str_DTStation;
  XMLCh *str_DTChamber;
  XMLCh *str_DTSuperLayer;
  XMLCh *str_DTLayer;
  XMLCh *str_CSCEndcap;
  XMLCh *str_CSCStation;
  XMLCh *str_CSCRing;
  XMLCh *str_CSCChamber;
  XMLCh *str_CSCLayer;
  XMLCh *str_GEMEndcap;
  XMLCh *str_GEMStation;
  XMLCh *str_GEMRing;
  XMLCh *str_GEMSuperChamber;
  XMLCh *str_GEMChamber;
  XMLCh *str_GEMEtaPartition;
  XMLCh *str_setposition;
  XMLCh *str_setape;
  XMLCh *str_setsurveyerr;
  XMLCh *str_moveglobal;
  XMLCh *str_movelocal;
  XMLCh *str_rotatelocal;
  XMLCh *str_rotatebeamline;
  XMLCh *str_rotateglobalaxis;
  XMLCh *str_relativeto;
  XMLCh *str_rawId;
  XMLCh *str_wheel;
  XMLCh *str_station;
  XMLCh *str_sector;
  XMLCh *str_superlayer;
  XMLCh *str_layer;
  XMLCh *str_endcap;
  XMLCh *str_ring;
  XMLCh *str_chamber;
  XMLCh *str_superChamber;
  XMLCh *str_etaPartition;
  XMLCh *str_axisx;
  XMLCh *str_axisy;
  XMLCh *str_axisz;
  XMLCh *str_angle;
  XMLCh *str_x;
  XMLCh *str_y;
  XMLCh *str_z;
  XMLCh *str_phix;
  XMLCh *str_phiy;
  XMLCh *str_phiz;
  XMLCh *str_alpha;
  XMLCh *str_beta;
  XMLCh *str_gamma;
  XMLCh *str_rphi;
  XMLCh *str_phi;
  XMLCh *str_xx;
  XMLCh *str_xy;
  XMLCh *str_xz;
  XMLCh *str_xa;
  XMLCh *str_xb;
  XMLCh *str_xc;
  XMLCh *str_yy;
  XMLCh *str_yz;
  XMLCh *str_ya;
  XMLCh *str_yb;
  XMLCh *str_yc;
  XMLCh *str_zz;
  XMLCh *str_za;
  XMLCh *str_zb;
  XMLCh *str_zc;
  XMLCh *str_aa;
  XMLCh *str_ab;
  XMLCh *str_ac;
  XMLCh *str_bb;
  XMLCh *str_bc;
  XMLCh *str_cc;
  XMLCh *str_none;
  XMLCh *str_ideal;
  XMLCh *str_container;
};

#endif