CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 ()
 
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 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...
 
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
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 ( 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(), recursiveSetMothers(), and Alignable::theId.

39  : AlignableComposite(0, align::AlignableMuon), // cannot yet set id, use 0
40  alignableObjectId_(nullptr, dtGeometry, cscGeometry, gemGeometry) {
41  // Build the muon barrel
42  buildDTBarrel(dtGeometry);
43 
44  // Build the muon end caps
45  buildCSCEndcap(cscGeometry);
46  buildGEMEndcap(gemGeometry);
47 
48  // Set links to mothers recursively
49  recursiveSetMothers(this);
50 
51  // now can set id as for all composites: id of first component
52  theId = this->components()[0]->id();
53 
54  edm::LogInfo("AlignableMuon") << "Constructing alignable muon objects DONE";
55 }
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 ( )
override

Destructor.

Definition at line 58 of file AlignableMuon.cc.

References theMuonComponents.

58  {
59  for (align::Alignables::iterator iter = theMuonComponents.begin(); iter != theMuonComponents.end(); iter++) {
60  delete *iter;
61  }
62 }
align::Alignables theMuonComponents

Member Function Documentation

AlignmentErrorsExtended * AlignableMuon::alignmentErrors ( void  ) const
overrideprivatevirtual

Get alignment errors sorted by DetId.

Reimplemented from AlignableComposite.

Definition at line 535 of file AlignableMuon.cc.

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

535  {
537  AlignmentErrorsExtended* m_alignmentErrors = new AlignmentErrorsExtended();
538 
539  // Add components recursively
540  for (align::Alignables::iterator i = comp.begin(); i != comp.end(); i++) {
541  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = (*i)->alignmentErrors();
542  std::copy(tmpAlignmentErrorsExtended->m_alignError.begin(),
543  tmpAlignmentErrorsExtended->m_alignError.end(),
544  std::back_inserter(m_alignmentErrors->m_alignError));
545  delete tmpAlignmentErrorsExtended;
546  }
547 
548  // sort by rawId
549  std::sort(m_alignmentErrors->m_alignError.begin(), m_alignmentErrors->m_alignError.end());
550 
551  return m_alignmentErrors;
552 }
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 * AlignableMuon::alignments ( void  ) const
overrideprivatevirtual

Get alignments sorted by DetId.

Reimplemented from AlignableComposite.

Definition at line 519 of file AlignableMuon.cc.

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

519  {
521  Alignments* m_alignments = new Alignments();
522  // Add components recursively
523  for (align::Alignables::iterator i = comp.begin(); i != comp.end(); i++) {
524  Alignments* tmpAlignments = (*i)->alignments();
525  std::copy(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end(), std::back_inserter(m_alignments->m_align));
526  delete tmpAlignments;
527  }
528 
529  // sort by rawId
530  std::sort(m_alignments->m_align.begin(), m_alignments->m_align.end());
531 
532  return m_alignments;
533 }
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
void AlignableMuon::buildCSCEndcap ( const CSCGeometry pCSC,
bool  update = false 
)
private

Build muon end caps.

Definition at line 170 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, and theMuonComponents.

Referenced by AlignableMuon(), and update().

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

Build muon barrel.

Definition at line 80 of file AlignableMuon.cc.

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

Referenced by AlignableMuon(), and update().

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

Definition at line 283 of file AlignableMuon.cc.

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

Referenced by AlignableMuon(), and update().

283  {
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;
288 
289  for (int ist = 0; ist < 3; ist++) {
290  if (ist == 0)
291  continue; //Run3 GEM dosen't have ME0
292  if (ist == 2)
293  continue; //Run3 GEM dosen't have GE2/1
294  std::vector<AlignableGEMSuperChamber*> tmpGEMSuperChambersInRing;
295  int iri = 1;
296  int iChamber{0};
297  auto vc = pGEM->superChambers();
298  for (const auto& det : vc) {
299  GEMDetId gemId = det->id();
300  int ec = gemId.region();
301  int st = gemId.station();
302  int ri = gemId.ring();
303 
304  if (iec == ec && ist == st && iri == ri) {
305  if (update) {
306  theGEMEndcaps[iec == -1 ? 0 : 1]->station(ist - 1).ring(iri - 1).superChamber(iChamber).update(det);
307  } else {
308  AlignableGEMSuperChamber* tmpGEMSuperChamber = new AlignableGEMSuperChamber(det);
309  tmpGEMSuperChambersInRing.push_back(tmpGEMSuperChamber);
310  }
311  ++iChamber;
312  }
313  }
314  if (!update) {
315  if (!tmpGEMSuperChambersInRing.empty()) {
316  theGEMSuperChambers.insert(
317  theGEMSuperChambers.end(), tmpGEMSuperChambersInRing.begin(), tmpGEMSuperChambersInRing.end());
318  AlignableGEMRing* tmpGEMRing = new AlignableGEMRing(tmpGEMSuperChambersInRing);
319  tmpGEMRingsInStation.push_back(tmpGEMRing);
320  tmpGEMSuperChambersInRing.clear();
321  }
322  }
323  if (!update) {
324  AlignableGEMStation* tmpGEMStation = new AlignableGEMStation(tmpGEMRingsInStation);
325  theGEMRings.insert(theGEMRings.end(), tmpGEMRingsInStation.begin(), tmpGEMRingsInStation.end());
326  tmpGEMStationsInEndcap.push_back(tmpGEMStation);
327  tmpGEMRingsInStation.clear();
328  }
329  }
330  if (!update) {
331  AlignableGEMEndcap* tmpEndcap = new AlignableGEMEndcap(tmpGEMStationsInEndcap);
332  theGEMStations.insert(theGEMStations.end(), tmpGEMStationsInEndcap.begin(), tmpGEMStationsInEndcap.end());
333  theGEMEndcaps.push_back(tmpEndcap);
334  tmpGEMStationsInEndcap.clear();
335  }
336  }
337 }
std::vector< AlignableGEMRing * > theGEMRings
std::vector< AlignableGEMEndcap * > theGEMEndcaps
std::vector< AlignableGEMStation * > theGEMStations
constexpr int region() const
Definition: GEMDetId.h:171
std::vector< AlignableGEMSuperChamber * > theGEMSuperChambers
const std::vector< const GEMSuperChamber * > & superChambers() const
Return a vector of all GEM super chambers.
Definition: GEMGeometry.cc:36
constexpr int ring() const
Definition: GEMDetId.h:176
constexpr int station() const
Definition: GEMDetId.h:179
void update(const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
#define LogDebug(id)
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
RotationType AlignableMuon::computeOrientation ( )
private

Get the global orientation (no rotation by default)

PositionType AlignableMuon::computePosition ( )
private

Get the position (centered at 0 by default)

AlignableSurface AlignableMuon::computeSurface ( )
private

Get the Surface.

AlignmentErrorsExtended * AlignableMuon::cscAlignmentErrorsExtended ( void  )

Get CSC alignment errors sorted by DetId.

Definition at line 580 of file AlignableMuon.cc.

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

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

580  {
581  // Retrieve muon endcaps alignment errors
582  AlignmentErrorsExtended* cscEndCap1Errors = this->CSCEndcaps().front()->alignmentErrors();
583  AlignmentErrorsExtended* cscEndCap2Errors = this->CSCEndcaps().back()->alignmentErrors();
584  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = new AlignmentErrorsExtended();
585 
586  std::copy(cscEndCap1Errors->m_alignError.begin(),
587  cscEndCap1Errors->m_alignError.end(),
588  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
589  std::copy(cscEndCap2Errors->m_alignError.begin(),
590  cscEndCap2Errors->m_alignError.end(),
591  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
592 
593  return tmpAlignmentErrorsExtended;
594 }
align::Alignables CSCEndcaps()
std::vector< AlignTransformErrorExtended > m_alignError
Alignments * AlignableMuon::cscAlignments ( void  )

Get CSC alignments sorted by DetId.

Definition at line 568 of file AlignableMuon.cc.

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

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

568  {
569  // Retrieve muon endcaps alignments
570  Alignments* cscEndCap1 = this->CSCEndcaps().front()->alignments();
571  Alignments* cscEndCap2 = this->CSCEndcaps().back()->alignments();
572  Alignments* tmpAlignments = new Alignments();
573 
574  std::copy(cscEndCap1->m_align.begin(), cscEndCap1->m_align.end(), back_inserter(tmpAlignments->m_align));
575  std::copy(cscEndCap2->m_align.begin(), cscEndCap2->m_align.end(), back_inserter(tmpAlignments->m_align));
576 
577  return tmpAlignments;
578 }
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
align::Alignables CSCEndcaps()
align::Alignables AlignableMuon::CSCChambers ( )

Definition at line 418 of file AlignableMuon.cc.

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

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

418  {
420  copy(theCSCChambers.begin(), theCSCChambers.end(), back_inserter(result));
421  return result;
422 }
tuple result
Definition: mps_fire.py:311
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std::vector< AlignableCSCChamber * > theCSCChambers
align::Alignables AlignableMuon::CSCEndcaps ( )
align::Alignables AlignableMuon::CSCLayers ( )

Definition at line 403 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

403  {
405 
407  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
408  align::Alignables layers = (*chamberIter)->components();
409  for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
410  result.push_back(*layerIter);
411  }
412  }
413 
414  return result;
415 }
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
align::Alignables CSCChambers()
tuple result
Definition: mps_fire.py:311
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::CSCRings ( )

Definition at line 425 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

425  {
427  copy(theCSCRings.begin(), theCSCRings.end(), back_inserter(result));
428  return result;
429 }
tuple result
Definition: mps_fire.py:311
std::vector< AlignableCSCRing * > theCSCRings
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
align::Alignables AlignableMuon::CSCStations ( )

Definition at line 432 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

432  {
434  copy(theCSCStations.begin(), theCSCStations.end(), back_inserter(result));
435  return result;
436 }
tuple result
Definition: mps_fire.py:311
std::vector< AlignableCSCStation * > theCSCStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
AlignmentErrorsExtended * AlignableMuon::dtAlignmentErrorsExtended ( void  )

Get DT alignment errors sorted by DetId.

Definition at line 561 of file AlignableMuon.cc.

References DTBarrel().

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

561  {
562  // Retrieve muon barrel alignment errors
563  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = this->DTBarrel().front()->alignmentErrors();
564 
565  return tmpAlignmentErrorsExtended;
566 }
align::Alignables DTBarrel()
Alignments * AlignableMuon::dtAlignments ( void  )

Get DT alignments sorted by DetId.

Definition at line 554 of file AlignableMuon.cc.

References DTBarrel().

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

554  {
555  // Retrieve muon barrel alignments
556  Alignments* tmpAlignments = this->DTBarrel().front()->alignments();
557 
558  return tmpAlignments;
559 }
align::Alignables DTBarrel()
align::Alignables AlignableMuon::DTBarrel ( )
align::Alignables AlignableMuon::DTChambers ( )

Definition at line 375 of file AlignableMuon.cc.

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

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

375  {
377  copy(theDTChambers.begin(), theDTChambers.end(), back_inserter(result));
378  return result;
379 }
tuple result
Definition: mps_fire.py:311
std::vector< AlignableDTChamber * > theDTChambers
Containers of separate components.
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
align::Alignables AlignableMuon::DTLayers ( )

Methods to return specific of components.

Definition at line 340 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

340  {
342 
344  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
345  align::Alignables superlayers = (*chamberIter)->components();
346  for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end();
347  ++superlayerIter) {
348  align::Alignables layers = (*superlayerIter)->components();
349  for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
350  result.push_back(*layerIter);
351  }
352  }
353  }
354 
355  return result;
356 }
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
tuple result
Definition: mps_fire.py:311
align::Alignables DTChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::DTStations ( )

