TGeoHalfSpace.h

Go to the documentation of this file.
00001 // @(#) :$Id: TGeoHalfSpace.h 21425 2007-12-17 15:59:27Z brun $
00002 // Author: Mihaela Gheata   03/08/04
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TGeoHalfSpace
00013 #define ROOT_TGeoHalfSpace
00014 
00015 #ifndef ROOT_TGeoBBox
00016 #include "TGeoBBox.h"
00017 #endif
00018 
00019 ////////////////////////////////////////////////////////////////////////////
00020 //                                                                        //
00021 // TGeoHalfSpace - A half-space defined by:                               // 
00022 //            p[3] - an arbitrary point on the plane                      //
00023 //            n[3] - normal at the plane in point P                       //
00024 //    A half-space is not really a shape, because it is infinite. The     //
00025 //    normal vector points "outside" the half-space                       //
00026 //                                                                        //
00027 ////////////////////////////////////////////////////////////////////////////
00028 
00029 
00030 class TGeoHalfSpace : public TGeoBBox
00031 {
00032 private:
00033    Double_t              fP[3];
00034    Double_t              fN[3];
00035 public:
00036    // constructors
00037    TGeoHalfSpace();
00038    TGeoHalfSpace(const char *name, Double_t *p, Double_t *n);
00039    TGeoHalfSpace(Double_t *params);
00040    // destructor
00041    virtual ~TGeoHalfSpace();
00042    // methods
00043    virtual Double_t      Capacity() const {return 0.;}
00044    virtual void          ComputeBBox() {;}
00045    virtual void          ComputeNormal(Double_t *point, Double_t *dir, Double_t *norm);
00046    virtual Bool_t        Contains(Double_t *point) const;
00047    virtual Int_t         DistancetoPrimitive(Int_t px, Int_t py);
00048    virtual Double_t      DistFromInside(Double_t *point, Double_t *dir, Int_t iact=1, 
00049                                    Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
00050    virtual Double_t      DistFromOutside(Double_t *point, Double_t *dir, Int_t iact=1, 
00051                                    Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
00052    virtual TGeoVolume   *Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, 
00053                                 Double_t start, Double_t step);
00054    virtual Double_t     *GetPoint()    {return fP;}
00055    virtual Double_t     *GetNorm()     {return fN;}
00056    virtual void          GetBoundingCylinder(Double_t * /*param*/) const {;}
00057    virtual TGeoShape    *GetMakeRuntimeShape(TGeoShape * /*mother*/, TGeoMatrix * /*mat*/) const {return 0;}
00058    virtual void          GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const;
00059    virtual Int_t         GetNmeshVertices() const {return 0;}
00060    virtual void          InspectShape() const;
00061    virtual Bool_t        IsCylType() const {return kFALSE;}
00062    virtual Double_t      Safety(Double_t *point, Bool_t in=kTRUE) const;
00063    virtual void          SavePrimitive(ostream &out, Option_t *option = "");
00064    virtual void          SetDimensions(Double_t *param);
00065    virtual void          SetPoints(Double_t * /*points*/) const {;}
00066    virtual void          SetPoints(Float_t * /*points*/) const {;}
00067    virtual void          Sizeof3D() const {;}
00068 
00069    ClassDef(TGeoHalfSpace, 1)         // half-space class
00070 };
00071 
00072 
00073 #endif

Generated on Tue Jul 5 14:12:14 2011 for ROOT_528-00b_version by  doxygen 1.5.1