CMS 3D CMS Logo

DDBase< N, C > Class Template Reference

your comment here More...

#include <DetectorDescription/Core/interface/DDBase.h>

Inheritance diagram for DDBase< N, C >:

DDMap DDRotation

List of all members.

Public Types

typedef std::pair< const N *,
bool
def_type
typedef C pimpl_type
typedef DDI::rep_type< N,
pimpl_type > * 
prep_type
typedef DDI::Singleton
< DDI::Store< N, C > > 
StoreT

Public Member Functions

 DDBase ()
const N & ddname () const
def_type isDefined () const
bool isValid () const
 true, if the wrapped pointer is valid
const N & name () const
 operator bool () const
bool operator< (const DDBase &b) const
bool operator== (const DDBase &b) const
bool operator> (const DDBase &b) const
DDI::rep_traits< N, C >::reference rep ()
const DDI::rep_traits< N, C >
::reference 
rep () const
std::string toString () const
const DDI::rep_traits< N, C >
::reference 
val ()
const DDI::rep_traits< N, C >
::reference 
val () const
virtual ~DDBase ()

Static Public Member Functions

static DDI::Store< N, C >::iterator begin ()
static void clear ()
static DDI::Store< N, C >::iterator end ()
static size_t size ()

Protected Attributes

prep_type prep_

Classes

class  iterator


Detailed Description

template<class N, class C>
class DDBase< N, C >

your comment here

Definition at line 18 of file DDBase.h.


Member Typedef Documentation

template<class N, class C>
typedef std::pair<const N*,bool> DDBase< N, C >::def_type

Definition at line 83 of file DDBase.h.

template<class N, class C>
typedef C DDBase< N, C >::pimpl_type

Definition at line 81 of file DDBase.h.

template<class N, class C>
typedef DDI::rep_type<N,pimpl_type>* DDBase< N, C >::prep_type

Definition at line 82 of file DDBase.h.

template<class N, class C>
typedef DDI::Singleton<DDI::Store<N,C> > DDBase< N, C >::StoreT

Definition at line 80 of file DDBase.h.


Constructor & Destructor Documentation

template<class N, class C>
DDBase< N, C >::DDBase (  )  [inline]

Definition at line 85 of file DDBase.h.

00085 : prep_(0) { }

template<class N, class C>
virtual DDBase< N, C >::~DDBase (  )  [inline, virtual]

Definition at line 86 of file DDBase.h.

00086 { /*never do this here: if (prep_) delete prep_;*/ }


Member Function Documentation

template<class N, class C>
static DDI::Store<N,C>::iterator DDBase< N, C >::begin (  )  [inline, static]

Definition at line 76 of file DDBase.h.

Referenced by WriteOneGeometryFromXML::beginJob(), RotationForOnline::beginJob(), and DDStreamer::rots_write().

00076 { return StoreT::instance().begin(); }

template<class N, class C>
static void DDBase< N, C >::clear ( void   )  [inline, static]

Reimplemented in DDAlgo, DDLogicalPart, DDMaterial, DDSolid, DDSpecifics, and DDRotation.

Definition at line 78 of file DDBase.h.

00078 { StoreT::instance().clear(); }

template<class N, class C>
const N& DDBase< N, C >::ddname (  )  const [inline]

Definition at line 90 of file DDBase.h.

Referenced by DDMaterial::addMaterial(), DDG4Builder::BuildGeometry(), DDHCalEndcapAlgo::constructInsideModule(), DDHCalEndcapAlgo::constructInsideModule0(), DDG4Builder::convertLV(), DDalgoPosPart(), DDCheckConnect(), DDCheckMaterial(), DDHtmlLpDetails::details(), DDHtmlMaDetails::details(), DDHCalTBCableAlgo::execute(), DDTIBLayerAlgo_MTCC::execute(), DDPixBarLayerAlgo::execute(), DDTIDModuleAlgo::execute(), DDTECModuleAlgo::execute(), DDTIBLayerAlgo::execute(), DDHCalForwardAlgo::execute(), DDCompactView::global(), hierarchy(), DDErrorDetection::lp_cpv(), DDDividedConsRho::makeDDLogicalPart(), DDDividedBoxX::makeDDLogicalPart(), DDDividedTrdZ::makeDDLogicalPart(), DDDividedConsZ::makeDDLogicalPart(), DDDividedPolyhedraPhi::makeDDLogicalPart(), DDDividedConsPhi::makeDDLogicalPart(), DDDividedPolyconePhi::makeDDLogicalPart(), DDDividedPolyhedraRho::makeDDLogicalPart(), DDDividedTrdX::makeDDLogicalPart(), DDDividedBoxZ::makeDDLogicalPart(), DDDividedPolyhedraZ::makeDDLogicalPart(), DDDividedTubsRho::makeDDLogicalPart(), DDDividedBoxY::makeDDLogicalPart(), DDDividedPolyconeRho::makeDDLogicalPart(), DDDividedPolyconeZ::makeDDLogicalPart(), DDDividedTubsZ::makeDDLogicalPart(), DDDividedPolyconePhi::makeDDRotation(), DDDividedConsPhi::makeDDRotation(), DDDividedTubsPhi::makeDDRotation(), DDDividedPolyhedraPhi::makeDDRotation(), DDExpandedNodeLess::operator()(), operator<<(), DDI::LogicalPart::stream(), and DDCompactViewImpl::weight().

