CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/Alignment/MuonAlignment/interface/AlignableDTWheel.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignment_AlignableDTWheel_H
00002 #define Alignment_MuonAlignment_AlignableDTWheel_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/AlignableDTStation.h"
00018 
00019 
00020 #include <vector>
00021 
00022 class GeomDet;
00023 
00028 
00029 class AlignableDTWheel : public AlignableComposite 
00030 {
00031 
00032  public:
00033 
00034   AlignableDTWheel( const std::vector<AlignableDTStation*> dtStations );
00035 
00036   ~AlignableDTWheel();
00037   
00038   virtual std::vector<Alignable*> components() const 
00039   {
00040 
00041         std::vector<Alignable*> result;
00042         result.insert( result.end(), theDTStations.begin(), theDTStations.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   AlignableDTStation &station(int i);  
00055   
00057   friend std::ostream& operator << ( std::ostream&, const AlignableDTWheel& );
00058 
00060   void dump( void ) const;
00061 
00062 
00063 private:
00064 
00065   std::vector<AlignableDTStation*> theDTStations;
00066 
00067 
00068 };
00069 
00070 #endif
00071 
00072 
00073 
00074