1 #ifndef Alignment_TrackerAlignment_AlignableModifier_H 2 #define Alignment_TrackerAlignment_AlignableModifier_H 16 namespace CLHEP {
class DRand48Engine; }
34 bool isPropagated(
const std::string& parameterName )
const;
41 void moveAlignableLocal(
Alignable* alignable,
bool random,
bool gaussian,
42 float sigmaX,
float sigmaY,
float sigmaZ );
45 void rotateAlignable(
Alignable* alignable,
bool random,
bool gaussian,
46 float sigmaPhiX,
float sigmaPhiY,
float sigmaPhiZ );
49 void rotateAlignableLocal(
Alignable* alignable,
bool random,
bool gaussian,
50 float sigmaPhiX,
float sigmaPhiY,
float sigmaPhiZ );
53 void addAlignmentPositionError(
Alignable* alignable,
54 float dx,
float dy,
float dz );
57 void addAlignmentPositionErrorLocal(
Alignable* alignable,
58 float dx,
float dy,
float dz );
61 void addAlignmentPositionErrorFromRotation(
Alignable* alignable,
62 float phiX,
float phiY,
float phiZ );
65 void addAlignmentPositionErrorFromLocalRotation(
Alignable* alignable,
66 float phiX,
float phiY,
float phiZ );
69 void addAlignmentPositionErrorFromRotation(
Alignable* alignable,
73 void addAlignmentPositionErrorFromLocalRotation(
Alignable* alignable,
80 void setSeed(
long seed );
83 const std::vector<float> gaussianRandomVector(
float sigmaX,
float sigmaY,
float sigmaZ )
const;
85 const std::vector<float> flatRandomVector(
float sigmaX,
float sigmaY,
float sigmaZ )
const;
89 void randomise(std::vector<double> &rnd,
bool gaussian)
const;
93 void addDeformation(
Alignable *alignable,
const DeformationMemberType &deformation,
94 bool random,
bool gaussian,
double scale);
119 #endif //AlignableModifier_H
std::string distribution_
CLHEP::DRand48Engine * theDRand48Engine
Unique random number generator.
DeformationMemberType deformation_
std::pair< std::string, std::vector< double > > DeformationMemberType
void moveAlignable(Alignable *ali, AlgebraicVector diff)
Moves the alignable by the AlgebraicVector.