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;
186 <<
" max. number of modules: " << maxNumModules <<
"\n"
187 <<
" max. number of ladders: " << maxNumLadders <<
"\n";
195 ss <<
" max. number of layers: " << maxNumLayers;
196 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=TrackerAlignmentLevelBuilder::buildPXBAlignmentLevels" << ss.str();
199 pxb.push_back(std::make_unique<AlignmentLevel>(
align::TPBModule, maxNumModules,
false));
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;
218 <<
" max. number of modules: " << maxNumModules <<
"\n"
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();
230 pxe.push_back(std::make_unique<AlignmentLevel>(
align::TPEModule, maxNumModules,
false));
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;
249 <<
" max. number of modules: " << maxNumModules <<
"\n"
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();
266 tib.push_back(std::make_unique<AlignmentLevel>(
align::TIBModule, maxNumModules,
false));
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 "
289 <<
" max. number of modules: " << maxNumModules <<
"\n"
290 <<
" max. number of rings: " << maxNumRings <<
"\n"
291 <<
" max. number of wheels: " << maxNumWheels <<
"\n"
292 <<
" max. number of sides: " << maxNumSides;
295 tid.push_back(std::make_unique<AlignmentLevel>(
align::TIDModule, maxNumModules,
false));
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 "
314 <<
" max. number of modules: " << maxNumModules <<
"\n"
315 <<
" max. number of rods: " << maxNumRods <<
"\n"
316 <<
" max. number of sides: " << maxNumSides <<
"\n"
317 <<
" max. number of layers: " << maxNumLayers;
320 tob.push_back(std::make_unique<AlignmentLevel>(
align::TOBModule, maxNumModules,
false));
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 "
340 <<
" max. number of modules: " << maxNumModules <<
"\n"
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;
347 tec.push_back(std::make_unique<AlignmentLevel>(
align::TECModule, maxNumModules,
false));
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));
std::set< unsigned int > pxeDiskIDs_
std::set< unsigned int > pxbLadderIDs_
static constexpr auto TEC
std::set< unsigned int > tecRingIDs_
std::vector< std::unique_ptr< AlignmentLevel > > AlignmentLevels
void addTIDDetUnitInfo(const DetId &detId)
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
unsigned int tidRing(const DetId &id) const
void addDetUnitInfo(const DetId &detId)
std::set< unsigned int > tidWheelIDs_
align::AlignmentLevels buildTOBAlignmentLevels()
std::set< unsigned int > tibStringIDs_
const TrackerTopology * trackerTopology_
std::set< unsigned int > tidRingIDs_
std::map< unsigned int, unsigned int > pxbLaddersPerLayer_
unsigned int pxfDisk(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
align::TrackerNameSpace trackerNameSpace_
unsigned int pxbLadder(const DetId &id) const
std::set< unsigned int > tidSideIDs_
virtual ~TrackerAlignmentLevelBuilder()
unsigned int tidWheel(const DetId &id) const
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()
std::set< unsigned int > tobSideIDs_
void addTIBDetUnitInfo(const DetId &detId)
std::set< unsigned int > tibLayerIDs_
std::set< unsigned int > tecWheelIDs_
std::vector< align::AlignmentLevels > build()
constexpr std::array< uint8_t, layerIndexSize > layer
std::set< unsigned int > tecSideIDs_
std::set< unsigned int > tobModuleIDs_
unsigned int module(const DetId &id) const
unsigned int bpqd_
no. of blades per quarter disk
unsigned int tibSide(const DetId &id) const
std::set< unsigned int > pxePanelIDs_
unsigned int tidSide(const DetId &id) const
const align::TrackerNameSpace & trackerNameSpace() const
align::AlignmentLevels buildTIDAlignmentLevels()
std::set< unsigned int > pxeBladeIDs_
unsigned int tobSide(const DetId &id) const
align::AlignmentLevels buildPXBAlignmentLevels()
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
TrackerAlignmentLevelBuilder(const TrackerTopology *, const TrackerGeometry *)
std::set< unsigned int > tobLayerIDs_
constexpr uint16_t maxNumModules
std::map< unsigned int, unsigned int > tidStringsOuterLayer_
static constexpr auto TOB
std::set< unsigned int > tibModuleIDs_
unsigned int pxbLayer(const DetId &id) const
Log< level::Info, false > LogInfo
std::set< unsigned int > pxbLayerIDs_
static constexpr auto TIB
const AlignableObjectId alignableObjectId_
const char * idToString(align::StructureType type) const
std::map< unsigned int, unsigned int > tidStringsInnerLayer_
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_
void addPXBDetUnitInfo(const DetId &detId)
align::AlignmentLevels buildTIBAlignmentLevels()
std::set< unsigned int > tibSideIDs_
unsigned int pxfSide(const DetId &id) const
void addTECDetUnitInfo(const DetId &detId)
unsigned int tecPetalNumber(const DetId &id) const
unsigned int tobRod(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
static constexpr auto TID
std::set< unsigned int > pxbModuleIDs_
std::set< unsigned int > tidModuleIDs_
unsigned int pxfPanel(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
align::AlignmentLevels buildTECAlignmentLevels()
unsigned int tobLayer(const DetId &id) const
std::set< unsigned int > tobRodIDs_
unsigned int tecSide(const DetId &id) const
unsigned int tibOrder(const DetId &id) const
void addPXEDetUnitInfo(const DetId &detId)