CMS 3D CMS Logo

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

Constructor of the full muon geometry. More...

#include <AlignableMuon.h>

Inheritance diagram for AlignableMuon:
AlignableComposite Alignable

Public Member Functions

 AlignableMuon (const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
 Constructor from geometries. More...
 
const align::Alignablescomponents () const final
 Return all components. More...
 
AlignmentErrorsExtendedcscAlignmentErrorsExtended ()
 Get CSC alignment errors sorted by DetId. More...
 
AlignmentscscAlignments ()
 Get CSC alignments sorted by DetId. More...
 
align::Alignables CSCChambers ()
 
align::Alignables CSCEndcaps ()
 
align::Alignables CSCLayers ()
 
align::Alignables CSCRings ()
 
align::Alignables CSCStations ()
 
const bool doGEM ()
 
AlignmentErrorsExtendeddtAlignmentErrorsExtended ()
 Get DT alignment errors sorted by DetId. More...
 
AlignmentsdtAlignments ()
 Get DT alignments sorted by DetId. More...
 
align::Alignables DTBarrel ()
 
align::Alignables DTChambers ()
 
align::Alignables DTLayers ()
 Methods to return specific of components. More...
 
align::Alignables DTStations ()
 
align::Alignables DTSuperLayers ()
 
align::Alignables DTWheels ()
 
AlignmentErrorsExtendedgemAlignmentErrorsExtended ()
 
AlignmentsgemAlignments ()
 
align::Alignables GEMChambers ()
 
align::Alignables GEMEndcaps ()
 
align::Alignables GEMEtaPartitions ()
 
align::Alignables GEMRings ()
 
align::Alignables GEMStations ()
 
align::Alignables GEMSuperChambers ()
 
virtual Alignablemother ()
 Alignable tracker has no mother. More...
 
const AlignableObjectIdobjectIdProvider () const
 Return muon alignable object ID provider derived from the muon system geometry. More...
 
void update (const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
 
 ~AlignableMuon () override
 Destructor. More...
 
- Public Member Functions inherited from AlignableComposite
void addAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown) override
 
void addAlignmentPositionErrorFromLocalRotation (const RotationType &rotation, bool propagateDown) override
 
void addAlignmentPositionErrorFromRotation (const RotationType &rotation, bool propagateDown) override
 
void addComponent (Alignable *component) final
 
void addSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown) override
 
 AlignableComposite (align::ID id, StructureType aType, const RotationType &rot=RotationType())
 
StructureType alignableObjectId () const override
 Return the alignable type identifier. More...
 
void dump () const override
 Recursive printout of alignable structure. More...
 
void move (const GlobalVector &displacement) override
 Move with respect to the global reference frame. More...
 
virtual void moveComponentLocal (const int i, const LocalVector &localDisplacement)
 Move a single component with respect to the local reference frame. More...
 
virtual void moveComponentsLocal (const LocalVector &localDisplacement)
 Move with respect to the local reference frame. More...
 
void recursiveComponents (Alignables &result) const override
 Provide all components, subcomponents etc. (cf. description in base class) More...
 
void rotateInGlobalFrame (const RotationType &rotation) override
 Rotation interpreted in global reference frame. More...
 
void setAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown) override
 
void setSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown) override
 Set the surface deformation parameters - if (!propagateDown) do not affect daughters. More...
 
int surfaceDeformationIdPairs (std::vector< std::pair< int, SurfaceDeformation *> > &) const override
 Return surface deformations. More...
 
void update (align::ID, StructureType aType, const RotationType &rot=RotationType())
 
template<class T >
void update (T)=delete
 
 ~AlignableComposite () override
 deleting its components More...
 
- Public Member Functions inherited from Alignable
 Alignable (align::ID, const AlignableSurface &)
 
 Alignable (align::ID, const RotationType &)
 
AlignmentParametersalignmentParameters () const
 Get the AlignmentParameters. More...
 
virtual void cacheTransformation ()
 cache the current position, rotation and other parameters (e.g. surface deformations), also for possible components More...
 
virtual void cacheTransformation (const align::RunNumber &)
 
virtual CompConstraintType compConstraintType () const
 Return the alignable type of contraints wrt. its components. More...
 
const AlignablesdeepComponents () const
 
const GlobalVectordisplacement () const
 Return change of the global position since the creation of the object. More...
 
bool firstCompsWithParams (Alignables &paramComps) const
 
const DetIdgeomDetId () const
 
const PositionTypeglobalPosition () const
 Return the global position of the object. More...
 
const RotationTypeglobalRotation () const
 Return the global orientation of the object. More...
 
align::ID id () const
 Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit). More...
 
bool lastCompsWithParams (Alignables &paramComps) const
 
Alignablemother () const
 Return pointer to container alignable (if any) More...
 
virtual void recenterSurface ()
 Recenter surface object without moving possible components. More...
 
virtual void recursiveComponents (Alignables &result) const =0
 
virtual void restoreCachedTransformation ()
 restore the previously cached transformation, also for possible components More...
 
virtual void restoreCachedTransformation (const align::RunNumber &)
 
virtual void rotateAroundGlobalAxis (const GlobalVector &axis, Scalar radians)
 Rotation around arbitratry global axis. More...
 
virtual void rotateAroundGlobalX (Scalar radians)
 Rotation around global x-axis. More...
 
virtual void rotateAroundGlobalY (Scalar radians)
 Rotation around global y-axis. More...
 
virtual void rotateAroundGlobalZ (Scalar radians)
 Rotation around global z-axis. More...
 
virtual void rotateAroundLocalAxis (const LocalVector &axis, Scalar radians)
 Rotation around arbitratry local axis. More...
 
virtual void rotateAroundLocalX (Scalar radians)
 Rotation around local x-axis. More...
 
virtual void rotateAroundLocalY (Scalar radians)
 Rotation around local y-axis. More...
 
virtual void rotateAroundLocalZ (Scalar radians)
 Rotation around local z-axis. More...
 
virtual void rotateInLocalFrame (const RotationType &rotation)
 Rotation intepreted in the local reference frame. More...
 
const RotationTyperotation () const
 Return change of orientation since the creation of the object. More...
 
