CMS 3D CMS Logo

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

#include <MuonAlignment.h>

Public Member Functions

void copyAlignmentToSurvey (double shiftErr, double angleErr)
 
void copySurveyToAlignment ()
 
void fillGapsInSurvey (double shiftErr, double angleErr)
 
AlignableMuongetAlignableMuon ()
 
AlignableNavigatorgetAlignableNavigator ()
 
void moveAlignableGlobalCoord (DetId &, align::Scalars &, align::Scalars &)
 
void moveAlignableLocalCoord (DetId &, align::Scalars &, align::Scalars &)
 
 MuonAlignment (const edm::EventSetup &iSetup)
 
 MuonAlignment (const edm::EventSetup &iSetup, const MuonAlignmentInputMethod &input)
 
void recursiveList (const align::Alignables &alignables, align::Alignables &theList)
 
void recursiveMap (const align::Alignables &alignables, std::map< align::ID, Alignable * > &theMap)
 
void recursiveStructureMap (const align::Alignables &alignables, std::map< std::pair< align::StructureType, align::ID >, Alignable * > &theMap)
 
void saveCSCSurveyToDB ()
 
void saveCSCtoDB ()
 
void saveDTSurveyToDB ()
 
void saveDTtoDB ()
 
void saveGEMtoDB ()
 
void saveSurveyToDB ()
 
void saveToDB ()
 
void writeXML (const edm::ParameterSet &iConfig, const edm::EventSetup &iSetup)
 
 ~MuonAlignment ()
 

Private Member Functions

void init ()
 
void recursiveCopySurveyToAlignment (Alignable *alignable)
 

Private Attributes

align::Scalars displacements
 
edm::ESGetToken< CSCGeometry, MuonGeometryRecordesTokenCSC_
 
edm::ESGetToken< DTGeometry, MuonGeometryRecordesTokenDT_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordesTokenGEM_
 
align::Scalars rotations
 
AlignableMuontheAlignableMuon
 
AlignableNavigatortheAlignableNavigator
 
std::string theCSCAlignRecordName
 
std::string theCSCErrorRecordName
 
std::string theCSCSurveyErrorRecordName
 
std::string theCSCSurveyRecordName
 
std::string theDTAlignRecordName
 
std::string theDTErrorRecordName
 
std::string theDTSurveyErrorRecordName
 
std::string theDTSurveyRecordName
 
std::string theGEMAlignRecordName
 
std::string theGEMErrorRecordName
 

Detailed Description

The MuonAlignment helper class for alignment jobs

Date
2011/06/07 19:28:47
Revision
1.14
Author
Andre Sznajder - UERJ(Brazil)

Definition at line 21 of file MuonAlignment.h.

Constructor & Destructor Documentation

◆ MuonAlignment() [1/2]

MuonAlignment::MuonAlignment ( const edm::EventSetup iSetup)

◆ MuonAlignment() [2/2]

MuonAlignment::MuonAlignment ( const edm::EventSetup iSetup,
const MuonAlignmentInputMethod input 
)

Definition at line 54 of file MuonAlignment.cc.

54  {
55  init();
56 
57  theAlignableMuon = input.newAlignableMuon(iSetup);
59 }

References init(), input, theAlignableMuon, and theAlignableNavigator.

◆ ~MuonAlignment()

MuonAlignment::~MuonAlignment ( )
inline

Definition at line 27 of file MuonAlignment.h.

27  {
28  delete theAlignableMuon;
29  delete theAlignableNavigator;
30  }

References theAlignableMuon, and theAlignableNavigator.

Member Function Documentation

◆ copyAlignmentToSurvey()

void MuonAlignment::copyAlignmentToSurvey ( double  shiftErr,
double  angleErr 
)

Definition at line 132 of file MuonAlignment.cc.

132  {
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 }

References convertSQLitetoXML_cfg::angleErr, filterCSVwithJSON::copy, AlignableMuon::cscAlignmentErrorsExtended(), AlignableMuon::CSCEndcaps(), AlignableMuon::dtAlignmentErrorsExtended(), AlignableMuon::DTBarrel(), fillGapsInSurvey(), AlignableMuon::gemAlignmentErrorsExtended(), AlignableMuon::GEMEndcaps(), mps_fire::i, dqmiolumiharvest::j, AlignmentErrorsExtended::m_alignError, recursiveMap(), Alignable::setSurvey(), convertSQLitetoXML_cfg::shiftErr, Alignable::surface(), and theAlignableMuon.

