CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignment_AlignableCSCEndcap_H
00002 #define Alignment_MuonAlignment_AlignableCSCEndcap_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/AlignableCSCStation.h"
00018 
00019 
00020 
00021 #include <vector>
00022 
00023 class GeomDet;
00024 
00029 
00030 class AlignableCSCEndcap : public AlignableComposite 
00031 {
00032 
00033  public:
00034 
00035   AlignableCSCEndcap( const std::vector<AlignableCSCStation*> cscStations );
00036 
00037   ~AlignableCSCEndcap();
00038   
00039   virtual std::vector<Alignable*> components() const 
00040   {
00041 
00042         std::vector<Alignable*> result;
00043         result.insert( result.end(), theCSCStations.begin(), theCSCStations.end() );
00044         return result;
00045 
00046   }
00047   
00048   // gets the global position as the average over all positions of the layers
00049   PositionType computePosition() ;
00050   // get the global orientation
00051   RotationType computeOrientation() ; //see explanation for "theOrientation"
00052   // get the Surface
00053   AlignableSurface computeSurface() ;
00054 
00055   AlignableCSCStation &station(int i);  
00056   
00058   friend std::ostream& operator << ( std::ostream&, const AlignableCSCEndcap& );
00059 
00061   void dump( void );
00062 
00063   // Get alignments sorted by DetId
00064   Alignments* alignments() const;
00065 
00066   // Get alignment errors sorted by DetId
00067   AlignmentErrors* alignmentErrors() const;
00068 
00069 
00070 
00071 private:
00072 
00073   std::vector<AlignableCSCStation*> theCSCStations;
00074 
00075 
00076 };
00077 
00078 #endif
00079 
00080 
00081 
00082