CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 *)
 Constructor from geometries. More...
 
virtual align::Alignables components () const
 Return all components. More...
 
AlignmentErrorsExtendedcscAlignmentErrorsExtended ()
 
AlignmentscscAlignments ()
 
align::Alignables CSCChambers ()
 
align::Alignables CSCEndcaps ()
 
align::Alignables CSCLayers ()
 
align::Alignables CSCRings ()
 
align::Alignables CSCStations ()
 
AlignmentErrorsExtendeddtAlignmentErrorsExtended ()
 
AlignmentsdtAlignments ()
 
align::Alignables DTBarrel ()
 
align::Alignables DTChambers ()
 
align::Alignables DTLayers ()
 
align::Alignables DTStations ()
 
align::Alignables DTSuperLayers ()
 
align::Alignables DTWheels ()
 
virtual Alignablemother ()
 Alignable tracker has no mother. More...
 
const AlignableObjectIdobjectIdProvider () const
 Return muon alignable object ID provider derived from the muon system geometry. More...
 
 ~AlignableMuon ()
 Destructor. More...
 
- Public Member Functions inherited from AlignableComposite
virtual void addAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown)
 
virtual void addAlignmentPositionErrorFromLocalRotation (const RotationType &rotation, bool propagateDown)
 
virtual void addAlignmentPositionErrorFromRotation (const RotationType &rotation, bool propagateDown)
 
virtual void addComponent (Alignable *component)
 
virtual void addSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown)
 
 AlignableComposite (align::ID id, StructureType aType, const RotationType &rot=RotationType())
 
virtual StructureType alignableObjectId () const
 Return the alignable type identifier. More...
 
virtual void dump () const
 Recursive printout of alignable structure. More...
 
virtual void move (const GlobalVector &displacement)
 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...
 
virtual void recursiveComponents (Alignables &result) const
 Provide all components, subcomponents etc. (cf. description in base class) More...
 
virtual void rotateInGlobalFrame (const RotationType &rotation)
 Rotation interpreted in global reference frame. More...
 
virtual void setAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown)
 
virtual void setSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown)
 Set the surface deformation parameters - if (!propagateDown) do not affect daughters. More...
 
virtual int surfaceDeformationIdPairs (std::vector< std::pair< int, SurfaceDeformation * > > &) const
 Return surface deformations. More...
 
virtual ~AlignableComposite ()
 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...
 
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 restoreCachedTransformation ()
 restore the previously cached transformation, also for possible components More...
 
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...
 
virtual ~Alignable ()
 Destructor. More...
 

Private Member Functions

AlignmentErrorsExtendedalignmentErrors () const
 Return vector of alignment errors. More...
 
Alignmentsalignments () const
 Return alignment data. More...
 
void buildCSCEndcap (const CSCGeometry *)
 
void buildDTBarrel (const DTGeometry *)
 
RotationType computeOrientation ()
 
PositionType computePosition ()
 
AlignableSurface computeSurface ()
 
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
 
std::vector< AlignableDTStation * > theDTStations
 
std::vector< AlignableDTWheel * > theDTWheels
 
align::Alignables theMuonComponents
 

Additional Inherited Members

- Public Types inherited from Alignable
typedef align::Alignables Alignables
 
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 Member Functions inherited from AlignableComposite
 AlignableComposite (const GeomDet *geomDet)
 Constructor from GeomDet, only for use in AlignableDet. More...
 
void setSurface (const AlignableSurface &s)
 
- Protected Member Functions inherited from Alignable
void addDisplacement (const GlobalVector &displacement)
 
void addRotation (const RotationType &rotation)
 
- Protected Attributes inherited from AlignableComposite
StructureType theStructureType
 
- Protected Attributes inherited from Alignable
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 37 of file AlignableMuon.h.

Constructor & Destructor Documentation

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

Constructor from geometries.

Definition at line 31 of file AlignableMuon.cc.

References buildCSCEndcap(), buildDTBarrel(), components(), recursiveSetMothers(), and Alignable::theId.

