GeoScintMdlNode Class Reference

#include <GeoScintMdlNode.h>

Inheritance diagram for GeoScintMdlNode:
GeoNode GeoRefCnt

List of all members.

Public Member Functions

 GeoScintMdlNode ()
virtual ~GeoScintMdlNode ()
GeoScintMdlVolumeGetScintMdlVolume () const
GeoScintPlnNodeGetScintPlnNode () const
GeoStripNodeGetStripNode (const PlexStripEndId &seid) const
virtual PlexScintMdlId GetPlexScintMdlId () const
virtual PlexPlaneId GetPlexPlaneId () const
virtual Int_t GetModuleNum () const
virtual Float_t GetClearFiber (StripEnd::StripEnd_t end) const
virtual Float_t GetExtraWlsFiber (StripEnd::StripEnd_t end) const
virtual std::vector
< GeoStripNode * > 
GetStripNodePtrVector () const
Float_t GetZRotRelPlnRad () const
Float_t GetLPosRelPln () const
Float_t GetTPosRelPln () const
virtual Int_t NumberOfStrips () const
void SetZRotRelPlnRad (Float_t radians)
void SetLTPosRelPln (Float_t lpos, Float_t tpos)

Protected Member Functions

 GeoScintMdlNode (GeoGeometry *geoGeometry, TGeoVolume *mdlvol, TGeoMatrix *mdlmatrix, GeoScintPlnNode *parNode, std::string nodename, const PlexScintMdlId &moduleid, Float_t clearleneast, Float_t clearlenwest, Float_t wlsleneast, Float_t wlslenwest)

Private Member Functions

 GeoScintMdlNode (const GeoScintMdlNode &that)
GeoScintMdlNodeoperator= (const GeoScintMdlNode &that)

Private Attributes

PlexScintMdlId fScintMdlId
GeoScintPlnNodefScintPlnNode
Float_t fClearLenEast
Float_t fClearLenWest
Float_t fWlsLenEast
Float_t fWlsLenWest

Friends

class UgliScintMdlHandle
class GeoGeometry

Detailed Description

Definition at line 21 of file GeoScintMdlNode.h.


Constructor & Destructor Documentation

GeoScintMdlNode::GeoScintMdlNode (  )  [inline]

Definition at line 29 of file GeoScintMdlNode.h.

00029                     : fScintMdlId(),fScintPlnNode(0),
00030                       fClearLenEast(0),fClearLenWest(0),
00031                       fWlsLenEast(0),fWlsLenWest(0) {} // def ctor for i/o

GeoScintMdlNode::~GeoScintMdlNode (  )  [virtual]

Definition at line 41 of file GeoScintMdlNode.cxx.

References GeoRefCnt::CountRef(), Msg::kWarning, MSG, and GeoNode::UpdateGlobalManager().

00041                                   {
00042   // Destructor should delete any owned objects
00043 
00044   UpdateGlobalManager();
00045   
00046   if ( CountRef() ) {
00047     MSG("Geo",Msg::kWarning)
00048       << "GeoScintMdlNode destructor " 
00049       << " still had " << CountRef()
00050       << " outstanding references " << endl;
00051   }
00052 
00053 }

GeoScintMdlNode::GeoScintMdlNode ( GeoGeometry geoGeometry,
TGeoVolume *  mdlvol,
TGeoMatrix *  mdlmatrix,
GeoScintPlnNode parNode,
std::string  nodename,
const PlexScintMdlId moduleid,
Float_t  clearleneast,
Float_t  clearlenwest,
Float_t  wlsleneast,
Float_t  wlslenwest 
) [protected]

Definition at line 23 of file GeoScintMdlNode.cxx.

00028   : GeoNode(geom,mdlvol,mdlmatrix,plnNode->GetVolume(),
00029             plnNode->GetGlobalPath()+"/"+nodename,nodename),
00030     fScintMdlId(mdlId),fScintPlnNode(plnNode),fClearLenEast(clearleneast),
00031     fClearLenWest(clearlenwest),fWlsLenEast(wlsleneast),
00032     fWlsLenWest(wlslenwest) {
00033     // Normal  constructor
00034     // Protected
00035     
00036   UpdateGlobalManager();
00037   
00038 }

GeoScintMdlNode::GeoScintMdlNode ( const GeoScintMdlNode that  )  [private]

Member Function Documentation

Float_t GeoScintMdlNode::GetClearFiber ( StripEnd::StripEnd_t  end  )  const [virtual]

Definition at line 56 of file GeoScintMdlNode.cxx.

References bfld::AsString(), PlexScintMdlId::AsString(), fClearLenEast, fClearLenWest, fScintMdlId, Msg::kDebug, StripEnd::kEast, StripEnd::kWest, and MSG.

00056                                                                         {
00057   // Return clear fiber length for specified module end
00058 
00059    Float_t clearfiber = 0;
00060    if      (stripend == StripEnd::kEast) clearfiber = fClearLenEast;
00061    else if (stripend == StripEnd::kWest) clearfiber = fClearLenWest;
00062 
00063    MSG("Geo",Msg::kDebug) << "GetClearFiber " << fScintMdlId.AsString()
00064                           << " end " << StripEnd::AsString(stripend)
00065                           << " clearfiber " << clearfiber << endl;
00066 
00067    return clearfiber;
00068 }

