CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Alignment/MuonAlignment/interface/AlignableDTStation.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignment_AlignableDTStation_H
00002 #define Alignment_MuonAlignment_AlignableDTStation_H
00003 
00013 #include "Alignment/CommonAlignment/interface/Alignable.h"
00014 #include "Alignment/CommonAlignment/interface/AlignableComposite.h"
00015 #include "Alignment/CommonAlignment/interface/AlignableSurface.h"
00016 
00017 #include "Alignment/MuonAlignment/interface/AlignableDTChamber.h"
00018 
00019 
00020 #include <vector>
00021 
00022 class GeomDet;
00023 
00028 
00029 class AlignableDTStation : public AlignableComposite 
00030 {
00031 
00032  public:
00033 
00034   AlignableDTStation( const std::vector<AlignableDTChamber*> dtChambers );
00035 
00036   ~AlignableDTStation();
00037   
00038   virtual std::vector<Alignable*> components() const 
00039   {
00040 
00041         std::vector<Alignable*> result;
00042         result.insert( result.end(), theDTChambers.begin(), theDTChambers.end() );
00043         return result;
00044 
00045   }
00046   
00047   // gets the global position as the average over all positions of the layers
00048   PositionType computePosition() ;
00049   // get the global orientation
00050   RotationType computeOrientation() ; //see explanation for "theOrientation"
00051   // get the Surface
00052   AlignableSurface computeSurface() ;
00053 
00054   AlignableDTChamber &chamber(int i);  
00055   
00057   friend std::ostream& operator << ( std::ostream&, const AlignableDTStation& );
00058 
00060   void dump( void );
00061 
00062 
00063 private:
00064 
00065   std::vector<AlignableDTChamber*> theDTChambers;
00066 
00067 
00068 };
00069 
00070 #endif
00071 
00072 
00073 
00074