ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HKalGeomTools

class HKalGeomTools: public TObject

_HADES_CLASS_DESCRIPTION


 Provides static functions to solve some geometric problems.


Function Members (Methods)

public:
HKalGeomTools()
HKalGeomTools(const HKalGeomTools&)
virtual~HKalGeomTools()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
static Double_tdistance2Points(const TVector3& vec1, const TVector3& vec2)
static Double_tdistancePointToLine(TVector3& pca, Int_t& pcaFlag, const TVector3& point, const TVector3& segPoint1, const TVector3& segPoint2)
static Double_tdistancePointToPlane(const TVector3& point, const TVector3& planeCenter, const TVector3& planeNormal)
static Double_tdistancePointToSegment(const TVector3& point, const TVector3& segPoint1, const TVector3& segPoint2)
static Double_tdistancePointToSegment(TVector3& pca, Int_t& pcaFlag, const TVector3& point, const TVector3& segPoint1, const TVector3& segPoint2)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
static Bool_tfindIntersectionLinePlane(TVector3& pointIntersect, const TVector3& pos, const TVector3& dir, const TVector3& planeCenter, const TVector3& planeNormal)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
static Bool_tisPointOnPlane(const TVector3& point, const TVector3& planeCenter, const TVector3& planeNormal)
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
HKalGeomTools&operator=(const HKalGeomTools&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
static Double_tsignedDistancePointToPlane(const TVector3& point, const TVector3& planeCenter, const TVector3& planeNormal)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
static voidTrack2ToLine(TVector3& Pfinal, TVector3& Pwire, Int_t& Iflag, Double_t& Dist, Double_t& Length, const TVector3& X1, const TVector3& X2, const TVector3& w1, const TVector3& w2)
static voidTransLayerToSector(Double_t& x, Double_t& y, Double_t& z, Int_t sector, Int_t module, Int_t layer)
static voidTransModuleToSector(Double_t& x, Double_t& y, Double_t& z, Int_t sector, Int_t module)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Double_t distance2Points(const TVector3& vec1, const TVector3& vec2)
 Calculates the distance between two points.
Double_t distancePointToPlane(const TVector3& point, const TVector3& planeCenter, const TVector3& planeNormal)
 Calculates the distance of vector pos to the plane.
Double_t distancePointToLine(TVector3& pca, Int_t& pcaFlag, const TVector3& point, const TVector3& segPoint1, const TVector3& segPoint2)
 Calculates the distance between a test point and a line defined by two points.
 This function also find the point on the segment that is closest to the test point.
 For method used see:
 http://www.geometrictools.com/Documentation/DistancePointLine.pdf

 return value: Distance of the test point to the segment.
 output parameters:
 pca:          The point on the line that is closest to the test point.
 iFlag:        =0 if the PCA is on the segment,
               =1 the PCA is one of the segment end points.
 input parameters:
 point:        Find the distance of this test point to the line segment.
 segPoint1, segPoint2: The two points defining the line segment.
Double_t distancePointToSegment(const TVector3& point, const TVector3& segPoint1, const TVector3& segPoint2)
 Calculates the distance between a test point and a line segment.
 For method used see:
 http://www.geometrictools.com/Documentation/DistancePointLine.pdf

 input:
 point: the test point
 segPoint1, segPoint2: The two points defining the line segment.
Double_t distancePointToSegment(TVector3& pca, Int_t& pcaFlag, const TVector3& point, const TVector3& segPoint1, const TVector3& segPoint2)
 Calculates the distance between a test point and a line segment defined by two points.
 This function also find the point on the segment that is closest to the test point.
 For method used see:
 http://www.geometrictools.com/Documentation/DistancePointLine.pdf

 return value: Distance of the test point to the segment.
 output parameters:
 pca:          The point on the line segment that is closest to the test point.
 iFlag:        =0 if the PCA is on the segment,
               =1 the PCA is one of the segment end points.
 input parameters:
 point:        Find the distance of this test point to the line segment.
 segPoint1, segPoint2: The two points defining the line segment.
Bool_t findIntersectionLinePlane(TVector3& pointIntersect, const TVector3& pos, const TVector3& dir, const TVector3& planeCenter, const TVector3& planeNormal)
 Finds the intersection point of a straight line with any plane.
 pointIntersect: the intersection point (return value).
 pos:            a point on the straight line.
 dir:            direction of the straight line.
 planeCenter:    a point on the plane.
 planeNormal:    normal vector of the plane.
Bool_t isPointOnPlane(const TVector3& point, const TVector3& planeCenter, const TVector3& planeNormal)
 Checks if point is on the plane.
Double_t signedDistancePointToPlane(const TVector3& point, const TVector3& planeCenter, const TVector3& planeNormal)
 Calculates the distance of a test point to the plane.
 The signed distance is positive if the origin of the coordinate system and the test point
 are on opposite sides of the plane and negative if they are on the same side.

 input parameters:
 point: test point
 planeCenter: a point on the plane
 planeNormal: normal vector of the plane
void Track2ToLine(TVector3& Pfinal, TVector3& Pwire, Int_t& Iflag, Double_t& Dist, Double_t& Length, const TVector3& X1, const TVector3& X2, const TVector3& w1, const TVector3& w2)
 Code from GEANE.

 Closest approach to a line from 2 GEANE points

 METHOD: the nearest points on the two lines
         x1,x2 and w1,w2 is found.
         The method is described in:
  http://softsurfer.com/Archive/algorithm_0106/algorithm_0106.htm
  http://www.geometrictools.com/Documentation/DistanceLine3Line3.pdf.

 INPUT: x1, x2   closest appoach GEANE points
        w1, w2   points of the line  (wire)  to approach

 OUTPUT: Pfinal  point of closest approach on the track
         Pwire    point of closest approach on the wire
         Dist    distance between Pfian and w1
         Length  arc length to add to the GEANE length of x1
         Iflag   =1 when Pwire is outside [w1,w2]
                 In this case, when w1 and w2 are the extremes
                 of the wire, the user could remake the procedure
                 by calling Track3ToPoint or Track2ToPoint, where the
                 Point is w1 or w2;
                 = 2 when the two lines are parallel and the solution
                 does not exists.

 Authors: Andrea Fontana and Alberto Rotondi 20 MAy 2007

void TransModuleToSector(Double_t& x, Double_t& y, Double_t& z, Int_t sector, Int_t module)
void TransLayerToSector(Double_t& x, Double_t& y, Double_t& z, Int_t sector, Int_t module, Int_t layer)
HKalGeomTools()
{ }
virtual ~HKalGeomTools()
{ }