◆ copySurveyToAlignment()

void MuonAlignment::copySurveyToAlignment ( )

◆ fillGapsInSurvey()

void MuonAlignment::fillGapsInSurvey ( double  shiftErr,
double  angleErr 
)

Definition at line 178 of file MuonAlignment.cc.

178  {
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 }

References convertSQLitetoXML_cfg::angleErr, AlignableMuon::CSCEndcaps(), AlignableMuon::DTBarrel(), genParticles_cff::map, recursiveStructureMap(), convertSQLitetoXML_cfg::shiftErr, and theAlignableMuon.

Referenced by MuonGeometryArrange::analyze(), and copyAlignmentToSurvey().

◆ getAlignableMuon()

AlignableMuon* MuonAlignment::getAlignableMuon ( )
inline

Definition at line 32 of file MuonAlignment.h.

32 { return theAlignableMuon; }

References theAlignableMuon.

Referenced by MuonGeometryArrange::analyze().

◆ getAlignableNavigator()

AlignableNavigator* MuonAlignment::getAlignableNavigator ( )
inline

Definition at line 34 of file MuonAlignment.h.

34 { return theAlignableNavigator; }

References theAlignableNavigator.

◆ init()

void MuonAlignment::init ( )
private

Definition at line 28 of file MuonAlignment.cc.

28  {
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 }

References theAlignableMuon, theAlignableNavigator, theCSCAlignRecordName, theCSCErrorRecordName, theCSCSurveyErrorRecordName, theCSCSurveyRecordName, theDTAlignRecordName, theDTErrorRecordName, theDTSurveyErrorRecordName, theDTSurveyRecordName, theGEMAlignRecordName, and theGEMErrorRecordName.

Referenced by MuonAlignment().

◆ moveAlignableGlobalCoord()

void MuonAlignment::moveAlignableGlobalCoord ( DetId detid,
align::Scalars displacements,
align::Scalars rotations 
)

Definition at line 82 of file MuonAlignment.cc.

82  {
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 }

References AlignableNavigator::alignableFromDetId(), displacements, Alignable::move(), Alignable::rotateAroundGlobalX(), Alignable::rotateAroundGlobalY(), Alignable::rotateAroundGlobalZ(), rotations, and theAlignableNavigator.

◆ moveAlignableLocalCoord()

void MuonAlignment::moveAlignableLocalCoord ( DetId detid,
align::Scalars displacements,
align::Scalars rotations 
)

Definition at line 63 of file MuonAlignment.cc.

63  {
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 }

References AlignableNavigator::alignableFromDetId(), displacements, Alignable::move(), Alignable::rotateAroundLocalX(), Alignable::rotateAroundLocalY(), Alignable::rotateAroundLocalZ(), rotations, Alignable::surface(), and theAlignableNavigator.

◆ recursiveCopySurveyToAlignment()

void MuonAlignment::recursiveCopySurveyToAlignment ( Alignable alignable)
private

Definition at line 203 of file MuonAlignment.cc.

203  {
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 }

