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...
 
 ~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

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

Destructor.

Definition at line 53 of file AlignableMuon.cc.

References theMuonComponents.

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

Member Function Documentation

AlignmentErrorsExtended * AlignableMuon::alignmentErrors ( void  ) const
privatevirtual

Return vector of alignment errors.

Reimplemented from AlignableComposite.

Definition at line 420 of file AlignableMuon.cc.

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

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

Return alignment data.

Reimplemented from AlignableComposite.

Definition at line 399 of file AlignableMuon.cc.

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

400 {
401 
403  Alignments* m_alignments = new Alignments();
404  // Add components recursively
405  for ( align::Alignables::iterator i=comp.begin(); i!=comp.end(); i++ )
406  {
407  Alignments* tmpAlignments = (*i)->alignments();
408  std::copy( tmpAlignments->m_align.begin(), tmpAlignments->m_align.end(),
409  std::back_inserter(m_alignments->m_align) );
410  delete tmpAlignments;
411  }
412 
413  std::sort( m_alignments->m_align.begin(), m_alignments->m_align.end(),
415 
416  return m_alignments;
417 
418 }
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:49
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
void AlignableMuon::buildCSCEndcap ( const CSCGeometry pCSC)
private

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

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

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

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

References theMuonComponents.

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

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

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

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

Definition at line 460 of file AlignableMuon.cc.

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

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

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

Definition at line 353 of file AlignableMuon.cc.

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

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

354 {
356  copy( theCSCChambers.begin(), theCSCChambers.end(), back_inserter(result) );
357  return result;
358 }
tuple result
Definition: query.py:137
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
std::vector< AlignableCSCChamber * > theCSCChambers
align::Alignables AlignableMuon::CSCEndcaps ( )
align::Alignables AlignableMuon::CSCLayers ( )

Definition at line 337 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

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

Definition at line 361 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

362 {
364  copy( theCSCRings.begin(), theCSCRings.end(), back_inserter(result) );
365  return result;
366 }
tuple result
Definition: query.py:137
std::vector< AlignableCSCRing * > theCSCRings
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
align::Alignables AlignableMuon::CSCStations ( )

Definition at line 369 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

370 {
372  copy( theCSCStations.begin(), theCSCStations.end(), back_inserter(result) );
373  return result;
374 }
std::vector< AlignableCSCStation * > theCSCStations
tuple result
Definition: query.py:137
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
AlignmentErrorsExtended * AlignableMuon::dtAlignmentErrorsExtended ( void  )

Definition at line 451 of file AlignableMuon.cc.

References DTBarrel().

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

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

Definition at line 442 of file AlignableMuon.cc.

References DTBarrel().

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

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

Definition at line 269 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

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

Definition at line 312 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

313 {
315  copy( theDTStations.begin(), theDTStations.end(), back_inserter(result) );
316  return result;
317 }
tuple result
Definition: query.py:137
std::vector< AlignableDTStation * > theDTStations
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
align::Alignables AlignableMuon::DTSuperLayers ( )

Definition at line 288 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

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

Definition at line 321 of file AlignableMuon.cc.

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

Referenced by AlignmentParameterSelector::addSelection().

322 {
324  copy( theDTWheels.begin(), theDTWheels.end(), back_inserter(result) );
325  return result;
326 }
tuple result
Definition: query.py:137
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
std::vector< AlignableDTWheel * > theDTWheels
virtual Alignable* AlignableMuon::mother ( )
inlinevirtual

Alignable tracker has no mother.

Definition at line 52 of file AlignableMuon.h.

52 { return 0; }
void AlignableMuon::recursiveSetMothers ( Alignable alignable)
private

Set mothers recursively.

Definition at line 386 of file AlignableMuon.cc.

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

Referenced by AlignableMuon().

387 {
388 
389  align::Alignables components = alignable->components();
390  for ( align::Alignables::iterator iter = components.begin();
391  iter != components.end(); iter++ )
392  {
393  (*iter)->setMother( alignable );
394  recursiveSetMothers( *iter );
395  }
396 
397 }
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:49
std::vector< Alignable * > Alignables
Definition: Utilities.h:28

Member Data Documentation

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

Definition at line 119 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCChambers().

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

Definition at line 122 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCEndcaps().

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

Definition at line 121 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCRings().

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

Definition at line 120 of file AlignableMuon.h.

Referenced by buildCSCEndcap(), and CSCStations().

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

Definition at line 117 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTBarrel().

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

Definition at line 114 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTChambers().

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

Definition at line 115 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTStations().

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

Definition at line 116 of file AlignableMuon.h.

Referenced by buildDTBarrel(), and DTWheels().

align::Alignables AlignableMuon::theMuonComponents
private

Definition at line 124 of file AlignableMuon.h.

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