33 alignableObjectId_(
nullptr, dtGeometry, cscGeometry)
48 edm::LogInfo(
"AlignableMuon") <<
"Constructing alignable muon objects DONE";
70 LogDebug(
"Position") <<
"Constructing AlignableDTBarrel";
73 std::vector<AlignableDTChamber*> tmpDTChambersInStation;
74 std::vector<AlignableDTStation*> tmpDTStationsInWheel;
78 for(
int iwh = -2 ; iwh < 3 ; iwh++ ){
81 for(
int ist = 1 ; ist < 5 ; ist++ ){
84 std::vector<const GeomDet*> theSLs;
85 for(
auto det = pDT->
chambers().begin();
86 det != pDT->
chambers().end(); ++det ){
91 int wh = chamberId.
wheel();
96 if ( iwh == wh && ist == st ){
102 tmpDTChambersInStation.push_back( tmpDTChamber );
112 tmpDTChambersInStation.end() );
118 tmpDTStationsInWheel.push_back( tmpDTStation );
121 tmpDTChambersInStation.clear();
128 tmpDTStationsInWheel.end() );
138 tmpDTStationsInWheel.clear();
164 LogDebug(
"Position") <<
"Constructing AlignableCSCBarrel";
167 std::vector<AlignableCSCStation*> tmpCSCStationsInEndcap;
170 for(
int iec = 1 ; iec < 3 ; iec++ ){
173 std::vector<AlignableCSCRing*> tmpCSCRingsInStation;
176 for(
int ist = 1 ; ist < 5 ; ist++ ){
179 std::vector<AlignableCSCChamber*> tmpCSCChambersInRing;
182 for (
int iri = 1; iri < 5; iri++ ){
186 for(
auto det = vc.begin(); det != vc.end(); ++det ){
194 int ri = cscId.
ring();
198 if ( iec == ec && ist == st && iri == ri ) {
204 tmpCSCChambersInRing.push_back( tmpCSCChamber );
213 if (tmpCSCChambersInRing.size() > 0) {
222 tmpCSCRingsInStation.push_back( tmpCSCRing );
225 tmpCSCChambersInRing.clear();
240 tmpCSCStationsInEndcap.push_back( tmpCSCStation );
243 tmpCSCRingsInStation.clear();
258 tmpCSCStationsInEndcap.clear();
275 for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
277 for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
279 for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
280 result.push_back(*layerIter);
294 for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
296 for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
297 result.push_back(*superlayerIter);
343 for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
345 for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
346 result.push_back(*layerIter);
391 for ( align::Alignables::iterator iter = components.begin();
392 iter != components.end(); iter++ )
394 (*iter)->setMother( alignable );
406 for ( align::Alignables::iterator
i=comp.begin();
i!=comp.end();
i++ )
408 Alignments* tmpAlignments = (*i)->alignments();
410 std::back_inserter(m_alignments->
m_align) );
411 delete tmpAlignments;
414 std::sort( m_alignments->
m_align.begin(), m_alignments->
m_align.end(),
428 for ( align::Alignables::iterator
i=comp.begin();
i!=comp.end();
i++ )
433 delete tmpAlignmentErrorsExtended;
439 return m_alignmentErrors;
448 return tmpAlignments;
457 return tmpAlignmentErrorsExtended;
472 return tmpAlignments;
487 return tmpAlignmentErrorsExtended;
A muon DT Chamber( an AlignableDet )
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
align::Alignables DTLayers()
align::Alignables CSCChambers()
align::Alignables DTBarrel()
align::Alignables CSCStations()
align::Alignables DTStations()
const ChamberContainer & chambers() const
Return a vector of all chambers.
virtual Alignables components() const =0
Return vector of all direct components.
std::vector< AlignTransform > m_align
Alignments * alignments() const
Return alignment data.
std::vector< AlignableCSCEndcap * > theCSCEndcaps
Alignments * dtAlignments()
align::Alignables CSCEndcaps()
align::Alignables theMuonComponents
align::Alignables DTChambers()
align::Alignables DTWheels()
std::vector< AlignableCSCStation * > theCSCStations
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
virtual align::Alignables components() const
Return all components.
std::vector< AlignableDTStation * > theDTStations
AlignmentErrorsExtended * cscAlignmentErrorsExtended()
align::Alignables CSCLayers()
std::vector< AlignableDTChamber * > theDTChambers
std::vector< AlignableCSCRing * > theCSCRings
std::vector< AlignTransformErrorExtended > m_alignError
align::Alignables DTSuperLayers()
Alignments * cscAlignments()
AlignmentErrorsExtended * alignmentErrors() const
Return vector of alignment errors.
AlignableMuon(const DTGeometry *, const CSCGeometry *)
Constructor from geometries.
AlignmentErrorsExtended * dtAlignmentErrorsExtended()
std::vector< Alignable * > Alignables
void buildDTBarrel(const DTGeometry *)
std::vector< const CSCChamber * > ChamberContainer
align::Alignables CSCRings()
std::vector< AlignableDTBarrel * > theDTBarrel
~AlignableMuon()
Destructor.
std::vector< AlignableDTWheel * > theDTWheels
int station() const
Return the station number.
static char chambers[264][20]
int wheel() const
Return the wheel number.
Constructor of the full muon geometry.
void buildCSCEndcap(const CSCGeometry *)
std::vector< AlignableCSCChamber * > theCSCChambers
A muon CSC Chamber( an AlignableDet )