Definition at line 382 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

382  {
384  copy(theDTStations.begin(), theDTStations.end(), back_inserter(result));
385  return result;
386 }
tuple result
Definition: mps_fire.py:311
std::vector< AlignableDTStation * > theDTStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
align::Alignables AlignableMuon::DTSuperLayers ( )

Definition at line 359 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

359  {
361 
363  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
364  align::Alignables superlayers = (*chamberIter)->components();
365  for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end();
366  ++superlayerIter) {
367  result.push_back(*superlayerIter);
368  }
369  }
370 
371  return result;
372 }
tuple result
Definition: mps_fire.py:311
align::Alignables DTChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::DTWheels ( )

Definition at line 389 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

389  {
391  copy(theDTWheels.begin(), theDTWheels.end(), back_inserter(result));
392  return result;
393 }
tuple result
Definition: mps_fire.py:311
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std::vector< AlignableDTWheel * > theDTWheels
AlignmentErrorsExtended * AlignableMuon::gemAlignmentErrorsExtended ( void  )

Definition at line 608 of file AlignableMuon.cc.

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

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

608  {
609  // Retrieve muon endcaps alignment errors
610  AlignmentErrorsExtended* gemEndCap1Errors = this->GEMEndcaps().front()->alignmentErrors();
611  AlignmentErrorsExtended* gemEndCap2Errors = this->GEMEndcaps().back()->alignmentErrors();
612  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = new AlignmentErrorsExtended();
613 
614  std::copy(gemEndCap1Errors->m_alignError.begin(),
615  gemEndCap1Errors->m_alignError.end(),
616  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
617  std::copy(gemEndCap2Errors->m_alignError.begin(),
618  gemEndCap2Errors->m_alignError.end(),
619  back_inserter(tmpAlignmentErrorsExtended->m_alignError));
620  std::sort(tmpAlignmentErrorsExtended->m_alignError.begin(), tmpAlignmentErrorsExtended->m_alignError.end());
621 
622  return tmpAlignmentErrorsExtended;
623 }
std::vector< AlignTransformErrorExtended > m_alignError
align::Alignables GEMEndcaps()
Alignments * AlignableMuon::gemAlignments ( void  )

Definition at line 597 of file AlignableMuon.cc.

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

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

597  {
598  Alignments* gemEndCap1 = this->GEMEndcaps().front()->alignments();
599  Alignments* gemEndCap2 = this->GEMEndcaps().back()->alignments();
600  Alignments* tmpAlignments = new Alignments();
601  std::copy(gemEndCap1->m_align.begin(), gemEndCap1->m_align.end(), back_inserter(tmpAlignments->m_align));
602  std::copy(gemEndCap2->m_align.begin(), gemEndCap2->m_align.end(), back_inserter(tmpAlignments->m_align));
603  std::sort(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end());
604 
605  return tmpAlignments;
606 }
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
align::Alignables GEMEndcaps()
align::Alignables AlignableMuon::GEMChambers ( )

Definition at line 467 of file AlignableMuon.cc.

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

467  {
469  align::Alignables superChambers = GEMSuperChambers();
470  for (align::Alignables::const_iterator superChamberIter = superChambers.begin();
471  superChamberIter != superChambers.end();
472  ++superChamberIter) {
473  align::Alignables chambers = (*superChamberIter)->components();
474  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end();
475  ++chamberIter) {
476  result.push_back(*chamberIter);
477  }
478  }
479  return result;
480 }
tuple result
Definition: mps_fire.py:311
align::Alignables GEMSuperChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::GEMEndcaps ( )
align::Alignables AlignableMuon::GEMEtaPartitions ( )

