]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSSurvey.h
Coding convensions satisfied (T.Pocheptsov)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSSurvey.h
1 #ifndef ALIPHOSSURVEY_H
2 #define ALIPHOSSURVEY_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 /* History of cvs commits:
10  *
11  * $Log$
12  * Revision 1.1  2007/04/19 15:47:20  kharlov
13  * Add misalignment of strip units with AliPHOSSurvey class
14  *
15  */
16
17 #include <vector>
18
19 #include <TObject.h>
20 #include <Rtypes.h>
21
22 class TClonesArray;
23 class TString;
24
25 class AliPHOSGeometry;
26
27 /*
28   Objects of this class read txt file with survey (photogrammetry) data
29   and convert the data into AliAlignObjAngles of alignable PHOS volumes.
30   It can be used as a base class, you need to override GetStripTransformation.
31   AliPHOSSurvey inherits TObject only to use AliLog "functions".
32 */
33
34 class AliPHOSSurvey : public TObject {
35 public:
36   AliPHOSSurvey();
37   AliPHOSSurvey(const TString &txtFileName);
38
39   virtual ~AliPHOSSurvey();
40
41   //Create AliAlignObjAngles for strips.
42   void CreateAliAlignObjAngles(TClonesArray &array);
43   //Create AliAlignObjAngles with null shifts and rotations.
44   void CreateNullObjects(TClonesArray &alObj, const AliPHOSGeometry *geom)const;
45
46 protected:
47
48   struct AliPHOSStripDelta {
49     Float_t fXShift; //x shift
50     Float_t fYShift; //y shift
51     Float_t fZShift; //z shift
52     Float_t fPsi;    //psi
53     Float_t fTheta;  //theta
54     Float_t fPhi;    //phi
55   };
56
57 private:
58   //Calculate shifts and rotations for strip number stripIndex in a module moduleIndex.
59   virtual AliPHOSStripDelta GetStripTransformation(Int_t stripIndex, Int_t moduleIndex)const;
60
61   AliPHOSSurvey(const AliPHOSSurvey &);
62   AliPHOSSurvey &operator = (const AliPHOSSurvey &);
63
64 private:
65   Int_t              fStrNum; // Number of strips.
66   AliPHOSStripDelta *fStripData; // Strip unit transformation data
67
68   ClassDef(AliPHOSSurvey, 1) //Survey data reader
69 };
70
71 #endif