References AlCaHLTBitMon_QueryRunRegistry::comp, makeMuonMisalignmentScenario::components, Alignable::components(), SurveyDet::errors(), Alignable::globalPosition(), Alignable::globalRotation(), mps_fire::i, dqmiolumiharvest::j, Alignable::move(), SurveyDet::position(), makeMuonMisalignmentScenario::rot, Alignable::rotateInGlobalFrame(), SurveyDet::rotation(), Alignable::setAlignmentPositionError(), Alignable::survey(), TkRotation< T >::transposed(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by copySurveyToAlignment().

◆ recursiveList()

void MuonAlignment::recursiveList ( const align::Alignables alignables,
align::Alignables theList 
)

Definition at line 100 of file MuonAlignment.cc.

100  {
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 }

References cmsLHEtoEOSManager::theList.

Referenced by saveCSCSurveyToDB(), and saveDTSurveyToDB().

◆ recursiveMap()

void MuonAlignment::recursiveMap ( const align::Alignables alignables,
std::map< align::ID, Alignable * > &  theMap 
)

Definition at line 109 of file MuonAlignment.cc.

109  {
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 }

Referenced by copyAlignmentToSurvey().

◆ recursiveStructureMap()

void MuonAlignment::recursiveStructureMap ( const align::Alignables alignables,
std::map< std::pair< align::StructureType, align::ID >, Alignable * > &  theMap 
)

Definition at line 121 of file MuonAlignment.cc.

122  {
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 }

Referenced by fillGapsInSurvey().

◆ saveCSCSurveyToDB()

void MuonAlignment::saveCSCSurveyToDB ( void  )

Definition at line 278 of file MuonAlignment.cc.

278  {
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 }

References AlignableMuon::CSCEndcaps(), cond::service::PoolDBOutputService::currentTime(), relativeConstraints::error, edm::Service< T >::isAvailable(), Alignments::m_align, SurveyErrors::m_surveyErrors, recursiveList(), makeMuonMisalignmentScenario::rot, theAlignableMuon, theCSCSurveyErrorRecordName, theCSCSurveyRecordName, relativeConstraints::value, and cond::service::PoolDBOutputService::writeOne().

Referenced by saveSurveyToDB().

◆ saveCSCtoDB()

void MuonAlignment::saveCSCtoDB ( void  )

Definition at line 332 of file MuonAlignment.cc.

332  {
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 }

References AlignableMuon::cscAlignmentErrorsExtended(), AlignableMuon::cscAlignments(), cond::service::PoolDBOutputService::currentTime(), edm::Service< T >::isAvailable(), theAlignableMuon, theCSCAlignRecordName, theCSCErrorRecordName, and cond::service::PoolDBOutputService::writeOne().

Referenced by saveToDB().

◆ saveDTSurveyToDB()

void MuonAlignment::saveDTSurveyToDB ( void  )

Definition at line 245 of file MuonAlignment.cc.

245  {
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 }

References cond::service::PoolDBOutputService::currentTime(), AlignableMuon::DTBarrel(), relativeConstraints::error, edm::Service< T >::isAvailable(), Alignments::m_align, SurveyErrors::m_surveyErrors, recursiveList(), makeMuonMisalignmentScenario::rot, theAlignableMuon, theDTSurveyErrorRecordName, theDTSurveyRecordName, relativeConstraints::value, and cond::service::PoolDBOutputService::writeOne().

Referenced by saveSurveyToDB().

◆ saveDTtoDB()

void MuonAlignment::saveDTtoDB ( void  )

Definition at line 316 of file MuonAlignment.cc.

316  {
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 }

References cond::service::PoolDBOutputService::currentTime(), AlignableMuon::dtAlignmentErrorsExtended(), AlignableMuon::dtAlignments(), edm::Service< T >::isAvailable(), theAlignableMuon, theDTAlignRecordName, theDTErrorRecordName, and cond::service::PoolDBOutputService::writeOne().

Referenced by saveToDB().

◆ saveGEMtoDB()

void MuonAlignment::saveGEMtoDB ( void  )

Definition at line 348 of file MuonAlignment.cc.

348  {
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 }

References cond::service::PoolDBOutputService::currentTime(), AlignableMuon::gemAlignmentErrorsExtended(), AlignableMuon::gemAlignments(), edm::Service< T >::isAvailable(), theAlignableMuon, theGEMAlignRecordName, theGEMErrorRecordName, and cond::service::PoolDBOutputService::writeOne().

Referenced by saveToDB().

◆ saveSurveyToDB()

void MuonAlignment::saveSurveyToDB ( void  )

Definition at line 311 of file MuonAlignment.cc.

311  {
314 }

References saveCSCSurveyToDB(), and saveDTSurveyToDB().

◆ saveToDB()

void MuonAlignment::saveToDB ( void  )

Definition at line 364 of file MuonAlignment.cc.

364  {
365  saveDTtoDB();
366  saveCSCtoDB();
367  saveGEMtoDB();
368 }

References saveCSCtoDB(), saveDTtoDB(), and saveGEMtoDB().

◆ writeXML()

void MuonAlignment::writeXML ( const edm::ParameterSet iConfig,
const edm::EventSetup iSetup 
)

Definition at line 241 of file MuonAlignment.cc.

241  {
243 }

References theAlignableMuon, and MuonAlignmentOutputXML::write().

Member Data Documentation

◆ displacements

align::Scalars MuonAlignment::displacements
private

Definition at line 73 of file MuonAlignment.h.

Referenced by moveAlignableGlobalCoord(), and moveAlignableLocalCoord().

◆ esTokenCSC_

edm::ESGetToken<CSCGeometry, MuonGeometryRecord> MuonAlignment::esTokenCSC_
private

Definition at line 70 of file MuonAlignment.h.

Referenced by MuonAlignment().

◆ esTokenDT_

edm::ESGetToken<DTGeometry, MuonGeometryRecord> MuonAlignment::esTokenDT_
private

Definition at line 69 of file MuonAlignment.h.

Referenced by MuonAlignment().

◆ esTokenGEM_

edm::ESGetToken<GEMGeometry, MuonGeometryRecord> MuonAlignment::esTokenGEM_
private

Definition at line 71 of file MuonAlignment.h.

Referenced by MuonAlignment().

◆ rotations

align::Scalars MuonAlignment::rotations
private

Definition at line 75 of file MuonAlignment.h.

Referenced by moveAlignableGlobalCoord(), and moveAlignableLocalCoord().

◆ theAlignableMuon

AlignableMuon* MuonAlignment::theAlignableMuon
private

◆ theAlignableNavigator

AlignableNavigator* MuonAlignment::theAlignableNavigator
private

◆ theCSCAlignRecordName

std::string MuonAlignment::theCSCAlignRecordName
private

Definition at line 64 of file MuonAlignment.h.

Referenced by init(), and saveCSCtoDB().

◆ theCSCErrorRecordName

std::string MuonAlignment::theCSCErrorRecordName
private

Definition at line 64 of file MuonAlignment.h.

Referenced by init(), and saveCSCtoDB().

◆ theCSCSurveyErrorRecordName

std::string MuonAlignment::theCSCSurveyErrorRecordName
private

Definition at line 67 of file MuonAlignment.h.

Referenced by init(), and saveCSCSurveyToDB().

◆ theCSCSurveyRecordName

std::string MuonAlignment::theCSCSurveyRecordName
private

Definition at line 67 of file MuonAlignment.h.

Referenced by init(), and saveCSCSurveyToDB().

◆ theDTAlignRecordName

std::string MuonAlignment::theDTAlignRecordName
private

Definition at line 63 of file MuonAlignment.h.

Referenced by init(), and saveDTtoDB().

◆ theDTErrorRecordName

std::string MuonAlignment::theDTErrorRecordName
private

Definition at line 63 of file MuonAlignment.h.

Referenced by init(), and saveDTtoDB().

◆ theDTSurveyErrorRecordName

std::string MuonAlignment::theDTSurveyErrorRecordName
private

Definition at line 66 of file MuonAlignment.h.

Referenced by init(), and saveDTSurveyToDB().

◆ theDTSurveyRecordName

std::string MuonAlignment::theDTSurveyRecordName
private

Definition at line 66 of file MuonAlignment.h.

Referenced by init(), and saveDTSurveyToDB().

◆ theGEMAlignRecordName

std::string MuonAlignment::theGEMAlignRecordName
private

Definition at line 65 of file MuonAlignment.h.

Referenced by init(), and saveGEMtoDB().

◆ theGEMErrorRecordName

std::string MuonAlignment::theGEMErrorRecordName
private

Definition at line 65 of file MuonAlignment.h.

Referenced by init(), and saveGEMtoDB().

Vector3DBase< Scalar, GlobalTag >
MuonAlignment::theGEMErrorRecordName
std::string theGEMErrorRecordName
Definition: MuonAlignment.h:65
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
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
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
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
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
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
Alignable::setSurvey
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:266
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
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
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
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
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
MuonAlignment::theCSCSurveyErrorRecordName
std::string theCSCSurveyErrorRecordName
Definition: MuonAlignment.h:67
AlignableMuon::gemAlignmentErrorsExtended
AlignmentErrorsExtended * gemAlignmentErrorsExtended()
Definition: AlignableMuon.cc:608
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.
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
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
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
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
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
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