CMS 3D CMS Logo

VisDTGeometryTwig Class Reference

#include <VisFramework/VisEventSetup/interface/VisDTGeometryTwig.h>

Inheritance diagram for VisDTGeometryTwig:

VisQueuedTwig IgSimpleTwig VisEventObserver IgCompoundTwig IgTwig IgRepresentable

List of all members.

Public Member Functions

virtual void onNewEvent (const edm::Event &event, const edm::EventSetup &eventSetup)
virtual void update (IgRZRep *rep)
virtual void update (IgRPhiRep *rep)
virtual void update (Ig3DRep *rep)
virtual void update (IgTextRep *rep)
 VisDTGeometryTwig (IgState *state, IgTwig *parent, const std::string &name="", const int wheel=10, const int sector=0, const int station=0)
virtual ~VisDTGeometryTwig (void)
 Clean the scene graph.

Private Member Functions

void invalidate (void)

Private Attributes

SoSeparator * m_3dDet
bool m_3Ddone
VisAnnotateGeometry m_annotate
SoSeparator * m_rphiDet
bool m_rphidone
SoSeparator * m_rzDet
bool m_rzdone
const int m_sector
const int m_station
const int m_wheel


Detailed Description

Definition at line 25 of file VisDTGeometryTwig.h.


Constructor & Destructor Documentation

VisDTGeometryTwig::VisDTGeometryTwig ( IgState state,
IgTwig parent,
const std::string &  name = "",
const int  wheel = 10,
const int  sector = 0,
const int  station = 0 
)

Definition at line 23 of file VisDTGeometryTwig.cc.

00028     : VisQueuedTwig (state, parent, name),
00029       m_wheel (wheel),
00030       m_sector (sector),
00031       m_station (station),
00032       m_3dDet (NULL),
00033       m_rzDet (NULL),
00034       m_rphiDet (NULL),
00035       m_3Ddone (false),
00036       m_rzdone (false),
00037       m_rphidone (false),
00038       m_annotate (state, lat::CreateCallback (this, &VisDTGeometryTwig::invalidate))
00039 {}

VisDTGeometryTwig::~VisDTGeometryTwig ( void   )  [virtual]

Clean the scene graph.

Definition at line 42 of file VisDTGeometryTwig.cc.

References m_3dDet, m_rphiDet, m_rzDet, and NULL.

00043 {
00044     if (m_3dDet != NULL) m_3dDet->unref ();
00045     if (m_rzDet != NULL) m_rzDet->unref ();
00046     if (m_rphiDet != NULL) m_rphiDet->unref ();
00047 }


Member Function Documentation

void VisDTGeometryTwig::invalidate ( void   )  [private]

Definition at line 64 of file VisDTGeometryTwig.cc.

References m_3dDet, m_3Ddone, m_rphiDet, m_rphidone, m_rzDet, m_rzdone, NULL, and VisQueuedTwig::onBaseInvalidate().

Referenced by onNewEvent().

00065 {
00066     if (m_3dDet != NULL) m_3dDet->unref ();
00067     if (m_rzDet != NULL) m_rzDet->unref ();
00068     if (m_rphiDet != NULL) m_rphiDet->unref ();
00069     m_3Ddone = false;    
00070     m_rzdone = false;
00071     m_rphidone = false;
00072 
00073     VisQueuedTwig::onBaseInvalidate ();
00074 }