void setAlignmentParameters (AlignmentParameters *dap)
 Set the AlignmentParameters. More...
 
void setMother (Alignable *mother)
 Assign mother to alignable. More...
 
void setSurvey (const SurveyDet *)
 Set survey info. More...
 
int size () const
 Return number of direct components. More...
 
const AlignableSurfacesurface () const
 Return the Surface (global position and orientation) of the object. More...
 
AlignmentSurfaceDeformationssurfaceDeformations () const
 Return surface deformations, sorted by DetId. More...
 
const SurveyDetsurvey () const
 Return survey info. More...
 
void update (align::ID, const AlignableSurface &)
 
virtual ~Alignable ()
 Destructor. More...
 

Private Member Functions

AlignmentErrorsExtendedalignmentErrors () const override
 Get alignment errors sorted by DetId. More...
 
Alignmentsalignments () const override
 Get alignments sorted by DetId. More...
 
void buildCSCEndcap (const CSCGeometry *, bool update=false)
 Build muon end caps. More...
 
void buildDTBarrel (const DTGeometry *, bool update=false)
 Build muon barrel. More...
 
void buildGEMEndcap (const GEMGeometry *, bool update=false)
 
RotationType computeOrientation ()
 Get the global orientation (no rotation by default) More...
 
PositionType computePosition ()
 Get the position (centered at 0 by default) More...
 
AlignableSurface computeSurface ()
 Get the Surface. More...
 
void recursiveSetMothers (Alignable *alignable)
 Set mothers recursively. More...
 

Private Attributes

const AlignableObjectId alignableObjectId_
 alignable object ID provider More...
 
bool doGEM_
 
std::vector< AlignableCSCChamber * > theCSCChambers
 
std::vector< AlignableCSCEndcap * > theCSCEndcaps
 
std::vector< AlignableCSCRing * > theCSCRings
 
std::vector< AlignableCSCStation * > theCSCStations
 
std::vector< AlignableDTBarrel * > theDTBarrel
 
std::vector< AlignableDTChamber * > theDTChambers
 Containers of separate components. More...
 
std::vector< AlignableDTStation * > theDTStations
 
std::vector< AlignableDTWheel * > theDTWheels
 
std::vector< AlignableGEMEndcap * > theGEMEndcaps
 
std::vector< AlignableGEMRing * > theGEMRings
 
std::vector< AlignableGEMStation * > theGEMStations
 
std::vector< AlignableGEMSuperChamber * > theGEMSuperChambers
 
align::Alignables theMuonComponents
 

Additional Inherited Members

- Public Types inherited from Alignable
typedef align::Alignables Alignables
 
enum  CompConstraintType { CompConstraintType::NONE, CompConstraintType::POSITION, CompConstraintType::POSITION_Z }
 
typedef align::GlobalVector GlobalVector
 
typedef align::LocalVector LocalVector
 
typedef align::PositionType PositionType
 
typedef align::RotationType RotationType
 
typedef align::Scalar Scalar
 
typedef align::StructureType StructureType
 
- Protected Types inherited from Alignable
template<class T >
using Cache = std::map< align::RunNumber, T >
 
- Protected Member Functions inherited from AlignableComposite
 AlignableComposite (const GeomDet *geomDet)
 Constructor from GeomDet, only for use in AlignableDet. More...
 
void setSurface (const AlignableSurface &s)
 
void update (const GeomDet *geomDet)
 
- Protected Member Functions inherited from Alignable
void addDisplacement (const GlobalVector &displacement)
 
void addRotation (const RotationType &rotation)
 
virtual void updateMother (const GlobalVector &shift)
 
- Protected Attributes inherited from AlignableComposite
StructureType theStructureType
 
- Protected Attributes inherited from Alignable
CompConstraintType compConstraintType_ {CompConstraintType::NONE}
 
Cache< GlobalVectordisplacementsCache_
 
Cache< RotationTyperotationsCache_
 
Cache< AlignableSurfacesurfacesCache_
 
GlobalVector theCachedDisplacement
 
RotationType theCachedRotation
 
AlignableSurface theCachedSurface
 
Alignables theDeepComponents
 
DetId theDetId
 
GlobalVector theDisplacement
 
align::ID theId
 
RotationType theRotation
 
AlignableSurface theSurface
 

Detailed Description

Constructor of the full muon geometry.

The alignable muon.

Date
2008/04/25 21:23:15
Revision
1.21
Author
Andre Sznajder - UERJ(Brazil)

Definition at line 38 of file AlignableMuon.h.

Constructor & Destructor Documentation

◆ AlignableMuon()

AlignableMuon::AlignableMuon ( const DTGeometry dtGeometry,
const CSCGeometry cscGeometry,
const GEMGeometry gemGeometry 
)

Constructor from geometries.

Definition at line 36 of file AlignableMuon.cc.

References buildCSCEndcap(), buildDTBarrel(), buildGEMEndcap(), components(), doGEM_, gemGeometry_cff::gemGeometry, recursiveSetMothers(), and Alignable::theId.

39  : AlignableComposite(0, align::AlignableMuon), // cannot yet set id, use 0
40  alignableObjectId_(nullptr, dtGeometry, cscGeometry, gemGeometry),
41  doGEM_(false) {
42  // Build the muon barrel
43  buildDTBarrel(dtGeometry);
44 
45  // Build the muon end caps
46  buildCSCEndcap(cscGeometry);
47  if (gemGeometry) {
48  doGEM_ = true;
50  }
51 
52  // Set links to mothers recursively
53  recursiveSetMothers(this);
54 
55  // now can set id as for all composites: id of first component
56  theId = this->components()[0]->id();
57 
58  edm::LogInfo("AlignableMuon") << "Constructing alignable muon objects DONE";
59 }
AlignableComposite()
default constructor hidden
void buildGEMEndcap(const GEMGeometry *, bool update=false)
const AlignableObjectId alignableObjectId_
alignable object ID provider
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
Log< level::Info, false > LogInfo
void buildCSCEndcap(const CSCGeometry *, bool update=false)
Build muon end caps.
const align::Alignables & components() const final
Return all components.
Definition: AlignableMuon.h:51
void buildDTBarrel(const DTGeometry *, bool update=false)
Build muon barrel.
align::ID theId
Definition: Alignable.h:235

