adding survey file in AliSurveyObj format
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALSurvey.h
CommitLineData
289cc8a7 1#ifndef ALIEMCALSURVEY_H
2#define ALIEMCALSURVEY_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#include <TObject.h>
10#include <Rtypes.h>
11
12class TClonesArray;
13class TString;
14
15class AliEMCALGeometry;
16
17/*
18 Objects of this class read txt file with survey data
19 and convert the data into AliAlignObjParams of alignable EMCAL volumes.
20 AliEMCALSurvey inherits TObject only to use AliLog "functions".
21*/
22
23class AliEMCALSurvey : public TObject {
24public:
25 AliEMCALSurvey();
26 AliEMCALSurvey(const TString &txtFileName);
27
28 virtual ~AliEMCALSurvey();
29
30 //Create AliAlignObjParams for strips.
31 void CreateAliAlignObjParams(TClonesArray &array);
32 //Create AliAlignObjParams with null shifts and rotations.
33 void CreateNullObjects(TClonesArray &alObj, const AliEMCALGeometry *geom)const;
34
35protected:
36
37 struct AliEMCALSuperModuleDelta {
38 Float_t fXShift; //x shift
39 Float_t fYShift; //y shift
40 Float_t fZShift; //z shift
41 Float_t fPsi; //psi
42 Float_t fTheta; //theta
43 Float_t fPhi; //phi
44 };
45
46 Int_t fNSuperModule; // Number of supermodules.
47 AliEMCALSuperModuleDelta *fSuperModuleData; // Supermodule transformation data
48
49 void InitSuperModuleData(const Double_t *xReal, const Double_t *yReal, const Double_t *zReal);
50
51private:
52 //Calculate shifts and rotations for supermodule.
53 virtual AliEMCALSuperModuleDelta GetSuperModuleTransformation(Int_t smIndex) const;
54
55 AliEMCALSurvey(const AliEMCALSurvey &);
56 AliEMCALSurvey &operator = (const AliEMCALSurvey &);
57
58 ClassDef(AliEMCALSurvey, 1) //Survey data reader
59};
60
61#endif