CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
MuonAlignmentInputSurveyDB Class Reference

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

Inheritance diagram for MuonAlignmentInputSurveyDB:
MuonAlignmentInputMethod

Public Member Functions

 MuonAlignmentInputSurveyDB ()
 
 MuonAlignmentInputSurveyDB (std::string dtLabel, std::string cscLabel, std::string idealLabel)
 
AlignableMuonnewAlignableMuon (const edm::EventSetup &iSetup) const override
 
 ~MuonAlignmentInputSurveyDB () override
 
- Public Member Functions inherited from MuonAlignmentInputMethod
 MuonAlignmentInputMethod ()
 
 MuonAlignmentInputMethod (std::string idealLabel)
 
virtual ~MuonAlignmentInputMethod ()
 

Private Member Functions

void addSurveyInfo_ (Alignable *ali, unsigned int *theSurveyIndex, const Alignments *theSurveyValues, const SurveyErrors *theSurveyErrors) const
 
 MuonAlignmentInputSurveyDB (const MuonAlignmentInputSurveyDB &)=delete
 
const MuonAlignmentInputSurveyDBoperator= (const MuonAlignmentInputSurveyDB &)=delete
 

Private Attributes

std::string idealGeometryLabel
 
std::string m_cscLabel
 
std::string m_dtLabel
 

Detailed Description

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

Usage: <usage>

Definition at line 31 of file MuonAlignmentInputSurveyDB.h.

Constructor & Destructor Documentation

◆ MuonAlignmentInputSurveyDB() [1/3]

MuonAlignmentInputSurveyDB::MuonAlignmentInputSurveyDB ( )

Definition at line 37 of file MuonAlignmentInputSurveyDB.cc.

38  : m_dtLabel(""), m_cscLabel(""), idealGeometryLabel("idealForInputSurveyDB") {}

◆ MuonAlignmentInputSurveyDB() [2/3]

MuonAlignmentInputSurveyDB::MuonAlignmentInputSurveyDB ( std::string  dtLabel,
std::string  cscLabel,
std::string  idealLabel 
)

Definition at line 40 of file MuonAlignmentInputSurveyDB.cc.

◆ ~MuonAlignmentInputSurveyDB()

MuonAlignmentInputSurveyDB::~MuonAlignmentInputSurveyDB ( )
override

Definition at line 50 of file MuonAlignmentInputSurveyDB.cc.

50 {}

◆ MuonAlignmentInputSurveyDB() [3/3]

MuonAlignmentInputSurveyDB::MuonAlignmentInputSurveyDB ( const MuonAlignmentInputSurveyDB )
privatedelete

Member Function Documentation

◆ addSurveyInfo_()

void MuonAlignmentInputSurveyDB::addSurveyInfo_ ( Alignable ali,
unsigned int *  theSurveyIndex,
const Alignments theSurveyValues,
const SurveyErrors theSurveyErrors 
) const
private

Definition at line 110 of file MuonAlignmentInputSurveyDB.cc.

113  {
114  const auto& comp = ali->components();
115 
116  unsigned int nComp = comp.size();
117 
118  for (unsigned int i = 0; i < nComp; ++i)
119  addSurveyInfo_(comp[i], theSurveyIndex, theSurveyValues, theSurveyErrors);
120 
121  const SurveyError& error = theSurveyErrors->m_surveyErrors[*theSurveyIndex];
122 
123  if (ali->geomDetId().rawId() != error.rawId() || ali->alignableObjectId() != error.structureType()) {
124  throw cms::Exception("DatabaseError") << "Error reading survey info from DB. Mismatched id!";
125  }
126 
127  const CLHEP::Hep3Vector& pos = theSurveyValues->m_align[*theSurveyIndex].translation();
128  const CLHEP::HepRotation& rot = theSurveyValues->m_align[*theSurveyIndex].rotation();
129 
130  AlignableSurface surf(
131  align::PositionType(pos.x(), pos.y(), pos.z()),
132  align::RotationType(rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz()));
133 
134  surf.setWidth(ali->surface().width());
135  surf.setLength(ali->surface().length());
136 
137  ali->setSurvey(new SurveyDet(surf, error.matrix()));
138 
139  (*theSurveyIndex)++;
140 }

References Alignable::alignableObjectId(), AlCaHLTBitMon_QueryRunRegistry::comp, Alignable::components(), relativeConstraints::error, Exception, Alignable::geomDetId(), mps_fire::i, AlignableSurface::length(), Alignments::m_align, SurveyErrors::m_surveyErrors, DetId::rawId(), makeMuonMisalignmentScenario::rot, AlignableSurface::setLength(), Alignable::setSurvey(), AlignableSurface::setWidth(), Alignable::surface(), and AlignableSurface::width().

Referenced by newAlignableMuon().

◆ newAlignableMuon()

AlignableMuon * MuonAlignmentInputSurveyDB::newAlignableMuon ( const edm::EventSetup iSetup) const
overridevirtual

Reimplemented from MuonAlignmentInputMethod.

Definition at line 68 of file MuonAlignmentInputSurveyDB.cc.