Definition at line 446 of file AlignableMuon.cc.

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

446  {
448  align::Alignables superChambers = GEMSuperChambers();
449  for (align::Alignables::const_iterator superChamberIter = superChambers.begin();
450  superChamberIter != superChambers.end();
451  ++superChamberIter) {
452  align::Alignables chambers = (*superChamberIter)->components();
453  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end();
454  ++chamberIter) {
455  align::Alignables etaPartitions = (*chamberIter)->components();
456  for (align::Alignables::const_iterator etaPartitionIter = etaPartitions.begin();
457  etaPartitionIter != etaPartitions.end();
458  ++etaPartitionIter) {
459  result.push_back(*etaPartitionIter);
460  }
461  }
462  }
463  return result;
464 }
tuple result
Definition: mps_fire.py:311
align::Alignables GEMSuperChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::GEMRings ( )

Definition at line 490 of file AlignableMuon.cc.

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

490  {
492  copy(theGEMRings.begin(), theGEMRings.end(), back_inserter(result));
493  return result;
494 }
std::vector< AlignableGEMRing * > theGEMRings
tuple result
Definition: mps_fire.py:311
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
align::Alignables AlignableMuon::GEMStations ( )

Definition at line 497 of file AlignableMuon.cc.

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

497  {
499  copy(theGEMStations.begin(), theGEMStations.end(), back_inserter(result));
500  return result;
501 }
tuple result
Definition: mps_fire.py:311
std::vector< AlignableGEMStation * > theGEMStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
align::Alignables AlignableMuon::GEMSuperChambers ( )

