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

UgliScintMdlHandle Class Reference

#include <UgliScintMdlHandle.h>

Inheritance diagram for UgliScintMdlHandle:

UgliScintMdlABC List of all members.

Public Member Functions

 UgliScintMdlHandle (UgliScintMdlNode *mdlNode)
 UgliScintMdlHandle (GeoScintMdlNode *mdlNode)
 UgliScintMdlHandle (const UgliScintMdlHandle &that)
UgliScintMdlHandleoperator= (const UgliScintMdlHandle &that)
 UgliScintMdlHandle ()
virtual ~UgliScintMdlHandle ()
virtual Bool_t IsGeo () const
virtual Bool_t IsValid () const
virtual Bool_t IsFrozen () const
virtual PlexScintMdlId GetPlexScintMdlId () const
virtual PlexPlaneId GetPlexPlaneId () const
virtual Int_t GetModuleNum () const
virtual Int_t NumberOfStrips () const
virtual Float_t GetClearFiber (const StripEnd::StripEnd_t end) const
virtual Float_t GetExtraWlsFiber (const StripEnd::StripEnd_t end) const
UgliScintPlnHandle GetScintPlnHandle () const
virtual TVector3 GlobalToLocal (const TVector3 &global, const Bool_t globalInXYZ=true) const
virtual TVector3 LocalToGlobal (const TVector3 &local, const Bool_t globalInXYZ=true) const
Float_t GetZRotRelPlnRad () const
Float_t GetLPosRelPln () const
Float_t GetTPosRelPln () const
Bool_t AttemptSet (const char *what="?") const
void SetZRotRelPlnRad (Float_t radians)
void SetLTPosRelPln (Float_t lpos, Float_t tpos)
void RotateRelPlnBy (Float_t deltaRadians)
void ShiftLTPosRelPlnBy (Float_t dlpos, Float_t dtpos)

Protected Attributes

UgliScintMdlNodefUgliScintMdlNode
GeoScintMdlNodefGeoScintMdlNode

Constructor & Destructor Documentation

UgliScintMdlHandle::UgliScintMdlHandle UgliScintMdlNode mdlNode  ) 
 

Definition at line 44 of file UgliScintMdlHandle.cxx.

References fUgliScintMdlNode, and UgliScintMdlNode::IncrementRef().

00045   : fUgliScintMdlNode(node),fGeoScintMdlNode(0)
00046 {
00047    // ctor keeps reference count up-to-date
00048  
00049    if (fUgliScintMdlNode) fUgliScintMdlNode->IncrementRef();
00050 }

UgliScintMdlHandle::UgliScintMdlHandle GeoScintMdlNode mdlNode  ) 
 

Definition at line 53 of file UgliScintMdlHandle.cxx.

References fGeoScintMdlNode, and GeoNode::IncrementRef().

00054   : fUgliScintMdlNode(0),fGeoScintMdlNode(node)
00055 {
00056    // ctor keeps reference count up-to-date
00057 
00058    if (fGeoScintMdlNode) fGeoScintMdlNode->IncrementRef();
00059 }

UgliScintMdlHandle::UgliScintMdlHandle const UgliScintMdlHandle that  ) 
 

Definition at line 63 of file UgliScintMdlHandle.cxx.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoNode::IncrementRef(), and UgliScintMdlNode::IncrementRef().

00064    : UgliScintMdlABC(), 
00065      fUgliScintMdlNode(that.fUgliScintMdlNode),
00066      fGeoScintMdlNode(that.fGeoScintMdlNode)
00067 {
00068    // copy constructor keeps reference counts up-to-date
00069 
00070    if (fUgliScintMdlNode) fUgliScintMdlNode->IncrementRef();
00071    if (fGeoScintMdlNode) fGeoScintMdlNode->IncrementRef();
00072 }

UgliScintMdlHandle::UgliScintMdlHandle  ) 
 

Definition at line 25 of file UgliScintMdlHandle.cxx.

References MSG.

00026   : fUgliScintMdlNode(0),fGeoScintMdlNode(0)
00027 {
00028    // Default constructor
00029 
00030    MSG("Ugli",Msg::kFatal) <<
00031       "UgliScintMdlHandle created by default ctor" << endl;
00032 //   assert(0);
00033 }

UgliScintMdlHandle::~UgliScintMdlHandle  )  [virtual]
 

