ROOT logo
#ifndef HALIGNMENTGDATA_H
#define HALIGNMENTGDATA_H

#include "TObject.h"
#include "hgeomvector.h"
#include "hgeomtransform.h"

class HAlignmentGData:public TObject
{
 public:
  HAlignmentGData();
  ~HAlignmentGData() {;}
  static HAlignmentGData* Instance();
  static void DeleteInstance();
  
  Float_t        CalcDistanceToPlane (HGeomVector point);    //  distance from point to plane
  Float_t        CalcDistanceToLine  (HGeomVector point);    //  distance from point to line
  HGeomVector    CalcVertex();
  HGeomVector    CalcIntersection();
  void           SetPlane(HGeomVector, HGeomVector);
  void           SetPlane(HGeomTransform);
  void           SetLine(HGeomVector, HGeomVector);
  void           SetVertexLine1(HGeomVector, HGeomVector);
  void           SetVertexLine2(HGeomVector, HGeomVector);
  
 private:
  //Plane equation in normal form:  Ax+By+Cz+D=0;
  //Here plane is defined with its normal vector (Aplane, Bplane,Cplane) and
  //a dummy point on it (Xp,Yp,Zp)
  //Dplane defined as D=-(Aplane*Xp+Bplane*Yp+Cplane*Zp);
   
  Float_t           Aplane; 
  Float_t           Bplane;
  Float_t           Cplane;
  Float_t           Dplane;
  Float_t           Xp, Yp, Zp;
  HGeomVector       POINT;  
  HGeomVector       DIRPOINT;  //do not worry about normalization
  HGeomVector       vertexPoint1; 
  HGeomVector       vertexPointDir1;    
  HGeomVector       vertexPoint2; 
  HGeomVector       vertexPointDir2; 
  static HAlignmentGData   *oneInstance;

  ClassDef(HAlignmentGData,0)
    };   
#endif
    
 halignmentgdata.h:1
 halignmentgdata.h:2
 halignmentgdata.h:3
 halignmentgdata.h:4
 halignmentgdata.h:5
 halignmentgdata.h:6
 halignmentgdata.h:7
 halignmentgdata.h:8
 halignmentgdata.h:9
 halignmentgdata.h:10
 halignmentgdata.h:11
 halignmentgdata.h:12
 halignmentgdata.h:13
 halignmentgdata.h:14
 halignmentgdata.h:15
 halignmentgdata.h:16
 halignmentgdata.h:17
 halignmentgdata.h:18
 halignmentgdata.h:19
 halignmentgdata.h:20
 halignmentgdata.h:21
 halignmentgdata.h:22
 halignmentgdata.h:23
 halignmentgdata.h:24
 halignmentgdata.h:25
 halignmentgdata.h:26
 halignmentgdata.h:27
 halignmentgdata.h:28
 halignmentgdata.h:29
 halignmentgdata.h:30
 halignmentgdata.h:31
 halignmentgdata.h:32
 halignmentgdata.h:33
 halignmentgdata.h:34
 halignmentgdata.h:35
 halignmentgdata.h:36
 halignmentgdata.h:37
 halignmentgdata.h:38
 halignmentgdata.h:39
 halignmentgdata.h:40
 halignmentgdata.h:41
 halignmentgdata.h:42
 halignmentgdata.h:43
 halignmentgdata.h:44
 halignmentgdata.h:45
 halignmentgdata.h:46
 halignmentgdata.h:47
 halignmentgdata.h:48