ROOT logo
#ifndef ALIPHOSSURVEY_H
#define ALIPHOSSURVEY_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.3  2007/07/10 12:41:38  kharlov
 * Added a new class AliPHOSSurvet1 which read survey data from EDMS files
 *
 * Revision 1.2  2007/05/17 17:13:32  kharlov
 * Coding convensions satisfied (T.Pocheptsov)
 *
 * Revision 1.1  2007/04/19 15:47:20  kharlov
 * Add misalignment of strip units with AliPHOSSurvey class
 *
 */

#include <TObject.h>
#include <Rtypes.h>

class TClonesArray;
class TString;

class AliPHOSGeometry;

/*
  Objects of this class read txt file with survey (photogrammetry) data
  and convert the data into AliAlignObjParams of alignable PHOS volumes.
  It can be used as a base class, you need to override GetStripTransformation.
  AliPHOSSurvey inherits TObject only to use AliLog "functions".
*/

class AliPHOSSurvey : public TObject {
public:
  AliPHOSSurvey();
  AliPHOSSurvey(const TString &txtFileName);

  virtual ~AliPHOSSurvey();

  //Create AliAlignObjParams for strips.
  void CreateAliAlignObjParams(TClonesArray &array);
  //Create AliAlignObjParams with null shifts and rotations.
  void CreateNullObjects(TClonesArray &alObj, const AliPHOSGeometry *geom)const;

protected:

  struct AliPHOSStripDelta {
    Float_t fXShift; //x shift
    Float_t fYShift; //y shift
    Float_t fZShift; //z shift
    Float_t fPsi;    //psi
    Float_t fTheta;  //theta
    Float_t fPhi;    //phi
  };

  Int_t 	           fStrNum; // Number of strips.
  AliPHOSStripDelta *fStripData; // Strip unit transformation data

  void InitStripData(const Double_t *xReal, const Double_t *zReal);

private:
  //Calculate shifts and rotations for strip number stripIndex in a module moduleIndex.
  virtual AliPHOSStripDelta GetStripTransformation(Int_t stripIndex, Int_t moduleIndex)const;

  AliPHOSSurvey(const AliPHOSSurvey &);
  AliPHOSSurvey &operator = (const AliPHOSSurvey &);

  ClassDef(AliPHOSSurvey, 1) //Survey data reader
};

#endif
 AliPHOSSurvey.h:1
 AliPHOSSurvey.h:2
 AliPHOSSurvey.h:3
 AliPHOSSurvey.h:4
 AliPHOSSurvey.h:5
 AliPHOSSurvey.h:6
 AliPHOSSurvey.h:7
 AliPHOSSurvey.h:8
 AliPHOSSurvey.h:9
 AliPHOSSurvey.h:10
 AliPHOSSurvey.h:11
 AliPHOSSurvey.h:12
 AliPHOSSurvey.h:13
 AliPHOSSurvey.h:14
 AliPHOSSurvey.h:15
 AliPHOSSurvey.h:16
 AliPHOSSurvey.h:17
 AliPHOSSurvey.h:18
 AliPHOSSurvey.h:19
 AliPHOSSurvey.h:20
 AliPHOSSurvey.h:21
 AliPHOSSurvey.h:22
 AliPHOSSurvey.h:23
 AliPHOSSurvey.h:24
 AliPHOSSurvey.h:25
 AliPHOSSurvey.h:26
 AliPHOSSurvey.h:27
 AliPHOSSurvey.h:28
 AliPHOSSurvey.h:29
 AliPHOSSurvey.h:30
 AliPHOSSurvey.h:31
 AliPHOSSurvey.h:32
 AliPHOSSurvey.h:33
 AliPHOSSurvey.h:34
 AliPHOSSurvey.h:35
 AliPHOSSurvey.h:36
 AliPHOSSurvey.h:37
 AliPHOSSurvey.h:38
 AliPHOSSurvey.h:39
 AliPHOSSurvey.h:40
 AliPHOSSurvey.h:41
 AliPHOSSurvey.h:42
 AliPHOSSurvey.h:43
 AliPHOSSurvey.h:44
 AliPHOSSurvey.h:45
 AliPHOSSurvey.h:46
 AliPHOSSurvey.h:47
 AliPHOSSurvey.h:48
 AliPHOSSurvey.h:49
 AliPHOSSurvey.h:50
 AliPHOSSurvey.h:51
 AliPHOSSurvey.h:52
 AliPHOSSurvey.h:53
 AliPHOSSurvey.h:54
 AliPHOSSurvey.h:55
 AliPHOSSurvey.h:56
 AliPHOSSurvey.h:57
 AliPHOSSurvey.h:58
 AliPHOSSurvey.h:59
 AliPHOSSurvey.h:60
 AliPHOSSurvey.h:61
 AliPHOSSurvey.h:62
 AliPHOSSurvey.h:63
 AliPHOSSurvey.h:64
 AliPHOSSurvey.h:65
 AliPHOSSurvey.h:66
 AliPHOSSurvey.h:67
 AliPHOSSurvey.h:68
 AliPHOSSurvey.h:69
 AliPHOSSurvey.h:70
 AliPHOSSurvey.h:71
 AliPHOSSurvey.h:72
 AliPHOSSurvey.h:73
 AliPHOSSurvey.h:74
 AliPHOSSurvey.h:75
 AliPHOSSurvey.h:76