Definition at line 36 of file UgliScintMdlHandle.cxx.

References GeoNode::DecrementRef(), UgliScintMdlNode::DecrementRef(), fGeoScintMdlNode, and fUgliScintMdlNode.

00037 {
00038    // handle deletion updates reference count
00039    if (fUgliScintMdlNode) fUgliScintMdlNode->DecrementRef();
00040    if (fGeoScintMdlNode) fGeoScintMdlNode->DecrementRef();
00041 }


Member Function Documentation

Bool_t UgliScintMdlHandle::AttemptSet const char *  what = "?"  )  const
 

Definition at line 103 of file UgliScintMdlHandle.cxx.

References GetPlexScintMdlId(), IsFrozen(), and MSG.

Referenced by SetLTPosRelPln(), and SetZRotRelPlnRad().

00104 {
00105   if (!IsFrozen()) return true;
00106 
00107   MSG("Ugli",Msg::kError) 
00108     << "AttemptSet " << what << " on Frozen " 
00109     << GetPlexScintMdlId() << " twarted!" << endl;
00110   return false;
00111 }

Float_t UgliScintMdlHandle::GetClearFiber const StripEnd::StripEnd_t  end  )  const [inline, virtual]
 

Implements UgliScintMdlABC.

Definition at line 113 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetClearFiber(), UgliScintMdlNode::GetClearFiber(), and IsGeo().

Referenced by GeoValidate::TestScintMdl_GetClearFiber().

00114 { if ( !IsGeo() ) return fUgliScintMdlNode->GetClearFiber(end);
00115   else            return (fGeoScintMdlNode ->GetClearFiber(end))*Munits::cm; } 

Float_t UgliScintMdlHandle::GetExtraWlsFiber const StripEnd::StripEnd_t  end  )  const [inline, virtual]
 

Implements UgliScintMdlABC.

Definition at line 117 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetExtraWlsFiber(), UgliScintMdlNode::GetExtraWlsFiber(), and IsGeo().

Referenced by GeoValidate::TestScintMdl_GetExtraWlsFiber().

00118 { if ( !IsGeo() ) return fUgliScintMdlNode->GetExtraWlsFiber(end);
00119   else            return (fGeoScintMdlNode->GetExtraWlsFiber(end))*Munits::cm;}

Float_t UgliScintMdlHandle::GetLPosRelPln  )  const [inline]
 

Definition at line 125 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetLPosRelPln(), UgliScintMdlNode::GetLPosRelPln(), and IsGeo().

Referenced by ShiftLTPosRelPlnBy(), and GeoValidate::TestScintMdl_GetLPosRelPln().

00126 { if ( !IsGeo() ) return fUgliScintMdlNode->GetLPosRelPln();
00127   else            return (fGeoScintMdlNode ->GetLPosRelPln())*Munits::cm; }

Int_t UgliScintMdlHandle::GetModuleNum  )  const [inline, virtual]
 

Implements UgliScintMdlABC.

Definition at line 105 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetModuleNum(), UgliScintMdlNode::GetModuleNum(), and IsGeo().

Referenced by StraightTrackAlignment::ApplyTrack(), and GeoValidate::TestScintMdl_GetModuleNum().

00106 { if ( !IsGeo() ) return fUgliScintMdlNode->GetModuleNum(); 
00107   else            return fGeoScintMdlNode ->GetModuleNum(); }

PlexPlaneId UgliScintMdlHandle::GetPlexPlaneId  )  const [inline, virtual]
 

Implements UgliScintMdlABC.

Definition at line 101 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetPlexPlaneId(), UgliScintMdlNode::GetPlexPlaneId(), and IsGeo().

Referenced by StraightTrackAlignment::ApplyTrack(), and GeoValidate::TestScintMdl_GetPlexPlaneId().

00102 { if ( !IsGeo() ) return fUgliScintMdlNode->GetPlexPlaneId(); 
00103   else            return fGeoScintMdlNode ->GetPlexPlaneId(); }

PlexScintMdlId UgliScintMdlHandle::GetPlexScintMdlId  )  const [inline, virtual]
 

Implements UgliScintMdlABC.

Definition at line 97 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetPlexScintMdlId(), UgliScintMdlNode::GetPlexScintMdlId(), and IsGeo().