00090 { return prep_->name(); }

template<class N, class C>
static DDI::Store<N,C>::iterator DDBase< N, C >::end (  )  [inline, static]

Definition at line 75 of file DDBase.h.

Referenced by WriteOneGeometryFromXML::beginJob(), RotationForOnline::beginJob(), and DDStreamer::rots_write().

00075 { return StoreT::instance().end(); }

template<class N, class C>
def_type DDBase< N, C >::isDefined (  )  const [inline]

Definition at line 120 of file DDBase.h.

Referenced by WriteOneGeometryFromXML::beginJob(), RotationForOnline::beginJob(), DDG4Builder::BuildGeometry(), DDDividedGeometryObject::checkParametersValidity(), dd_stream_booleans(), DDCheckMaterial(), DDCheckPD(), DDHtmlRoDetails::details(), DDHtmlLpDetails::details(), DDHtmlMaDetails::details(), DDCompactView::global(), DDDividedPolyhedraPhi::makeDDLogicalPart(), DDDividedPolyconePhi::makeDDLogicalPart(), operator<<(), DDLDivision::processElement(), DDLAlgoPosPart::processElement(), DDErrorDetection::so(), and DDI::Reflection::volume().

00121    {
00122      return prep_ ?
00123                     std::make_pair(&(prep_->name()), bool(prep_->second))
00124                   :
00125                     std::make_pair((const N *)0,false);  
00126    } 

template<class N, class C>
bool DDBase< N, C >::isValid ( void   )  const [inline]

true, if the wrapped pointer is valid

Definition at line 129 of file DDBase.h.

Referenced by DataProxy< IdealGeometryRecord, DDCompactView >::make(), DDLPosPart::processElement(), XMLIdealGeometryESSource::produce(), and DDBase< DDName, std::vector< std::string > * >::val().

00130   {
00131      return prep_ ? bool(prep_->second)
00132                   : false;
00133   } 

template<class N, class C>
const N& DDBase< N, C >::name (  )  const [inline]

Definition at line 88 of file DDBase.h.

Referenced by PhysicalPartsTree::beginJob(), MaterialForOnline::beginJob(), ListIds::beginJob(), SolidsForOnline::beginJob(), DDG4SolidConverter::box(), MagGeoBuilderFromDDD::build(), RPCGeometryBuilderFromDDD::buildGeometry(), DDG4SolidConverter::cons(), DDHCalEndcapAlgo::constructGeneralVolume(), DDHCalBarrelAlgo::constructGeneralVolume(), DDHCalEndcapAlgo::constructInsideModule(), DDHCalEndcapAlgo::constructInsideModule0(), DDHCalEndcapAlgo::constructInsideSector(), DDHCalBarrelAlgo::constructInsideSector(), DDG4Builder::convertLV(), DDG4Builder::convertMaterial(), dd_get_boolean_params(), dd_rot_out(), dd_stream_booleans(), dd_stream_reflected(), DDalgoPosPart(), DDBox::DDBox(), DDCheckAll(), DDCheckMaterial(), DDCheckPD(), DDCons::DDCons(), DDDivision::DDDivision(), DDExpandedViewDump(), DDIntersection::DDIntersection(), DDLogicalPart::DDLogicalPart(), DDPolycone::DDPolycone(), DDPolyhedra::DDPolyhedra(), DDPseudoTrap::DDPseudoTrap(), DDShapelessSolid::DDShapelessSolid(), DDSubtraction::DDSubtraction(), DDTorus::DDTorus(), DDTrap::DDTrap(), DDTruncTubs::DDTruncTubs(), DDTubs::DDTubs(), DDUnion::DDUnion(), DDTECModuleAlgo::doPos(), DDHCalTBCableAlgo::execute(), DDTIBLayerAlgo_MTCC::execute(), DDPixBarLayerAlgo::execute(), DDTIDModuleAlgo::execute(), DDEcalBarrelAlgo::execute(), DDTECModuleAlgo::execute(), DDTIBLayerAlgo::execute(), MuonDDDNumbering::getInt(), HcalTB06BeamSD::getNames(), MaterialBudgetHcalHistos::getNames(), HCalSD::getNames(), HCalSD::HCalSD(), HcalTB06BeamSD::HcalTB06BeamSD(), HFShower::HFShower(), hierarchy(), HcalTB02SD::initMap(), ECalSD::initMap(), DreamSD::initMap(), DDG4SolidConverter::intersection(), HcalNumberingFromDDD::loadGeometry(), DDDividedTubsPhi::makeDDLogicalPart(), DDDividedTrdY::makeDDLogicalPart(), DDLDivision::makeDivider(), DDStreamer::materials_read(), DDStreamer::materials_write(), operator<<(), DDMap::operator[](), DDStreamer::parts_write(), DDG4SolidConverter::polycone_rrz(), DDG4SolidConverter::polycone_rz(), DDG4SolidConverter::polyhedra_rrz(), DDG4SolidConverter::polyhedra_rz(), DDStreamer::pos_read(), DDStreamer::pos_write(), DDG4SolidConverter::pseudotrap(), CocoaAnalyzer::ReadXMLFile(), DDG4SolidConverter::reflected(), DDStreamer::rots_read(), DDStreamer::solids_write(), DDStreamer::specs_write(), DDG4SolidConverter::subtraction(), DDG4SolidConverter::torus(), DDG4SolidConverter::trap(), DDG4SolidConverter::trunctubs(), DDG4SolidConverter::tubs(), DDG4SolidConverter::unionsolid(), PrintGeomInfoAction::update(), DDBase< DDName, std::vector< std::string > * >::val(), MagGeoBuilderFromDDD::volumeHandle::volumeHandle(), and DDEcalBarrelAlgo::web().

