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