Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

UgliSteelPlnNode.h

Go to the documentation of this file.
00001 
00002 // $Id: UgliSteelPlnNode.h,v 1.8 2006/06/27 20:08:23 rhatcher Exp $
00003 //
00004 // UgliSteelPlnNode
00005 //
00006 // UgliSteelPlnNode is single steel plane
00007 //
00008 // Author:  R. Hatcher 2000.11.15
00009 //
00011 
00012 #ifndef UGLISTEELPLNNODE_H
00013 #define UGLISTEELPLNNODE_H
00014 
00015 #include "UgliGeometry/UgliSteelPlnABC.h"
00016 #include "UgliGeometry/UgliPlnNode.h"
00017 
00018 class UgliDbiTables;
00019 class VldContext;
00020 
00021 class UgliSteelPlnNode : public UgliSteelPlnABC, public UgliPlnNode {
00022 
00023    friend class UgliGeometry;        // the geometry creates these
00024    friend class UgliGeometryReroot;  // the geometry creates these
00025    friend class UgliSteelPlnHandle;  // handles play with our ref count
00026 
00027  public:
00028 
00029    // base TNode class has this public
00030    virtual ~UgliSteelPlnNode();
00031 
00032    virtual PlexPlaneId                    GetPlexPlaneId() const 
00033       {return fPlaneId;}
00034 
00035    virtual Float_t        GetHalfThickness() const;
00036    virtual TVector3       GetCenter() const;
00037    virtual Float_t        GetX0() const;
00038    virtual Float_t        GetY0() const;
00039    virtual Float_t        GetZ0() const;
00040 
00041    // convert between world and steel plane coordinates
00042    virtual TVector3       GlobalToLocal(const TVector3& global) const;
00043    virtual TVector3       LocalToGlobal(const TVector3& local) const;
00044    virtual TVector3       GlobalToLocalVect(const TVector3& global) const;
00045    virtual TVector3       LocalToGlobalVect(const TVector3& local) const;
00046 
00047    virtual UgliGeometry  *GetUgliGeometry() const { return fUgliGeometry; }
00048 
00049  public:
00050 
00051    // Avoid creating UgliStrip without a reference 
00052    // to something having a Validity object
00053    UgliSteelPlnNode();  // should be protected, but needed for i/o
00054 
00055  protected:
00056 
00057    // inc/dec of references to this object should also that of UgliGeometry
00058    virtual void           IncrementRef();
00059    virtual void           DecrementRef();
00060 
00061    // ctor that old REROOT-based UgliGeometry uses in constructing
00062    UgliSteelPlnNode(UgliGeometry *ugligeom, const PlexPlaneId planeid);
00063 
00064    // ctor for DBI driven UgliGeometry
00065    UgliSteelPlnNode(const PlexPlaneId planeid, UgliGeometry *ugligeom,
00066                     const UgliDbiTables& ugliTables);
00067 
00068    // used by GetCenter, Get[X,Y,Z]0
00069    void TransformLocal2Global(Double_t *lxyz, Double_t *gxyz) const;
00070 
00071  private:
00072 
00073    // avoid copy and assignment ctor by making them private and w/ no imp
00074    UgliSteelPlnNode(const UgliSteelPlnNode& that); 
00075    UgliSteelPlnNode& operator=(const UgliSteelPlnNode& ugh);
00076 
00077    ClassDef(UgliSteelPlnNode,1)
00078 };
00079 
00080 #endif // UGLISTEELPLNNODE_H

Generated on Mon Nov 23 05:28:45 2009 for loon by  doxygen 1.3.9.1