CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_2_9_HLT1_bphpatch4/src/Alignment/CommonAlignment/interface/AlignableBeamSpot.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_AlignableBeamSpot_h
00002 #define Alignment_CommonAlignment_AlignableBeamSpot_h
00003 
00015 #include "Alignment/CommonAlignment/interface/Alignable.h"
00016 
00017 class SurfaceDeformation;
00018 
00019 class AlignableBeamSpot : public Alignable 
00020 {
00021 
00022 public:
00023   
00024   AlignableBeamSpot();
00025   
00027   virtual ~AlignableBeamSpot();
00028 
00032   virtual void addComponent( Alignable* component ) {}
00033 
00035   virtual Alignables components() const { return std::vector<Alignable*>(); }
00036 
00038   virtual void recursiveComponents(Alignables &result) const { }
00039 
00041   virtual void move( const GlobalVector& displacement );
00042 
00044   virtual void rotateInGlobalFrame( const RotationType& rotation );
00045 
00047   virtual void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown);
00048 
00051   virtual void addAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown);
00052 
00056   virtual void addAlignmentPositionErrorFromRotation(const RotationType &rot, bool propagateDown);
00057 
00060   virtual void addAlignmentPositionErrorFromLocalRotation( const RotationType& rotation,
00061                                                            bool propagateDown );
00062 
00064   virtual StructureType alignableObjectId() const { return align::BeamSpot; }
00065 
00067   virtual void dump() const;
00068 
00070   virtual Alignments* alignments() const;
00071 
00073   virtual AlignmentErrors* alignmentErrors() const;
00074 
00076   const AlignmentPositionError* alignmentPositionError() const { return theAlignmentPositionError;}
00077 
00079   virtual int surfaceDeformationIdPairs(std::vector<std::pair<int,SurfaceDeformation*> > &) const { return 0; }
00080 
00082   virtual void setSurfaceDeformation(const SurfaceDeformation*, bool);
00084   virtual void addSurfaceDeformation(const SurfaceDeformation*, bool);
00085 
00087   void initialize(double x, double y, double z,
00088                   double dxdz, double dydz);
00089 
00092   static const DetId detId() { return DetId((DetId::Tracker<<DetId::kDetOffset)+0x1ffffff); }
00093 
00094 private:
00095 
00096   AlignmentPositionError* theAlignmentPositionError;
00097 
00098   bool theInitializedFlag;
00099 };
00100 
00101 #endif // ALIGNABLE_BEAMSPOT_H