]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONGeometryMisAligner.h
- Added handling of tracks and file mask (used when merging different files).
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryMisAligner.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5
6 /// \ingroup geometry
7 /// \class AliMUONGeometryMisAligner
8 /// \brief Class for misalignment of geometry transformations
9 ///
10 /// Author: Bruce Becker
11
12
13 #ifndef ALI_MUON_GEOMETRY_MIS_ALIGNER_H
14 #define ALI_MUON_GEOMETRY_MIS_ALIGNER_H
15
16 #include <TObject.h>
17 #include <TGeoMatrix.h>
18
19 class AliMUONGeometryTransformer;
20
21 class TRandom;
22
23 class AliMUONGeometryMisAligner:public TObject
24 {
25  public:
26   AliMUONGeometryMisAligner(Double_t cartMisAlig, Double_t angMisAlig);
27   AliMUONGeometryMisAligner();
28   virtual ~AliMUONGeometryMisAligner();
29   
30   //_________________________________________________________________
31   // methods
32   
33   // return a misaligned geometry obtained from the existing one.
34   AliMUONGeometryTransformer* MisAlign(const AliMUONGeometryTransformer* transformer, 
35                                        Bool_t verbose = kFALSE);
36   
37   void SetMaxCartMisAlig(Double_t offset)
38     {fMaxCartMisAlig = offset ;}
39   
40   void SetMaxAngMisAlig(Double_t offset)
41     {fMaxAngMisAlig = offset;}
42   
43   void SetXYAngMisAligFactor(Double_t factor);
44   
45   
46  protected:
47   AliMUONGeometryMisAligner(const AliMUONGeometryMisAligner & right);
48   AliMUONGeometryMisAligner & operator =(const AliMUONGeometryMisAligner &right);
49   
50  private:
51   // return a misaligned transformation
52   TGeoCombiTrans MisAlign(const TGeoCombiTrans& transform) const;
53
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
58   
59   ClassDef(AliMUONGeometryMisAligner,2) // Geometry parametrisation
60 };
61
62 #endif //ALI_MUON_GEOMETRY_MIS_ALIGNER_H
63
64
65
66