68  {
69  edm::ESHandle<DTGeometry> dtGeometry;
70  edm::ESHandle<CSCGeometry> cscGeometry;
72  iSetup.get<MuonGeometryRecord>().get(idealGeometryLabel, dtGeometry);
73  iSetup.get<MuonGeometryRecord>().get(idealGeometryLabel, cscGeometry);
75 
77  edm::ESHandle<SurveyErrors> dtSurveyError;
78  edm::ESHandle<Alignments> cscSurvey;
79  edm::ESHandle<SurveyErrors> cscSurveyError;
80  iSetup.get<DTSurveyRcd>().get(m_dtLabel, dtSurvey);
81  iSetup.get<DTSurveyErrorExtendedRcd>().get(m_dtLabel, dtSurveyError);
82  iSetup.get<CSCSurveyRcd>().get(m_cscLabel, cscSurvey);
83  iSetup.get<CSCSurveyErrorExtendedRcd>().get(m_cscLabel, cscSurveyError);
84 
85  AlignableMuon* output = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry));
86 
87  unsigned int theSurveyIndex = 0;
88  const Alignments* theSurveyValues = &*dtSurvey;
89  const SurveyErrors* theSurveyErrors = &*dtSurveyError;
90  const auto& barrels = output->DTBarrel();
91  for (const auto& iter : barrels) {
92  addSurveyInfo_(iter, &theSurveyIndex, theSurveyValues, theSurveyErrors);
93  }
94 
95  theSurveyIndex = 0;
96  theSurveyValues = &*cscSurvey;
97  theSurveyErrors = &*cscSurveyError;
98  const auto& endcaps = output->CSCEndcaps();
99  for (const auto& iter : endcaps) {
100  addSurveyInfo_(iter, &theSurveyIndex, theSurveyValues, theSurveyErrors);
101  }
102 
103  return output;
104 }

References addSurveyInfo_(), align::AlignableMuon, gemGeometry_cff::gemGeometry, edm::EventSetup::get(), get, idealGeometryLabel, m_cscLabel, m_dtLabel, and convertSQLitetoXML_cfg::output.

◆ operator=()

const MuonAlignmentInputSurveyDB& MuonAlignmentInputSurveyDB::operator= ( const MuonAlignmentInputSurveyDB )
privatedelete

Member Data Documentation

◆ idealGeometryLabel

std::string MuonAlignmentInputSurveyDB::idealGeometryLabel
private

Definition at line 57 of file MuonAlignmentInputSurveyDB.h.

Referenced by newAlignableMuon().

◆ m_cscLabel

std::string MuonAlignmentInputSurveyDB::m_cscLabel
private

Definition at line 57 of file MuonAlignmentInputSurveyDB.h.

Referenced by newAlignableMuon().

◆ m_dtLabel

std::string MuonAlignmentInputSurveyDB::m_dtLabel
private

Definition at line 57 of file MuonAlignmentInputSurveyDB.h.

Referenced by newAlignableMuon().

TkRotation< Scalar >
mps_fire.i
i
Definition: mps_fire.py:428
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
MuonAlignmentInputSurveyDB::m_dtLabel
std::string m_dtLabel
Definition: MuonAlignmentInputSurveyDB.h:57
pos
Definition: PixelAliasList.h:18
CSCSurveyRcd
Definition: CSCSurveyRcd.h:15
convertSQLitetoXML_cfg.cscLabel
cscLabel
Definition: convertSQLitetoXML_cfg.py:68
AlignableSurface::length
align::Scalar length() const
Definition: AlignableSurface.h:32
relativeConstraints.error
error
Definition: relativeConstraints.py:53
AlCaHLTBitMon_QueryRunRegistry.comp
comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
SurveyErrors
Definition: SurveyErrors.h:19
SurveyDet
Definition: SurveyDet.h:15
align::AlignableMuon
Definition: StructureType.h:90
Alignable::setSurvey
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:266
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
convertSQLitetoXML_cfg.dtLabel
dtLabel
Definition: convertSQLitetoXML_cfg.py:67
Alignable::alignableObjectId
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
edm::ESHandle< DTGeometry >
Alignable::surface
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:132
Point3DBase< Scalar, GlobalTag >
AlignableMuon
Constructor of the full muon geometry.
Definition: AlignableMuon.h:38
Alignable::geomDetId
const DetId & geomDetId() const
Definition: Alignable.h:177
DTSurveyRcd
Definition: DTSurveyRcd.h:15
get
#define get
MuonAlignmentInputSurveyDB::addSurveyInfo_
void addSurveyInfo_(Alignable *ali, unsigned int *theSurveyIndex, const Alignments *theSurveyValues, const SurveyErrors *theSurveyErrors) const
Definition: MuonAlignmentInputSurveyDB.cc:110
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
AlignableSurface
Definition: AlignableSurface.h:20
DTSurveyErrorExtendedRcd
Definition: DTSurveyErrorExtendedRcd.h:15
AlignableSurface::width
align::Scalar width() const
Definition: AlignableSurface.h:30
CSCSurveyErrorExtendedRcd
Definition: CSCSurveyErrorExtendedRcd.h:15
Exception
Definition: hltDiff.cc:245
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
MuonAlignmentInputSurveyDB::m_cscLabel
std::string m_cscLabel
Definition: MuonAlignmentInputSurveyDB.h:57
gemGeometry_cff.gemGeometry
gemGeometry
Definition: gemGeometry_cff.py:5
SurveyError
Definition: SurveyError.h:23
Alignments::m_align
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
MuonAlignmentInputSurveyDB::idealGeometryLabel
std::string idealGeometryLabel
Definition: MuonAlignmentInputSurveyDB.h:57
SurveyErrors::m_surveyErrors
std::vector< SurveyError > m_surveyErrors
Definition: SurveyErrors.h:22
Alignable::components
virtual const Alignables & components() const =0
Return vector of all direct components.
Alignments
Definition: Alignments.h:10
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34