void VisDTGeometryTwig::onNewEvent ( const edm::Event event,
const edm::EventSetup eventSetup 
) [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 50 of file VisDTGeometryTwig.cc.

References ASSERT, DBSPlugin::get(), invalidate(), VisEventSetupService::muonGeomChanged(), VisQueuedTwig::onNewEvent(), and VisQueuedTwig::state().

00052 {
00053     // Get debugging dump.
00054     VisQueuedTwig::onNewEvent (event, eventSetup);
00055 
00056     VisEventSetupService *esService = VisEventSetupService::get (state ());
00057     ASSERT (esService);
00058 
00059     if (esService->muonGeomChanged ())
00060         invalidate ();
00061 }

void VisDTGeometryTwig::update ( IgRZRep rep  )  [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 163 of file VisDTGeometryTwig.cc.

References VisEventSetupService::annotateDTChambers(), ASSERT, VisEventSetupService::buildDTChambers(), Ig3DBaseRep::clear(), DBSPlugin::get(), m_annotate, m_rzDet, m_rzdone, m_sector, m_station, m_wheel, Ig3DBaseRep::node(), NULL, VisEventSetupService::RZDet, VisQueuedTwig::state(), VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().

00164 {
00165     // Get debugging dump.
00166     VisQueuedTwig::update (rep);
00167 
00168     IgQtLock ();
00169     rep->clear ();
00170 
00171     if (! m_rzdone)
00172     {
00173         VisEventSetupService *esService = VisEventSetupService::get (state ());
00174         ASSERT (esService);
00175 
00176         m_rzDet = esService->buildDTChambers (VisEventSetupService::RZDet, m_station, m_sector, m_wheel);
00177         if (m_rzDet == NULL) return;
00178 
00179         if (m_annotate.value ())
00180         {
00181             SoSeparator *sep = esService->annotateDTChambers (VisEventSetupService::RZDet, m_station, m_sector, m_wheel);
00182             if (sep != NULL) m_rzDet->addChild (sep);
00183         }
00184         
00185         m_rzDet->ref ();
00186         m_rzdone = true;
00187     }
00188     rep->node ()->addChild (m_rzDet);
00189 }

void VisDTGeometryTwig::update ( IgRPhiRep rep  )  [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 134 of file VisDTGeometryTwig.cc.

References VisEventSetupService::annotateDTChambers(), ASSERT, VisEventSetupService::buildDTChambers(), Ig3DBaseRep::clear(), DBSPlugin::get(), m_annotate, m_rphiDet, m_rphidone, m_sector, m_station, m_wheel, Ig3DBaseRep::node(), NULL, VisEventSetupService::RPhiDet, VisQueuedTwig::state(), VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().

00135 {
00136     // Get debugging dump.
00137     VisQueuedTwig::update (rep);
00138 
00139     IgQtLock ();
00140     rep->clear ();
00141 
00142     if (! m_rphidone)
00143     {
00144         VisEventSetupService *esService = VisEventSetupService::get (state ());
00145         ASSERT (esService);
00146 
00147         m_rphiDet = esService->buildDTChambers (VisEventSetupService::RPhiDet, m_station, m_sector, m_wheel);
00148         if (m_rphiDet == NULL) return;
00149 
00150         if (m_annotate.value ()) 
00151         {
00152             SoSeparator *sep = esService->annotateDTChambers (VisEventSetupService::RPhiDet, m_station, m_sector, m_wheel);
00153             if (sep != NULL) m_rphiDet->addChild (sep);     
00154         }
00155 
00156         m_rphiDet->ref ();
00157         m_rphidone = true;
00158     }
00159     rep->node ()->addChild (m_rphiDet);
00160 }

void VisDTGeometryTwig::update ( Ig3DRep rep  )  [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 105 of file VisDTGeometryTwig.cc.

References VisEventSetupService::annotateDTChambers(), ASSERT, VisEventSetupService::buildDTChambers(), Ig3DBaseRep::clear(), VisEventSetupService::FullDet, DBSPlugin::get(), m_3dDet, m_3Ddone, m_annotate, m_sector, m_station, m_wheel, Ig3DBaseRep::node(), NULL, VisQueuedTwig::state(), VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().

00106 {    
00107     // Get debugging dump.
00108     VisQueuedTwig::update (rep);
00109 
00110     IgQtLock ();
00111     rep->clear ();
00112 
00113     if (! m_3Ddone)
00114     {
00115         VisEventSetupService *esService = VisEventSetupService::get (state ());
00116         ASSERT (esService);
00117 
00118         m_3dDet = esService->buildDTChambers (VisEventSetupService::FullDet, m_station, m_sector, m_wheel);
00119         if (m_3dDet == NULL) return;
00120 
00121         if (m_annotate.value ()) 
00122         {
00123             SoSeparator *sep = esService->annotateDTChambers (VisEventSetupService::FullDet, m_station, m_sector, m_wheel);
00124             if (sep != NULL) m_3dDet->addChild (sep);       
00125         }
00126         
00127         m_3dDet->ref ();
00128         m_3Ddone = true;        
00129     }
00130     rep->node ()->addChild (m_3dDet);
00131 }

void VisDTGeometryTwig::update ( IgTextRep rep  )  [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 77 of file VisDTGeometryTwig.cc.

References ASSERT, VisEventSetupService::dtTextRep(), DBSPlugin::get(), m_sector, m_station, m_wheel, IgSimpleTwig::name(), IgTextRep::setText(), VisQueuedTwig::state(), and VisQueuedTwig::update().

00078 {
00079     // Get debugging dump.
00080     VisQueuedTwig::update (rep);
00081 
00082     // Prepare property description.
00083     std::ostringstream  text;
00084     text << "CMS DT Muon Geometry: ";
00085     text << this->name () << "<br>";
00086     
00087     text << "<table width='100%' border=1>"
00088          << "<TR align = center>"
00089          << "<TH>#</TH>"
00090          << "<TH>Wheel/Station/Sector</TH>"
00091          << "<TH>Position</TH>"
00092          << "</TR>";
00093 
00094     VisEventSetupService *esService = VisEventSetupService::get (state ());
00095     ASSERT (esService);
00096     
00097     text << esService->dtTextRep (m_station, m_sector, m_wheel);
00098     text << "</table>";
00099 
00100     IgQtLock ();
00101     rep->setText (text.str ());
00102 }


Member Data Documentation

SoSeparator* VisDTGeometryTwig::m_3dDet [private]

Definition at line 53 of file VisDTGeometryTwig.h.

Referenced by invalidate(), update(), and ~VisDTGeometryTwig().

bool VisDTGeometryTwig::m_3Ddone [private]

Definition at line 56 of file VisDTGeometryTwig.h.

Referenced by invalidate(), and update().

VisAnnotateGeometry VisDTGeometryTwig::m_annotate [private]

Definition at line 59 of file VisDTGeometryTwig.h.

Referenced by update().

SoSeparator* VisDTGeometryTwig::m_rphiDet [private]

Definition at line 55 of file VisDTGeometryTwig.h.

Referenced by invalidate(), update(), and ~VisDTGeometryTwig().

bool VisDTGeometryTwig::m_rphidone [private]

Definition at line 58 of file VisDTGeometryTwig.h.

Referenced by invalidate(), and update().

SoSeparator* VisDTGeometryTwig::m_rzDet [private]

Definition at line 54 of file VisDTGeometryTwig.h.

Referenced by invalidate(), update(), and ~VisDTGeometryTwig().

bool VisDTGeometryTwig::m_rzdone [private]

Definition at line 57 of file VisDTGeometryTwig.h.

Referenced by invalidate(), and update().

const int VisDTGeometryTwig::m_sector [private]

Definition at line 51 of file VisDTGeometryTwig.h.

Referenced by update().

const int VisDTGeometryTwig::m_station [private]

Definition at line 52 of file VisDTGeometryTwig.h.

Referenced by update().

const int VisDTGeometryTwig::m_wheel [private]

Definition at line 50 of file VisDTGeometryTwig.h.

Referenced by update().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:35:18 2009 for CMSSW by  doxygen 1.5.4