File indexing completed on 2023-03-17 10:38:45
0001 #ifndef Alignment_CommonAlignment_AlignableBeamSpot_h
0002 #define Alignment_CommonAlignment_AlignableBeamSpot_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "Alignment/CommonAlignment/interface/Alignable.h"
0016
0017 class SurfaceDeformation;
0018
0019 class AlignableBeamSpot : public Alignable {
0020 public:
0021 AlignableBeamSpot();
0022
0023
0024 ~AlignableBeamSpot() override;
0025
0026
0027
0028
0029 void addComponent(Alignable* component) override {}
0030
0031
0032 const Alignables& components() const override { return emptyComponents_; }
0033
0034
0035 void recursiveComponents(Alignables& result) const override {}
0036
0037
0038 void move(const GlobalVector& displacement) override;
0039
0040
0041 void rotateInGlobalFrame(const RotationType& rotation) override;
0042
0043
0044 void setAlignmentPositionError(const AlignmentPositionError& ape, bool propagateDown) override;
0045
0046
0047
0048 void addAlignmentPositionError(const AlignmentPositionError& ape, bool propagateDown) override;
0049
0050
0051
0052
0053 void addAlignmentPositionErrorFromRotation(const RotationType& rot, bool propagateDown) override;
0054
0055
0056
0057 void addAlignmentPositionErrorFromLocalRotation(const RotationType& rotation, bool propagateDown) override;
0058
0059
0060 StructureType alignableObjectId() const override { return align::BeamSpot; }
0061
0062
0063 void dump() const override;
0064
0065
0066 Alignments* alignments() const override;
0067
0068
0069 AlignmentErrorsExtended* alignmentErrors() const override;
0070
0071
0072 const AlignmentPositionError* alignmentPositionError() const { return theAlignmentPositionError; }
0073
0074
0075 int surfaceDeformationIdPairs(std::vector<std::pair<int, SurfaceDeformation*> >&) const override { return 0; }
0076
0077
0078 void setSurfaceDeformation(const SurfaceDeformation*, bool) override;
0079
0080 void addSurfaceDeformation(const SurfaceDeformation*, bool) override;
0081
0082
0083 void initialize(double x, double y, double z, double dxdz, double dydz);
0084
0085
0086 void reset();
0087
0088
0089
0090 static const DetId detId() { return DetId((DetId::Tracker << DetId::kDetOffset) + 0x1ffffff); }
0091
0092 private:
0093 static const Alignables emptyComponents_;
0094 AlignmentPositionError* theAlignmentPositionError;
0095
0096 bool theInitializedFlag;
0097 };
0098
0099 #endif