19 : trackerTopology_(trackerTopology),
20 alignableObjectId_(trackerGeometry, nullptr, nullptr, nullptr),
21 trackerNameSpace_(trackerTopology) {}
54 std::vector<align::AlignmentLevels>
levels;
70 throw cms::Exception(
"LogicError") <<
"@SUB=TrackerAlignmentLevelBuilder::trackerNameSpace\n" 71 <<
"trying to get the name space before it has been properly initialized;" 72 <<
" please call TrackerAlignmentLevelBuilder::build() first";
118 if (layerSide == 1) {
183 std::ostringstream
ss;
187 <<
" max. number of ladders: " << maxNumLadders <<
"\n";
195 ss <<
" max. number of layers: " << maxNumLayers;
196 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildPXBAlignmentLevels" <<
ss.str();
200 pxb.push_back(std::make_unique<AlignmentLevel>(
align::TPBLadder, maxNumLadders,
true));
201 pxb.push_back(std::make_unique<AlignmentLevel>(
align::TPBLayer, maxNumLayers,
false));
203 pxb.push_back(std::make_unique<AlignmentLevel>(
align::TPBBarrel, 1,
false));
215 std::ostringstream
ss;
219 <<
" max. number of panels: " << maxNumPanels <<
"\n" 220 <<
" max. number of blades: " << maxNumBlades <<
"\n";
225 <<
" max. number of disks: " << maxNumDisks <<
"\n" 226 <<
" max. number of sides: " << maxNumSides;
227 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildPXEAlignmentLevels" <<
ss.str();
231 pxe.push_back(std::make_unique<AlignmentLevel>(
align::TPEPanel, maxNumPanels,
true));
232 pxe.push_back(std::make_unique<AlignmentLevel>(
align::TPEBlade, maxNumBlades,
true));
233 pxe.push_back(std::make_unique<AlignmentLevel>(
align::TPEHalfDisk, maxNumDisks,
false));
235 pxe.push_back(std::make_unique<AlignmentLevel>(
align::TPEEndcap, maxNumSides,
false));
246 std::ostringstream
ss;
250 <<
" max. number of strings: " << maxNumStrings <<
"\n";
261 ss <<
" max. number of layers: " << maxNumLayers <<
"\n" 262 <<
" max. number of sides: " << maxNumSides;
263 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildTIBAlignmentLevels" <<
ss.str();
267 tib.push_back(std::make_unique<AlignmentLevel>(
align::TIBString, maxNumStrings,
true));
270 tib.push_back(std::make_unique<AlignmentLevel>(
align::TIBLayer, maxNumLayers,
false));
272 tib.push_back(std::make_unique<AlignmentLevel>(
align::TIBBarrel, 1,
false));
285 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildTIDAlignmentLevels" 286 <<
"determined following numbers for " 290 <<
" max. number of rings: " << maxNumRings <<
"\n" 291 <<
" max. number of wheels: " << maxNumWheels <<
"\n" 292 <<
" max. number of sides: " << maxNumSides;
296 tid.push_back(std::make_unique<AlignmentLevel>(
align::TIDSide, 2,
false));
297 tid.push_back(std::make_unique<AlignmentLevel>(
align::TIDRing, maxNumRings,
false));
298 tid.push_back(std::make_unique<AlignmentLevel>(
align::TIDDisk, maxNumWheels,
false));
299 tid.push_back(std::make_unique<AlignmentLevel>(
align::TIDEndcap, 2,
false));
310 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildTOBAlignmentLevels" 311 <<
"determined following numbers for " 315 <<
" max. number of rods: " << maxNumRods <<
"\n" 316 <<
" max. number of sides: " << maxNumSides <<
"\n" 317 <<
" max. number of layers: " << maxNumLayers;
321 tob.push_back(std::make_unique<AlignmentLevel>(
align::TOBRod, maxNumRods,
true));
322 tob.push_back(std::make_unique<AlignmentLevel>(
align::TOBLayer, maxNumLayers,
false));
324 tob.push_back(std::make_unique<AlignmentLevel>(
align::TOBBarrel, 1,
false));
336 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildTECAlignmentLevels" 337 <<
"determined following numbers for " 341 <<
" max. number of rings: " << maxNumRings <<
"\n" 342 <<
" max. number of petals: " << maxNumPetals <<
"\n" 343 <<
" max. number of wheels: " << maxNumDisks <<
"\n" 344 <<
" max. number of sides: " << maxNumSides;
348 tec.push_back(std::make_unique<AlignmentLevel>(
align::TECRing, maxNumRings,
true));
349 tec.push_back(std::make_unique<AlignmentLevel>(
align::TECPetal, maxNumPetals,
true));
350 tec.push_back(std::make_unique<AlignmentLevel>(
align::TECSide, 2,
false));
351 tec.push_back(std::make_unique<AlignmentLevel>(
align::TECDisk, maxNumDisks,
false));
352 tec.push_back(std::make_unique<AlignmentLevel>(
align::TECEndcap, 2,
false));
unsigned int tecPetalNumber(const DetId &id) const
std::set< unsigned int > pxeDiskIDs_
std::set< unsigned int > pxbLadderIDs_
static constexpr auto TEC
std::set< unsigned int > tecRingIDs_
unsigned int tobLayer(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
unsigned int tibSide(const DetId &id) const
std::vector< std::unique_ptr< AlignmentLevel > > AlignmentLevels
void addTIDDetUnitInfo(const DetId &detId)
unsigned int tobSide(const DetId &id) const
void addDetUnitInfo(const DetId &detId)
std::set< unsigned int > tidWheelIDs_
unsigned int pxfBlade(const DetId &id) const
align::AlignmentLevels buildTOBAlignmentLevels()
unsigned int tibOrder(const DetId &id) const
std::set< unsigned int > tibStringIDs_
const TrackerTopology * trackerTopology_
std::set< unsigned int > tidRingIDs_
unsigned int tidSide(const DetId &id) const
std::map< unsigned int, unsigned int > pxbLaddersPerLayer_
unsigned int tidWheel(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
align::TrackerNameSpace trackerNameSpace_
std::set< unsigned int > tidSideIDs_
unsigned int tibString(const DetId &id) const
virtual ~TrackerAlignmentLevelBuilder()
void addTOBDetUnitInfo(const DetId &detId)
std::vector< unsigned int > sphs_
Number of strings for each surface of a half shell.
std::set< unsigned int > pxeSideIDs_
align::AlignmentLevels buildPXEAlignmentLevels()
unsigned int pxbLadder(const DetId &id) const
std::set< unsigned int > tobSideIDs_
void addTIBDetUnitInfo(const DetId &detId)
std::set< unsigned int > tibLayerIDs_
unsigned int tecRing(const DetId &id) const
ring id
std::set< unsigned int > tecWheelIDs_
std::vector< align::AlignmentLevels > build()
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
std::set< unsigned int > tecSideIDs_
unsigned int module(const DetId &id) const
std::set< unsigned int > tobModuleIDs_
unsigned int bpqd_
no. of blades per quarter disk
std::set< unsigned int > pxePanelIDs_
align::AlignmentLevels buildTIDAlignmentLevels()
unsigned int tecSide(const DetId &id) const
std::set< unsigned int > pxeBladeIDs_
align::AlignmentLevels buildPXBAlignmentLevels()
unsigned int pxfDisk(const DetId &id) const
TrackerAlignmentLevelBuilder(const TrackerTopology *, const TrackerGeometry *)
std::set< unsigned int > tobLayerIDs_
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
constexpr uint16_t maxNumModules
std::map< unsigned int, unsigned int > tidStringsOuterLayer_
static constexpr auto TOB
const align::TrackerNameSpace & trackerNameSpace() const
std::set< unsigned int > tibModuleIDs_
unsigned int pxfPanel(const DetId &id) const
Log< level::Info, false > LogInfo
unsigned int pxfSide(const DetId &id) const
std::set< unsigned int > pxbLayerIDs_
static constexpr auto TIB
const AlignableObjectId alignableObjectId_
std::map< unsigned int, unsigned int > tidStringsInnerLayer_
const char * idToString(align::StructureType type) const
std::set< unsigned int > pxeModuleIDs_
std::vector< unsigned int > lpqc_
Number of ladders for each quarter cylinder.
std::set< unsigned int > tecModuleIDs_
std::set< unsigned int > tecPetalIDs_
unsigned int tobRod(const DetId &id) const
void addPXBDetUnitInfo(const DetId &detId)
align::AlignmentLevels buildTIBAlignmentLevels()
std::set< unsigned int > tibSideIDs_
void addTECDetUnitInfo(const DetId &detId)
unsigned int tidRing(const DetId &id) const
unsigned int tibLayer(const DetId &id) const
static constexpr auto TID
std::set< unsigned int > pxbModuleIDs_
std::set< unsigned int > tidModuleIDs_
align::AlignmentLevels buildTECAlignmentLevels()
std::set< unsigned int > tobRodIDs_
void addPXEDetUnitInfo(const DetId &detId)