◆ ~AlignableMuon()

AlignableMuon::~AlignableMuon ( )
override

Destructor.

Definition at line 62 of file AlignableMuon.cc.

References theMuonComponents.

62  {
63  for (align::Alignables::iterator iter = theMuonComponents.begin(); iter != theMuonComponents.end(); iter++) {
64  delete *iter;
65  }
66 }
align::Alignables theMuonComponents

Member Function Documentation

◆ alignmentErrors()

AlignmentErrorsExtended * AlignableMuon::alignmentErrors ( void  ) const
overrideprivatevirtual

Get alignment errors sorted by DetId.

Reimplemented from AlignableComposite.

Definition at line 540 of file AlignableMuon.cc.

References AlCaHLTBitMon_QueryRunRegistry::comp, components(), filterCSVwithJSON::copy, mps_fire::i, AlignmentErrorsExtended::m_alignError, and jetUpdater_cfi::sort.

540  {
542  AlignmentErrorsExtended* m_alignmentErrors = new AlignmentErrorsExtended();
543 
544  // Add components recursively
545  for (align::Alignables::iterator i = comp.begin(); i != comp.end(); i++) {
546  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = (*i)->alignmentErrors();
547  std::copy(tmpAlignmentErrorsExtended->m_alignError.begin(),
548  tmpAlignmentErrorsExtended->m_alignError.end(),
549  std::back_inserter(m_alignmentErrors->m_alignError));
550  delete tmpAlignmentErrorsExtended;
551  }
552 
553  // sort by rawId
554  std::sort(m_alignmentErrors->m_alignError.begin(), m_alignmentErrors->m_alignError.end());
555 
556  return m_alignmentErrors;
557 }
std::vector< AlignTransformErrorExtended > m_alignError
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
const align::Alignables & components() const final
Return all components.
Definition: AlignableMuon.h:51

◆ alignments()

Alignments * AlignableMuon::alignments ( void  ) const
overrideprivatevirtual

Get alignments sorted by DetId.

Reimplemented from AlignableComposite.

Definition at line 524 of file AlignableMuon.cc.

References AlCaHLTBitMon_QueryRunRegistry::comp, components(), filterCSVwithJSON::copy, mps_fire::i, Alignments::m_align, and jetUpdater_cfi::sort.

524  {
526  Alignments* m_alignments = new Alignments();
527  // Add components recursively
528  for (align::Alignables::iterator i = comp.begin(); i != comp.end(); i++) {
529  Alignments* tmpAlignments = (*i)->alignments();
530  std::copy(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end(), std::back_inserter(m_alignments->m_align));
531  delete tmpAlignments;
532  }
533 
534  // sort by rawId
535  std::sort(m_alignments->m_align.begin(), m_alignments->m_align.end());
536 
537  return m_alignments;
538 }
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
const align::Alignables & components() const final
Return all components.
Definition: AlignableMuon.h:51

◆ buildCSCEndcap()

void AlignableMuon::buildCSCEndcap ( const CSCGeometry pCSC,
bool  update = false 
)
private

Build muon end caps.

Definition at line 176 of file AlignableMuon.cc.

References align::AlignableCSCChamber, align::AlignableCSCEndcap, align::AlignableCSCRing, align::AlignableCSCStation, CSCGeometry::chambers(), CSCDetId::endcap(), LogDebug, CSCDetId::ring(), CSCDetId::station(), theCSCChambers, theCSCEndcaps, theCSCRings, theCSCStations, theMuonComponents, and update().

Referenced by AlignableMuon(), and update().

