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

GeoScintMdlNode.h

Go to the documentation of this file.
00001 
00002 // $Id: GeoScintMdlNode.h,v 1.6 2005/06/27 16:47:06 schubert Exp $
00003 //
00004 // GeoScintMdlNode
00005 //
00006 // GeoScintMdlNode is a specialized GeoNode to help keep track of information
00007 // identifying this module.
00008 // Modeled after R. Hatcher's UgliScintMdlNode class
00009 //
00010 // Author:  S. Kasahara  03/05
00012 
00013 #ifndef GEOSCINTMDLNODE_H
00014 #define GEOSCINTMDLNODE_H
00015 
00016 #include "GeoGeometry/GeoNode.h"  // base class
00017 #include "GeoGeometry/GeoScintMdlVolume.h" // inline method
00018 #include "Plex/PlexScintMdlId.h" // data member
00019 #include "Conventions/StripEnd.h"// method argument
00020 
00021 class GeoScintMdlNode : public GeoNode {
00022 
00023   friend class UgliScintMdlHandle; // handle inc/dec ref count
00024   friend class GeoGeometry; // geometry creator
00025   
00026  public:
00027 
00028   // Constructors/Destructor
00029   GeoScintMdlNode() : fScintMdlId(),fScintPlnNode(0),
00030                       fClearLenEast(0),fClearLenWest(0),
00031                       fWlsLenEast(0),fWlsLenWest(0) {} // def ctor for i/o
00032   virtual ~GeoScintMdlNode();
00033 
00034   // State testing methods
00035   GeoScintMdlVolume* GetScintMdlVolume() const 
00036     { return dynamic_cast<GeoScintMdlVolume*>(GetVolume()); }
00037   GeoScintPlnNode* GetScintPlnNode() const { return fScintPlnNode; }
00038 
00039   GeoStripNode* GetStripNode(const PlexStripEndId& seid) const;
00040   virtual PlexScintMdlId GetPlexScintMdlId() const { return fScintMdlId; }
00041   virtual PlexPlaneId GetPlexPlaneId() const; 
00042   virtual Int_t GetModuleNum() const;
00043   virtual Float_t GetClearFiber(StripEnd::StripEnd_t end) const;
00044   virtual Float_t GetExtraWlsFiber(StripEnd::StripEnd_t end) const;
00045   virtual std::vector<GeoStripNode*> GetStripNodePtrVector() const;
00046 
00047   Float_t GetZRotRelPlnRad() const;
00048   Float_t GetLPosRelPln() const;
00049   Float_t GetTPosRelPln() const;
00050   
00051   // State testing methods, work is passed to module volume
00052   virtual Int_t NumberOfStrips() const;
00053 
00054   // Dummy Set methods
00055   void SetZRotRelPlnRad(Float_t radians);
00056   void SetLTPosRelPln(Float_t lpos, Float_t tpos);
00057  
00058  protected:
00059 
00060   GeoScintMdlNode(GeoGeometry* geoGeometry, TGeoVolume* mdlvol,
00061                   TGeoMatrix* mdlmatrix, GeoScintPlnNode* parNode,
00062                   std::string nodename, const PlexScintMdlId& moduleid,
00063                   Float_t clearleneast, Float_t clearlenwest, 
00064                   Float_t wlsleneast, Float_t wlslenwest);
00065   
00066  private:
00067 
00068   // Avoid copy and assignment ctor by making them private and w/no imp
00069   GeoScintMdlNode(const GeoScintMdlNode& that);
00070   GeoScintMdlNode& operator=(const GeoScintMdlNode& that);
00071 
00072   // data members
00073   PlexScintMdlId fScintMdlId; // module id for this node
00074   GeoScintPlnNode* fScintPlnNode; // parent plane node
00075   Float_t fClearLenEast; // clear fiber length (east)
00076   Float_t fClearLenWest; // clear fiber length (west)
00077   Float_t fWlsLenEast;  // "extra" module specific wls fiber (east) (huh?)
00078   Float_t fWlsLenWest;  // "extra" module specific wls fiber (west)
00079   
00080 ClassDef(GeoScintMdlNode,1)
00081 };
00082 
00083 inline PlexPlaneId GeoScintMdlNode::GetPlexPlaneId() const {
00084   return PlexPlaneId(fScintMdlId); // id of plane containing this module
00085 }
00086 
00087 inline Int_t GeoScintMdlNode::GetModuleNum() const {
00088   return fScintMdlId.GetModule(); // module number in plane (0-7)
00089 }
00090 
00091 inline Int_t GeoScintMdlNode::NumberOfStrips() const {
00092   return (GetScintMdlVolume()->NumberOfStrips()); // number of strips in module
00093 }
00094 #endif // GEOSCINTMDLNODE_H

Generated on Mon Feb 15 11:06:45 2010 for loon by  doxygen 1.3.9.1