35 throw cms::Exception(
"MTDConstruction") <<
"woops got: " << part_name << std::endl;
48 auto module_number = copyNumbers[copyNumbers.size()-2];
54 size_t delim1 = modname.find(
"BModule");
55 size_t delim2 = modname.find(
"Layer");
56 module_number += atoi(modname.substr(delim1+7,delim2).c_str())-1;
58 if( modname.find(positive) != std::string::npos ) {
60 }
else if ( modname.find(negative) != std::string::npos ) {
64 <<
"BTL Module " << module_number <<
" is neither positive nor negative in Z!";
77 auto module_number = copyNumbers[copyNumbers.size()-2];
79 size_t delim_ring = det->
name().
fullname().find(
"EModule");
84 const uint32_t side = det->
translation().z() > 0 ? 1 : 0;
GeometricTimingDet::GeometricTimingEnumType type(std::string const &) const
bool parent()
set the current node to the parent node ...
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
nav_type copyNumbers() const
return the stack of copy numbers
bool nextSibling()
set the current node to the next sibling ...
CmsMTDStringToEnum theCmsMTDStringToEnum
void buildETLModule(DDFilteredView &, GeometricTimingDet *, const std::string &)
DDTranslation const & translation() const
void buildBTLModule(DDFilteredView &, GeometricTimingDet *, const std::string &)
void addComponent(GeometricTimingDet *)
const std::string fullname() const
void setGeographicalID(DetId id)
DDName const & name() const
Detector identifier class for the Endcap Timing Layer.
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
bool firstChild()
set the current node to the first child ...
void buildComponent(DDFilteredView &, GeometricTimingDet *, std::string) override