47 edm::LogInfo(
"AlignableMuon") <<
"Constructing alignable muon objects DONE";
69 LogDebug(
"Position") <<
"Constructing AlignableDTBarrel";
72 std::vector<AlignableDTChamber*> tmpDTChambersInStation;
73 std::vector<AlignableDTStation*> tmpDTStationsInWheel;
77 for(
int iwh = -2 ; iwh < 3 ; iwh++ ){
80 for(
int ist = 1 ; ist < 5 ; ist++ ){
83 std::vector<GeomDet*> theSLs;
84 for( std::vector<DTChamber*>::const_iterator det = pDT->
chambers().begin();
85 det != pDT->
chambers().end(); ++det ){
90 int wh = chamberId.
wheel();
95 if ( iwh == wh && ist == st ){
101 tmpDTChambersInStation.push_back( tmpDTChamber );
111 tmpDTChambersInStation.end() );
117 tmpDTStationsInWheel.push_back( tmpDTStation );
120 tmpDTChambersInStation.clear();
127 tmpDTStationsInWheel.end() );
137 tmpDTStationsInWheel.clear();
163 LogDebug(
"Position") <<
"Constructing AlignableCSCBarrel";
166 std::vector<AlignableCSCStation*> tmpCSCStationsInEndcap;
169 for(
int iec = 1 ; iec < 3 ; iec++ ){
172 std::vector<AlignableCSCRing*> tmpCSCRingsInStation;
175 for(
int ist = 1 ; ist < 5 ; ist++ ){
178 std::vector<AlignableCSCChamber*> tmpCSCChambersInRing;
181 for (
int iri = 1; iri < 5; iri++ ){
184 std::vector<CSCChamber*> vc = pCSC->
chambers();
185 for( std::vector<CSCChamber*>::const_iterator det = vc.begin(); det != vc.end(); ++det ){
193 int ri = cscId.
ring();
197 if ( iec == ec && ist == st && iri == ri ) {
203 tmpCSCChambersInRing.push_back( tmpCSCChamber );
212 if (tmpCSCChambersInRing.size() > 0) {
221 tmpCSCRingsInStation.push_back( tmpCSCRing );
224 tmpCSCChambersInRing.clear();
239 tmpCSCStationsInEndcap.push_back( tmpCSCStation );
242 tmpCSCRingsInStation.clear();
257 tmpCSCStationsInEndcap.clear();
274 for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
276 for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
278 for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
279 result.push_back(*layerIter);
293 for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
295 for (align::Alignables::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
296 result.push_back(*superlayerIter);
342 for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
344 for (align::Alignables::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
345 result.push_back(*layerIter);
390 for ( align::Alignables::iterator iter = components.begin();
391 iter != components.end(); iter++ )
393 (*iter)->setMother( alignable );
405 for ( align::Alignables::iterator
i=comp.begin();
i!=comp.end();
i++ )
407 Alignments* tmpAlignments = (*i)->alignments();
409 std::back_inserter(m_alignments->
m_align) );
410 delete tmpAlignments;
427 for ( align::Alignables::iterator
i=comp.begin();
i!=comp.end();
i++ )
432 delete tmpAlignmentErrors;
438 return m_alignmentErrors;
447 return tmpAlignments;
456 return tmpAlignmentErrors;
471 return tmpAlignments;
486 return tmpAlignmentErrors;
A muon DT Chamber( an AlignableDet )
AlignmentErrors * dtAlignmentErrors()
align::Alignables DTLayers()
align::Alignables CSCChambers()
align::Alignables DTBarrel()
std::vector< AlignTransformError > m_alignError
align::Alignables CSCStations()
static char chambers[TOTALCHAMBERS][20]
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.
AlignmentErrors * alignmentErrors() const
Return vector of alignment errors.
AlignmentErrors * cscAlignmentErrors()
virtual align::Alignables components() const
Return all components.
std::vector< AlignableDTStation * > theDTStations
const std::vector< DTChamber * > & chambers() const
Return a vector of all Chamber.
align::Alignables CSCLayers()
std::vector< AlignableDTChamber * > theDTChambers
std::vector< AlignableCSCRing * > theCSCRings
align::Alignables DTSuperLayers()
Alignments * cscAlignments()
AlignableMuon(const DTGeometry *, const CSCGeometry *)
Constructor from geometries.
std::vector< Alignable * > Alignables
void buildDTBarrel(const DTGeometry *)
align::Alignables CSCRings()
std::vector< AlignableDTBarrel * > theDTBarrel
~AlignableMuon()
Destructor.
std::vector< AlignableDTWheel * > theDTWheels
int station() const
Return the station number.
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 )