Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:56:38

0001 #ifndef Alignment_MuonAlignment_MuonAlignmentOutputXML_h
0002 #define Alignment_MuonAlignment_MuonAlignmentOutputXML_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     MuonAlignment
0006 // Class  :     MuonAlignmentOutputXML
0007 //
0008 /**\class MuonAlignmentOutputXML MuonAlignmentOutputXML.h Alignment/MuonAlignment/interface/MuonAlignmentOutputXML.h
0009 
0010  Description: <one line class summary>
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Jim Pivarski
0018 //         Created:  Fri Mar 14 18:02:28 CDT 2008
0019 // $Id: MuonAlignmentOutputXML.h,v 1.3 2008/05/17 18:10:19 pivarski Exp $
0020 //
0021 
0022 // system include files
0023 #include <fstream>
0024 
0025 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0026 #include "FWCore/Framework/interface/EventSetup.h"
0027 
0028 // user include files
0029 #include "Alignment/MuonAlignment/interface/AlignableMuon.h"
0030 #include "CondFormats/Alignment/interface/AlignTransformErrorExtended.h"
0031 #include "Geometry/DTGeometry/interface/DTGeometry.h"
0032 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
0033 #include "Geometry/GEMGeometry/interface/GEMGeometry.h"
0034 // forward declarations
0035 class AlignableObjectId;
0036 
0037 class MuonAlignmentOutputXML {
0038 public:
0039   MuonAlignmentOutputXML(const edm::ParameterSet &iConfig,
0040                          const DTGeometry *dtGeometry,
0041                          const CSCGeometry *cscGeometry,
0042                          const GEMGeometry *gemGeometry);
0043   virtual ~MuonAlignmentOutputXML();
0044 
0045   // ---------- const member functions ---------------------
0046 
0047   // ---------- static member functions --------------------
0048 
0049   // ---------- member functions ---------------------------
0050 
0051   void write(AlignableMuon *alignableMuon) const;
0052 
0053   MuonAlignmentOutputXML(const MuonAlignmentOutputXML &) = delete;  // stop default
0054 
0055   const MuonAlignmentOutputXML &operator=(const MuonAlignmentOutputXML &) = delete;  // stop default
0056 
0057 private:
0058   enum { doDT, doCSC, doGEM };
0059   void writeComponents(align::Alignables &alignables,
0060                        align::Alignables &ideals,
0061                        std::map<align::ID, CLHEP::HepSymMatrix> &errors,
0062                        std::ofstream &outputFile,
0063                        const int doDet,
0064                        const AlignableObjectId &) const;
0065 
0066   // ---------- member data --------------------------------
0067   std::string m_fileName;
0068   int m_relativeto;
0069   bool m_survey, m_rawIds, m_eulerAngles;
0070   int m_precision;
0071   bool m_suppressDTBarrel, m_suppressDTWheels, m_suppressDTStations, m_suppressDTChambers, m_suppressDTSuperLayers,
0072       m_suppressDTLayers;
0073   bool m_suppressCSCEndcaps, m_suppressCSCStations, m_suppressCSCRings, m_suppressCSCChambers, m_suppressCSCLayers;
0074   bool m_suppressGEMEndcaps, m_suppressGEMStations, m_suppressGEMRings, m_suppressGEMSuperChambers,
0075       m_suppressGEMChambers, m_suppressGEMEtaPartitions;
0076 
0077   const DTGeometry *dtGeometry_;
0078   const CSCGeometry *cscGeometry_;
0079   const GEMGeometry *gemGeometry_;
0080 };
0081 
0082 #endif