Float_t GeoScintMdlNode::GetExtraWlsFiber ( StripEnd::StripEnd_t  end  )  const [virtual]

Definition at line 71 of file GeoScintMdlNode.cxx.

References bfld::AsString(), PlexScintMdlId::AsString(), fScintMdlId, fWlsLenEast, fWlsLenWest, Msg::kDebug, StripEnd::kEast, StripEnd::kWest, and MSG.

Referenced by UgliScintMdlHandle::GetExtraWlsFiber(), and GeoStripNode::WlsPigtail().

00072                                                                          {
00073   // Return extra wls fiber length (beyond strip specific wls fiber length)
00074   // for specified module end
00075 
00076   Float_t extrawlsfiber = 0;
00077   if       (stripend == StripEnd::kEast) extrawlsfiber = fWlsLenEast;
00078   else if  (stripend == StripEnd::kWest) extrawlsfiber = fWlsLenWest;
00079   
00080   MSG("Geo",Msg::kDebug) << "GetExtraWlsFiber " << fScintMdlId.AsString()
00081                          << " end " << StripEnd::AsString(stripend)
00082                          << " extrawlsfiber " << extrawlsfiber << endl;
00083 
00084   return extrawlsfiber;
00085   
00086 }

Float_t GeoScintMdlNode::GetLPosRelPln (  )  const

Definition at line 89 of file GeoScintMdlNode.cxx.

References PlexScintMdlId::AsString(), fScintMdlId, Msg::kDebug, MSG, and GeoNode::UpdateGlobalManager().

00089                                              {
00090   // Return the lpos relative to plane (x-coord from translation matrix)
00091 
00092   UpdateGlobalManager();
00093 
00094   const Double_t* trans = GetMatrix() -> GetTranslation();
00095   
00096   MSG("Geo",Msg::kDebug) << "GetLPosRelPln " << fScintMdlId.AsString()
00097                          << " lposrelpln " << trans[0] << endl;
00098   return trans[0]; 
00099   
00100 }

Int_t GeoScintMdlNode::GetModuleNum (  )  const [inline, virtual]

Definition at line 87 of file GeoScintMdlNode.h.

References fScintMdlId, and PlexScintMdlId::GetModule().

Referenced by UgliScintMdlHandle::GetModuleNum().

00087                                                  {
00088   return fScintMdlId.GetModule(); // module number in plane (0-7)
00089 }

PlexPlaneId GeoScintMdlNode::GetPlexPlaneId (  )  const [inline, virtual]

Definition at line 83 of file GeoScintMdlNode.h.

References fScintMdlId.

Referenced by UgliScintMdlHandle::GetPlexPlaneId().

00083                                                          {
00084   return PlexPlaneId(fScintMdlId); // id of plane containing this module
00085 }

virtual PlexScintMdlId GeoScintMdlNode::GetPlexScintMdlId (  )  const [inline, virtual]

Definition at line 40 of file GeoScintMdlNode.h.

References fScintMdlId.

Referenced by GeoGeometry::BuildStrips(), and UgliScintMdlHandle::GetPlexScintMdlId().

00040 { return fScintMdlId; }

GeoScintMdlVolume* GeoScintMdlNode::GetScintMdlVolume (  )  const [inline]

Definition at line 35 of file GeoScintMdlNode.h.

Referenced by GetStripNode(), GetStripNodePtrVector(), and NumberOfStrips().

00036     { return dynamic_cast<GeoScintMdlVolume*>(GetVolume()); }

GeoScintPlnNode* GeoScintMdlNode::GetScintPlnNode (  )  const [inline]

Definition at line 37 of file GeoScintMdlNode.h.

References fScintPlnNode.

Referenced by UgliScintMdlHandle::GetScintPlnHandle(), and UgliStripHandle::GetScintPlnHandle().

00037 { return fScintPlnNode; }

GeoStripNode * GeoScintMdlNode::GetStripNode ( const PlexStripEndId seid  )  const

Definition at line 135 of file GeoScintMdlNode.cxx.

References PlexStripEndId::AsString(), PlexScintMdlId::AsString(), fScintMdlId, GetScintMdlVolume(), GeoScintMdlVolume::GetStripNode(), Msg::kDebug, MSG, and GeoNode::UpdateGlobalManager().

00135                                                                             {
00136   // Returns strip corresponding to the specified seid
00137 
00138   UpdateGlobalManager();
00139 
00140   GeoStripNode* stripnode = GetScintMdlVolume()->GetStripNode(seid);
00141 
00142   MSG("Geo",Msg::kDebug) << "Module node " << fScintMdlId.AsString() 
00143                          << " GetStripNode "  << seid.AsString() 
00144                          << " node ptr " << stripnode << endl;
00145  
00146   return stripnode;
00147    
00148 }

std::vector< GeoStripNode * > GeoScintMdlNode::GetStripNodePtrVector (  )  const [virtual]

