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 // Muon geom
14 
15 // Alignment
21 
23 
28 
29 //____________________________________________________________________________________
30 //
32  theDTAlignRecordName = "DTAlignmentRcd";
33  theDTErrorRecordName = "DTAlignmentErrorExtendedRcd";
34  theCSCAlignRecordName = "CSCAlignmentRcd";
35  theCSCErrorRecordName = "CSCAlignmentErrorExtendedRcd";
36  theDTSurveyRecordName = "DTSurveyRcd";
37  theDTSurveyErrorRecordName = "DTSurveyErrorExtendedRcd";
38  theCSCSurveyRecordName = "CSCSurveyRcd";
39  theCSCSurveyErrorRecordName = "CSCSurveyErrorExtendedRcd";
40  theAlignableMuon = nullptr;
41  theAlignableNavigator = nullptr;
42 }
43 
45  init();
46 
47  edm::ESHandle<DTGeometry> dtGeometry;
48  edm::ESHandle<CSCGeometry> cscGeometry;
49  iSetup.get<MuonGeometryRecord>().get(dtGeometry);
50  iSetup.get<MuonGeometryRecord>().get(cscGeometry);
51 
52  theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry));
54 }
55 
57  init();
58 
59  theAlignableMuon = input.newAlignableMuon(iSetup);
61 }
62 
63 //____________________________________________________________________________________
64 //
66  // Displace and rotate DT an Alignable associated to a GeomDet or GeomDetUnit
67  Alignable* theAlignable = theAlignableNavigator->alignableFromDetId(detid);
68 
69  // Convert local to global diplacements
70  align::LocalVector lvector(displacements.at(0), displacements.at(1), displacements.at(2));
71  align::GlobalVector gvector = (theAlignable->surface()).toGlobal(lvector);
72 
73  // global displacement of the chamber
74  theAlignable->move(gvector);
75 
76  // local rotation of the chamber
77  theAlignable->rotateAroundLocalX(rotations.at(0)); // Local X axis rotation
78  theAlignable->rotateAroundLocalY(rotations.at(1)); // Local Y axis rotation
79  theAlignable->rotateAroundLocalZ(rotations.at(2)); // Local Z axis rotation
80 }
81 
82 //____________________________________________________________________________________
83 //
85  // Displace and rotate DT an Alignable associated to a GeomDet or GeomDetUnit
86  Alignable* theAlignable = theAlignableNavigator->alignableFromDetId(detid);
87 
88  // Convert std::vector to GlobalVector
89  align::GlobalVector gvector(displacements.at(0), displacements.at(1), displacements.at(2));
90 
91  // global displacement of the chamber
92  theAlignable->move(gvector);
93 
94  // local rotation of the chamber
95  theAlignable->rotateAroundGlobalX(rotations.at(0)); // Global X axis rotation
96  theAlignable->rotateAroundGlobalY(rotations.at(1)); // Global Y axis rotation
97  theAlignable->rotateAroundGlobalZ(rotations.at(2)); // Global Z axis rotation
98 }
99 
100 //____________________________________________________________________________________
101 //
103  for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
104  recursiveList((*alignable)->components(), theList);
105  theList.push_back(*alignable);
106  }
107 }
108 
109 //____________________________________________________________________________________
110 //
111 void MuonAlignment::recursiveMap(const align::Alignables& alignables, std::map<align::ID, Alignable*>& theMap) {
112  for (align::Alignables::const_iterator alignable = alignables.begin(); alignable != alignables.end(); ++alignable) {
113  unsigned int rawId = (*alignable)->geomDetId().rawId();
114  if (rawId != 0) {
115  theMap[rawId] = *alignable;
116  }
117  recursiveMap((*alignable)->components(), theMap);
118  }
119 }
120 
121 //____________________________________________________________________________________
122 //
124  std::map<std::pair<align::StructureType, align::ID>, Alignable*>& theMap) {
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())] =
127  *alignable;
128  recursiveStructureMap((*alignable)->components(), theMap);
129  }
130 }
131 
132 //____________________________________________________________________________________
133 //
135  std::map<align::ID, Alignable*> alignableMap;
136  recursiveMap(theAlignableMuon->DTBarrel(), alignableMap);
137  recursiveMap(theAlignableMuon->CSCEndcaps(), alignableMap);
138 
139  // 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 
150  for (std::vector<AlignTransformErrorExtended>::const_iterator alignmentError = alignmentErrors.begin();
151  alignmentError != alignmentErrors.end();
152  ++alignmentError) {
153  align::ErrorMatrix matrix6x6 = ROOT::Math::SMatrixIdentity(); // start from (0, 0)
154  CLHEP::HepSymMatrix matrix6x6new = alignmentError->matrix(); // start from (1, 1)
155 
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);
159  }
160  }
161  //matrix6x6(3,3) = angleErr;
162  //matrix6x6(4,4) = angleErr;
163  //matrix6x6(5,5) = angleErr;
164 
165  Alignable* alignable = alignableMap[alignmentError->rawId()];
166  alignable->setSurvey(new SurveyDet(alignable->surface(), matrix6x6));
167  }
168 
170 }
171 
172 //____________________________________________________________________________________
173 //
174 
176  // get all the ones we missed
177  std::map<std::pair<align::StructureType, align::ID>, Alignable*> alignableStructureMap;
178  recursiveStructureMap(theAlignableMuon->DTBarrel(), alignableStructureMap);
179  recursiveStructureMap(theAlignableMuon->CSCEndcaps(), alignableStructureMap);
180 
181  for (std::map<std::pair<align::StructureType, align::ID>, Alignable*>::const_iterator iter =
182  alignableStructureMap.begin();
183  iter != alignableStructureMap.end();
184  ++iter) {
185  if (iter->second->survey() == nullptr) {
186  align::ErrorMatrix matrix6x6 = ROOT::Math::SMatrixIdentity();
187  matrix6x6(0, 0) = shiftErr;
188  matrix6x6(1, 1) = shiftErr;
189  matrix6x6(2, 2) = shiftErr;
190  matrix6x6(3, 3) = angleErr;
191  matrix6x6(4, 4) = angleErr;
192  matrix6x6(5, 5) = angleErr;
193  iter->second->setSurvey(new SurveyDet(iter->second->surface(), matrix6x6));
194  }
195  }
196 }
197 
198 //____________________________________________________________________________________
199 //
201  if (alignable->survey() != nullptr) {
202  const SurveyDet* survey = alignable->survey();
203 
204  const align::PositionType& pos = survey->position();
205  align::RotationType rot = survey->rotation();
206 
207  align::PositionType oldpos = alignable->globalPosition();
208  align::RotationType oldrot = alignable->globalRotation();
209  alignable->move(align::GlobalVector(-oldpos.x(), -oldpos.y(), -oldpos.z()));
210  alignable->rotateInGlobalFrame(oldrot.transposed());
211  alignable->rotateInGlobalFrame(rot);
212  alignable->move(align::GlobalVector(pos.x(), pos.y(), pos.z()));
213 
214  align::ErrorMatrix matrix6x6 = survey->errors(); // start from 0,0
215  AlgebraicSymMatrix66 matrix6x6new; // start from 0,0
216  for (int i = 0; i < 6; i++) {
217  for (int j = 0; j <= i; j++) {
218  matrix6x6new(i, j) = matrix6x6(i, j);
219  }
220  }
221 
222  // this sets APEs at this level and (since 2nd argument is true) all lower levels
224  }
225 
226  // do lower levels afterward to thwart the cumulative setting of APEs
227  align::Alignables components = alignable->components();
228  for (align::Alignables::const_iterator comp = components.begin(); comp != components.end(); ++comp) {
230  }
231 }
232 
234 
235 //____________________________________________________________________________________
236 // Code needed to store alignments to DB
237 
238 void MuonAlignment::writeXML(const edm::ParameterSet& iConfig, const edm::EventSetup& iSetup) {
240 }
241 
243  // Call service
245  if (!poolDbService.isAvailable()) // Die if not available
246  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
247 
248  // Get alignments and errors
249  Alignments* dtAlignments = new Alignments();
250  SurveyErrors* dtSurveyErrors = new SurveyErrors();
251 
252  align::Alignables alignableList;
253  recursiveList(theAlignableMuon->DTBarrel(), alignableList);
254 
255  for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
256  ++alignable) {
257  const align::PositionType& pos = (*alignable)->survey()->position();
258  const align::RotationType& rot = (*alignable)->survey()->rotation();
259 
260  AlignTransform value(CLHEP::Hep3Vector(pos.x(), pos.y(), pos.z()),
261  CLHEP::HepRotation(CLHEP::HepRep3x3(
262  rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz())),
263  (*alignable)->id());
264  SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
265 
266  dtAlignments->m_align.push_back(value);
267  dtSurveyErrors->m_surveyErrors.push_back(error);
268  }
269 
270  // Store DT alignments and errors
271  poolDbService->writeOne<Alignments>(&(*dtAlignments), poolDbService->currentTime(), theDTSurveyRecordName);
272  poolDbService->writeOne<SurveyErrors>(&(*dtSurveyErrors), poolDbService->currentTime(), theDTSurveyErrorRecordName);
273 }
274 
276  // Call service
278  if (!poolDbService.isAvailable()) // Die if not available
279  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
280 
281  // Get alignments and errors
282  Alignments* cscAlignments = new Alignments();
283  SurveyErrors* cscSurveyErrors = new SurveyErrors();
284 
285  align::Alignables alignableList;
286  recursiveList(theAlignableMuon->CSCEndcaps(), alignableList);
287 
288  for (align::Alignables::const_iterator alignable = alignableList.begin(); alignable != alignableList.end();
289  ++alignable) {
290  const align::PositionType& pos = (*alignable)->survey()->position();
291  const align::RotationType& rot = (*alignable)->survey()->rotation();
292 
293  AlignTransform value(CLHEP::Hep3Vector(pos.x(), pos.y(), pos.z()),
294  CLHEP::HepRotation(CLHEP::HepRep3x3(
295  rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz())),
296  (*alignable)->id());
297  SurveyError error((*alignable)->alignableObjectId(), (*alignable)->id(), (*alignable)->survey()->errors());
298 
299  cscAlignments->m_align.push_back(value);
300  cscSurveyErrors->m_surveyErrors.push_back(error);
301  }
302 
303  // Store CSC alignments and errors
304  poolDbService->writeOne<Alignments>(&(*cscAlignments), poolDbService->currentTime(), theCSCSurveyRecordName);
305  poolDbService->writeOne<SurveyErrors>(&(*cscSurveyErrors), poolDbService->currentTime(), theCSCSurveyErrorRecordName);
306 }
307 
311 }
312 
314  // Call service
316  if (!poolDbService.isAvailable()) // Die if not available
317  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
318 
319  // Get alignments and errors
320  Alignments* dt_Alignments = theAlignableMuon->dtAlignments();
321  AlignmentErrorsExtended* dt_AlignmentErrorsExtended = theAlignableMuon->dtAlignmentErrorsExtended();
322 
323  // Store DT alignments and errors
324  poolDbService->writeOne<Alignments>(&(*dt_Alignments), poolDbService->currentTime(), theDTAlignRecordName);
325  poolDbService->writeOne<AlignmentErrorsExtended>(
326  &(*dt_AlignmentErrorsExtended), poolDbService->currentTime(), theDTErrorRecordName);
327 }
328 
330  // Call service
332  if (!poolDbService.isAvailable()) // Die if not available
333  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
334 
335  // Get alignments and errors
336  Alignments* csc_Alignments = theAlignableMuon->cscAlignments();
337  AlignmentErrorsExtended* csc_AlignmentErrorsExtended = theAlignableMuon->cscAlignmentErrorsExtended();
338 
339  // Store CSC alignments and errors
340  poolDbService->writeOne<Alignments>(&(*csc_Alignments), poolDbService->currentTime(), theCSCAlignRecordName);
341  poolDbService->writeOne<AlignmentErrorsExtended>(
342  &(*csc_AlignmentErrorsExtended), poolDbService->currentTime(), theCSCErrorRecordName);
343 }
344 
346  saveDTtoDB();
347  saveCSCtoDB();
348 }
Vector3DBase
Definition: Vector3DBase.h:8
AlignmentErrorsExtended.h
TkRotation< Scalar >
AlignableMuon::dtAlignmentErrorsExtended
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
Get DT alignment errors sorted by DetId.
Definition: AlignableMuon.cc:426
mps_fire.i
i
Definition: mps_fire.py:355
input
static const std::string input
Definition: EdmProvDump.cc:48
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:308
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:313
Alignable::rotateInGlobalFrame
virtual void rotateInGlobalFrame(const RotationType &rotation)=0
MuonAlignment::copyAlignmentToSurvey
void copyAlignmentToSurvey(double shiftErr, double angleErr)
Definition: MuonAlignment.cc:134
Alignable
Definition: Alignable.h:27
pos
Definition: PixelAliasList.h:18
MuonAlignment::theDTSurveyErrorRecordName
std::string theDTSurveyErrorRecordName
Definition: MuonAlignment.h:63
Alignable::rotateAroundGlobalX
virtual void rotateAroundGlobalX(Scalar radians)
Rotation around global x-axis.
Definition: Alignable.cc:148
MuonAlignment::saveToDB
void saveToDB()
Definition: MuonAlignment.cc:345
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:433
align::ErrorMatrix
math::Error< 6 >::type ErrorMatrix
Definition: Definitions.h:37
MuonAlignmentOutputXML.h
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:419
Alignable::rotateAroundGlobalZ
virtual void rotateAroundGlobalZ(Scalar radians)
Rotation around global z-axis.
Definition: Alignable.cc:176
AlCaHLTBitMon_QueryRunRegistry.comp
comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
SurveyErrors
Definition: SurveyErrors.h:19
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
SurveyDet
Definition: SurveyDet.h:15
align::AlignableMuon
Definition: StructureType.h:84
DetId
Definition: DetId.h:17
Alignable::setSurvey
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:266
PoolDBOutputService.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
MuonAlignment::recursiveCopySurveyToAlignment
void recursiveCopySurveyToAlignment(Alignable *alignable)
Definition: MuonAlignment.cc:200
MuonAlignment::init
void init()
Definition: MuonAlignment.cc:31
MuonAlignment::fillGapsInSurvey
void fillGapsInSurvey(double shiftErr, double angleErr)
Definition: MuonAlignment.cc:175
Service.h
MuonAlignment::theCSCAlignRecordName
std::string theCSCAlignRecordName
Definition: MuonAlignment.h:62
convertSQLitetoXML_cfg.shiftErr
shiftErr
Definition: convertSQLitetoXML_cfg.py:29
MuonAlignment::recursiveStructureMap
void recursiveStructureMap(const align::Alignables &alignables, std::map< std::pair< align::StructureType, align::ID >, Alignable * > &theMap)
Definition: MuonAlignment.cc:123
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:238
edm::ESHandle< DTGeometry >
convertSQLitetoXML_cfg.angleErr
angleErr
Definition: convertSQLitetoXML_cfg.py:30
MuonAlignment::displacements
align::Scalars displacements
Definition: MuonAlignment.h:66
MuonAlignment::theDTSurveyRecordName
std::string theDTSurveyRecordName
Definition: MuonAlignment.h:63
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:72
AlignableMuon::DTBarrel
align::Alignables DTBarrel()
Definition: AlignableMuon.cc:326
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:102
MuonAlignmentOutputXML
Definition: MuonAlignmentOutputXML.h:35
MuonAlignment::theDTAlignRecordName
std::string theDTAlignRecordName
Definition: MuonAlignment.h:61
MuonAlignment::MuonAlignment
MuonAlignment(const edm::EventSetup &iSetup)
Definition: MuonAlignment.cc:44
edm::ParameterSet
Definition: ParameterSet.h:36
MuonAlignment.h
MuonAlignment::moveAlignableGlobalCoord
void moveAlignableGlobalCoord(DetId &, align::Scalars &, align::Scalars &)
Definition: MuonAlignment.cc:84
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
MuonAlignment::copySurveyToAlignment
void copySurveyToAlignment()
Definition: MuonAlignment.cc:233
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
GlobalError.h
MuonAlignment::theCSCSurveyErrorRecordName
std::string theCSCSurveyErrorRecordName
Definition: MuonAlignment.h:64
edm::EventSetup
Definition: EventSetup.h:57
get
#define get
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:65
align::Alignables
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
AlignableMuon::CSCEndcaps
align::Alignables CSCEndcaps()
Definition: AlignableMuon.cc:369
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:68
makeMuonMisalignmentScenario.components
string components
Definition: makeMuonMisalignmentScenario.py:58
relativeConstraints.value
value
Definition: relativeConstraints.py:53
MuonAlignment::theAlignableMuon
AlignableMuon * theAlignableMuon
Definition: MuonAlignment.h:70
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:56
MuonAlignment::saveDTSurveyToDB
void saveDTSurveyToDB()
Definition: MuonAlignment.cc:242
AlignmentPositionError.h
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
Alignable.h
MuonAlignment::saveCSCSurveyToDB
void saveCSCSurveyToDB()
Definition: MuonAlignment.cc:275
MuonAlignment::recursiveMap
void recursiveMap(const align::Alignables &alignables, std::map< align::ID, Alignable * > &theMap)
Definition: MuonAlignment.cc:111
EventSetup.h
MuonAlignment::theCSCSurveyRecordName
std::string theCSCSurveyRecordName
Definition: MuonAlignment.h:64
TkRotation::transposed
TkRotation transposed() const
Definition: extTkRotation.h:161
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:62
SurveyDet.h
AlignableMuon::cscAlignmentErrorsExtended
AlignmentErrorsExtended * cscAlignmentErrorsExtended()
Get CSC alignment errors sorted by DetId.
Definition: AlignableMuon.cc:445
MuonGeometryRecord.h
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:61
MuonAlignment::saveCSCtoDB
void saveCSCtoDB()
Definition: MuonAlignment.cc:329
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.
Alignments
Definition: Alignments.h:10
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
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:97
MuonAlignmentInputMethod
Definition: MuonAlignmentInputMethod.h:34
cond::service::PoolDBOutputService::currentTime
cond::Time_t currentTime() const
Definition: PoolDBOutputService.cc:179
Alignable::globalRotation
const RotationType & globalRotation() const
Return the global orientation of the object.
Definition: Alignable.h:138
cmsLHEtoEOSManager.theList
theList
Definition: cmsLHEtoEOSManager.py:183