Referenced by AttemptSet(), GlobalToLocal(), LocalToGlobal(), StraightTrackAlignment::LookupScintModule(), GeoValidate::TestScintMdl(), GeoValidate::TestScintMdl_GetClearFiber(), GeoValidate::TestScintMdl_GetExtraWlsFiber(), GeoValidate::TestScintMdl_GetLPosRelPln(), GeoValidate::TestScintMdl_GetModuleNum(), GeoValidate::TestScintMdl_GetPlexPlaneId(), GeoValidate::TestScintMdl_GetPlexScintMdlId(), GeoValidate::TestScintMdl_GetScintPlnHandle(), GeoValidate::TestScintMdl_GetTPosRelPln(), GeoValidate::TestScintMdl_GetZRotRelPlnRad(), GeoValidate::TestScintMdl_GlobalToLocal(), GeoValidate::TestScintMdl_LocalToGlobal(), GeoValidate::TestScintMdl_NumberOfStrips(), GeoValidate::TestScintPln_GetScintMdlHandleVector(), and GeoValidate::TestStrip_GetScintMdlHandle().

00098 { if ( !IsGeo() ) return fUgliScintMdlNode->GetPlexScintMdlId(); 
00099   else            return fGeoScintMdlNode ->GetPlexScintMdlId(); }

UgliScintPlnHandle UgliScintMdlHandle::GetScintPlnHandle  )  const
 

Definition at line 95 of file UgliScintMdlHandle.cxx.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetScintPlnNode(), UgliScintMdlNode::GetScintPlnNode(), and IsGeo().

Referenced by GeoValidate::TestScintMdl_GetScintPlnHandle().

00096 { if (!IsGeo()) 
00097     return UgliScintPlnHandle(fUgliScintMdlNode->GetScintPlnNode()); 
00098   else
00099     return UgliScintPlnHandle(fGeoScintMdlNode->GetScintPlnNode()); 
00100 }

Float_t UgliScintMdlHandle::GetTPosRelPln  )  const [inline]
 

Definition at line 129 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetTPosRelPln(), UgliScintMdlNode::GetTPosRelPln(), and IsGeo().

Referenced by ShiftLTPosRelPlnBy(), and GeoValidate::TestScintMdl_GetTPosRelPln().

00130 { if ( !IsGeo() ) return fUgliScintMdlNode->GetTPosRelPln(); 
00131   else            return (fGeoScintMdlNode ->GetTPosRelPln())*Munits::cm; }

Float_t UgliScintMdlHandle::GetZRotRelPlnRad  )  const [inline]
 

Definition at line 121 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoScintMdlNode::GetZRotRelPlnRad(), UgliScintMdlNode::GetZRotRelPlnRad(), and IsGeo().

Referenced by RotateRelPlnBy(), and GeoValidate::TestScintMdl_GetZRotRelPlnRad().

00122 { if ( !IsGeo() ) return fUgliScintMdlNode->GetZRotRelPlnRad();
00123   else            return fGeoScintMdlNode ->GetZRotRelPlnRad(); }

TVector3 UgliScintMdlHandle::GlobalToLocal const TVector3 &  global,
const Bool_t  globalInXYZ = true
const [virtual]
 

Definition at line 134 of file UgliScintMdlHandle.cxx.

References fGeoScintMdlNode, fUgliScintMdlNode, DataUtil::GetDetector(), GetPlexScintMdlId(), GeoNode::GlobalToLocal(), UgliScintMdlNode::GlobalToLocal(), IsGeo(), and Ugli::uvz2xyz().

Referenced by GeoValidate::TestScintMdl_GlobalToLocal().

00136 {
00137   // convert a global position into a local (volume) one
00138   // globalInXYZ determines whether result is in XYZ or UVZ
00139   TVector3 globalXYZ = (globalInXYZ) ? 
00140       global : Ugli::uvz2xyz(GetPlexScintMdlId().GetDetector(),global);
00141 
00142   if ( !IsGeo() ) 
00143       return fUgliScintMdlNode->GlobalToLocal(globalXYZ);
00144   else { 
00145       TVector3 scaledglobal(globalXYZ); scaledglobal *= 1./Munits::cm;
00146       return (fGeoScintMdlNode->GlobalToLocal(scaledglobal) *= Munits::cm); 
00147   } 
00148 }

