|
|
Go to the documentation of this file.
74 theAlignable->
move(gvector);
92 theAlignable->
move(gvector);
103 for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
112 for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
113 unsigned int rawId = (*alignable)->geomDetId().rawId();
115 theMap[rawId] = *alignable;
125 for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
126 theMap[std::pair<align::StructureType, align::ID>((*alignable)->alignableObjectId(), (*alignable)->id())] =
135 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));
150 for (std::vector<AlignTransformErrorExtended>::const_iterator alignmentError = alignmentErrors.begin();
151 alignmentError != alignmentErrors.end();
154 CLHEP::HepSymMatrix matrix6x6new = alignmentError->matrix();
156 for (
int i = 0;
i < 6;
i++) {
157 for (
int j = 0;
j < 6;
j++) {
158 matrix6x6(
i,
j) = matrix6x6new(
i + 1,
j + 1);
165 Alignable* alignable = alignableMap[alignmentError->rawId()];
177 std::map<std::pair<align::StructureType, align::ID>,
Alignable*> alignableStructureMap;
181 for (
std::map<std::pair<align::StructureType, align::ID>,
Alignable*>::const_iterator iter =
182 alignableStructureMap.begin();
183 iter != alignableStructureMap.end();
185 if (iter->second->survey() ==
nullptr) {
193 iter->second->setSurvey(
new SurveyDet(iter->second->surface(), matrix6x6));
201 if (alignable->
survey() !=
nullptr) {
216 for (
int i = 0;
i < 6;
i++) {
217 for (
int j = 0;
j <=
i;
j++) {
218 matrix6x6new(
i,
j) = matrix6x6(
i,
j);
246 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
255 for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
261 CLHEP::HepRotation(CLHEP::HepRep3x3(
264 SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
279 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
288 for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
294 CLHEP::HepRotation(CLHEP::HepRep3x3(
297 SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
317 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
333 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
Get DT alignment errors sorted by DetId.
static const std::string input
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.
const align::PositionType & position() const
Alignments * cscAlignments()
Get CSC alignments sorted by DetId.
math::Error< 6 >::type ErrorMatrix
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)
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.
std::string theCSCSurveyErrorRecordName
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.
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.