00001 00002 // $Id: GeoPlnNode.h,v 1.3 2005/06/06 03:46:53 schubert Exp $ 00003 // 00004 // GeoPlnNode 00005 // 00006 // GeoPlnNode is a specialized GeoNode to help keep track of information 00007 // identifying this plane. 00008 // Modeled after R. Hatcher's UgliPlnNode class 00009 // 00010 // Author: S. Kasahara 06/04 00012 00013 #ifndef GEOPLNNODE_H 00014 #define GEOPLNNODE_H 00015 00016 #include "GeoGeometry/GeoNode.h" // base class 00017 #include "Plex/PlexPlaneId.h" // data member 00018 00019 class GeoPlnNode : public GeoNode { 00020 00021 friend class UgliPlnHandle; // handle inc/dec ref count 00022 00023 public: 00024 00025 GeoPlnNode() : fPlaneId() {} // default constructor for i/o 00026 virtual ~GeoPlnNode(); 00027 00028 virtual PlexPlaneId GetPlexPlaneId() const { return fPlaneId; } 00029 00030 virtual Float_t GetHalfThickness() const; 00031 virtual TVector3 GetCenter() const; // in global coord 00032 virtual Float_t GetX0() const; // in global coord 00033 virtual Float_t GetY0() const; // in global coord 00034 virtual Float_t GetZ0() const; // in global coord 00035 00036 protected: 00037 00038 GeoPlnNode(GeoGeometry* geoGeometry, TGeoVolume* plnvol, 00039 TGeoMatrix* plnmatrix, TGeoVolume* parVol, 00040 std::string globalpath, std::string nodename, 00041 const PlexPlaneId& planeid); 00042 00043 private: 00044 00045 // Avoid copy and assignment ctor by making them private and w/no imp 00046 GeoPlnNode(const GeoPlnNode& that); 00047 GeoPlnNode& operator=(const GeoPlnNode& that); 00048 00049 // data members 00050 PlexPlaneId fPlaneId; // plane id info for this node 00051 00052 ClassDef(GeoPlnNode,1) 00053 }; 00054 #endif // GEOPLNNODE_H
1.3.9.1