Definition at line 151 of file GeoScintMdlNode.cxx.

References GetScintMdlVolume(), and GeoNode::UpdateGlobalManager().

Referenced by GeoScintPlnVolume::GetStripNodePtrVector().

00151                                                                       {
00152   // Returns strip corresponding to the specified seid
00153 
00154   UpdateGlobalManager();
00155 
00156   return (GetScintMdlVolume()->GetStripNodePtrVector());
00157    
00158 }

Float_t GeoScintMdlNode::GetTPosRelPln (  )  const

Definition at line 103 of file GeoScintMdlNode.cxx.

References PlexScintMdlId::AsString(), fScintMdlId, Msg::kDebug, MSG, and GeoNode::UpdateGlobalManager().

00103                                              {
00104   // Return the tpos relative to plane (y-coord from translation matrix)
00105 
00106   UpdateGlobalManager();
00107 
00108   const Double_t* trans = GetMatrix() -> GetTranslation();
00109 
00110   MSG("Geo",Msg::kDebug) << "GetTPosRelPln " << fScintMdlId.AsString()
00111                          << " tposrelpln " << trans[1] << endl;
00112 
00113   return trans[1];
00114   
00115 }

Float_t GeoScintMdlNode::GetZRotRelPlnRad (  )  const

Definition at line 119 of file GeoScintMdlNode.cxx.

References PlexScintMdlId::AsString(), fScintMdlId, Msg::kDebug, MSG, and GeoNode::UpdateGlobalManager().

Referenced by GeoStripNode::GetTPos(), and UgliScintMdlHandle::GetZRotRelPlnRad().

00119                                                 {
00120   // Return the zrot relative to plane in radians
00121 
00122   UpdateGlobalManager();
00123 
00124   const Double_t* rotmatrix = GetMatrix() -> GetRotationMatrix();
00125   Float_t zrotrelplnrad = TMath::ATan2(rotmatrix[3],rotmatrix[0]);
00126 
00127   MSG("Geo",Msg::kDebug) << "GetZRotRelPlnRad " << fScintMdlId.AsString()
00128                          << " zrotrelplnrad " << zrotrelplnrad << endl;
00129 
00130   return zrotrelplnrad;
00131    
00132 }

Int_t GeoScintMdlNode::NumberOfStrips (  )  const [inline, virtual]

Definition at line 91 of file GeoScintMdlNode.h.

References GetScintMdlVolume().

Referenced by UgliScintMdlHandle::NumberOfStrips().

00091                                                    {
00092   return (GetScintMdlVolume()->NumberOfStrips()); // number of strips in module
00093 }

GeoScintMdlNode& GeoScintMdlNode::operator= ( const GeoScintMdlNode that  )  [private]

Reimplemented from GeoNode.

void GeoScintMdlNode::SetLTPosRelPln ( Float_t  lpos,
Float_t  tpos 
)

Definition at line 173 of file GeoScintMdlNode.cxx.

References Msg::kWarning, MSG, and GeoNode::UpdateGlobalManager().

Referenced by UgliScintMdlHandle::SetLTPosRelPln().

00173                                                                        {
00174   // Dummy
00175 
00176   UpdateGlobalManager();
00177 
00178   MSG("Geo",Msg::kWarning)
00179     << "GeoScintMdlNode::SetLTPosRelPln not implemented yet." << endl;
00180   return;
00181 
00182 }

void GeoScintMdlNode::SetZRotRelPlnRad ( Float_t  radians  ) 

Definition at line 161 of file GeoScintMdlNode.cxx.

References Msg::kWarning, MSG, and GeoNode::UpdateGlobalManager().

Referenced by UgliScintMdlHandle::SetZRotRelPlnRad().

00161                                                           {
00162   // Dummy
00163 
00164   UpdateGlobalManager();
00165 
00166   MSG("Geo",Msg::kWarning)
00167     << "GeoScintMdlNode::SetZRotRelPlnRad not implemented yet." << endl;
00168   return;
00169 
00170 }


Friends And Related Function Documentation

friend class GeoGeometry [friend]

Reimplemented from GeoNode.

Definition at line 24 of file GeoScintMdlNode.h.

friend class UgliScintMdlHandle [friend]

Definition at line 23 of file GeoScintMdlNode.h.


Member Data Documentation

Float_t GeoScintMdlNode::fClearLenEast [private]

Definition at line 75 of file GeoScintMdlNode.h.

Referenced by GetClearFiber().

Float_t GeoScintMdlNode::fClearLenWest [private]

Definition at line 76 of file GeoScintMdlNode.h.

Referenced by GetClearFiber().

Definition at line 74 of file GeoScintMdlNode.h.

Referenced by GetScintPlnNode().

Float_t GeoScintMdlNode::fWlsLenEast [private]

Definition at line 77 of file GeoScintMdlNode.h.

Referenced by GetExtraWlsFiber().

Float_t GeoScintMdlNode::fWlsLenWest [private]

Definition at line 78 of file GeoScintMdlNode.h.

Referenced by GetExtraWlsFiber().


The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1