Definition at line 483 of file AlignableMuon.cc.

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

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

483  {
485  copy(theGEMSuperChambers.begin(), theGEMSuperChambers.end(), back_inserter(result));
486  return result;
487 }
tuple result
Definition: mps_fire.py:311
std::vector< AlignableGEMSuperChamber * > theGEMSuperChambers
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
virtual Alignable* AlignableMuon::mother ( )
inlinevirtual

Alignable tracker has no mother.

Definition at line 54 of file AlignableMuon.h.

54 { return nullptr; }
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
void AlignableMuon::recursiveSetMothers ( Alignable alignable)
private

Set mothers recursively.

Definition at line 511 of file AlignableMuon.cc.

References Alignable::components().

Referenced by AlignableMuon().

511  {
512  for (const auto& iter : alignable->components()) {
513  iter->setMother(alignable);
514  recursiveSetMothers(iter);
515  }
516 }
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
virtual const Alignables & components() const =0
Return vector of all direct components.
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 65 of file AlignableMuon.cc.

References buildCSCEndcap(), buildDTBarrel(), and buildGEMEndcap().

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

67  {
68  // update the muon barrel
69  buildDTBarrel(dtGeometry, /* update = */ true);
70 
71  // update the muon end caps
72  buildCSCEndcap(cscGeometry, /* update = */ true);
73  buildGEMEndcap(gemGeometry, /* update = */ true);
74 
75  edm::LogInfo("Alignment") << "@SUB=AlignableMuon::update"
76  << "Updating alignable muon objects DONE";
77 }
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

const AlignableObjectId AlignableMuon::alignableObjectId_
private

alignable object ID provider

Definition at line 124 of file AlignableMuon.h.

Referenced by objectIdProvider().

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

Definition at line 132 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCChambers().

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

Definition at line 135 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCEndcaps().

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

Definition at line 134 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCRings().

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

Definition at line 133 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCStations().

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

Definition at line 130 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTBarrel().

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

Containers of separate components.

Definition at line 127 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTChambers().

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

Definition at line 128 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTStations().

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

Definition at line 129 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTWheels().

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

Definition at line 140 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMEndcaps().

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

Definition at line 139 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMRings().

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

Definition at line 138 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMStations().

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

Definition at line 137 of file AlignableMuon.h.

Referenced by buildGEMEndcap(), and GEMSuperChambers().

align::Alignables AlignableMuon::theMuonComponents
private

Definition at line 142 of file AlignableMuon.h.

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