176  {
177  LogDebug("Position") << "Constructing AlignableCSCBarrel";
178 
179  // Temporary container for stations in a given endcap
180  std::vector<AlignableCSCStation*> tmpCSCStationsInEndcap;
181 
182  // Loop over endcaps ( 1..2 )
183  for (int iec = 1; iec < 3; iec++) {
184  // Temporary container for rings in a given station
185  std::vector<AlignableCSCRing*> tmpCSCRingsInStation;
186 
187  // Loop over stations ( 1..4 )
188  for (int ist = 1; ist < 5; ist++) {
189  // Temporary container for chambers in a given ring
190  std::vector<AlignableCSCChamber*> tmpCSCChambersInRing;
191 
192  // Loop over rings ( 1..4 )
193  for (int iri = 1; iri < 5; iri++) {
194  // Loop over geom CSC Chambers
195  int iChamber{0};
196  const CSCGeometry::ChamberContainer& vc = pCSC->chambers();
197  for (const auto& det : vc) {
198  // Get the CSCDet ID
199  CSCDetId cscId = det->id();
200 
201  // Get chamber, station, ring, layer and endcap labels of the CSC chamber
202  int ec = cscId.endcap();
203  int st = cscId.station();
204  int ri = cscId.ring();
205  //int ch = cscId.chamber();
206 
207  // Select the chambers in a given endcap, station, and ring
208  if (iec == ec && ist == st && iri == ri) {
209  if (update) {
210  // Update the alignable CSC chamber
211  theCSCEndcaps[iec - 1]->station(ist - 1).ring(iri - 1).chamber(iChamber).update(det);
212  } else {
213  AlignableCSCChamber* tmpCSCChamber = new AlignableCSCChamber(det);
214 
215  // Store the alignable CSC chambers
216  tmpCSCChambersInRing.push_back(tmpCSCChamber);
217  }
218 
219  ++iChamber;
220  // End If chamber selection
221  }
222 
223  // End loop over geom CSC chambers
224  }
225 
226  if (!update) {
227  // Not all stations have 4 rings: only add the rings that exist (have chambers associated with them)
228  if (!tmpCSCChambersInRing.empty()) {
229  // Store the alignable CSC chambers
230  theCSCChambers.insert(theCSCChambers.end(), tmpCSCChambersInRing.begin(), tmpCSCChambersInRing.end());
231 
232  // Create the alignable CSC ring with chambers in a given ring
233  AlignableCSCRing* tmpCSCRing = new AlignableCSCRing(tmpCSCChambersInRing);
234 
235  // Store the CSC rings in a given station
236  tmpCSCRingsInStation.push_back(tmpCSCRing);
237 
238  // Clear the temporary vector of chambers in ring
239  tmpCSCChambersInRing.clear();
240 
241  // End if this ring exists
242  }
243  }
244 
245  // End loop over rings
246  }
247 
248  if (!update) {
249  // Create the alignable CSC station with rings in a given station
250  AlignableCSCStation* tmpCSCStation = new AlignableCSCStation(tmpCSCRingsInStation);
251 
252  // Store the alignable CSC rings
253  theCSCRings.insert(theCSCRings.end(), tmpCSCRingsInStation.begin(), tmpCSCRingsInStation.end());
254 
255  // Store the CSC stations in a given endcap
256  tmpCSCStationsInEndcap.push_back(tmpCSCStation);
257 
258  // Clear the temporary vector of rings in station
259  tmpCSCRingsInStation.clear();
260  }
261 
262  // End loop over stations
263  }
264 
265  if (!update) {
266  // Create the alignable CSC endcap
267  AlignableCSCEndcap* tmpEndcap = new AlignableCSCEndcap(tmpCSCStationsInEndcap);
268 
269  // Store the alignable CSC stations
270  theCSCStations.insert(theCSCStations.end(), tmpCSCStationsInEndcap.begin(), tmpCSCStationsInEndcap.end());
271 
272  // Store the alignable CSC endcaps
273  theCSCEndcaps.push_back(tmpEndcap);
274 
275  // Clear the temporary vector of stations in endcap
276  tmpCSCStationsInEndcap.clear();
277  }
278 
279  // End loop over endcaps
280  }
281 
282  if (!update) {
283  // Store the encaps in the muon components
284  theMuonComponents.insert(theMuonComponents.end(), theCSCEndcaps.begin(), theCSCEndcaps.end());
285  }
286 }
std::vector< AlignableCSCEndcap * > theCSCEndcaps
align::Alignables theMuonComponents
std::vector< AlignableCSCStation * > theCSCStations
std::vector< AlignableCSCRing * > theCSCRings
int station() const
Definition: CSCDetId.h:79
int endcap() const
Definition: CSCDetId.h:85
std::vector< const CSCChamber * > ChamberContainer
Definition: CSCGeometry.h:30
int ring() const
Definition: CSCDetId.h:68
const ChamberContainer & chambers() const
Return a vector of all chambers.
Definition: CSCGeometry.cc:96
void update(const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
std::vector< AlignableCSCChamber * > theCSCChambers
#define LogDebug(id)
A muon CSC Chamber( an AlignableDet )

◆ buildDTBarrel()

void AlignableMuon::buildDTBarrel ( const DTGeometry pDT,
bool  update = false 
)
private

Build muon barrel.

Definition at line 86 of file AlignableMuon.cc.

References align::AlignableDTBarrel, align::AlignableDTChamber, align::AlignableDTStation, align::AlignableDTWheel, DTGeometry::chambers(), LogDebug, DTChamberId::station(), theDTBarrel, theDTChambers, theDTStations, theDTWheels, theMuonComponents, update(), and DTChamberId::wheel().

Referenced by AlignableMuon(), and update().

86  {
87  LogDebug("Position") << "Constructing AlignableDTBarrel";
88 
89  // Temporary container for chambers in a given station and stations in a given wheel
90  std::vector<AlignableDTChamber*> tmpDTChambersInStation;
91  std::vector<AlignableDTStation*> tmpDTStationsInWheel;
92 
93  // Loop over wheels ( -2..2 )
94  for (int iwh = -2; iwh < 3; iwh++) {
95  // Loop over stations ( 1..4 )
96  for (int ist = 1; ist < 5; ist++) {
97  // Loop over geom DT Chambers
98  int iChamber{0};
99  std::vector<const GeomDet*>
100  theSLs; // FIXME: What is this vector meant to be for? Probably redundant since super layers are handled inside of the AlignableDTChamber.
101  for (const auto& det : pDT->chambers()) {
102  // Get the chamber ID
103  DTChamberId chamberId = det->id();
104 
105  // Get wheel,station and sector of the chamber
106  int wh = chamberId.wheel();
107  int st = chamberId.station();
108  //int se = chamberId.sector();
109 
110  // Select the chambers in a given wheel in a given station
111  if (iwh == wh && ist == st) {
112  if (update) {
113  // Update the alignable DT chamber
114  theDTBarrel.back()->wheel(iwh + 2).station(ist - 1).chamber(iChamber).update(det);
115  } else {
116  // Create the alignable DT chamber
117  AlignableDTChamber* tmpDTChamber = new AlignableDTChamber(det);
118 
119  // Store the DT chambers in a given DT Station and Wheel
120  tmpDTChambersInStation.push_back(tmpDTChamber);
121  }
122 
123  ++iChamber;
124  // End chamber selection
125  }
126 
127  // End loop over chambers
128  }
129 
130  if (!update) {
131  // Store the DT chambers
132  theDTChambers.insert(theDTChambers.end(), tmpDTChambersInStation.begin(), tmpDTChambersInStation.end());
133 
134  // Create the alignable DT station with chambers in a given station and wheel
135  AlignableDTStation* tmpDTStation = new AlignableDTStation(tmpDTChambersInStation);
136 
137  // Store the DT stations in a given wheel
138  tmpDTStationsInWheel.push_back(tmpDTStation);
139 
140  // Clear the temporary vector of chambers in a station
141  tmpDTChambersInStation.clear();
142  }
143  // End loop over stations
144  }
145 
146  if (!update) {
147  // Store The DT stations
148  theDTStations.insert(theDTStations.end(), tmpDTStationsInWheel.begin(), tmpDTStationsInWheel.end());
149 
150  // Create the alignable DT wheel
151  AlignableDTWheel* tmpWheel = new AlignableDTWheel(tmpDTStationsInWheel);
152 
153  // Store the DT wheels
154  theDTWheels.push_back(tmpWheel);
155 
156  // Clear temporary vector of stations in a wheel
157  tmpDTStationsInWheel.clear();
158  }
159 
160  // End loop over wheels
161  }
162 
163  if (!update) {
164  // Create the alignable Muon Barrel
165  AlignableDTBarrel* tmpDTBarrel = new AlignableDTBarrel(theDTWheels);
166 
167  // Store the barrel
168  theDTBarrel.push_back(tmpDTBarrel);
169 
170  // Store the barrel in the muon
171  theMuonComponents.push_back(tmpDTBarrel);
172  }
173 }
int station() const
Return the station number.
Definition: DTChamberId.h:42
A muon DT Chamber( an AlignableDet )
align::Alignables theMuonComponents
std::vector< AlignableDTStation * > theDTStations
std::vector< AlignableDTChamber * > theDTChambers
Containers of separate components.
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
std::vector< AlignableDTBarrel * > theDTBarrel
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
std::vector< AlignableDTWheel * > theDTWheels
void update(const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
#define LogDebug(id)

◆ buildGEMEndcap()

void AlignableMuon::buildGEMEndcap ( const GEMGeometry pGEM,
bool  update = false 
)
private

Definition at line 289 of file AlignableMuon.cc.

References align::AlignableGEMEndcap, align::AlignableGEMRing, align::AlignableGEMStation, align::AlignableGEMSuperChamber, LogDebug, GEMRegion::region(), GEMStation::region(), GEMDetId::region(), GEMGeometry::regions(), GEMDetId::ring(), GEMStation::station(), GEMDetId::station(), GEMGeometry::stations(), GEMGeometry::superChambers(), theGEMEndcaps, theGEMRings, theGEMStations, theGEMSuperChambers, and update().

Referenced by AlignableMuon(), and update().

289  {
290  LogDebug("Position") << "Constructing AlignableGEMEndcap";
291  std::vector<AlignableGEMStation*> tmpGEMStationsInEndcap;
292  for (const auto& GEMRegion : pGEM->regions()) {
293  int iec = GEMRegion->region();
294  std::vector<AlignableGEMRing*> tmpGEMRingsInStation;
295  for (const auto& GEMStation : pGEM->stations()) {
296  if (GEMStation->region() != iec)
297  continue;
298  int ist = GEMStation->station();
299  std::vector<AlignableGEMSuperChamber*> tmpGEMSuperChambersInRing;
300  int iri = 1;
301  int iChamber{0};
302  auto vc = pGEM->superChambers();
303  for (const auto& det : vc) {
304  GEMDetId gemId = det->id();
305  int ec = gemId.region();
306  int st = gemId.station();
307  int ri = gemId.ring();
308 
309  if (iec == ec && ist == st && iri == ri) {
310  if (update) {
311  theGEMEndcaps[iec == -1 ? 0 : 1]->station(ist - 1).ring(iri - 1).superChamber(iChamber).update(det);
312  } else {
313  AlignableGEMSuperChamber* tmpGEMSuperChamber = new AlignableGEMSuperChamber(det);
314  tmpGEMSuperChambersInRing.push_back(tmpGEMSuperChamber);
315  }
316  ++iChamber;
317  }
318  }
319  if (!update) {
320  if (!tmpGEMSuperChambersInRing.empty()) {
321  theGEMSuperChambers.insert(
322  theGEMSuperChambers.end(), tmpGEMSuperChambersInRing.begin(), tmpGEMSuperChambersInRing.end());
323  AlignableGEMRing* tmpGEMRing = new AlignableGEMRing(tmpGEMSuperChambersInRing);
324  tmpGEMRingsInStation.push_back(tmpGEMRing);
325  tmpGEMSuperChambersInRing.clear();
326  }
327  }
328  if (!update) {
329  AlignableGEMStation* tmpGEMStation = new AlignableGEMStation(tmpGEMRingsInStation);
330  theGEMRings.insert(theGEMRings.end(), tmpGEMRingsInStation.begin(), tmpGEMRingsInStation.end());
331  tmpGEMStationsInEndcap.push_back(tmpGEMStation);
332  tmpGEMRingsInStation.clear();
333  }
334  }
335  if (!update) {
336  AlignableGEMEndcap* tmpEndcap = new AlignableGEMEndcap(tmpGEMStationsInEndcap);
337  theGEMStations.insert(theGEMStations.end(), tmpGEMStationsInEndcap.begin(), tmpGEMStationsInEndcap.end());
338  theGEMEndcaps.push_back(tmpEndcap);
339  tmpGEMStationsInEndcap.clear();
340  }
341  }
342 }
std::vector< AlignableGEMRing * > theGEMRings
constexpr int station() const
Definition: GEMDetId.h:179
constexpr int region() const
Definition: GEMDetId.h:171
std::vector< AlignableGEMEndcap * > theGEMEndcaps
const std::vector< const GEMStation * > & stations() const
Return a vector of all GEM stations.
Definition: GEMGeometry.cc:32
int region() const
Get the region.
Definition: GEMStation.cc:70
int region() const
Return the region.
Definition: GEMRegion.cc:64
std::vector< AlignableGEMStation * > theGEMStations
std::vector< AlignableGEMSuperChamber * > theGEMSuperChambers
constexpr int ring() const
Definition: GEMDetId.h:176
const std::vector< const GEMRegion * > & regions() const
Return a vector of all GEM regions.
Definition: GEMGeometry.cc:30
void update(const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
const std::vector< const GEMSuperChamber * > & superChambers() const
Return a vector of all GEM super chambers.
Definition: GEMGeometry.cc:36
int station() const
Get the station.
Definition: GEMStation.cc:72
#define LogDebug(id)

◆ components()

const align::Alignables& AlignableMuon::components ( ) const
inlinefinalvirtual

Return all components.

Reimplemented from AlignableComposite.

Definition at line 51 of file AlignableMuon.h.

References theMuonComponents.

Referenced by AlignableMuon(), alignmentErrors(), and alignments().

51 { return theMuonComponents; }
align::Alignables theMuonComponents

◆ computeOrientation()

RotationType AlignableMuon::computeOrientation ( )
private

Get the global orientation (no rotation by default)

◆ computePosition()

PositionType AlignableMuon::computePosition ( )
private

Get the position (centered at 0 by default)

◆ computeSurface()

AlignableSurface AlignableMuon::computeSurface ( )
private

Get the Surface.

◆ cscAlignmentErrorsExtended()

AlignmentErrorsExtended * AlignableMuon::cscAlignmentErrorsExtended ( void  )

Get CSC alignment errors sorted by DetId.

Definition at line 585 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, CSCEndcaps(), and AlignmentErrorsExtended::m_alignError.

Referenced by MuonMisalignedProducer::analyze(), MuonAlignment::copyAlignmentToSurvey(), MuonAlignment::saveCSCtoDB(), and MuonAlignmentOutputXML::write().

585  {
586  // Retrieve muon endcaps alignment errors
587  AlignmentErrorsExtended* cscEndCap1Errors = this->CSCEndcaps().front()->alignmentErrors();
588  AlignmentErrorsExtended* cscEndCap2Errors = this->CSCEndcaps().back()->alignmentErrors();
589  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = new AlignmentErrorsExtended();
590 
591  std::copy(cscEndCap1Errors->m_alignError.begin(),
592  cscEndCap1Errors->m_alignError.end(),
593  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
594  std::copy(cscEndCap2Errors->m_alignError.begin(),
595  cscEndCap2Errors->m_alignError.end(),
596  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
597 
598  return tmpAlignmentErrorsExtended;
599 }
align::Alignables CSCEndcaps()
std::vector< AlignTransformErrorExtended > m_alignError

◆ cscAlignments()

Alignments * AlignableMuon::cscAlignments ( void  )

Get CSC alignments sorted by DetId.

Definition at line 573 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, CSCEndcaps(), and Alignments::m_align.

Referenced by MuonMisalignedProducer::analyze(), and MuonAlignment::saveCSCtoDB().

573  {
574  // Retrieve muon endcaps alignments
575  Alignments* cscEndCap1 = this->CSCEndcaps().front()->alignments();
576  Alignments* cscEndCap2 = this->CSCEndcaps().back()->alignments();
577  Alignments* tmpAlignments = new Alignments();
578 
579  std::copy(cscEndCap1->m_align.begin(), cscEndCap1->m_align.end(), back_inserter(tmpAlignments->m_align));
580  std::copy(cscEndCap2->m_align.begin(), cscEndCap2->m_align.end(), back_inserter(tmpAlignments->m_align));
581 
582  return tmpAlignments;
583 }
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
align::Alignables CSCEndcaps()

◆ CSCChambers()

align::Alignables AlignableMuon::CSCChambers ( )

Definition at line 423 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theCSCChambers.

Referenced by AlignmentParameterSelector::addSelection(), CSCLayers(), MuonAlignmentFromReference::initialize(), and MuonScenarioBuilder::moveCSCSectors().

423  {
425  copy(theCSCChambers.begin(), theCSCChambers.end(), back_inserter(result));
426  return result;
427 }
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std::vector< AlignableCSCChamber * > theCSCChambers

◆ CSCEndcaps()

align::Alignables AlignableMuon::CSCEndcaps ( )

◆ CSCLayers()

align::Alignables AlignableMuon::CSCLayers ( )

Definition at line 408 of file AlignableMuon.cc.

References chambers, CSCChambers(), hgcalTBTopologyTester_cfi::layers, and mps_fire::result.

Referenced by AlignmentParameterSelector::addSelection().

408  {
410 
412  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
413  align::Alignables layers = (*chamberIter)->components();
414  for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
415  result.push_back(*layerIter);
416  }
417  }
418 
419  return result;
420 }
align::Alignables CSCChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ CSCRings()

align::Alignables AlignableMuon::CSCRings ( )

Definition at line 430 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theCSCRings.

Referenced by AlignmentParameterSelector::addSelection().

430  {
432  copy(theCSCRings.begin(), theCSCRings.end(), back_inserter(result));
433  return result;
434 }
std::vector< AlignableCSCRing * > theCSCRings
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ CSCStations()

align::Alignables AlignableMuon::CSCStations ( )

Definition at line 437 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theCSCStations.

Referenced by AlignmentParameterSelector::addSelection().

437  {
439  copy(theCSCStations.begin(), theCSCStations.end(), back_inserter(result));
440  return result;
441 }
std::vector< AlignableCSCStation * > theCSCStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ doGEM()

const bool AlignableMuon::doGEM ( )
inline

Definition at line 94 of file AlignableMuon.h.

References doGEM_.

94 { return doGEM_; }

◆ dtAlignmentErrorsExtended()

AlignmentErrorsExtended * AlignableMuon::dtAlignmentErrorsExtended ( void  )

Get DT alignment errors sorted by DetId.

Definition at line 566 of file AlignableMuon.cc.

References DTBarrel().

Referenced by MuonMisalignedProducer::analyze(), MuonAlignment::copyAlignmentToSurvey(), MuonAlignment::saveDTtoDB(), and MuonAlignmentOutputXML::write().

566  {
567  // Retrieve muon barrel alignment errors
568  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = this->DTBarrel().front()->alignmentErrors();
569 
570  return tmpAlignmentErrorsExtended;
571 }
align::Alignables DTBarrel()

◆ dtAlignments()

Alignments * AlignableMuon::dtAlignments ( void  )

Get DT alignments sorted by DetId.

Definition at line 559 of file AlignableMuon.cc.

References DTBarrel().

Referenced by MuonMisalignedProducer::analyze(), and MuonAlignment::saveDTtoDB().

559  {
560  // Retrieve muon barrel alignments
561  Alignments* tmpAlignments = this->DTBarrel().front()->alignments();
562 
563  return tmpAlignments;
564 }
align::Alignables DTBarrel()

◆ DTBarrel()

align::Alignables AlignableMuon::DTBarrel ( )

◆ DTChambers()

align::Alignables AlignableMuon::DTChambers ( )

Definition at line 380 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theDTChambers.

Referenced by AlignmentParameterSelector::addSelection(), DTLayers(), DTSuperLayers(), MuonAlignmentFromReference::initialize(), and MuonScenarioBuilder::moveDTSectors().

380  {
382  copy(theDTChambers.begin(), theDTChambers.end(), back_inserter(result));
383  return result;
384 }
std::vector< AlignableDTChamber * > theDTChambers
Containers of separate components.
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ DTLayers()

align::Alignables AlignableMuon::DTLayers ( )

Methods to return specific of components.

Definition at line 345 of file AlignableMuon.cc.

References chambers, DTChambers(), hgcalTBTopologyTester_cfi::layers, and mps_fire::result.

Referenced by AlignmentParameterSelector::addSelection().

345  {
347 
349  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
350  align::Alignables superlayers = (*chamberIter)->components();
351  for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end();
352  ++superlayerIter) {
353  align::Alignables layers = (*superlayerIter)->components();
354  for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
355  result.push_back(*layerIter);
356  }
357  }
358  }
359 
360  return result;
361 }
align::Alignables DTChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ DTStations()

