]>
Commit | Line | Data |
---|---|---|
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 | ClassDef(AliPHOSSurvey, 1) //Survey data reader | |
74 | }; | |
75 | ||
76 | #endif |