1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONGeometryMisAligner
8 /// \brief Class for misalignment of geometry transformations
10 /// Author: Bruce Becker
13 #ifndef ALI_MUON_GEOMETRY_MIS_ALIGNER_H
14 #define ALI_MUON_GEOMETRY_MIS_ALIGNER_H
17 #include <TGeoMatrix.h>
19 class AliMUONGeometryTransformer;
23 class AliMUONGeometryMisAligner:public TObject
26 AliMUONGeometryMisAligner(Double_t cartMisAlig, Double_t angMisAlig);
27 AliMUONGeometryMisAligner();
28 virtual ~AliMUONGeometryMisAligner();
30 //_________________________________________________________________
33 // return a misaligned geometry obtained from the existing one.
34 AliMUONGeometryTransformer* MisAlign(const AliMUONGeometryTransformer* transformer,
35 Bool_t verbose = kFALSE);
37 void SetMaxCartMisAlig(Double_t offset)
38 {fMaxCartMisAlig = offset ;}
40 void SetMaxAngMisAlig(Double_t offset)
41 {fMaxAngMisAlig = offset;}
43 void SetXYAngMisAligFactor(Double_t factor);
47 AliMUONGeometryMisAligner(const AliMUONGeometryMisAligner & right);
48 AliMUONGeometryMisAligner & operator =(const AliMUONGeometryMisAligner &right);
51 // return a misaligned transformation
52 TGeoCombiTrans MisAlign(const TGeoCombiTrans& transform) const;
54 Double_t fMaxCartMisAlig; // cartesian displacement range, set by SetMaxCartMisAlig (translations)
55 Double_t fMaxAngMisAlig; // Angular displacement range (rotations)
56 Double_t fXYAngMisAligFactor; // factor (<1) to apply to angular misalignment range since range of motion is restricted out of the xy plane
57 TRandom *fDisplacementGenerator; // random number generator for the displacements
59 ClassDef(AliMUONGeometryMisAligner,2) // Geometry parametrisation
62 #endif //ALI_MUON_GEOMETRY_MIS_ALIGNER_H