CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

MuonAlignmentInputDB Class Reference

#include <Alignment/MuonAlignment/interface/MuonAlignmentInputDB.h>

Inheritance diagram for MuonAlignmentInputDB:
MuonAlignmentInputMethod

List of all members.

Public Member Functions

 MuonAlignmentInputDB ()
 MuonAlignmentInputDB (std::string dtLabel, std::string cscLabel, bool getAPEs)
virtual AlignableMuonnewAlignableMuon (const edm::EventSetup &iSetup) const
virtual ~MuonAlignmentInputDB ()

Private Member Functions

 MuonAlignmentInputDB (const MuonAlignmentInputDB &)
const MuonAlignmentInputDBoperator= (const MuonAlignmentInputDB &)

Private Attributes

std::string m_cscLabel
std::string m_dtLabel
bool m_getAPEs

Detailed Description

Description: <one line="" class="" summary>="">

Usage: <usage>

Definition at line 29 of file MuonAlignmentInputDB.h.


Constructor & Destructor Documentation

MuonAlignmentInputDB::MuonAlignmentInputDB ( )

Definition at line 38 of file MuonAlignmentInputDB.cc.

   : m_dtLabel(""), m_cscLabel("") {}
MuonAlignmentInputDB::MuonAlignmentInputDB ( std::string  dtLabel,
std::string  cscLabel,
bool  getAPEs 
)
MuonAlignmentInputDB::~MuonAlignmentInputDB ( ) [virtual]

Definition at line 49 of file MuonAlignmentInputDB.cc.

{}
MuonAlignmentInputDB::MuonAlignmentInputDB ( const MuonAlignmentInputDB ) [private]

Member Function Documentation

AlignableMuon * MuonAlignmentInputDB::newAlignableMuon ( const edm::EventSetup iSetup) const [virtual]

Reimplemented from MuonAlignmentInputMethod.

Definition at line 67 of file MuonAlignmentInputDB.cc.

References align::AlignableMuon, GeometryAligner::applyAlignments(), align::DetectorGlobalPosition(), edm::EventSetup::get(), i, MuonAlignmentInputMethod::idealCSCGeometry(), MuonAlignmentInputMethod::idealDTGeometry(), AlignmentErrors::m_alignError, m_cscLabel, m_dtLabel, m_getAPEs, and DetId::Muon.

                                                                                       {
   boost::shared_ptr<DTGeometry> dtGeometry = idealDTGeometry(iSetup);
   boost::shared_ptr<CSCGeometry> cscGeometry = idealCSCGeometry(iSetup);

   edm::ESHandle<Alignments> dtAlignments;
   edm::ESHandle<AlignmentErrors> dtAlignmentErrors;
   edm::ESHandle<Alignments> cscAlignments;
   edm::ESHandle<AlignmentErrors> cscAlignmentErrors;
   edm::ESHandle<Alignments> globalPositionRcd;

   iSetup.get<DTAlignmentRcd>().get(m_dtLabel, dtAlignments);
   iSetup.get<CSCAlignmentRcd>().get(m_cscLabel, cscAlignments);
   iSetup.get<GlobalPositionRcd>().get(globalPositionRcd);

   if (m_getAPEs) {
      iSetup.get<DTAlignmentErrorRcd>().get(m_dtLabel, dtAlignmentErrors);
      iSetup.get<CSCAlignmentErrorRcd>().get(m_cscLabel, cscAlignmentErrors);

      GeometryAligner aligner;
      aligner.applyAlignments<DTGeometry>(&(*dtGeometry), &(*dtAlignments), &(*dtAlignmentErrors),
                                          align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon)));
      aligner.applyAlignments<CSCGeometry>(&(*cscGeometry), &(*cscAlignments), &(*cscAlignmentErrors),
                                           align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon)));
   }
   else {
      AlignmentErrors dtAlignmentErrors2, cscAlignmentErrors2;

      for (std::vector<AlignTransform>::const_iterator i = dtAlignments->m_align.begin();  i != dtAlignments->m_align.end();  ++i) {
         CLHEP::HepSymMatrix empty_matrix(3, 0);
         AlignTransformError empty_error(empty_matrix, i->rawId());
         dtAlignmentErrors2.m_alignError.push_back(empty_error);
      }
      for (std::vector<AlignTransform>::const_iterator i = cscAlignments->m_align.begin();  i != cscAlignments->m_align.end();  ++i) {
         CLHEP::HepSymMatrix empty_matrix(3, 0);
         AlignTransformError empty_error(empty_matrix, i->rawId());
         cscAlignmentErrors2.m_alignError.push_back(empty_error);
      }

      GeometryAligner aligner;
      aligner.applyAlignments<DTGeometry>(&(*dtGeometry), &(*dtAlignments), &(dtAlignmentErrors2),
                                          align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon)));
      aligner.applyAlignments<CSCGeometry>(&(*cscGeometry), &(*cscAlignments), &(cscAlignmentErrors2),
                                           align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon)));
   }

   return new AlignableMuon(&(*dtGeometry), &(*cscGeometry));
}
const MuonAlignmentInputDB& MuonAlignmentInputDB::operator= ( const MuonAlignmentInputDB ) [private]

Member Data Documentation

std::string MuonAlignmentInputDB::m_cscLabel [private]

Definition at line 50 of file MuonAlignmentInputDB.h.

Referenced by newAlignableMuon().

std::string MuonAlignmentInputDB::m_dtLabel [private]

Definition at line 50 of file MuonAlignmentInputDB.h.

Referenced by newAlignableMuon().

Definition at line 51 of file MuonAlignmentInputDB.h.

Referenced by newAlignableMuon().