Line data Source code
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.3 2007/07/10 12:41:38 kharlov
13 : * Added a new class AliPHOSSurvet1 which read survey data from EDMS files
14 : *
15 : * Revision 1.2 2007/05/17 17:13:32 kharlov
16 : * Coding convensions satisfied (T.Pocheptsov)
17 : *
18 : * Revision 1.1 2007/04/19 15:47:20 kharlov
19 : * Add misalignment of strip units with AliPHOSSurvey class
20 : *
21 : */
22 :
23 : #include <TObject.h>
24 : #include <Rtypes.h>
25 :
26 : class TClonesArray;
27 : class TString;
28 :
29 : class AliPHOSGeometry;
30 :
31 : /*
32 : Objects of this class read txt file with survey (photogrammetry) data
33 : and convert the data into AliAlignObjParams of alignable PHOS volumes.
34 : It can be used as a base class, you need to override GetStripTransformation.
35 : AliPHOSSurvey inherits TObject only to use AliLog "functions".
36 : */
37 :
38 : class AliPHOSSurvey : public TObject {
39 : public:
40 : AliPHOSSurvey();
41 : AliPHOSSurvey(const TString &txtFileName);
42 :
43 : virtual ~AliPHOSSurvey();
44 :
45 : //Create AliAlignObjParams for strips.
46 : void CreateAliAlignObjParams(TClonesArray &array);
47 : //Create AliAlignObjParams with null shifts and rotations.
48 : void CreateNullObjects(TClonesArray &alObj, const AliPHOSGeometry *geom)const;
49 :
50 : protected:
51 :
52 : struct AliPHOSStripDelta {
53 : Float_t fXShift; //x shift
54 : Float_t fYShift; //y shift
55 : Float_t fZShift; //z shift
56 : Float_t fPsi; //psi
57 : Float_t fTheta; //theta
58 : Float_t fPhi; //phi
59 : };
60 :
61 : Int_t fStrNum; // Number of strips.
62 : AliPHOSStripDelta *fStripData; // Strip unit transformation data
63 :
64 : void InitStripData(const Double_t *xReal, const Double_t *zReal);
65 :
66 : private:
67 : //Calculate shifts and rotations for strip number stripIndex in a module moduleIndex.
68 : virtual AliPHOSStripDelta GetStripTransformation(Int_t stripIndex, Int_t moduleIndex)const;
69 :
70 : AliPHOSSurvey(const AliPHOSSurvey &);
71 : AliPHOSSurvey &operator = (const AliPHOSSurvey &);
72 :
73 22 : ClassDef(AliPHOSSurvey, 1) //Survey data reader
74 : };
75 :
76 : #endif
|