Bool_t UgliScintMdlHandle::IsFrozen  )  const [inline, virtual]
 

Definition at line 93 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, GeoNode::GetGeoGeometry(), UgliScintMdlNode::GetUgliGeometry(), GeoGeometry::IsFrozen(), UgliGeometry::IsFrozen(), and IsGeo().

Referenced by AttemptSet().

00094 { if ( !IsGeo() ) return fUgliScintMdlNode->GetUgliGeometry()->IsFrozen(); 
00095   else            return fGeoScintMdlNode ->GetGeoGeometry() ->IsFrozen(); }

virtual Bool_t UgliScintMdlHandle::IsGeo  )  const [inline, virtual]
 

Definition at line 39 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode.

Referenced by GetClearFiber(), GetExtraWlsFiber(), GetLPosRelPln(), GetModuleNum(), GetPlexPlaneId(), GetPlexScintMdlId(), GetScintPlnHandle(), GetTPosRelPln(), GetZRotRelPlnRad(), GlobalToLocal(), IsFrozen(), IsValid(), LocalToGlobal(), NumberOfStrips(), SetLTPosRelPln(), and SetZRotRelPlnRad().

00039 { return (fGeoScintMdlNode != 0); }

Bool_t UgliScintMdlHandle::IsValid  )  const [inline, virtual]
 

Definition at line 89 of file UgliScintMdlHandle.h.

References IsGeo().

00090 { if ( !IsGeo() ) return (fUgliScintMdlNode) ? kTRUE : kFALSE; 
00091   else            return (fGeoScintMdlNode)  ? kTRUE : kFALSE; }

TVector3 UgliScintMdlHandle::LocalToGlobal const TVector3 &  local,
const Bool_t  globalInXYZ = true
const [virtual]
 

Definition at line 151 of file UgliScintMdlHandle.cxx.

References fGeoScintMdlNode, fUgliScintMdlNode, DataUtil::GetDetector(), GetPlexScintMdlId(), IsGeo(), GeoNode::LocalToGlobal(), UgliScintMdlNode::LocalToGlobal(), and Ugli::xyz2uvz().

Referenced by GeoValidate::TestScintMdl_GlobalToLocal(), and GeoValidate::TestScintMdl_LocalToGlobal().

00153 {
00154   // convert a global position into a local (volume) one
00155   // globalInXYZ determines whether result is in XYZ or UVZ
00156   TVector3 globalXYZ;
00157   if ( !IsGeo() ) 
00158       globalXYZ = fUgliScintMdlNode->LocalToGlobal(local);
00159   else { 
00160       TVector3 scaledlocal(local); scaledlocal *= 1./Munits::cm; 
00161       globalXYZ = (fGeoScintMdlNode ->LocalToGlobal(scaledlocal) *= Munits::cm);
00162   }
00163 
00164   if (globalInXYZ ) return globalXYZ;
00165   else              return Ugli::xyz2uvz(GetPlexScintMdlId().GetDetector(),
00166                                          globalXYZ);
00167 }

Int_t UgliScintMdlHandle::NumberOfStrips  )  const [inline, virtual]
 

Implements UgliScintMdlABC.

Definition at line 109 of file UgliScintMdlHandle.h.

References fGeoScintMdlNode, fUgliScintMdlNode, IsGeo(), GeoScintMdlNode::NumberOfStrips(), and UgliScintMdlNode::NumberOfStrips().

Referenced by GeoValidate::TestScintMdl_NumberOfStrips().

00110 { if ( !IsGeo() ) return fUgliScintMdlNode->NumberOfStrips();
00111   else            return fGeoScintMdlNode ->NumberOfStrips(); }

UgliScintMdlHandle & UgliScintMdlHandle::operator= const UgliScintMdlHandle that  ) 
 

Definition at line 75 of file UgliScintMdlHandle.cxx.

References GeoNode::DecrementRef(), UgliScintMdlNode::DecrementRef(), fGeoScintMdlNode, fUgliScintMdlNode, GeoNode::IncrementRef(), and UgliScintMdlNode::IncrementRef().

