40 alignableObjectId_(nullptr, dtGeometry, cscGeometry,
gemGeometry) {
54 edm::LogInfo(
"AlignableMuon") <<
"Constructing alignable muon objects DONE";
75 edm::LogInfo(
"Alignment") <<
"@SUB=AlignableMuon::update"
76 <<
"Updating alignable muon objects DONE";
81 LogDebug(
"Position") <<
"Constructing AlignableDTBarrel";
84 std::vector<AlignableDTChamber*> tmpDTChambersInStation;
85 std::vector<AlignableDTStation*> tmpDTStationsInWheel;
88 for (
int iwh = -2; iwh < 3; iwh++) {
90 for (
int ist = 1; ist < 5; ist++) {
93 std::vector<const GeomDet*>
95 for (
const auto& det : pDT->
chambers()) {
100 int wh = chamberId.
wheel();
105 if (iwh == wh && ist == st) {
108 theDTBarrel.back()->wheel(iwh + 2).station(ist - 1).chamber(iChamber).update(det);
114 tmpDTChambersInStation.push_back(tmpDTChamber);
132 tmpDTStationsInWheel.push_back(tmpDTStation);
135 tmpDTChambersInStation.clear();
151 tmpDTStationsInWheel.clear();
171 LogDebug(
"Position") <<
"Constructing AlignableCSCBarrel";
174 std::vector<AlignableCSCStation*> tmpCSCStationsInEndcap;
177 for (
int iec = 1; iec < 3; iec++) {
179 std::vector<AlignableCSCRing*> tmpCSCRingsInStation;
182 for (
int ist = 1; ist < 5; ist++) {
184 std::vector<AlignableCSCChamber*> tmpCSCChambersInRing;
187 for (
int iri = 1; iri < 5; iri++) {
191 for (
const auto& det : vc) {
198 int ri = cscId.
ring();
202 if (iec == ec && ist == st && iri == ri) {
205 theCSCEndcaps[iec - 1]->station(ist - 1).ring(iri - 1).chamber(iChamber).update(det);
210 tmpCSCChambersInRing.push_back(tmpCSCChamber);
222 if (!tmpCSCChambersInRing.empty()) {
230 tmpCSCRingsInStation.push_back(tmpCSCRing);
233 tmpCSCChambersInRing.clear();
250 tmpCSCStationsInEndcap.push_back(tmpCSCStation);
253 tmpCSCRingsInStation.clear();
270 tmpCSCStationsInEndcap.clear();
284 LogDebug(
"Position") <<
"Constructing AlignableGEMEndcap";
285 std::vector<AlignableGEMStation*> tmpGEMStationsInEndcap;
286 for (
int iec = -1; iec < 2; iec = iec + 2) {
287 std::vector<AlignableGEMRing*> tmpGEMRingsInStation;
289 for (
int ist = 0; ist < 3; ist++) {
294 std::vector<AlignableGEMSuperChamber*> tmpGEMSuperChambersInRing;
298 for (
const auto& det : vc) {
302 int ri = gemId.
ring();
304 if (iec == ec && ist == st && iri == ri) {
306 theGEMEndcaps[iec == -1 ? 0 : 1]->station(ist - 1).ring(iri - 1).superChamber(iChamber).update(det);
309 tmpGEMSuperChambersInRing.push_back(tmpGEMSuperChamber);
315 if (!tmpGEMSuperChambersInRing.empty()) {
317 theGEMSuperChambers.end(), tmpGEMSuperChambersInRing.begin(), tmpGEMSuperChambersInRing.end());
319 tmpGEMRingsInStation.push_back(tmpGEMRing);
320 tmpGEMSuperChambersInRing.clear();
326 tmpGEMStationsInEndcap.push_back(tmpGEMStation);
327 tmpGEMRingsInStation.clear();
334 tmpGEMStationsInEndcap.clear();
344 for (align::Alignables::const_iterator chamberIter =
chambers.begin(); chamberIter !=
chambers.end(); ++chamberIter) {
346 for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end();
349 for (align::Alignables::const_iterator layerIter =
layers.begin(); layerIter !=
layers.end(); ++layerIter) {
350 result.push_back(*layerIter);
363 for (align::Alignables::const_iterator chamberIter =
chambers.begin(); chamberIter !=
chambers.end(); ++chamberIter) {
365 for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end();
367 result.push_back(*superlayerIter);
407 for (align::Alignables::const_iterator chamberIter =
chambers.begin(); chamberIter !=
chambers.end(); ++chamberIter) {
409 for (align::Alignables::const_iterator layerIter =
layers.begin(); layerIter !=
layers.end(); ++layerIter) {
410 result.push_back(*layerIter);
449 for (align::Alignables::const_iterator superChamberIter = superChambers.begin();
450 superChamberIter != superChambers.end();
451 ++superChamberIter) {
453 for (align::Alignables::const_iterator chamberIter =
chambers.begin(); chamberIter !=
chambers.end();
456 for (align::Alignables::const_iterator etaPartitionIter = etaPartitions.begin();
457 etaPartitionIter != etaPartitions.end();
458 ++etaPartitionIter) {
459 result.push_back(*etaPartitionIter);
470 for (align::Alignables::const_iterator superChamberIter = superChambers.begin();
471 superChamberIter != superChambers.end();
472 ++superChamberIter) {
474 for (align::Alignables::const_iterator chamberIter =
chambers.begin(); chamberIter !=
chambers.end();
476 result.push_back(*chamberIter);
512 for (
const auto& iter : alignable->
components()) {
513 iter->setMother(alignable);
523 for (align::Alignables::iterator
i =
comp.begin();
i !=
comp.end();
i++) {
524 Alignments* tmpAlignments = (*i)->alignments();
526 delete tmpAlignments;
540 for (align::Alignables::iterator
i =
comp.begin();
i !=
comp.end();
i++) {
545 delete tmpAlignmentErrorsExtended;
551 return m_alignmentErrors;
558 return tmpAlignments;
565 return tmpAlignmentErrorsExtended;
577 return tmpAlignments;
588 back_inserter(tmpAlignmentErrorsExtended->
m_alignError));
591 back_inserter(tmpAlignmentErrorsExtended->
m_alignError));
593 return tmpAlignmentErrorsExtended;
605 return tmpAlignments;
616 back_inserter(tmpAlignmentErrorsExtended->
m_alignError));
619 back_inserter(tmpAlignmentErrorsExtended->
m_alignError));
622 return tmpAlignmentErrorsExtended;