align::Alignables AlignableMuon::DTStations ( )

Definition at line 387 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theDTStations.

Referenced by AlignmentParameterSelector::addSelection().

387  {
389  copy(theDTStations.begin(), theDTStations.end(), back_inserter(result));
390  return result;
391 }
std::vector< AlignableDTStation * > theDTStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ DTSuperLayers()

align::Alignables AlignableMuon::DTSuperLayers ( )

Definition at line 364 of file AlignableMuon.cc.

References chambers, DTChambers(), and mps_fire::result.

Referenced by AlignmentParameterSelector::addSelection().

364  {
366 
368  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
369  align::Alignables superlayers = (*chamberIter)->components();
370  for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end();
371  ++superlayerIter) {
372  result.push_back(*superlayerIter);
373  }
374  }
375 
376  return result;
377 }
align::Alignables DTChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ DTWheels()

align::Alignables AlignableMuon::DTWheels ( )

Definition at line 394 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theDTWheels.

Referenced by AlignmentParameterSelector::addSelection().

394  {
396  copy(theDTWheels.begin(), theDTWheels.end(), back_inserter(result));
397  return result;
398 }
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std::vector< AlignableDTWheel * > theDTWheels

◆ gemAlignmentErrorsExtended()

AlignmentErrorsExtended * AlignableMuon::gemAlignmentErrorsExtended ( void  )

