CMS 3D CMS Logo

VisCSCGeometryTwig Class Reference

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

Inheritance diagram for VisCSCGeometryTwig:

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)
 VisCSCGeometryTwig (IgState *state, IgTwig *parent, const std::string &name="", const int endcap=0, const int station=0, const int ring=0, const int chamber=0)
virtual ~VisCSCGeometryTwig (void)
 Clean the scene graph.

Private Member Functions

void invalidate (void)

Private Attributes

SoSeparator * m_3dDet
bool m_3Ddone
VisAnnotateGeometry m_annotate
const int m_chamber
const int m_endcap
const int m_ring
SoSeparator * m_rphiDet
bool m_rphidone
SoSeparator * m_rzDet
bool m_rzdone
const int m_station


Detailed Description

Definition at line 25 of file VisCSCGeometryTwig.h.


Constructor & Destructor Documentation

VisCSCGeometryTwig::VisCSCGeometryTwig ( IgState state,
IgTwig parent,
const std::string &  name = "",
const int  endcap = 0,
const int  station = 0,
const int  ring = 0,
const int  chamber = 0 
)

Definition at line 23 of file VisCSCGeometryTwig.cc.

00027     : VisQueuedTwig (state, parent, name),
00028       m_endcap (endcap),
00029       m_station (station),
00030       m_ring (ring),
00031       m_chamber (chamber),
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, &VisCSCGeometryTwig::invalidate))
00039 {}

VisCSCGeometryTwig::~VisCSCGeometryTwig ( void   )  [virtual]

Clean the scene graph.

Definition at line 42 of file VisCSCGeometryTwig.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 VisCSCGeometryTwig::invalidate ( void   )  [private]

Definition at line 64 of file VisCSCGeometryTwig.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 VisCSCGeometryTwig::onNewEvent ( const edm::Event event,
const edm::EventSetup eventSetup 
) [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 50 of file VisCSCGeometryTwig.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 VisCSCGeometryTwig::update ( IgRZRep rep  )  [virtual]

Reimplemented from VisQueuedTwig.

Definition at line 165 of file VisCSCGeometryTwig.cc.

References VisEventSetupService::annotateCSCChambers(), ASSERT, VisEventSetupService::buildCSCChambers(), Ig3DBaseRep::clear(), DBSPlugin::get(), m_annotate, m_chamber, m_endcap, m_ring, m_rzDet, m_rzdone, m_station, Ig3DBaseRep::node(), NULL, VisEventSetupService::RZDet, VisQueuedTwig::state(), VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().

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

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

Reimplemented from VisQueuedTwig.

Definition at line 136 of file VisCSCGeometryTwig.cc.

References VisEventSetupService::annotateCSCChambers(), ASSERT, VisEventSetupService::buildCSCChambers(), Ig3DBaseRep::clear(), DBSPlugin::get(), m_annotate, m_chamber, m_endcap, m_ring, m_rphiDet, m_rphidone, m_station, Ig3DBaseRep::node(), NULL, VisEventSetupService::RPhiDet, VisQueuedTwig::state(), VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().

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

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

Reimplemented from VisQueuedTwig.

Definition at line 107 of file VisCSCGeometryTwig.cc.

References VisEventSetupService::annotateCSCChambers(), ASSERT, VisEventSetupService::buildCSCChambers(), Ig3DBaseRep::clear(), VisEventSetupService::FullDet, DBSPlugin::get(), m_3dDet, m_3Ddone, m_annotate, m_chamber, m_endcap, m_ring, m_station, Ig3DBaseRep::node(), NULL, VisQueuedTwig::state(), VisQueuedTwig::update(), and VisActiveConfigurable< T >::value().

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

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

Reimplemented from VisQueuedTwig.

Definition at line 77 of file VisCSCGeometryTwig.cc.

References ASSERT, VisEventSetupService::cscTextRep(), DBSPlugin::get(), m_chamber, m_endcap, m_ring, m_station, 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 CSC Muon Geometry: ";
00085     text << this->name () << "<br>";
00086     
00087     text << "<table width='100%' border=1>"
00088          << "<TR align = center>"
00089          << "<TH>#</TH>"
00090          << "<TH>id(hex)</TH>"
00091          << "<TH>id(dec)</TH>"
00092          << "<TH>Endcap/Station/Ring/Chamber</TH>"
00093          << "<TH>Position</TH>"
00094          << "</TR>";
00095 
00096     VisEventSetupService *esService = VisEventSetupService::get (state ());
00097     ASSERT (esService);
00098     
00099     text << esService->cscTextRep (m_chamber, m_ring, m_station, m_endcap);
00100     text << "</table>";
00101 
00102     IgQtLock ();
00103     rep->setText (text.str ());
00104 }


Member Data Documentation

SoSeparator* VisCSCGeometryTwig::m_3dDet [private]

Definition at line 55 of file VisCSCGeometryTwig.h.

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

bool VisCSCGeometryTwig::m_3Ddone [private]

Definition at line 58 of file VisCSCGeometryTwig.h.

Referenced by invalidate(), and update().

VisAnnotateGeometry VisCSCGeometryTwig::m_annotate [private]

Definition at line 61 of file VisCSCGeometryTwig.h.

Referenced by update().

const int VisCSCGeometryTwig::m_chamber [private]

Definition at line 54 of file VisCSCGeometryTwig.h.

Referenced by update().

const int VisCSCGeometryTwig::m_endcap [private]

Definition at line 51 of file VisCSCGeometryTwig.h.

Referenced by update().

const int VisCSCGeometryTwig::m_ring [private]

Definition at line 53 of file VisCSCGeometryTwig.h.

Referenced by update().

SoSeparator* VisCSCGeometryTwig::m_rphiDet [private]

Definition at line 57 of file VisCSCGeometryTwig.h.

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

bool VisCSCGeometryTwig::m_rphidone [private]

Definition at line 60 of file VisCSCGeometryTwig.h.

Referenced by invalidate(), and update().

SoSeparator* VisCSCGeometryTwig::m_rzDet [private]

Definition at line 56 of file VisCSCGeometryTwig.h.

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

bool VisCSCGeometryTwig::m_rzdone [private]

Definition at line 59 of file VisCSCGeometryTwig.h.

Referenced by invalidate(), and update().

const int VisCSCGeometryTwig::m_station [private]

Definition at line 52 of file VisCSCGeometryTwig.h.

Referenced by update().


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