#include <GeometricDet.h>
Composite class GeometricDet. A composite can contain other composites, and so on; You can understand what you are looking at via enum.
Definition at line 29 of file GeometricDet.h.
typedef std::vector< GeometricDet const *> GeometricDet::ConstGeometricDetContainer |
Definition at line 35 of file GeometricDet.h.
Definition at line 32 of file GeometricDet.h.
typedef std::vector<DDExpandedNode> GeometricDet::GeoHistory |
Definition at line 42 of file GeometricDet.h.
typedef std::vector< GeometricDet const *> GeometricDet::GeometricDetContainer |
Definition at line 36 of file GeometricDet.h.
typedef enum GeometricDet::GDEnumType GeometricDet::GeometricEnumType |
Definition at line 43 of file GeometricDet.h.
Definition at line 33 of file GeometricDet.h.
Definition at line 45 of file GeometricDet.h.
Definition at line 46 of file GeometricDet.h.
unknown | |
Tracker | |
PixelBarrel | |
PixelEndCap | |
TIB | |
TID | |
TOB | |
TEC | |
layer | |
wheel | |
strng | |
rod | |
petal | |
ring | |
ladder | |
mergedDet | |
DetUnit | |
disk | |
panel | |
PixelEndCapPhase1 |
Definition at line 51 of file GeometricDet.h.
GeometricDet::GeometricDet | ( | DDFilteredView * | fv, |
GeometricEnumType | dd | ||
) |
Constructors to be used when looping over DDD
Definition at line 150 of file GeometricDet.cc.
References _ddd, DDFilteredView::navPos(), and nt.
: // // Set by hand the _ddd // _trans(fv->translation()), _phi(_trans.Phi()), _rho(_trans.Rho()), _rot(fv->rotation()), _shape(((fv->logicalPart()).solid()).shape()), _ddname(((fv->logicalPart()).ddname()).name()), _type(type), _params(((fv->logicalPart()).solid()).parameters()), // want this :) _ddd(fv->navPos().begin(),fv->navPos().end()), #ifdef GEOMTRICDETDEBUG _parents(fv->geoHistory().begin(),fv->geoHistory().end()), _volume(((fv->logicalPart()).solid()).volume()), _density(((fv->logicalPart()).material()).density()), // _weight = (fv->logicalPart()).weight(); _weight(_density * ( _volume / 1000.)), // volume mm3->cm3 _copy(fv->copyno()), _material(((fv->logicalPart()).material()).name().fullname()), #endif _radLength(getDouble("TrackerRadLength",*fv)), _xi(getDouble("TrackerXi",*fv)), _pixROCRows(getDouble("PixelROCRows",*fv)), _pixROCCols(getDouble("PixelROCCols",*fv)), _pixROCx(getDouble("PixelROC_X",*fv)), _pixROCy(getDouble("PixelROC_Y",*fv)), _stereo(getString("TrackerStereoDetectors",*fv)==strue), _siliconAPVNum(getDouble("SiliconAPVNumber",*fv)) #ifdef GEOMTRICDETDEBUG , _fromDD(true) #endif { //std::cout << "GeometricDet3" << std::endl; // workaround instead of this at initialization _ddd(fv->navPos().begin(),fv->navPos().end()), const DDFilteredView::nav_type& nt = fv->navPos(); _ddd = nav_type(nt.begin(), nt.end()); }
GeometricDet::GeometricDet | ( | const PGeometricDet::Item & | onePGD, |
GeometricEnumType | dd | ||
) |
Definition at line 193 of file GeometricDet.cc.
References _ddd, PGeometricDet::Item::_nt0, PGeometricDet::Item::_nt1, PGeometricDet::Item::_nt10, PGeometricDet::Item::_nt2, PGeometricDet::Item::_nt3, PGeometricDet::Item::_nt4, PGeometricDet::Item::_nt5, PGeometricDet::Item::_nt6, PGeometricDet::Item::_nt7, PGeometricDet::Item::_nt8, PGeometricDet::Item::_nt9, PGeometricDet::Item::_numnt, PGeometricDet::Item::_params0, PGeometricDet::Item::_params1, PGeometricDet::Item::_params10, PGeometricDet::Item::_params2, PGeometricDet::Item::_params3, PGeometricDet::Item::_params4, PGeometricDet::Item::_params5, PGeometricDet::Item::_params6, PGeometricDet::Item::_params7, PGeometricDet::Item::_params8, PGeometricDet::Item::_params9, and PGeometricDet::Item::_shape.
: _trans(onePGD._x, onePGD._y, onePGD._z), _phi(onePGD._phi), //_trans.Phi()), _rho(onePGD._rho), //_trans.Rho()), _rot(onePGD._a11, onePGD._a12, onePGD._a13, onePGD._a21, onePGD._a22, onePGD._a23, onePGD._a31, onePGD._a32, onePGD._a33), _shape(DDSolidShapesName::index(onePGD._shape)), _ddd(), _ddname(onePGD._name, onePGD._ns),//, "fromdb"); _type(type), _params(), _geographicalID(onePGD._geographicalID), #ifdef GEOMTRICDETDEBUG _parents(), // will remain empty... hate wasting the space but want all methods to work. _volume(onePGD._volume), _density(onePGD._density), _weight(onePGD._weight), _copy(onePGD._copy), _material(onePGD._material), #endif _radLength(onePGD._radLength), _xi(onePGD._xi), _pixROCRows(onePGD._pixROCRows), _pixROCCols(onePGD._pixROCCols), _pixROCx(onePGD._pixROCx), _pixROCy(onePGD._pixROCy), _stereo(onePGD._stereo), _siliconAPVNum(onePGD._siliconAPVNum) #ifdef GEOMTRICDETDEBUG , // mind the tricky comma is needed. _fromDD(false) #endif { //std::cout << "GeometricDet4" << std::endl; if(onePGD._shape==1||onePGD._shape==3){ //The parms vector is neede only in the case of box or trap shape _params.reserve(11); _params.push_back(onePGD._params0); _params.push_back(onePGD._params1); _params.push_back(onePGD._params2); _params.push_back(onePGD._params3); _params.push_back(onePGD._params4); _params.push_back(onePGD._params5); _params.push_back(onePGD._params6); _params.push_back(onePGD._params7); _params.push_back(onePGD._params8); _params.push_back(onePGD._params9); _params.push_back(onePGD._params10); } _ddd.reserve(onePGD._numnt); _ddd.push_back(onePGD._nt0); _ddd.push_back(onePGD._nt1); _ddd.push_back(onePGD._nt2); _ddd.push_back(onePGD._nt3); if ( onePGD._numnt > 4 ) { _ddd.push_back(onePGD._nt4); if ( onePGD._numnt > 5 ) { _ddd.push_back(onePGD._nt5); if ( onePGD._numnt > 6 ) { _ddd.push_back(onePGD._nt6); if ( onePGD._numnt > 7 ) { _ddd.push_back(onePGD._nt7); if ( onePGD._numnt > 8 ) { _ddd.push_back(onePGD._nt8); if ( onePGD._numnt > 9 ) { _ddd.push_back(onePGD._nt9); if ( onePGD._numnt > 10 ) { _ddd.push_back(onePGD._nt10); }}}}}} } }
GeometricDet::~GeometricDet | ( | ) |
What to do in the destructor? destroy all the daughters!
Definition at line 76 of file GeometricDet.cc.
References deleteComponents().
{ //std::cout << "~GeometricDet5" << std::endl; deleteComponents(); }
void GeometricDet::addComponent | ( | GeometricDet * | det | ) |
Definition at line 300 of file GeometricDet.cc.
References _container.
Referenced by CmsTrackerPetalBuilder::buildComponent(), CmsTrackerBuilder::buildComponent(), CmsTrackerWheelBuilder::buildComponent(), CmsTrackerSubStrctBuilder::buildComponent(), CmsTrackerLayerBuilder::buildComponent(), CmsDetConstruction::buildComponent(), CmsTrackerDiskBuilder::buildComponent(), and CmsDetConstruction::buildSmallDets().
{ //std::cout << "deepComponent" << std::endl; _container.push_back(det); }
void GeometricDet::addComponents | ( | GeometricDetContainer const & | cont | ) |
Definition at line 289 of file GeometricDet.cc.
References _container, cont, and filterCSVwithJSON::copy.
Referenced by CmsTrackerStringBuilder::sortNS(), CmsTrackerDiskBuilder::sortNS(), CmsTrackerRingBuilder::sortNS(), CmsTrackerWheelBuilder::sortNS(), and CmsTrackerLayerBuilder::sortNS().
{ //std::cout << "addComponents" << std::endl; if (_container.empty()) { _container=cont; return; } _container.reserve(_container.size()+cont.size()); std::copy(cont.begin(), cont.end(), back_inserter(_container)); }
const Bounds * GeometricDet::bounds | ( | ) | const |
Definition at line 336 of file GeometricDet.cc.
References _params, _shape, and TrackerShapeToBounds::buildBounds().
{ //std::cout << "bounds" << std::endl; const std::vector<double>& par = _params; Bounds * bounds = 0; TrackerShapeToBounds shapeToBounds; bounds = shapeToBounds.buildBounds(_shape,par); return bounds; }
void GeometricDet::clearComponents | ( | ) | [inline] |
clearComponents() only empties the container, the components are not deleted!
Definition at line 89 of file GeometricDet.h.
References _container.
Referenced by CmsTrackerStringBuilder::sortNS(), CmsTrackerDiskBuilder::sortNS(), CmsTrackerRingBuilder::sortNS(), CmsTrackerWheelBuilder::sortNS(), and CmsTrackerLayerBuilder::sortNS().
{ _container.clear(); //std::cout<<"clearComponents"<<std::endl; }
GeometricDetContainer& GeometricDet::components | ( | ) | [inline] |
components() returns explicit components; please note that in case of a leaf GeometricDet it returns nothing (an empty vector)
Definition at line 163 of file GeometricDet.h.
References _container.
Referenced by GeometricDetLoader::beginJob(), PGeometricDetBuilder::beginRun(), TIDLayerBuilder::build(), TIBLayerBuilder::build(), PixelRodBuilder::build(), TOBLayerBuilder::build(), PixelForwardLayerBuilder::build(), TIDRingBuilder::build(), TECWedgeBuilder::build(), TOBRodBuilder::build(), GeometricSearchTrackerBuilder::build(), PixelBarrelLayerBuilder::build(), TECLayerBuilder::build(), PixelBladeBuilder::build(), TECPetalBuilder::build(), CmsTrackerDebugNavigator::iterate(), CmsTrackerLevelBuilder::ExtractPhiModule::operator()(), TrackerGeometricDetExtraESModule::produce(), CmsTrackerDiskBuilder::sortNS(), CmsTrackerStringBuilder::sortNS(), CmsTrackerRingBuilder::sortNS(), CmsTrackerPetalBuilder::sortNS(), CmsTrackerBuilder::sortNS(), CmsTrackerLadderBuilder::sortNS(), CmsTrackerWheelBuilder::sortNS(), CmsTrackerPanelBuilder::sortNS(), CmsTrackerSubStrctBuilder::sortNS(), CmsTrackerLayerBuilder::sortNS(), and CmsTrackerRodBuilder::sortNS().
{ //std::cout << "components1" <<std::endl; return _container; }
GeometricDetContainer const& GeometricDet::components | ( | ) | const [inline] |
Definition at line 167 of file GeometricDet.h.
References _container.
{ //std::cout<<"const components2 "<<std::endl; return _container; }
GeometricDet::ConstGeometricDetContainer GeometricDet::deepComponents | ( | ) | const |
deepComponents() returns all the components below; please note that if the current GeometricDet is a leaf, it returns it!
Definition at line 268 of file GeometricDet.cc.
Referenced by GeometricDetLoader::beginJob(), PGeometricDetBuilder::beginRun(), TrackerGeomBuilderFromGeometricDet::build(), TouchableToHistory::buildAll(), TrackerMapDDDtoID::buildAllStep2(), deepComponents(), CmsTrackerLevelBuilder::ExtractPhiGluedModule::operator()(), CmsTrackerLevelBuilder::LessR_module::operator()(), and TrackerGeometricDetExtraESModule::produce().
{ // // iterate on all the components ;) // //std::cout << "deepComponents1" << std::endl; ConstGeometricDetContainer _temp; deepComponents(_temp); return _temp; }
void GeometricDet::deepComponents | ( | GeometricDetContainer & | cont | ) | const |
Definition at line 278 of file GeometricDet.cc.
References _container, deepComponents(), and isLeaf().
{ //std::cout << "const deepComponents2" << std::endl; if (isLeaf()) cont.push_back(const_cast<GeometricDet*>(this)); else std::for_each(_container.begin(),_container.end(), boost::bind(&GeometricDet::deepComponents,_1,boost::ref(cont)) ); }
void GeometricDet::deleteComponents | ( | ) |
deleteComponents() explicitly deletes the daughters
Definition at line 311 of file GeometricDet.cc.
References _container.
Referenced by ~GeometricDet().
{ //std::cout << "deleteComponents" << std::endl; std::for_each(_container.begin(),_container.end(),Deleter()); _container.clear(); }
DetId GeometricDet::geographicalID | ( | ) | const [inline] |
geometricalID() returns the ID associated to the GeometricDet.
Definition at line 195 of file GeometricDet.h.
References _geographicalID.
Referenced by CmsTrackerDetIdBuilder::buildId(), PixelGeomDetUnit::PixelGeomDetUnit(), GeometricDetLoader::putOne(), PGeometricDetBuilder::putOne(), and StripGeomDetUnit::StripGeomDetUnit().
{ //std::cout<<"geographicalID"<<std::endl; return _geographicalID; }
DetId GeometricDet::geographicalId | ( | ) | const [inline] |
Definition at line 199 of file GeometricDet.h.
References _geographicalID.
Referenced by TrackerGeometricDetExtraESModule::putOne().
{ //std::cout<<"geographicalId"<<std::endl; return _geographicalID; }
bool GeometricDet::isLeaf | ( | ) | const [inline] |
Definition at line 100 of file GeometricDet.h.
References _container.
Referenced by deepComponents().
{ //std::cout <<"isLeaf() ==" <<_container.empty()<<std::endl; return _container.empty(); }
DDName const& GeometricDet::name | ( | void | ) | const [inline] |
Definition at line 133 of file GeometricDet.h.
References _ddname.
Referenced by CmsTrackerDebugNavigator::iterate(), GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"name"<<std::endl; return _ddname; }
NavRange GeometricDet::navpos | ( | ) | const [inline] |
NavRange GeometricDet::navRange | ( | ) | const [inline] |
nav_type const& GeometricDet::navType | ( | ) | const [inline] |
Definition at line 138 of file GeometricDet.h.
References _ddd.
Referenced by TrackerGeometricDetExtraESModule::produce(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"navType"<<std::endl; return _ddd; }
std::vector<double> const& GeometricDet::params | ( | ) | const [inline] |
Definition at line 152 of file GeometricDet.h.
References _params.
Referenced by GeometricDetLoader::putOne(), PGeometricDetBuilder::putOne(), and CmsTrackerLayerBuilder::sortNS().
{ //std::cout<<"params"<<std::endl; return _params; }
double GeometricDet::phi | ( | void | ) | const [inline] |
Definition at line 116 of file GeometricDet.h.
References _phi.
Referenced by CmsTrackerLevelBuilder::ExtractPhi::operator()(), CmsTrackerLevelBuilder::ExtractPhiMirror::operator()(), PhiSort(), GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"phi"<<std::endl; return _phi; }
double GeometricDet::pixROCCols | ( | ) | const [inline] |
Definition at line 255 of file GeometricDet.h.
References _pixROCCols.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"pixROCCols"<<std::endl; return _pixROCCols; }
double GeometricDet::pixROCRows | ( | ) | const [inline] |
The following four pix* methods only return meaningful results for pixels.
Definition at line 251 of file GeometricDet.h.
References _pixROCRows.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"pixROCRows"<<std::endl; return _pixROCRows; }
double GeometricDet::pixROCx | ( | ) | const [inline] |
Definition at line 259 of file GeometricDet.h.
References _pixROCx.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"pixROCx"<<std::endl; return _pixROCx; }
double GeometricDet::pixROCy | ( | ) | const [inline] |
Definition at line 263 of file GeometricDet.h.
References _pixROCy.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"pixROCy"<<std::endl; return _pixROCy; }
GeometricDet::Position GeometricDet::positionBounds | ( | ) | const |
positionBounds() returns the position in cm.
Definition at line 318 of file GeometricDet.cc.
References _trans.
double GeometricDet::radLength | ( | ) | const [inline] |
Definition at line 240 of file GeometricDet.h.
References _radLength.
Referenced by TrackerGeomBuilderFromGeometricDet::buildPlaneWithMaterial(), GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"radLength"<<std::endl; return _radLength; }
double GeometricDet::rho | ( | ) | const [inline] |
Definition at line 120 of file GeometricDet.h.
References _rho.
Referenced by CmsTrackerLevelBuilder::LessR::operator()(), GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout << "rho" <<std::endl; return _rho; }
DDRotationMatrix const& GeometricDet::rotation | ( | void | ) | const [inline] |
Access methods
Definition at line 108 of file GeometricDet.h.
References _rot.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"rotation" <<std::endl; return _rot; }
GeometricDet::Rotation GeometricDet::rotationBounds | ( | ) | const |
rotationBounds() returns the rotation matrix.
Definition at line 326 of file GeometricDet.cc.
References _rot, x, detailsBasic3DVector::y, and z.
void GeometricDet::setGeographicalID | ( | DetId | id | ) | const [inline] |
set or add or clear components
Definition at line 74 of file GeometricDet.h.
References _geographicalID.
Referenced by CmsTrackerDetIdBuilder::buildId(), and CmsDetConstruction::buildSmallDets().
{ _geographicalID = id; //std::cout <<"setGeographicalID " << int(id) << std::endl; }
DDSolidShape const& GeometricDet::shape | ( | void | ) | const [inline] |
Definition at line 125 of file GeometricDet.h.
References _shape.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"shape"<<std::endl; return _shape; }
double GeometricDet::siliconAPVNum | ( | ) | const [inline] |
Definition at line 275 of file GeometricDet.h.
References _siliconAPVNum.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"siliconAPVNum"<<std::endl; return _siliconAPVNum; }
bool GeometricDet::stereo | ( | ) | const [inline] |
The following two are only meaningful for the silicon tracker.
Definition at line 271 of file GeometricDet.h.
References _stereo.
Referenced by GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"stereo"<<std::endl; return _stereo; }
DDTranslation const& GeometricDet::translation | ( | void | ) | const [inline] |
Definition at line 112 of file GeometricDet.h.
References _trans.
Referenced by CmsTrackerLevelBuilder::LessModZ::operator()(), CmsTrackerLevelBuilder::LessZ::operator()(), CmsTrackerLevelBuilder::PhiSortNP::operator()(), GeometricDetLoader::putOne(), PGeometricDetBuilder::putOne(), CmsTrackerRingBuilder::sortNS(), and CmsTrackerWheelBuilder::sortNS().
{ //std::cout<<"translation" <<std::endl; return _trans; }
GeometricEnumType GeometricDet::type | ( | ) | const [inline] |
Definition at line 129 of file GeometricDet.h.
References _type.
Referenced by PixelForwardLayerBuilder::build(), CmsTrackerLevelBuilder::subDetByType::operator()(), GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"type"<<std::endl; return _type; }
double GeometricDet::xi | ( | ) | const [inline] |
Definition at line 244 of file GeometricDet.h.
References _xi.
Referenced by TrackerGeomBuilderFromGeometricDet::buildPlaneWithMaterial(), GeometricDetLoader::putOne(), and PGeometricDetBuilder::putOne().
{ //std::cout<<"xi - chi"<<std::endl; return _xi; }
what it says... used the DD in memory model to build the geometry... or not.
Definition at line 292 of file GeometricDet.h.
Referenced by addComponent(), addComponents(), clearComponents(), components(), deepComponents(), deleteComponents(), and isLeaf().
nav_type GeometricDet::_ddd [private] |
Definition at line 298 of file GeometricDet.h.
Referenced by GeometricDet(), navpos(), navRange(), and navType().
DDName GeometricDet::_ddname [private] |
Definition at line 299 of file GeometricDet.h.
Referenced by name().
DetId GeometricDet::_geographicalID [mutable, private] |
Definition at line 303 of file GeometricDet.h.
Referenced by geographicalId(), geographicalID(), and setGeographicalID().
std::vector<double> GeometricDet::_params [private] |
Definition at line 301 of file GeometricDet.h.
double GeometricDet::_phi [private] |
Definition at line 294 of file GeometricDet.h.
Referenced by phi().
double GeometricDet::_pixROCCols [private] |
Definition at line 315 of file GeometricDet.h.
Referenced by pixROCCols().
double GeometricDet::_pixROCRows [private] |
Definition at line 314 of file GeometricDet.h.
Referenced by pixROCRows().
double GeometricDet::_pixROCx [private] |
Definition at line 316 of file GeometricDet.h.
Referenced by pixROCx().
double GeometricDet::_pixROCy [private] |
Definition at line 317 of file GeometricDet.h.
Referenced by pixROCy().
double GeometricDet::_radLength [private] |
Definition at line 312 of file GeometricDet.h.
Referenced by radLength().
double GeometricDet::_rho [private] |
Definition at line 295 of file GeometricDet.h.
Referenced by rho().
DDRotationMatrix GeometricDet::_rot [private] |
Definition at line 296 of file GeometricDet.h.
Referenced by rotation(), and rotationBounds().
DDSolidShape GeometricDet::_shape [private] |
Definition at line 297 of file GeometricDet.h.
double GeometricDet::_siliconAPVNum [private] |
Definition at line 319 of file GeometricDet.h.
Referenced by siliconAPVNum().
bool GeometricDet::_stereo [private] |
Definition at line 318 of file GeometricDet.h.
Referenced by stereo().
DDTranslation GeometricDet::_trans [private] |
Definition at line 293 of file GeometricDet.h.
Referenced by positionBounds(), and translation().
GeometricEnumType GeometricDet::_type [private] |
Definition at line 300 of file GeometricDet.h.
Referenced by type().
double GeometricDet::_xi [private] |
Definition at line 313 of file GeometricDet.h.
Referenced by xi().