Definition at line 613 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, GEMEndcaps(), AlignmentErrorsExtended::m_alignError, and jetUpdater_cfi::sort.

Referenced by MuonMisalignedProducer::analyze(), MuonAlignment::copyAlignmentToSurvey(), MuonAlignment::saveGEMtoDB(), and MuonAlignmentOutputXML::write().

613  {
614  // Retrieve muon endcaps alignment errors
615  AlignmentErrorsExtended* gemEndCap1Errors = this->GEMEndcaps().front()->alignmentErrors();
616  AlignmentErrorsExtended* gemEndCap2Errors = this->GEMEndcaps().back()->alignmentErrors();
617  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = new AlignmentErrorsExtended();
618 
619  std::copy(gemEndCap1Errors->m_alignError.begin(),
620  gemEndCap1Errors->m_alignError.end(),
621  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
622  std::copy(gemEndCap2Errors->m_alignError.begin(),
623  gemEndCap2Errors->m_alignError.end(),
624  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
625  std::sort(tmpAlignmentErrorsExtended->m_alignError.begin(), tmpAlignmentErrorsExtended->m_alignError.end());
626 
627  return tmpAlignmentErrorsExtended;
628 }
std::vector< AlignTransformErrorExtended > m_alignError
align::Alignables GEMEndcaps()

◆ gemAlignments()

Alignments * AlignableMuon::gemAlignments ( void  )

Definition at line 602 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, GEMEndcaps(), Alignments::m_align, and jetUpdater_cfi::sort.

Referenced by MuonMisalignedProducer::analyze(), and MuonAlignment::saveGEMtoDB().

602  {
603  Alignments* gemEndCap1 = this->GEMEndcaps().front()->alignments();
604  Alignments* gemEndCap2 = this->GEMEndcaps().back()->alignments();
605  Alignments* tmpAlignments = new Alignments();
606  std::copy(gemEndCap1->m_align.begin(), gemEndCap1->m_align.end(), back_inserter(tmpAlignments->m_align));
607  std::copy(gemEndCap2->m_align.begin(), gemEndCap2->m_align.end(), back_inserter(tmpAlignments->m_align));
608  std::sort(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end());
609 
610  return tmpAlignments;
611 }
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
align::Alignables GEMEndcaps()

◆ GEMChambers()

align::Alignables AlignableMuon::GEMChambers ( )

Definition at line 472 of file AlignableMuon.cc.

References chambers, GEMSuperChambers(), and mps_fire::result.

472  {
474  align::Alignables superChambers = GEMSuperChambers();
475  for (align::Alignables::const_iterator superChamberIter = superChambers.begin();
476  superChamberIter != superChambers.end();
477  ++superChamberIter) {
478  align::Alignables chambers = (*superChamberIter)->components();
479  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end();
480  ++chamberIter) {
481  result.push_back(*chamberIter);
482  }
483  }
484  return result;
485 }
align::Alignables GEMSuperChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ GEMEndcaps()

align::Alignables AlignableMuon::GEMEndcaps ( )

◆ GEMEtaPartitions()

align::Alignables AlignableMuon::GEMEtaPartitions ( )

Definition at line 451 of file AlignableMuon.cc.

References chambers, GEMSuperChambers(), and mps_fire::result.

451  {
453  align::Alignables superChambers = GEMSuperChambers();
454  for (align::Alignables::const_iterator superChamberIter = superChambers.begin();
455  superChamberIter != superChambers.end();
456  ++superChamberIter) {
457  align::Alignables chambers = (*superChamberIter)->components();
458  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end();
459  ++chamberIter) {
460  align::Alignables etaPartitions = (*chamberIter)->components();
461  for (align::Alignables::const_iterator etaPartitionIter = etaPartitions.begin();
462  etaPartitionIter != etaPartitions.end();
463  ++etaPartitionIter) {
464  result.push_back(*etaPartitionIter);
465  }
466  }
467  }
468  return result;
469 }
align::Alignables GEMSuperChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ GEMRings()

