CMS 3D CMS Logo

MuonAlignment.cc
Go to the documentation of this file.
1 // system include files
2 #include <memory>
3 
4 // user include files
7 
8 // Conditions database
11 
12 // Alignment
18 
20 
25 
26 //____________________________________________________________________________________
27 //
29  theDTAlignRecordName = "DTAlignmentRcd";
30  theDTErrorRecordName = "DTAlignmentErrorExtendedRcd";
31  theCSCAlignRecordName = "CSCAlignmentRcd";
32  theCSCErrorRecordName = "CSCAlignmentErrorExtendedRcd";
33  theGEMAlignRecordName = "GEMAlignmentRcd";
34  theGEMErrorRecordName = "GEMAlignmentErrorExtendedRcd";
35  theDTSurveyRecordName = "DTSurveyRcd";
36  theDTSurveyErrorRecordName = "DTSurveyErrorExtendedRcd";
37  theCSCSurveyRecordName = "CSCSurveyRcd";
38  theCSCSurveyErrorRecordName = "CSCSurveyErrorExtendedRcd";
39  theAlignableMuon = nullptr;
40  theAlignableNavigator = nullptr;
41 }
42 
44  init();
45 
46  edm::ESHandle<DTGeometry> dtGeometry = iSetup.getHandle(esTokenDT_);
47  edm::ESHandle<CSCGeometry> cscGeometry = iSetup.getHandle(esTokenCSC_);
49 
50  theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry));
52 }
53 
55  init();
56 
57  theAlignableMuon = input.newAlignableMuon(iSetup);
59 }
60 
61 //____________________________________________________________________________________
62 //
64  // Displace and rotate DT an Alignable associated to a GeomDet or GeomDetUnit
65  Alignable* theAlignable = theAlignableNavigator->alignableFromDetId(detid);
66 
67  // Convert local to global diplacements
68  align::LocalVector lvector(displacements.at(0), displacements.at(1), displacements.at(2));
69  align::GlobalVector gvector = (theAlignable->surface()).toGlobal(lvector);
70 
71  // global displacement of the chamber
72  theAlignable->move(gvector);
73 
74  // local rotation of the chamber
75  theAlignable->rotateAroundLocalX(rotations.at(0)); // Local X axis rotation
76  theAlignable->rotateAroundLocalY(rotations.at(1)); // Local Y axis rotation
77  theAlignable->rotateAroundLocalZ(rotations.at(2)); // Local Z axis rotation
78 }
79 
80 //____________________________________________________________________________________
81 //
83  // Displace and rotate DT an Alignable associated to a GeomDet or GeomDetUnit
84  Alignable* theAlignable = theAlignableNavigator->alignableFromDetId(detid);
85 
86  // Convert std::vector to GlobalVector
87  align::GlobalVector gvector(displacements.at(0), displacements.at(1), displacements.at(2));
88 
89  // global displacement of the chamber
90  theAlignable->move(gvector);
91 
92  // local rotation of the chamber
93  theAlignable->rotateAroundGlobalX(rotations.at(0)); // Global X axis rotation
94  theAlignable->rotateAroundGlobalY(rotations.at(1)); // Global Y axis rotation
95  theAlignable->rotateAroundGlobalZ(rotations.at(2)); // Global Z axis rotation
96 }
97 
98 //____________________________________________________________________________________
99 //
101  for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
102  recursiveList((*alignable)->components(), theList);
103  theList.push_back(*alignable);
104  }
105 }
106 
107 //____________________________________________________________________________________
108 //
109 void MuonAlignment::recursiveMap(const align::Alignables& alignables, std::map<align::ID, Alignable*>& theMap) {
110  for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
111  unsigned int rawId = (*alignable)->geomDetId().rawId();
112  if (rawId != 0) {
113  theMap[rawId] = *alignable;
114  }
115  recursiveMap((*alignable)->components(), theMap);
116  }
117 }
118 
119 //____________________________________________________________________________________
120 //
122  std::map<std::pair<align::StructureType, align::ID>, Alignable*>& theMap) {
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())] =
125  *alignable;
126  recursiveStructureMap((*alignable)->components(), theMap);
127  }
128 }
129 
130 //____________________________________________________________________________________
131 //
133  std::map<align::ID, Alignable*> alignableMap;
134  recursiveMap(theAlignableMuon->DTBarrel(), alignableMap);
135  recursiveMap(theAlignableMuon->CSCEndcaps(), alignableMap);
136  recursiveMap(theAlignableMuon->GEMEndcaps(), alignableMap);
137 
138  // Set the survey error to the alignable error, expanding the matrix as needed
142  std::vector<AlignTransformErrorExtended> alignmentErrors;
143  std::copy(dtAlignmentErrorsExtended->m_alignError.begin(),
144  dtAlignmentErrorsExtended->m_alignError.end(),
145  std::back_inserter(alignmentErrors));
146  std::copy(cscAlignmentErrorsExtended->m_alignError.begin(),
147  cscAlignmentErrorsExtended->m_alignError.end(),
148  std::back_inserter(alignmentErrors));
149  std::copy(gemAlignmentErrorsExtended->m_alignError.begin(),
150  gemAlignmentErrorsExtended->m_alignError.end(),
151  std::back_inserter(alignmentErrors));
152 
153  for (std::vector<AlignTransformErrorExtended>::const_iterator alignmentError = alignmentErrors.begin();
154  alignmentError != alignmentErrors.end();
155  ++alignmentError) {
156  align::ErrorMatrix matrix6x6 = ROOT::Math::SMatrixIdentity(); // start from (0, 0)
157  CLHEP::HepSymMatrix matrix6x6new = alignmentError->matrix(); // start from (1, 1)
158 
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);
162  }
163  }
164  //matrix6x6(3,3) = angleErr;
165  //matrix6x6(4,4) = angleErr;
166  //matrix6x6(5,5) = angleErr;
167 
168  Alignable* alignable = alignableMap[alignmentError->rawId()];
169  alignable->setSurvey(new SurveyDet(alignable->surface(), matrix6x6));
170  }
171 
173 }
174 
175 //____________________________________________________________________________________
176 //
177 
179  // get all the ones we missed
180  std::map<std::pair<align::StructureType, align::ID>, Alignable*> alignableStructureMap;
181  recursiveStructureMap(theAlignableMuon->DTBarrel(), alignableStructureMap);
182  recursiveStructureMap(theAlignableMuon->CSCEndcaps(), alignableStructureMap);
183 
184  for (std::map<std::pair<align::StructureType, align::ID>, Alignable*>::const_iterator iter =
185  alignableStructureMap.begin();
186  iter != alignableStructureMap.end();
187  ++iter) {
188  if (iter->second->survey() == nullptr) {
189  align::ErrorMatrix matrix6x6 = ROOT::Math::SMatrixIdentity();
190  matrix6x6(0, 0) = shiftErr;
191  matrix6x6(1, 1) = shiftErr;
192  matrix6x6(2, 2) = shiftErr;
193  matrix6x6(3, 3) = angleErr;
194  matrix6x6(4, 4) = angleErr;
195  matrix6x6(5, 5) = angleErr;
196  iter->second->setSurvey(new SurveyDet(iter->second->surface(), matrix6x6));
197  }
198  }
199 }
200 
201 //____________________________________________________________________________________
202 //
204  if (alignable->survey() != nullptr) {
205  const SurveyDet* survey = alignable->survey();
206 
207  const align::PositionType& pos = survey->position();
208  align::RotationType rot = survey->rotation();
209 
210  align::PositionType oldpos = alignable->globalPosition();
211  align::RotationType oldrot = alignable->globalRotation();
212  alignable->move(align::GlobalVector(-oldpos.x(), -oldpos.y(), -oldpos.z()));
213  alignable->rotateInGlobalFrame(oldrot.transposed());
214  alignable->rotateInGlobalFrame(rot);
215  alignable->move(align::GlobalVector(pos.x(), pos.y(), pos.z()));
216 
217  align::ErrorMatrix matrix6x6 = survey->errors(); // start from 0,0
218  AlgebraicSymMatrix66 matrix6x6new; // start from 0,0
219  for (int i = 0; i < 6; i++) {
220  for (int j = 0; j <= i; j++) {
221  matrix6x6new(i, j) = matrix6x6(i, j);
222  }
223  }
224 
225  // this sets APEs at this level and (since 2nd argument is true) all lower levels
227  }
228 
229  // do lower levels afterward to thwart the cumulative setting of APEs
230  align::Alignables components = alignable->components();
231  for (align::Alignables::const_iterator comp = components.begin(); comp != components.end(); ++comp) {
233  }
234 }
235 
237 
238 //____________________________________________________________________________________
239 // Code needed to store alignments to DB
240 
241 void MuonAlignment::writeXML(const edm::ParameterSet& iConfig, const edm::EventSetup& iSetup) {
243 }
244 
246  // Call service
248  if (!poolDbService.isAvailable()) // Die if not available
249  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
250 
251  // Get alignments and errors
252  Alignments* dtAlignments = new Alignments();
253  SurveyErrors* dtSurveyErrors = new SurveyErrors();
254 
255  align::Alignables alignableList;
256  recursiveList(theAlignableMuon->DTBarrel(), alignableList);
257 
258  for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
259  ++alignable) {
260  const align::PositionType& pos = (*alignable)->survey()->position();
261  const align::RotationType& rot = (*alignable)->survey()->rotation();
262 
263  AlignTransform value(CLHEP::Hep3Vector(pos.x(), pos.y(), pos.z()),
264  CLHEP::HepRotation(CLHEP::HepRep3x3(
265  rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz())),
266  (*alignable)->id());
267  SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
268 
269  dtAlignments->m_align.push_back(value);
270  dtSurveyErrors->m_surveyErrors.push_back(error);
271  }
272 
273  // Store DT alignments and errors
274  poolDbService->writeOne<Alignments>(&(*dtAlignments), poolDbService->currentTime(), theDTSurveyRecordName);
275  poolDbService->writeOne<SurveyErrors>(&(*dtSurveyErrors), poolDbService->currentTime(), theDTSurveyErrorRecordName);
276 }
277 
279  // Call service
281  if (!poolDbService.isAvailable()) // Die if not available
282  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
283 
284  // Get alignments and errors
285  Alignments* cscAlignments = new Alignments();
286  SurveyErrors* cscSurveyErrors = new SurveyErrors();
287 
288  align::Alignables alignableList;
289  recursiveList(theAlignableMuon->CSCEndcaps(), alignableList);
290 
291  for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
292  ++alignable) {
293  const align::PositionType& pos = (*alignable)->survey()->position();
294  const align::RotationType& rot = (*alignable)->survey()->rotation();
295 
296  AlignTransform value(CLHEP::Hep3Vector(pos.x(), pos.y(), pos.z()),
297  CLHEP::HepRotation(CLHEP::HepRep3x3(
298  rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz())),
299  (*alignable)->id());
300  SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
301 
302  cscAlignments->m_align.push_back(value);
303  cscSurveyErrors->m_surveyErrors.push_back(error);
304  }
305 
306  // Store CSC alignments and errors
307  poolDbService->writeOne<Alignments>(&(*cscAlignments), poolDbService->currentTime(), theCSCSurveyRecordName);
308  poolDbService->writeOne<SurveyErrors>(&(*cscSurveyErrors), poolDbService->currentTime(), theCSCSurveyErrorRecordName);
309 }
310 
314 }
315 
317  // Call service
319  if (!poolDbService.isAvailable()) // Die if not available
320  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
321 
322  // Get alignments and errors
323  Alignments* dt_Alignments = theAlignableMuon->dtAlignments();
324  AlignmentErrorsExtended* dt_AlignmentErrorsExtended = theAlignableMuon->dtAlignmentErrorsExtended();
325 
326  // Store DT alignments and errors
327  poolDbService->writeOne<Alignments>(&(*dt_Alignments), poolDbService->currentTime(), theDTAlignRecordName);
328  poolDbService->writeOne<AlignmentErrorsExtended>(
329  &(*dt_AlignmentErrorsExtended), poolDbService->currentTime(), theDTErrorRecordName);
330 }
331 
333  // Call service
335  if (!poolDbService.isAvailable()) // Die if not available
336  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
337 
338  // Get alignments and errors
339  Alignments* csc_Alignments = theAlignableMuon->cscAlignments();
340  AlignmentErrorsExtended* csc_AlignmentErrorsExtended = theAlignableMuon->cscAlignmentErrorsExtended();
341 
342  // Store CSC alignments and errors
343  poolDbService->writeOne<Alignments>(&(*csc_Alignments), poolDbService->currentTime(), theCSCAlignRecordName);
344  poolDbService->writeOne<AlignmentErrorsExtended>(
345  &(*csc_AlignmentErrorsExtended), poolDbService->currentTime(), theCSCErrorRecordName);
346 }
347 
349  // Call service
351  if (!poolDbService.isAvailable()) // Die if not available
352  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
353 
354  // Get alignments and errors
355  Alignments* gem_Alignments = theAlignableMuon->gemAlignments();
356  AlignmentErrorsExtended* gem_AlignmentErrorsExtended = theAlignableMuon->gemAlignmentErrorsExtended();
357 
358  // Store CSC alignments and errors
359  poolDbService->writeOne<Alignments>(&(*gem_Alignments), poolDbService->currentTime(), theGEMAlignRecordName);
360  poolDbService->writeOne<AlignmentErrorsExtended>(
361  &(*gem_AlignmentErrorsExtended), poolDbService->currentTime(), theGEMErrorRecordName);
362 }
363 
365  saveDTtoDB();
366  saveCSCtoDB();
367  saveGEMtoDB();
368 }
Vector3DBase
Definition: Vector3DBase.h:8
MuonAlignment::theGEMErrorRecordName
std::string theGEMErrorRecordName
Definition: MuonAlignment.h:65
AlignmentErrorsExtended.h
TkRotation< Scalar >
AlignableMuon::dtAlignmentErrorsExtended
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
Get DT alignment errors sorted by DetId.
Definition: AlignableMuon.cc:561
MuonAlignment::esTokenGEM_
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > esTokenGEM_
Definition: MuonAlignment.h:71
AlCaHLTBitMon_QueryRunRegistry.comp
string comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
mps_fire.i
i
Definition: mps_fire.py:428
input
static const std::string input
Definition: EdmProvDump.cc:48
AlignableMuon::GEMEndcaps
align::Alignables GEMEndcaps()
Definition: AlignableMuon.cc:504
align::Scalars
std::vector< Scalar > Scalars
Definition: Utilities.h:26
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
ESHandle.h
MuonAlignment::saveSurveyToDB
void saveSurveyToDB()
Definition: MuonAlignment.cc:311
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
SurveyErrors.h
SurveyDet::errors
const align::ErrorMatrix & errors() const
Definition: SurveyDet.h:62
Alignable::setAlignmentPositionError
virtual void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown)=0
Set the alignment position error - if (!propagateDown) do not affect daughters.
MuonAlignment::saveDTtoDB
void saveDTtoDB()
Definition: MuonAlignment.cc:316
Alignable::rotateInGlobalFrame
virtual void rotateInGlobalFrame(const RotationType &rotation)=0
MuonAlignment::copyAlignmentToSurvey
void copyAlignmentToSurvey(double shiftErr, double angleErr)
Definition: MuonAlignment.cc:132
Alignable
Definition: Alignable.h:27
pos
Definition: PixelAliasList.h:18
MuonAlignment::theDTSurveyErrorRecordName
std::string theDTSurveyErrorRecordName
Definition: MuonAlignment.h:66
Alignable::rotateAroundGlobalX
virtual void rotateAroundGlobalX(Scalar radians)
Rotation around global x-axis.
Definition: Alignable.cc:148
MuonAlignment::esTokenDT_
edm::ESGetToken< DTGeometry, MuonGeometryRecord > esTokenDT_
Definition: MuonAlignment.h:69
MuonAlignment::saveToDB
void saveToDB()
Definition: MuonAlignment.cc:364
Alignments.h
SurveyDet::position
const align::PositionType & position() const
Definition: SurveyDet.h:58
AlignableMuon::cscAlignments
Alignments * cscAlignments()
Get CSC alignments sorted by DetId.
Definition: AlignableMuon.cc:568
align::ErrorMatrix
math::Error< 6 >::type ErrorMatrix
Definition: Definitions.h:37
MuonAlignmentOutputXML.h
MuonAlignment::esTokenCSC_
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > esTokenCSC_
Definition: MuonAlignment.h:70
GlobalErrorExtended
GlobalErrorBaseExtended< double, ErrorMatrixTag > GlobalErrorExtended
Definition: GlobalError.h:14
relativeConstraints.error
error
Definition: relativeConstraints.py:53
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
AlignableMuon::dtAlignments
Alignments * dtAlignments()
Get DT alignments sorted by DetId.
Definition: AlignableMuon.cc:554
Alignable::rotateAroundGlobalZ
virtual void rotateAroundGlobalZ(Scalar radians)
Rotation around global z-axis.
Definition: Alignable.cc:176
SurveyErrors
Definition: SurveyErrors.h:19
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
SurveyDet
Definition: SurveyDet.h:15
align::AlignableMuon
Definition: StructureType.h:90
DetId
Definition: DetId.h:17
Alignable::setSurvey
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:266
PoolDBOutputService.h
MuonAlignment::saveGEMtoDB
void saveGEMtoDB()
Definition: MuonAlignment.cc:348
MuonAlignment::recursiveCopySurveyToAlignment
void recursiveCopySurveyToAlignment(Alignable *alignable)
Definition: MuonAlignment.cc:203
MuonAlignment::init
void init()
Definition: MuonAlignment.cc:28
MuonAlignment::fillGapsInSurvey
void fillGapsInSurvey(double shiftErr, double angleErr)
Definition: MuonAlignment.cc:178
Service.h
MuonAlignment::theCSCAlignRecordName
std::string theCSCAlignRecordName
Definition: MuonAlignment.h:64
convertSQLitetoXML_cfg.shiftErr
shiftErr
Definition: convertSQLitetoXML_cfg.py:69
MuonAlignment::recursiveStructureMap
void recursiveStructureMap(const align::Alignables &alignables, std::map< std::pair< align::StructureType, align::ID >, Alignable * > &theMap)
Definition: MuonAlignment.cc:121
AlgebraicSymMatrix66
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Definition: AlgebraicROOTObjects.h:24
MuonAlignment::writeXML
void writeXML(const edm::ParameterSet &iConfig, const edm::EventSetup &iSetup)
Definition: MuonAlignment.cc:241
edm::ESHandle< DTGeometry >
AlignableMuon::gemAlignments
Alignments * gemAlignments()
Definition: AlignableMuon.cc:597
convertSQLitetoXML_cfg.angleErr
angleErr
Definition: convertSQLitetoXML_cfg.py:70
MuonAlignment::displacements
align::Scalars displacements
Definition: MuonAlignment.h:73
MuonAlignment::theDTSurveyRecordName
std::string theDTSurveyRecordName
Definition: MuonAlignment.h:66
Alignable::surface
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:132
Point3DBase< Scalar, GlobalTag >
MuonAlignment::theAlignableNavigator
AlignableNavigator * theAlignableNavigator
Definition: MuonAlignment.h:79
AlignableMuon::DTBarrel
align::Alignables DTBarrel()
Definition: AlignableMuon.cc:396
AlignableNavigator
Definition: AlignableNavigator.h:25
Alignable::rotateAroundGlobalY
virtual void rotateAroundGlobalY(Scalar radians)
Rotation around global y-axis.
Definition: Alignable.cc:162
SurveyDet::rotation
const align::RotationType & rotation() const
Definition: SurveyDet.h:60
AlignTransform
Definition: AlignTransform.h:15
MuonAlignment::recursiveList
void recursiveList(const align::Alignables &alignables, align::Alignables &theList)
Definition: MuonAlignment.cc:100
MuonAlignmentOutputXML
Definition: MuonAlignmentOutputXML.h:35
MuonAlignment::theDTAlignRecordName
std::string theDTAlignRecordName
Definition: MuonAlignment.h:63
MuonAlignment::MuonAlignment
MuonAlignment(const edm::EventSetup &iSetup)
Definition: MuonAlignment.cc:43
edm::ParameterSet
Definition: ParameterSet.h:47
MuonAlignment.h
MuonAlignment::moveAlignableGlobalCoord
void moveAlignableGlobalCoord(DetId &, align::Scalars &, align::Scalars &)
Definition: MuonAlignment.cc:82
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
MuonAlignment::copySurveyToAlignment
void copySurveyToAlignment()
Definition: MuonAlignment.cc:236
Alignable::rotateAroundLocalZ
virtual void rotateAroundLocalZ(Scalar radians)
Rotation around local z-axis.
Definition: Alignable.cc:183
edm::Service< cond::service::PoolDBOutputService >
value
Definition: value.py:1
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
GlobalError.h
MuonAlignment::theCSCSurveyErrorRecordName
std::string theCSCSurveyErrorRecordName
Definition: MuonAlignment.h:67
AlignableMuon::gemAlignmentErrorsExtended
AlignmentErrorsExtended * gemAlignmentErrorsExtended()
Definition: AlignableMuon.cc:608
edm::EventSetup
Definition: EventSetup.h:58
AlignmentErrorsExtended
Definition: AlignmentErrorsExtended.h:10
Alignable::rotateAroundLocalX
virtual void rotateAroundLocalX(Scalar radians)
Rotation around local x-axis.
Definition: Alignable.cc:155
Alignable::move
virtual void move(const GlobalVector &displacement)=0
Movement with respect to the global reference frame.
MuonAlignment::moveAlignableLocalCoord
void moveAlignableLocalCoord(DetId &, align::Scalars &, align::Scalars &)
Definition: MuonAlignment.cc:63
align::Alignables
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
AlignableMuon::CSCEndcaps
align::Alignables CSCEndcaps()
Definition: AlignableMuon.cc:439
AlignableNavigator::alignableFromDetId
AlignableDetOrUnitPtr alignableFromDetId(const DetId &detid)
Returns AlignableDetOrUnitPtr corresponding to given DetId.
Definition: AlignableNavigator.cc:91
MuonAlignment::rotations
align::Scalars rotations
Definition: MuonAlignment.h:75
makeMuonMisalignmentScenario.components
string components
Definition: makeMuonMisalignmentScenario.py:58
relativeConstraints.value
value
Definition: relativeConstraints.py:53
MuonAlignment::theAlignableMuon
AlignableMuon * theAlignableMuon
Definition: MuonAlignment.h:77
Alignable::rotateAroundLocalY
virtual void rotateAroundLocalY(Scalar radians)
Rotation around local y-axis.
Definition: Alignable.cc:169
cond::service::PoolDBOutputService::writeOne
Hash writeOne(const T *payload, Time_t time, const std::string &recordName)
Definition: PoolDBOutputService.h:63
MuonAlignment::saveDTSurveyToDB
void saveDTSurveyToDB()
Definition: MuonAlignment.cc:245
AlignmentPositionError.h
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
Alignable.h
MuonAlignment::saveCSCSurveyToDB
void saveCSCSurveyToDB()
Definition: MuonAlignment.cc:278
MuonAlignment::recursiveMap
void recursiveMap(const align::Alignables &alignables, std::map< align::ID, Alignable * > &theMap)
Definition: MuonAlignment.cc:109
EventSetup.h
MuonAlignment::theCSCSurveyRecordName
std::string theCSCSurveyRecordName
Definition: MuonAlignment.h:67
TkRotation::transposed
TkRotation transposed() const
Definition: extTkRotation.h:161
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
AlignmentErrorsExtended::m_alignError
std::vector< AlignTransformErrorExtended > m_alignError
Definition: AlignmentErrorsExtended.h:19
cms::Exception
Definition: Exception.h:70
genParticles_cff.map
map
Definition: genParticles_cff.py:11
MuonAlignment::theCSCErrorRecordName
std::string theCSCErrorRecordName
Definition: MuonAlignment.h:64
SurveyDet.h
AlignableMuon::cscAlignmentErrorsExtended
AlignmentErrorsExtended * cscAlignmentErrorsExtended()
Get CSC alignment errors sorted by DetId.
Definition: AlignableMuon.cc:580
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
Alignable::globalPosition
const PositionType & globalPosition() const
Return the global position of the object.
Definition: Alignable.h:135
MuonAlignment::theDTErrorRecordName
std::string theDTErrorRecordName
Definition: MuonAlignment.h:63
MuonAlignment::saveCSCtoDB
void saveCSCtoDB()
Definition: MuonAlignment.cc:332
SurveyErrors::m_surveyErrors
std::vector< SurveyError > m_surveyErrors
Definition: SurveyErrors.h:22
AlignmentPositionError
Definition: AlignmentPositionError.h:10
Alignable::components
virtual const Alignables & components() const =0
Return vector of all direct components.
MuonAlignment::theGEMAlignRecordName
std::string theGEMAlignRecordName
Definition: MuonAlignment.h:65
Alignments
Definition: Alignments.h:10
Alignable::survey
const SurveyDet * survey() const
Return survey info.
Definition: Alignable.h:216
MuonAlignmentOutputXML::write
void write(AlignableMuon *alignableMuon, const edm::EventSetup &iSetup) const
Definition: MuonAlignmentOutputXML.cc:96
MuonAlignmentInputMethod
Definition: MuonAlignmentInputMethod.h:34
cond::service::PoolDBOutputService::currentTime
cond::Time_t currentTime() const
Definition: PoolDBOutputService.cc:217
Alignable::globalRotation
const RotationType & globalRotation() const
Return the global orientation of the object.
Definition: Alignable.h:138
cmsLHEtoEOSManager.theList
theList
Definition: cmsLHEtoEOSManager.py:194