32  : AlignableComposite(0, align::AlignableMuon), // cannot yet set id, use 0
33  alignableObjectId_(nullptr, dtGeometry, cscGeometry)
34 {
35 
36  // Build the muon barrel
37  buildDTBarrel( dtGeometry );
38 
39  // Build the muon end caps
40  buildCSCEndcap( cscGeometry );
41 
42  // Set links to mothers recursively
43  recursiveSetMothers( this );
44 
45  // now can set id as for all composites: id of first component
46  theId = this->components()[0]->id();
47 
48  edm::LogInfo("AlignableMuon") << "Constructing alignable muon objects DONE";
49 
50 
51 }
AlignableComposite()
default constructor hidden
const AlignableObjectId alignableObjectId_
alignable object ID provider
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
virtual align::Alignables components() const
Return all components.
Definition: AlignableMuon.h:50
void buildDTBarrel(const DTGeometry *)
align::ID theId
Definition: Alignable.h:225
void buildCSCEndcap(const CSCGeometry *)
AlignableMuon::~AlignableMuon ( )

Destructor.

Definition at line 54 of file AlignableMuon.cc.

References theMuonComponents.

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

Member Function Documentation

AlignmentErrorsExtended * AlignableMuon::alignmentErrors ( void  ) const
privatevirtual

Return vector of alignment errors.

Reimplemented from AlignableComposite.

Definition at line 421 of file AlignableMuon.cc.

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

