]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSSurvey.h
resolve a rounding problem
[u/mrichter/AliRoot.git] / PHOS / AliPHOSSurvey.h
CommitLineData
3c759505 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 */
13
14#include <vector>
15
16#include <TObject.h>
17#include <Rtypes.h>
18
19class TClonesArray;
20class TString;
21
22class AliPHOSGeometry;
23
24/*
25 Objects of this class read txt file with survey (photogrammetry) data
26 and convert the data into AliAlignObjAngles of alignable PHOS volumes.
27 It can be used as a base class, you need to override GetStripTransformation.
28 AliPHOSSurvey inherits TObject only to use AliLog "functions".
29*/
30
31class AliPHOSSurvey : public TObject {
32public:
33 AliPHOSSurvey();
34 AliPHOSSurvey(const TString &txtFileName);
35
36 //Create AliAlignObjAngles for strips.
37 void CreateAliAlignObjAngles(TClonesArray &array);
38 //Create AliAlignObjAngles with null shifts and rotations.
39 void CreateNullObjects(TClonesArray &, const AliPHOSGeometry *)const;
40
41protected:
42 struct Transformation_t {
43 Float_t fXShift;
44 Float_t fYShift;
45 Float_t fZShift;
46 Float_t fPsi;
47 Float_t fTheta;
48 Float_t fPhi;
49 };
50
51private:
52 //Calculate shifts and rotations for strip number stripIndex in a module moduleIndex.
53 virtual Transformation_t GetStripTransformation(Int_t stripIndex, Int_t moduleIndex)const;
54
55 AliPHOSSurvey(const AliPHOSSurvey &);
56 AliPHOSSurvey &operator = (const AliPHOSSurvey &);
57
58private:
59 std::vector<Transformation_t> fStripData; // Strip unit transformation data
60
61 ClassDef(AliPHOSSurvey, 1) //Survey data reader
62};
63
64#endif