00076 {
00077    // assignment keeps reference counts up-to-date
00078 
00079    if (fUgliScintMdlNode) fUgliScintMdlNode->DecrementRef();
00080    if (fGeoScintMdlNode) fGeoScintMdlNode->DecrementRef();
00081 
00082    fUgliScintMdlNode = that.fUgliScintMdlNode;
00083    fGeoScintMdlNode = that.fGeoScintMdlNode;
00084 
00085    if (fUgliScintMdlNode) fUgliScintMdlNode->IncrementRef();
00086    if (fGeoScintMdlNode) fGeoScintMdlNode->IncrementRef();
00087 
00088    return *this;
00089 }

void UgliScintMdlHandle::RotateRelPlnBy Float_t  deltaRadians  )  [inline]
 

Definition at line 133 of file UgliScintMdlHandle.h.

References GetZRotRelPlnRad(), and SetZRotRelPlnRad().

00134 { SetZRotRelPlnRad(GetZRotRelPlnRad()+deltaRadians); }

void UgliScintMdlHandle::SetLTPosRelPln Float_t  lpos,
Float_t  tpos
 

Definition at line 121 of file UgliScintMdlHandle.cxx.

References AttemptSet(), fGeoScintMdlNode, fUgliScintMdlNode, IsGeo(), GeoScintMdlNode::SetLTPosRelPln(), and UgliScintMdlNode::SetLTPosRelPln().

Referenced by ShiftLTPosRelPlnBy().

00122 {
00123   if (!AttemptSet("LTPosRelPln")) return;
00124   if (!IsGeo())fUgliScintMdlNode->SetLTPosRelPln(lpos,tpos);
00125   else {
00126     lpos *= 1./Munits::cm;
00127     tpos *= 1./Munits::cm;
00128     fGeoScintMdlNode->SetLTPosRelPln(lpos,tpos);
00129   }
00130   
00131 }

void UgliScintMdlHandle::SetZRotRelPlnRad Float_t  radians  ) 
 

Definition at line 113 of file UgliScintMdlHandle.cxx.

References AttemptSet(), fGeoScintMdlNode, fUgliScintMdlNode, IsGeo(), GeoScintMdlNode::SetZRotRelPlnRad(), and UgliScintMdlNode::SetZRotRelPlnRad().

Referenced by RotateRelPlnBy().

00114 {
00115   if (!AttemptSet("ZRotRelPlnRad")) return;
00116   if (!IsGeo())fUgliScintMdlNode->SetZRotRelPlnRad(radians);
00117   else fGeoScintMdlNode->SetZRotRelPlnRad(radians);
00118   
00119 }

void UgliScintMdlHandle::ShiftLTPosRelPlnBy Float_t  dlpos,
Float_t  dtpos
[inline]
 

Definition at line 136 of file UgliScintMdlHandle.h.

References GetLPosRelPln(), GetTPosRelPln(), and SetLTPosRelPln().

00137 { SetLTPosRelPln(GetLPosRelPln()+dlpos,GetTPosRelPln()+dtpos); }


Member Data Documentation

GeoScintMdlNode* UgliScintMdlHandle::fGeoScintMdlNode [protected]
 

Definition at line 76 of file UgliScintMdlHandle.h.

Referenced by GetClearFiber(), GetExtraWlsFiber(), GetLPosRelPln(), GetModuleNum(), GetPlexPlaneId(), GetPlexScintMdlId(), GetScintPlnHandle(), GetTPosRelPln(), GetZRotRelPlnRad(), GlobalToLocal(), IsFrozen(), IsGeo(), LocalToGlobal(), NumberOfStrips(), operator=(), SetLTPosRelPln(), SetZRotRelPlnRad(), UgliScintMdlHandle(), and ~UgliScintMdlHandle().

UgliScintMdlNode* UgliScintMdlHandle::fUgliScintMdlNode [protected]
 

Definition at line 75 of file UgliScintMdlHandle.h.

Referenced by GetClearFiber(), GetExtraWlsFiber(), GetLPosRelPln(), GetModuleNum(), GetPlexPlaneId(), GetPlexScintMdlId(), GetScintPlnHandle(), GetTPosRelPln(), GetZRotRelPlnRad(), GlobalToLocal(), IsFrozen(), LocalToGlobal(), NumberOfStrips(), operator=(), SetLTPosRelPln(), SetZRotRelPlnRad(), UgliScintMdlHandle(), and ~UgliScintMdlHandle().


The documentation for this class was generated from the following files:
Generated on Mon Nov 23 05:33:25 2009 for loon by  doxygen 1.3.9.1