422 {
423 
425  AlignmentErrorsExtended* m_alignmentErrors = new AlignmentErrorsExtended();
426 
427  // Add components recursively
428  for ( align::Alignables::iterator i=comp.begin(); i!=comp.end(); i++ )
429  {
430  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = (*i)->alignmentErrors();
431  std::copy( tmpAlignmentErrorsExtended->m_alignError.begin(), tmpAlignmentErrorsExtended->m_alignError.end(),
432  std::back_inserter(m_alignmentErrors->m_alignError) );
433  delete tmpAlignmentErrorsExtended;
434  }
435 
436  std::sort( m_alignmentErrors->m_alignError.begin(), m_alignmentErrors->m_alignError.end(),
438 
439  return m_alignmentErrors;
440 
441 }
int i
Definition: DBlmapReader.cc:9
virtual align::Alignables components() const
Return all components.
Definition: AlignableMuon.h:50
std::vector< AlignTransformErrorExtended > m_alignError
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
Alignments * AlignableMuon::alignments ( void  ) const
privatevirtual

Return alignment data.

Reimplemented from AlignableComposite.

Definition at line 400 of file AlignableMuon.cc.

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

401 {
402 
404  Alignments* m_alignments = new Alignments();
405  // Add components recursively
406  for ( align::Alignables::iterator i=comp.begin(); i!=comp.end(); i++ )
407  {
408  Alignments* tmpAlignments = (*i)->alignments();
409  std::copy( tmpAlignments->m_align.begin(), tmpAlignments->m_align.end(),
410  std::back_inserter(m_alignments->m_align) );
411  delete tmpAlignments;
412  }
413 
414  std::sort( m_alignments->m_align.begin(), m_alignments->m_align.end(),
416 
417  return m_alignments;
418 
419 }
int i
Definition: DBlmapReader.cc:9
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
virtual align::Alignables components() const
Return all components.
Definition: AlignableMuon.h:50
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
void AlignableMuon::buildCSCEndcap ( const CSCGeometry pCSC)
private

Definition at line 161 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().

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

Definition at line 67 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().

68 {
69 
70  LogDebug("Position") << "Constructing AlignableDTBarrel";
71 
72  // Temporary container for chambers in a given station and stations in a given wheel
73  std::vector<AlignableDTChamber*> tmpDTChambersInStation;
74  std::vector<AlignableDTStation*> tmpDTStationsInWheel;
75 
76 
77  // Loop over wheels ( -2..2 )
78  for( int iwh = -2 ; iwh < 3 ; iwh++ ){
79 
80  // Loop over stations ( 1..4 )
81  for( int ist = 1 ; ist < 5 ; ist++ ){
82 
83  // Loop over geom DT Chambers
84  std::vector<const GeomDet*> theSLs;
85  for(auto det = pDT->chambers().begin();
86  det != pDT->chambers().end(); ++det ){
87  // Get the chamber ID
88  DTChamberId chamberId = (*det)->id();
89 
90  // Get wheel,station and sector of the chamber
91  int wh = chamberId.wheel();
92  int st = chamberId.station();
93  //int se = chamberId.sector();
94 
95  // Select the chambers in a given wheel in a given station
96  if ( iwh == wh && ist == st ){
97 
98  // Create the alignable DT chamber
99  AlignableDTChamber* tmpDTChamber = new AlignableDTChamber( *det );
100 
101  // Store the DT chambers in a given DT Station and Wheel
102  tmpDTChambersInStation.push_back( tmpDTChamber );
103 
104  // End chamber selection
105  }
106 
107  // End loop over chambers
108  }
109 
110  // Store the DT chambers
111  theDTChambers.insert( theDTChambers.end(), tmpDTChambersInStation.begin(),
112  tmpDTChambersInStation.end() );
113 
114  // Create the alignable DT station with chambers in a given station and wheel
115  AlignableDTStation* tmpDTStation = new AlignableDTStation( tmpDTChambersInStation );
116 
117  // Store the DT stations in a given wheel
118  tmpDTStationsInWheel.push_back( tmpDTStation );
119 
120  // Clear the temporary vector of chambers in a station
121  tmpDTChambersInStation.clear();
122 
123  // End loop over stations
124  }
125 
126  // Store The DT stations
127  theDTStations.insert( theDTStations.end(), tmpDTStationsInWheel.begin(),
128  tmpDTStationsInWheel.end() );
129 
130  // Create the alignable DT wheel
131  AlignableDTWheel* tmpWheel = new AlignableDTWheel( tmpDTStationsInWheel );
132 
133 
134  // Store the DT wheels
135  theDTWheels.push_back( tmpWheel );
136 
137  // Clear temporary vector of stations in a wheel
138  tmpDTStationsInWheel.clear();
139 
140 
141  // End loop over wheels
142  }
143 
144  // Create the alignable Muon Barrel
145  AlignableDTBarrel* tmpDTBarrel = new AlignableDTBarrel( theDTWheels );
146 
147  // Store the barrel
148  theDTBarrel.push_back( tmpDTBarrel );
149 
150  // Store the barrel in the muon
151  theMuonComponents.push_back( tmpDTBarrel );
152 
153 
154 }
#define LogDebug(id)
A muon DT Chamber( an AlignableDet )
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:85
align::Alignables theMuonComponents
std::vector< AlignableDTStation * > theDTStations
std::vector< AlignableDTChamber * > theDTChambers
std::vector< AlignableDTBarrel * > theDTBarrel
std::vector< AlignableDTWheel * > theDTWheels
int station() const
Return the station number.
Definition: DTChamberId.h:51
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:45
virtual align::Alignables AlignableMuon::components ( ) const
inlinevirtual

Return all components.

Reimplemented from AlignableComposite.

Definition at line 50 of file AlignableMuon.h.

References theMuonComponents.

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

50 { return theMuonComponents; }
align::Alignables theMuonComponents
RotationType AlignableMuon::computeOrientation ( )
private
PositionType AlignableMuon::computePosition ( )
private
AlignableSurface AlignableMuon::computeSurface ( )
private
AlignmentErrorsExtended * AlignableMuon::cscAlignmentErrorsExtended ( void  )

Definition at line 476 of file AlignableMuon.cc.

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

Referenced by MuonAlignment::copyAlignmentToSurvey(), MisalignedMuonESProducer::produce(), MuonAlignment::saveCSCtoDB(), AlignmentProducer::startingNewLoop(), MuonAlignmentOutputXML::write(), and AlignmentProducer::writeForRunRange().

477 {
478 
479  // Retrieve muon endcaps alignment errors
480  AlignmentErrorsExtended* cscEndCap1Errors = this->CSCEndcaps().front()->alignmentErrors();
481  AlignmentErrorsExtended* cscEndCap2Errors = this->CSCEndcaps().back()->alignmentErrors();
482  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = new AlignmentErrorsExtended();
483 
484  std::copy(cscEndCap1Errors->m_alignError.begin(), cscEndCap1Errors->m_alignError.end(), back_inserter(tmpAlignmentErrorsExtended->m_alignError) );
485  std::copy(cscEndCap2Errors->m_alignError.begin(), cscEndCap2Errors->m_alignError.end(), back_inserter(tmpAlignmentErrorsExtended->m_alignError) );
486 
487  return tmpAlignmentErrorsExtended;
488 
489 }
align::Alignables CSCEndcaps()
std::vector< AlignTransformErrorExtended > m_alignError
Alignments * AlignableMuon::cscAlignments ( void  )

Definition at line 461 of file AlignableMuon.cc.

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

Referenced by MisalignedMuonESProducer::produce(), MuonAlignment::saveCSCtoDB(), AlignmentProducer::startingNewLoop(), and AlignmentProducer::writeForRunRange().

462 {
463 
464  // Retrieve muon endcaps alignments
465  Alignments* cscEndCap1 = this->CSCEndcaps().front()->alignments();
466  Alignments* cscEndCap2 = this->CSCEndcaps().back()->alignments();
467  Alignments* tmpAlignments = new Alignments();
468 
469  std::copy( cscEndCap1->m_align.begin(), cscEndCap1->m_align.end(), back_inserter( tmpAlignments->m_align ) );
470  std::copy( cscEndCap2->m_align.begin(), cscEndCap2->m_align.end(), back_inserter( tmpAlignments->m_align ) );
471 
472  return tmpAlignments;
473 
474 }
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
align::Alignables CSCEndcaps()
align::Alignables AlignableMuon::CSCChambers ( )
align::Alignables AlignableMuon::CSCEndcaps ( )
align::Alignables AlignableMuon::CSCLayers ( )

Definition at line 338 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

339 {
341 
343  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
344  align::Alignables layers = (*chamberIter)->components();
345  for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
346  result.push_back(*layerIter);
347  }
348  }
349 
350  return result;
351 }
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
align::Alignables CSCChambers()
tuple result
Definition: mps_fire.py:84
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::CSCRings ( )