align::Alignables AlignableMuon::GEMRings ( )

Definition at line 495 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theGEMRings.

495  {
497  copy(theGEMRings.begin(), theGEMRings.end(), back_inserter(result));
498  return result;
499 }
std::vector< AlignableGEMRing * > theGEMRings
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ GEMStations()

align::Alignables AlignableMuon::GEMStations ( )

Definition at line 502 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theGEMStations.

502  {
504  copy(theGEMStations.begin(), theGEMStations.end(), back_inserter(result));
505  return result;
506 }
std::vector< AlignableGEMStation * > theGEMStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ GEMSuperChambers()

align::Alignables AlignableMuon::GEMSuperChambers ( )

Definition at line 488 of file AlignableMuon.cc.

References filterCSVwithJSON::copy, mps_fire::result, and theGEMSuperChambers.

Referenced by GEMChambers(), GEMEtaPartitions(), and MuonScenarioBuilder::moveGEMSectors().

488  {
490  copy(theGEMSuperChambers.begin(), theGEMSuperChambers.end(), back_inserter(result));
491  return result;
492 }
std::vector< AlignableGEMSuperChamber * > theGEMSuperChambers
std::vector< Alignable * > Alignables
Definition: Utilities.h:31

◆ mother()

virtual Alignable* AlignableMuon::mother ( )
inlinevirtual