00088 { return prep_->name(); }

template<class N, class C>
DDBase< N, C >::operator bool (  )  const [inline]

Definition at line 112 of file DDBase.h.

00112 { return prep_ ? prep_->second : false; }

template<class N, class C>
bool DDBase< N, C >::operator< ( const DDBase< N, C > &  b  )  const [inline]

Definition at line 114 of file DDBase.h.

00114 { return prep_ < b.prep_; }

template<class N, class C>
bool DDBase< N, C >::operator== ( const DDBase< N, C > &  b  )  const [inline]

Definition at line 110 of file DDBase.h.

00110 { return prep_ == b.prep_; }

template<class N, class C>
bool DDBase< N, C >::operator> ( const DDBase< N, C > &  b  )  const [inline]

Definition at line 115 of file DDBase.h.

00115 { return prep_ > b.prep_; }

template<class N, class C>
DDI::rep_traits<N,C>::reference DDBase< N, C >::rep (  )  [inline]

Definition at line 97 of file DDBase.h.

00098     { return *(prep_->second); }

template<class N, class C>
const DDI::rep_traits<N,C>::reference DDBase< N, C >::rep (  )  const [inline]

Definition at line 94 of file DDBase.h.

Referenced by DDalgoPosPart(), DDBooleanSolid::DDBooleanSolid(), DDReflectionSolid::DDReflectionSolid(), DDMap::mapBegin(), DDMap::mapEnd(), operator<<(), DDMap::operator[](), DDRotation::rotation(), DDMap::size(), DDBase< DDName, std::vector< std::string > * >::val(), and DDMap::values().

00095     { return *(prep_->second); }

template<class N, class C>
static size_t DDBase< N, C >::size ( void   )  [inline, static]

Definition at line 79 of file DDBase.h.

Referenced by DDDividedPolyconeRho::makeDDLogicalPart().

00079 { return StoreT::instance().size(); }

template<class N, class C>
std::string DDBase< N, C >::toString (  )  const [inline]

Definition at line 92 of file DDBase.h.

Referenced by DDMaterial::addMaterial(), PhysicalPartsTree::beginJob(), DDG4Builder::BuildGeometry(), DDDividedGeometryObject::checkParametersValidity(), DDG4SolidConverter::convert(), DDG4Builder::convertMaterial(), DDDToPersFactory::logicalPart(), DDDToPersFactory::material(), DDDToPersFactory::position(), DDDToPersFactory::rotation(), DDDToPersFactory::solid(), and DDDToPersFactory::specpar().

00092 { return prep_->name(); }

template<class N, class C>
const DDI::rep_traits<N,C>::reference DDBase< N, C >::val (  )  [inline]

Definition at line 105 of file DDBase.h.

00106     { if (!isValid()) throw DDException(std::string("undefined: ") + std::string(name())); 
00107       return rep();
00108     };  

template<class N, class C>
const DDI::rep_traits<N,C>::reference DDBase< N, C >::val (  )  const [inline]

Definition at line 100 of file DDBase.h.

00101     { if (!isValid()) throw DDException(std::string("undefined: ") + std::string(name())); 
00102       return rep();
00103     };  


Member Data Documentation

template<class N, class C>
prep_type DDBase< N, C >::prep_ [protected]

Definition at line 136 of file DDBase.h.

Referenced by DDMap::DDMap(), DDBase< DDName, std::vector< std::string > * >::ddname(), DDRotation::DDRotation(), DDBase< DDName, std::vector< std::string > * >::isDefined(), DDBase< DDName, std::vector< std::string > * >::isValid(), DDBase< DDName, std::vector< std::string > * >::name(), DDBase< DDName, std::vector< std::string > * >::operator bool(), DDBase< DDName, std::vector< std::string > * >::operator<(), DDBase< DDName, std::vector< std::string > * >::operator==(), DDBase< DDName, std::vector< std::string > * >::operator>(), DDBase< DDName, std::vector< std::string > * >::rep(), and DDBase< DDName, std::vector< std::string > * >::toString().


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