Definition at line 362 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

363 {
365  copy( theCSCRings.begin(), theCSCRings.end(), back_inserter(result) );
366  return result;
367 }
tuple result
Definition: mps_fire.py:84
std::vector< AlignableCSCRing * > theCSCRings
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
align::Alignables AlignableMuon::CSCStations ( )

Definition at line 370 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

371 {
373  copy( theCSCStations.begin(), theCSCStations.end(), back_inserter(result) );
374  return result;
375 }
tuple result
Definition: mps_fire.py:84
std::vector< AlignableCSCStation * > theCSCStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
AlignmentErrorsExtended * AlignableMuon::dtAlignmentErrorsExtended ( void  )

Definition at line 452 of file AlignableMuon.cc.

References DTBarrel().

Referenced by MuonAlignment::copyAlignmentToSurvey(), MisalignedMuonESProducer::produce(), MuonAlignment::saveDTtoDB(), AlignmentProducer::startingNewLoop(), MuonAlignmentOutputXML::write(), and AlignmentProducer::writeForRunRange().

453 {
454  // Retrieve muon barrel alignment errors
455  AlignmentErrorsExtended* tmpAlignmentErrorsExtended = this->DTBarrel().front()->alignmentErrors();
456 
457  return tmpAlignmentErrorsExtended;
458 
459 }
align::Alignables DTBarrel()
Alignments * AlignableMuon::dtAlignments ( void  )

