|
ATLAS Offline Software
|
#include <PixelDetectorFactory.h>
Definition at line 19 of file PixelDetectorFactory.h.
◆ PixelDetectorFactory() [1/2]
Definition at line 35 of file PixelDetectorFactory.cxx.
61 std::unique_ptr<SiCommonItems> commonItems{std::make_unique<SiCommonItems>(athenaComps->
getIdHelper())};
72 <<
"\" which is inconsistent with the layout choosen!"
84 int versionMajorNumber = 5;
85 int versionMinorNumber = 1;
86 int versionPatchNumber = 0;
◆ ~PixelDetectorFactory()
PixelDetectorFactory::~PixelDetectorFactory |
( |
| ) |
|
◆ PixelDetectorFactory() [2/2]
◆ create()
void PixelDetectorFactory::create |
( |
GeoPhysVol * |
world | ) |
|
|
virtual |
Definition at line 112 of file PixelDetectorFactory.cxx.
115 msg(MSG::INFO) <<
"Building Pixel Detector" <<
endmsg;
133 GeoVPhysVol* pephys =
pe.Build() ;
138 world->add(
new GeoNameTag(
"Pixel"));
139 GeoAlignableTransform *
transform =
new GeoAlignableTransform(topTransform);
◆ detStore() [1/2]
◆ detStore() [2/2]
◆ doChecks()
void PixelDetectorFactory::doChecks |
( |
| ) |
|
|
private |
Definition at line 218 of file PixelDetectorFactory.cxx.
223 msg(MSG::INFO) <<
"Doing consistency checks." <<
endmsg;
228 int missingCount = 0;
229 InDetDD::SiDetectorElementCollection::const_iterator iter;
230 for (iter =
manager->getDetectorElementBegin(); iter !=
manager->getDetectorElementEnd(); ++iter){
234 msg(MSG::WARNING) <<
"MISSING ELEMENT!!!!!!!!!!! - Element # " <<
count-1 <<
endmsg;
240 msg(MSG::ERROR) <<
"There are missing elements in element array." <<
endmsg;
242 msg(MSG::INFO) <<
"Number missing: " << missingCount <<
endmsg;
252 int barrelCountError = 0;
253 for (
int iBarrelIndex = 0; iBarrelIndex <
manager->numerology().numBarrels(); iBarrelIndex++) {
254 int iBarrel =
manager->numerology().barrelId(iBarrelIndex);
255 for (
int iLayer = 0; iLayer <
manager->numerology().
numLayers(); iLayer++) {
260 int etaCorrection = 0;
267 if (
manager->numerology().useLayer(iLayer)) {
269 for (
int iEta =
manager->numerology().beginEtaModuleForLayer(iLayer);
270 iEta < manager->numerology().endEtaModuleForLayer(iLayer) - etaCorrection;
273 if (!etaCorrection && !
iEta &&
manager->numerology().skipEtaZeroForLayer(iLayer))
continue;
277 std::stringstream ostr;
278 ostr <<
"[2.1 . " << iBarrel <<
" . " << iLayer <<
" . " <<
iPhi <<
" . " <<
iEta <<
" . 0]";
281 msg(MSG::WARNING) <<
" No element found for id: " << ostr.str() <<
" " << idHelper->
show_to_string(
id) <<
endmsg;
292 int endcapCountError = 0;
293 for (
int iEndcapIndex = 0; iEndcapIndex <
manager->numerology().numEndcaps(); iEndcapIndex++) {
294 int iEndcap =
manager->numerology().endcapId(iEndcapIndex);
295 for (
int iDisk = 0; iDisk <
manager->numerology().numDisks(); iDisk++) {
296 if (
manager->numerology().useDisk(iDisk)) {
302 std::stringstream ostr;
303 ostr <<
"[2.1." << iEndcap <<
"." << iDisk <<
"." <<
iPhi <<
"." <<
iEta <<
".0]";
306 msg(MSG::WARNING) <<
" No element found for id: " << ostr.str() <<
" " << idHelper->
show_to_string(
id) <<
endmsg;
315 int endcapCountDBM = 0;
316 int endcapCountErrorDBM = 0;
321 for (
int iEndcapIndex = 0; iEndcapIndex <
manager->numerology().numEndcapsDBM(); iEndcapIndex++) {
322 int iEndcap =
manager->numerology().endcapIdDBM(iEndcapIndex);
323 for (
int iDisk = 0; iDisk <
manager->numerology().numDisksDBM(); iDisk++) {
324 if (
manager->numerology().useDiskDBM(iDisk)) {
330 std::stringstream ostr;
331 ostr <<
"[2.1." << iEndcap <<
"." << iDisk <<
"." <<
iPhi <<
"." <<
iEta <<
".0]";
333 endcapCountErrorDBM++;
334 msg(MSG::WARNING) <<
" No element found for id (DBM): " << ostr.str() <<
" " << idHelper->
show_to_string(
id) <<
endmsg;
343 if (barrelCountError || endcapCountError || endcapCountErrorDBM) {
344 msg(MSG::ERROR) <<
"There are elements which cannot be found." <<
endmsg;
345 msg(MSG::INFO) <<
"Number of barrel elements not found : " << barrelCountError <<
endmsg;
346 msg(MSG::INFO) <<
"Number of pixel endcap elements not found : " << endcapCountError <<
endmsg;
347 msg(MSG::INFO) <<
"Number of DBM endcap elements not found : " << endcapCountErrorDBM <<
endmsg;
350 if ( barrelCount+endcapCount+endcapCountDBM !=
int(maxHash)) {
351 msg(MSG::ERROR) <<
"Total count does not match maxHash." <<
endmsg;
352 msg(MSG::INFO) <<
"Number of barrel elements : " << barrelCount <<
endmsg;
353 msg(MSG::INFO) <<
"Number of endcap elements : " << endcapCount <<
endmsg;
354 msg(MSG::INFO) <<
"Number of endcap elements (DBM) : " << endcapCountDBM <<
endmsg;
355 msg(MSG::INFO) <<
"Total : " << barrelCount+endcapCount+endcapCountDBM <<
endmsg;
356 msg(MSG::INFO) <<
"MaxHash : " << maxHash <<
endmsg;
359 msg(MSG::INFO) <<
"Number of barrel elements : " << barrelCount <<
endmsg;
360 msg(MSG::INFO) <<
"Number of endcap elements : " << endcapCount <<
endmsg;
361 msg(MSG::INFO) <<
"Number of endcap elements (DBM) : " << endcapCountDBM <<
endmsg;
362 msg(MSG::INFO) <<
"Total : " << barrelCount+endcapCount+endcapCountDBM <<
endmsg;
363 msg(MSG::INFO) <<
"MaxHash : " << maxHash <<
endmsg;
◆ geoDbTagSvc()
◆ geomDB()
◆ getAthenaComps()
◆ getDetectorManager()
◆ msg()
MsgStream& InDetDD::DetectorFactoryBase::msg |
( |
MSG::Level |
lvl | ) |
const |
|
inlineinherited |
◆ msgLvl()
bool InDetDD::DetectorFactoryBase::msgLvl |
( |
MSG::Level |
lvl | ) |
|
|
inlineinherited |
◆ operator=()
◆ rdbAccessSvc()
◆ m_athenaComps
◆ m_detectorManager
◆ m_geometryManager
◆ m_useDynamicAlignFolders
bool PixelDetectorFactory::m_useDynamicAlignFolders |
|
private |
The documentation for this class was generated from the following files:
void addSpecialFolder(const std::string &key)
const SiNumerology & numerology() const
Access Numerology.
bool m_useDynamicAlignFolders
int columns() const
Number of cell columns per module:
std::unique_ptr< PixelGeometryManager > m_geometryManager
bool servicesOnLadder() const
int rows() const
Number of cell rows per module:
void setMaxNumEtaCells(int cells)
void setVersion(const Version &version)
MsgStream & msg(MSG::Level lvl) const
void addAlignFolderType(const AlignFolderType alignfolder)
void setCommonItems(std::unique_ptr< const SiCommonItems > &&commonItems)
Set SiCommonItems.
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
bool initialLayout() const
bool msgLvl(const MSG::Level lvl) const
Test the output level.
StoreGateSvc * detStore()
virtual void initNeighbours() override
Initialize the neighbours.
const PixelID * getIdHelper() const
void addFolder(const std::string &key)
Eigen::Affine3d Transform3D
void setMaxNumPhiCells(int cells)
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
const Version & getVersion() const
Get version information.
void addGlobalFolder(const std::string &key)
void addTreeTop(const PVConstLink &vol)
Add a Tree top:
MsgStream & msg() const
The standard message stream.
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms.
bool msgLvl(MSG::Level lvl)
const std::string & tag() const
Get tag used in dictionary.
InDetDD::PixelDetectorManager * m_detectorManager
size_type wafer_hash_max(void) const
constexpr unsigned int numLayers()
const IGeometryDBSvc * geomDB() const
std::string fullDescription() const
Full Description For example, Version: SCT-DC1-00, Name: DC1, Layout: Final, Code Version: 2....
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
InDetDD::AthenaComps * m_athenaComps
const StoreGateSvc * detStore() const
void addChannel(const std::string &key, int level, FrameType frame)
Alignment access.
IRDBAccessSvc * rdbAccessSvc()
setScale setgFexType iEta
virtual const PixelModuleDesign * getPixelDesign(int i) const
Access to module design, Casts to PixelModuleDesign.
bool dynamicAlignFolders() const
std::string description
glabal timer - how long have I taken so far?