Alignable tracker has no mother.

Definition at line 54 of file AlignableMuon.h.

54 { return nullptr; }

◆ objectIdProvider()

const AlignableObjectId& AlignableMuon::objectIdProvider ( ) const
inline

Return muon alignable object ID provider derived from the muon system geometry.

Definition at line 92 of file AlignableMuon.h.

References alignableObjectId_.

Referenced by MuonAlignmentInputXML::newAlignableMuon(), and MuonAlignmentOutputXML::write().

92 { return alignableObjectId_; }
const AlignableObjectId alignableObjectId_
alignable object ID provider

◆ recursiveSetMothers()

void AlignableMuon::recursiveSetMothers ( Alignable alignable)
private

Set mothers recursively.

Definition at line 516 of file AlignableMuon.cc.

References Alignable::components().

Referenced by AlignableMuon().

516  {
517  for (const auto& iter : alignable->components()) {
518  iter->setMother(alignable);
519  recursiveSetMothers(iter);
520  }
521 }
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
virtual const Alignables & components() const =0
Return vector of all direct components.

◆ update()

void AlignableMuon::update ( const DTGeometry dtGeometry,
const CSCGeometry cscGeometry,
const GEMGeometry gemGeometry 
)

Updater using DTGeometry and CSCGeometry. The given geometries have to match the current ones.

Definition at line 69 of file AlignableMuon.cc.

References buildCSCEndcap(), buildDTBarrel(), buildGEMEndcap(), doGEM_, and gemGeometry_cff::gemGeometry.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), buildCSCEndcap(), buildDTBarrel(), buildGEMEndcap(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), and MatrixUtil.Steps::overwrite().

71  {
72  // update the muon barrel
73  buildDTBarrel(dtGeometry, /* update = */ true);
74 
75  // update the muon end caps
76  buildCSCEndcap(cscGeometry, /* update = */ true);
77  if (gemGeometry) {
78  doGEM_ = true;
79  buildGEMEndcap(gemGeometry, /* update = */ true);
80  }
81  edm::LogInfo("Alignment") << "@SUB=AlignableMuon::update"
82  << "Updating alignable muon objects DONE";
83 }
void buildGEMEndcap(const GEMGeometry *, bool update=false)
Log< level::Info, false > LogInfo
void buildCSCEndcap(const CSCGeometry *, bool update=false)
Build muon end caps.
void buildDTBarrel(const DTGeometry *, bool update=false)
Build muon barrel.

Member Data Documentation

◆ alignableObjectId_

const AlignableObjectId AlignableMuon::alignableObjectId_
private

alignable object ID provider

Definition at line 126 of file AlignableMuon.h.

Referenced by objectIdProvider().

◆ doGEM_

bool AlignableMuon::doGEM_
private

Definition at line 128 of file AlignableMuon.h.

Referenced by AlignableMuon(), doGEM(), and update().

◆ theCSCChambers

std::vector<AlignableCSCChamber*> AlignableMuon::theCSCChambers
private

Definition at line 135 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCChambers().

◆ theCSCEndcaps

std::vector<AlignableCSCEndcap*> AlignableMuon::theCSCEndcaps
private

Definition at line 138 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCEndcaps().

◆ theCSCRings

std::vector<AlignableCSCRing*> AlignableMuon::theCSCRings
private

Definition at line 137 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCRings().

◆ theCSCStations

std::vector<AlignableCSCStation*> AlignableMuon::theCSCStations
private

Definition at line 136 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCStations().

◆ theDTBarrel

std::vector<AlignableDTBarrel*> AlignableMuon::theDTBarrel
private

Definition at line 133 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTBarrel().

◆ theDTChambers

std::vector<AlignableDTChamber*> AlignableMuon::theDTChambers
private

Containers of separate components.

Definition at line 130 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTChambers().

◆ theDTStations

std::vector<AlignableDTStation*> AlignableMuon::theDTStations
private

Definition at line 131 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTStations().

◆ theDTWheels

std::vector<AlignableDTWheel*> AlignableMuon::theDTWheels
private

Definition at line 132 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTWheels().

◆ theGEMEndcaps

std::vector<AlignableGEMEndcap*> AlignableMuon::theGEMEndcaps
private

Definition at line 143 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMEndcaps().

◆ theGEMRings

std::vector<AlignableGEMRing*> AlignableMuon::theGEMRings
private

Definition at line 142 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMRings().

◆ theGEMStations

std::vector<AlignableGEMStation*> AlignableMuon::theGEMStations
private

Definition at line 141 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMStations().

◆ theGEMSuperChambers

std::vector<AlignableGEMSuperChamber*> AlignableMuon::theGEMSuperChambers
private

Definition at line 140 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMSuperChambers().

◆ theMuonComponents

align::Alignables AlignableMuon::theMuonComponents
private

Definition at line 145 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), buildDTBarrel(), components(), and ~AlignableMuon().