Definition at line 443 of file AlignableMuon.cc.

References DTBarrel().

Referenced by MisalignedMuonESProducer::produce(), MuonAlignment::saveDTtoDB(), AlignmentProducer::startingNewLoop(), and AlignmentProducer::writeForRunRange().

444 {
445  // Retrieve muon barrel alignments
446  Alignments* tmpAlignments = this->DTBarrel().front()->alignments();
447 
448  return tmpAlignments;
449 
450 }
align::Alignables DTBarrel()
align::Alignables AlignableMuon::DTBarrel ( )
align::Alignables AlignableMuon::DTChambers ( )
align::Alignables AlignableMuon::DTLayers ( )

Definition at line 270 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

271 {
273 
275  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
276  align::Alignables superlayers = (*chamberIter)->components();
277  for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
278  align::Alignables layers = (*superlayerIter)->components();
279  for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
280  result.push_back(*layerIter);
281  }
282  }
283  }
284 
285  return result;
286 }
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
tuple result
Definition: mps_fire.py:84
align::Alignables DTChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::DTStations ( )

Definition at line 313 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

314 {
316  copy( theDTStations.begin(), theDTStations.end(), back_inserter(result) );
317  return result;
318 }
tuple result
Definition: mps_fire.py:84
std::vector< AlignableDTStation * > theDTStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
align::Alignables AlignableMuon::DTSuperLayers ( )

Definition at line 289 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

290 {
292 
294  for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
295  align::Alignables superlayers = (*chamberIter)->components();
296  for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
297  result.push_back(*superlayerIter);
298  }
299  }
300 
301  return result;
302 }
tuple result
Definition: mps_fire.py:84
align::Alignables DTChambers()
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
align::Alignables AlignableMuon::DTWheels ( )

Definition at line 322 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

323 {
325  copy( theDTWheels.begin(), theDTWheels.end(), back_inserter(result) );
326  return result;
327 }
tuple result
Definition: mps_fire.py:84
std::vector< Alignable * > Alignables
Definition: Utilities.h:30
std::vector< AlignableDTWheel * > theDTWheels
virtual Alignable* AlignableMuon::mother ( )
inlinevirtual

Alignable tracker has no mother.

Definition at line 53 of file AlignableMuon.h.

53 { return 0; }
const AlignableObjectId& AlignableMuon::objectIdProvider ( ) const
inline

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

Definition at line 82 of file AlignableMuon.h.

References alignableObjectId_.

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

82 { return alignableObjectId_; }
const AlignableObjectId alignableObjectId_
alignable object ID provider
void AlignableMuon::recursiveSetMothers ( Alignable alignable)
private

Set mothers recursively.

Definition at line 387 of file AlignableMuon.cc.

References components(), and Alignable::components().

Referenced by AlignableMuon().

388 {
389 
390  align::Alignables components = alignable->components();
391  for ( align::Alignables::iterator iter = components.begin();
392  iter != components.end(); iter++ )
393  {
394  (*iter)->setMother( alignable );
395  recursiveSetMothers( *iter );
396  }
397 
398 }
virtual Alignables components() const =0
Return vector of all direct components.
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
virtual align::Alignables components() const
Return all components.
Definition: AlignableMuon.h:50
std::vector< Alignable * > Alignables
Definition: Utilities.h:30

Member Data Documentation

const AlignableObjectId AlignableMuon::alignableObjectId_
private

alignable object ID provider

Definition at line 115 of file AlignableMuon.h.

Referenced by objectIdProvider().

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

Definition at line 124 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCChambers().

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

Definition at line 127 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCEndcaps().

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

Definition at line 126 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCRings().

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

Definition at line 125 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCStations().

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

Definition at line 122 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTBarrel().

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

Definition at line 119 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTChambers().

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

Definition at line 120 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTStations().

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

Definition at line 121 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTWheels().

align::Alignables AlignableMuon::theMuonComponents
private

Definition at line 129 of file AlignableMuon.h.

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