00001 00002 // 00003 // GeoScintPlnNode 00004 // 00005 // GeoScintPlnNode is a specialized GeoPlnNode to provide methods 00006 // specialized to a scint pln. 00007 // 00008 // Modeled after R. Hatcher's UgliScintPlnNode class 00009 // 00010 // Author: S. Kasahara 07/04 00012 00013 #ifndef GEOSCINTPLNNODE_H 00014 #define GEOSCINTPLNNODE_H 00015 00016 #include "GeoGeometry/GeoPlnNode.h" // base class 00017 #include "GeoGeometry/GeoScintPlnVolume.h" 00018 00019 class PlexStripEndId; 00020 class GeoScintPlnNode; 00021 class GeoStripNode; 00022 00023 class GeoScintPlnNode : public GeoPlnNode { 00024 00025 friend class GeoGeometry; // every node belongs to its geometry creator 00026 00027 public: 00028 // Constructors & destructors 00029 GeoScintPlnNode() {} // default constructor for i/o 00030 virtual ~GeoScintPlnNode(); 00031 00032 // State testing methods 00033 GeoStripNode* GetClosestStrip(Float_t tpos, Float_t orthCoord=999999.) const; 00034 virtual GeoStripNode* GetStripNode(const PlexStripEndId& seid) const; 00035 virtual Int_t NumberOfStrips() const; 00036 virtual Int_t NumberOfModules() const; 00037 virtual std::vector<GeoStripNode*> GetStripNodePtrVector() const; 00038 virtual std::vector<GeoScintMdlNode*> GetScintMdlNodePtrVector() const; 00039 00040 Float_t GetZRotRelSteelRad() const; 00041 Float_t GetX0RelSteel() const; 00042 Float_t GetY0RelSteel() const; 00043 00044 // Dummy 00045 void SetZRotRelSteelRad(Float_t radians); 00046 void SetXY0RelSteel(Float_t x0, Float_t y0); 00047 00048 protected: 00049 00050 GeoScintPlnNode(GeoGeometry* geoGeometry, TGeoVolume* plnvol, 00051 TGeoMatrix* plnmatrix, TGeoVolume* parVolume, 00052 std::string globalpath, std::string nodename, 00053 const PlexPlaneId& planeid); 00054 00055 virtual GeoScintPlnVolume* GetScintPlnVolume() const 00056 { return dynamic_cast<GeoScintPlnVolume*>(this->GetVolume()); } 00057 00058 private: 00059 00060 // Avoid copy and assignment ctor by making them private and w/no imp 00061 GeoScintPlnNode(const GeoScintPlnNode& that); 00062 GeoScintPlnNode& operator=(const GeoScintPlnNode& that); 00063 00064 00065 ClassDef(GeoScintPlnNode,1) 00066 }; 00067 #endif // GEOSCINTPLNNODE_H
1.3.9.1