|
|
Go to the documentation of this file.
72 theAlignable->
move(gvector);
90 theAlignable->
move(gvector);
101 for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
110 for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
111 unsigned int rawId = (*alignable)->geomDetId().rawId();
113 theMap[rawId] = *alignable;
123 for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
124 theMap[std::pair<align::StructureType, align::ID>((*alignable)->alignableObjectId(), (*alignable)->id())] =
133 std::map<align::ID, Alignable*> alignableMap;
142 std::vector<AlignTransformErrorExtended> alignmentErrors;
143 std::copy(dtAlignmentErrorsExtended->m_alignError.begin(),
144 dtAlignmentErrorsExtended->m_alignError.end(),
145 std::back_inserter(alignmentErrors));
148 std::back_inserter(alignmentErrors));
151 std::back_inserter(alignmentErrors));
153 for (std::vector<AlignTransformErrorExtended>::const_iterator alignmentError = alignmentErrors.begin();
154 alignmentError != alignmentErrors.end();
157 CLHEP::HepSymMatrix matrix6x6new = alignmentError->matrix();
159 for (
int i = 0;
i < 6;
i++) {
160 for (
int j = 0;
j < 6;
j++) {
161 matrix6x6(
i,
j) = matrix6x6new(
i + 1,
j + 1);
168 Alignable* alignable = alignableMap[alignmentError->rawId()];
180 std::map<std::pair<align::StructureType, align::ID>,
Alignable*> alignableStructureMap;
184 for (
std::map<std::pair<align::StructureType, align::ID>,
Alignable*>::const_iterator iter =
185 alignableStructureMap.begin();
186 iter != alignableStructureMap.end();
188 if (iter->second->survey() ==
nullptr) {
196 iter->second->setSurvey(
new SurveyDet(iter->second->surface(), matrix6x6));
204 if (alignable->
survey() !=
nullptr) {
219 for (
int i = 0;
i < 6;
i++) {
220 for (
int j = 0;
j <=
i;
j++) {
221 matrix6x6new(
i,
j) = matrix6x6(
i,
j);
249 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
258 for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
264 CLHEP::HepRotation(CLHEP::HepRep3x3(
267 SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
282 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
291 for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
297 CLHEP::HepRotation(CLHEP::HepRep3x3(
300 SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
320 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
336 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
352 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
std::string theGEMErrorRecordName
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
Get DT alignment errors sorted by DetId.
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > esTokenGEM_
static const std::string input
align::Alignables GEMEndcaps()
std::vector< Scalar > Scalars
const align::ErrorMatrix & errors() const
virtual void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown)=0
Set the alignment position error - if (!propagateDown) do not affect daughters.
virtual void rotateInGlobalFrame(const RotationType &rotation)=0
void copyAlignmentToSurvey(double shiftErr, double angleErr)
std::string theDTSurveyErrorRecordName
virtual void rotateAroundGlobalX(Scalar radians)
Rotation around global x-axis.
edm::ESGetToken< DTGeometry, MuonGeometryRecord > esTokenDT_
const align::PositionType & position() const
Alignments * cscAlignments()
Get CSC alignments sorted by DetId.
math::Error< 6 >::type ErrorMatrix
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > esTokenCSC_
GlobalErrorBaseExtended< double, ErrorMatrixTag > GlobalErrorExtended
Alignments * dtAlignments()
Get DT alignments sorted by DetId.
virtual void rotateAroundGlobalZ(Scalar radians)
Rotation around global z-axis.
void setSurvey(const SurveyDet *)
Set survey info.
void recursiveCopySurveyToAlignment(Alignable *alignable)
void fillGapsInSurvey(double shiftErr, double angleErr)
std::string theCSCAlignRecordName
void recursiveStructureMap(const align::Alignables &alignables, std::map< std::pair< align::StructureType, align::ID >, Alignable * > &theMap)
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
void writeXML(const edm::ParameterSet &iConfig, const edm::EventSetup &iSetup)
Alignments * gemAlignments()
align::Scalars displacements
std::string theDTSurveyRecordName
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
AlignableNavigator * theAlignableNavigator
align::Alignables DTBarrel()
virtual void rotateAroundGlobalY(Scalar radians)
Rotation around global y-axis.
const align::RotationType & rotation() const
void recursiveList(const align::Alignables &alignables, align::Alignables &theList)
std::string theDTAlignRecordName
MuonAlignment(const edm::EventSetup &iSetup)
void moveAlignableGlobalCoord(DetId &, align::Scalars &, align::Scalars &)
void copySurveyToAlignment()
virtual void rotateAroundLocalZ(Scalar radians)
Rotation around local z-axis.
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
std::string theCSCSurveyErrorRecordName
AlignmentErrorsExtended * gemAlignmentErrorsExtended()
virtual void rotateAroundLocalX(Scalar radians)
Rotation around local x-axis.
virtual void move(const GlobalVector &displacement)=0
Movement with respect to the global reference frame.
void moveAlignableLocalCoord(DetId &, align::Scalars &, align::Scalars &)
std::vector< Alignable * > Alignables
align::Alignables CSCEndcaps()
AlignableDetOrUnitPtr alignableFromDetId(const DetId &detid)
Returns AlignableDetOrUnitPtr corresponding to given DetId.
AlignableMuon * theAlignableMuon
virtual void rotateAroundLocalY(Scalar radians)
Rotation around local y-axis.
Hash writeOne(const T *payload, Time_t time, const std::string &recordName)
void recursiveMap(const align::Alignables &alignables, std::map< align::ID, Alignable * > &theMap)
std::string theCSCSurveyRecordName
TkRotation transposed() const
std::vector< AlignTransform > m_align
std::vector< AlignTransformErrorExtended > m_alignError
std::string theCSCErrorRecordName
AlignmentErrorsExtended * cscAlignmentErrorsExtended()
Get CSC alignment errors sorted by DetId.
const PositionType & globalPosition() const
Return the global position of the object.
std::string theDTErrorRecordName
std::vector< SurveyError > m_surveyErrors
virtual const Alignables & components() const =0
Return vector of all direct components.
std::string theGEMAlignRecordName
const SurveyDet * survey() const
Return survey info.
void write(AlignableMuon *alignableMuon, const edm::EventSetup &iSetup) const
cond::Time_t currentTime() const
const RotationType & globalRotation() const
Return the global orientation of the object.