ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::SiGeometryManagerTool Class Reference

#include <SiGeometryManagerTool.h>

Inheritance diagram for InDet::SiGeometryManagerTool:
Collaboration diagram for InDet::SiGeometryManagerTool:

Public Member Functions

 SiGeometryManagerTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~SiGeometryManagerTool ()
 
StatusCode initialize ()
 
StatusCode finalize ()
 
int ReadGeometry (int solveLevel)
 read the geometry Method is called from the main AlignAlg to build the geometry based on the requested level of alignment. More...
 
void PrintModPositions ()
 
void StoreModPositions (std::string)
 
void buildGeometry ()
 builds geometry for Silicon alignment More...
 
void addModuleParameters (Trk::AlignModule *module, DataVector< DataVector< Trk::AlignPar > > *allFullModPars, DataVector< DataVector< Trk::AlignPar > > *allActiveModPars)
 adds alignment parameters for the module checks for active parameters and calls setSigmas() More...
 
bool checkAlignLevel ()
 check whether the alignment level is correct More...
 
void setLogStream (std::ostream *os)
 sets the output stream for the logfile More...
 
virtual void setNtuple (TFile *)
 Sets output ntuple file, to be implemented if needed for detector-specific implementation. More...
 
virtual int getNextIDHash ()
 get next free IDHash usable for new AlignModule More...
 
virtual void setFirstIDHash (unsigned int idhash)
 set first free IDHash usable for new AlignModule More...
 
virtual void setModuleList (Trk::AlignModuleList *list)
 set pointer to module list to which the modules should be added to More...
 
virtual void setHashMaps (std::vector< Trk::AlignModuleList * > *maps)
 set pointer to vector of hashMaps to which the elements should be added to More...
 
virtual int alignLevel ()
 get alignment level More...
 
virtual void setAlignLevel (int level)
 set alignment level More...
 
virtual int alignLevelBarrel ()
 get alignment level More...
 
virtual void setAlignLevelBarrel (int level)
 set alignment level More...
 
virtual bool checkAlignLevelBarrel ()
 check whether the alignment level is allowed More...
 
virtual int alignLevelEndcaps ()
 get alignment level More...
 
virtual void setAlignLevelEndcaps (int level)
 set alignment level More...
 
virtual bool checkAlignLevelEndcaps ()
 check whether the alignment level is allowed More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

Trk::AlignModuleListm_alignModuleListPtr = nullptr
 pointer to module list to which the modules are added More...
 
std::vector< Trk::AlignModuleList * > * m_idHashToAlignModuleMapsPtr = nullptr
 pointer to vector of hashMaps to which the elements are added More...
 
int m_hashCounter = 0
 variable for setting the idHash of the AlignModules More...
 
std::ostream * m_logStream = nullptr
 logfile output stream More...
 
int m_alignLevel = 0
 alignment level More...
 
int m_alignLevelBarrel = 0
 alignment level More...
 
int m_alignLevelEndcaps = 0
 alignment level More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void buildL0 ()
 creates L0 AlignModules for Silicon More...
 
void setSigmas (Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
 sets sigmas for modules More...
 
bool moduleSelected (Trk::AlignModule *mod)
 check wheather module is selected for module pointer More...
 
bool moduleSelected (unsigned long long modId)
 check wheather module is selected for module id More...
 
void dumpGeometry ()
 print basic geometry info to screen More...
 
bool isOneDetOnly (const Trk::AlignModule *mod, Trk::AlignModule::DetectorType dettype) const
 check whether the module is of a single detector type More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

const InDetDD::PixelDetectorManagerm_pixelDetManager
 pointer to PIX detector manager More...
 
const InDetDD::SCT_DetectorManagerm_sctDetManager
 pointer to SCT detector manager More...
 
const PixelIDm_pixHelper
 pointer to PIX detector manager More...
 
const SCT_IDm_sctHelper
 pointer to SCT detector manager More...
 
const SiliconIDm_idHelper
 pointer to Silicon detector manager More...
 
ToolHandle< Trk::IGeometryManagerToolm_pixelGeoManager
 pointer to Pixel geometry manager More...
 
ToolHandle< Trk::IGeometryManagerToolm_sctGeoManager
 pointer to SCT geometry manager More...
 
ToolHandle< Trk::IAlignModuleToolm_alignModuleTool
 pointer to AlignModuleTool More...
 
Trk::AlignModuleList m_alignModuleList
 
Trk::AlignModuleList m_idHashToAlignModuleMap
 
std::vector< Trk::AlignModuleList * > m_idHashToAlignModuleMaps
 
DataVector< DataVector< Trk::AlignPar > > * m_alignParList
 
DataVector< DataVector< Trk::AlignPar > > * m_fullAlignParList
 
bool m_alignX
 
bool m_alignY
 
bool m_alignZ
 
bool m_alignRotX
 
bool m_alignRotY
 
bool m_alignRotZ
 
double m_sigmaX
 
double m_sigmaY
 
double m_sigmaZ
 
double m_sigmaRotX
 
double m_sigmaRotY
 
double m_sigmaRotZ
 
bool m_alignPixel
 
bool m_alignSCT
 
bool m_doModuleSelection
 
std::vector< unsigned long long > m_moduleSelection
 
bool m_dumpGeometry
 
bool m_actualGeom
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 49 of file SiGeometryManagerTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ SiGeometryManagerTool()

InDet::SiGeometryManagerTool::SiGeometryManagerTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 30 of file SiGeometryManagerTool.cxx.

34  , m_pixelDetManager(nullptr)
35  , m_sctDetManager(nullptr)
36  , m_pixHelper()
37  , m_sctHelper()
38  , m_idHelper()
39  , m_pixelGeoManager("")
40  , m_sctGeoManager("")
41  , m_alignModuleTool("Trk::AlignModuleTool/AlignModuleTool")
43  , m_alignParList(nullptr)
44  , m_fullAlignParList(nullptr)
45  {
46  declareInterface<IGeometryManagerTool>(this);
47  declareProperty("AlignModuleTool", m_alignModuleTool);
48 
49  declareProperty("PixelGeometryManager", m_pixelGeoManager);
50  declareProperty("SCTGeometryManager", m_sctGeoManager);
51 
52  // Silicon joboptions
53  declareProperty("AlignPixel", m_alignPixel = true);
54  declareProperty("AlignSCT", m_alignSCT = true);
55 
56  declareProperty("AlignX", m_alignX = true);
57  declareProperty("AlignY", m_alignY = true);
58  declareProperty("AlignZ", m_alignZ = true);
59  declareProperty("AlignRotX", m_alignRotX = true);
60  declareProperty("AlignRotY", m_alignRotY = true);
61  declareProperty("AlignRotZ", m_alignRotZ = true);
62 
63  declareProperty("SetSigmaX", m_sigmaX = 1.);
64  declareProperty("SetSigmaY", m_sigmaY = 1.);
65  declareProperty("SetSigmaZ", m_sigmaZ = 1.);
66  declareProperty("SetSigmaRotX", m_sigmaRotX = 0.001);
67  declareProperty("SetSigmaRotY", m_sigmaRotY = 0.001);
68  declareProperty("SetSigmaRotZ", m_sigmaRotZ = 0.001);
69 
70  // defines alignment level
71  declareProperty("AlignmentLevel", m_alignLevel = -1);
72 
73  declareProperty("doModuleSelection", m_doModuleSelection = false);
74  declareProperty("ModuleSelection", m_moduleSelection);
75 
76  declareProperty("DumpGeometry", m_dumpGeometry = true);
77  declareProperty("ActualGeometry", m_actualGeom = false);
78 
79  m_hashCounter = 0;
80  m_logStream = nullptr;
81  }

◆ ~SiGeometryManagerTool()

InDet::SiGeometryManagerTool::~SiGeometryManagerTool ( )
virtual

Definition at line 84 of file SiGeometryManagerTool.cxx.

85  {
86  ATH_MSG_DEBUG("deleting alignModuleList");
87  for (const auto & i:m_alignModuleList) delete i;
88  m_alignModuleList.clear();
89 
90  ATH_MSG_DEBUG("deleting fullAlignParList");
91  delete m_fullAlignParList;
92  ATH_MSG_DEBUG("deleting alignParList");
93  delete m_alignParList;
94  }

Member Function Documentation

◆ addModuleParameters()

void InDet::SiGeometryManagerTool::addModuleParameters ( Trk::AlignModule module,
DataVector< DataVector< Trk::AlignPar > > *  allFullModPars,
DataVector< DataVector< Trk::AlignPar > > *  allActiveModPars 
)
virtual

adds alignment parameters for the module checks for active parameters and calls setSigmas()

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 423 of file SiGeometryManagerTool.cxx.

424  {
425  // for standalone Pixel and SCT modules call the respective methods
427  m_pixelGeoManager->addModuleParameters(module,allFullModPars,allActiveModPars);
428  return;
429  }
431  m_sctGeoManager->addModuleParameters(module,allFullModPars,allActiveModPars);
432  return;
433  }
434 
435  // for combined modules do the work here
436 
437  // prepare all parameters
445 
446  // set sigmas
447  setSigmas(module,fullModPars);
448 
449  // select active parameters based on jobOption properties
451  for(unsigned int ipar=0;ipar<fullModPars->size();++ipar) {
452 
453  Identifier AlimodID = module->identify();
454 
455  ATH_MSG_DEBUG("Silicon module with id "<<AlimodID);
456  if( (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransX && m_alignX)
457  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransY && m_alignY)
458  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransZ && m_alignZ)
459  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotX && m_alignRotX)
460  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotY && m_alignRotY)
461  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotZ && m_alignRotZ) ) {
462  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is now active");
463  activeModPars->push_back(fullModPars->at(ipar));
464  }
465  else
466  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is NOT active");
467  }
468 
469  // now add parameters to the list
470  allFullModPars->push_back(fullModPars);
471  allActiveModPars->push_back(activeModPars);
472  }

◆ alignLevel()

virtual int Trk::IGeometryManagerTool::alignLevel ( )
inlinevirtualinherited

get alignment level

Definition at line 80 of file IGeometryManagerTool.h.

80 { return m_alignLevel; }

◆ alignLevelBarrel()

virtual int Trk::IGeometryManagerTool::alignLevelBarrel ( )
inlinevirtualinherited

get alignment level

Definition at line 86 of file IGeometryManagerTool.h.

86 { return m_alignLevelBarrel; }

◆ alignLevelEndcaps()

virtual int Trk::IGeometryManagerTool::alignLevelEndcaps ( )
inlinevirtualinherited

get alignment level

Definition at line 95 of file IGeometryManagerTool.h.

95 { return m_alignLevelEndcaps; }

◆ buildGeometry()

void InDet::SiGeometryManagerTool::buildGeometry ( )
virtual

builds geometry for Silicon alignment

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 262 of file SiGeometryManagerTool.cxx.

263  {
264  ATH_MSG_INFO("Preparing the Silicon geometry");
265 
266  int idHash = 0;
267 
268  if(m_alignLevel==0)
269  buildL0();
270 
271  else {
272 
273  // PIXEL
274  if(m_alignPixel) {
275  m_pixelGeoManager->setFirstIDHash(idHash);
276  m_pixelGeoManager->setModuleList(m_alignModuleListPtr);
278 
279  m_pixelGeoManager->buildGeometry();
280 
281  idHash=m_pixelGeoManager->getNextIDHash();
282  }
283 
284  // SCT
285  if(m_alignSCT) {
286  m_sctGeoManager->setFirstIDHash(idHash);
287  m_sctGeoManager->setModuleList(m_alignModuleListPtr);
289 
290  m_sctGeoManager->buildGeometry();
291  }
292  }
293 
294  return;
295  }

◆ buildL0()

void InDet::SiGeometryManagerTool::buildL0 ( )
private

creates L0 AlignModules for Silicon

Definition at line 298 of file SiGeometryManagerTool.cxx.

299  {
300  ATH_MSG_INFO("Preparing the Silicon geometry for L0");
301  // ========================================
302  // Level 0 is just one module containing
303  // the whole Silicon detector (Pixel+SCT)
304 
305  Trk::AlignModule * silicon = new Trk::AlignModule(this);
306  silicon->setIdHash(getNextIDHash());
307  silicon->setName("Silicon");
308 
309  // use the identifier of the Pixel for the whole Silicon at L0
310  silicon->setIdentifier(m_pixHelper->wafer_id(0,0,0,0));
311 
312  // check if we're aligning Silicon
313  if(!moduleSelected(silicon)) {
314  ATH_MSG_DEBUG("Module "<<silicon->name()<<" NOT selected");
315  delete silicon;
316  return;
317  }
318 
319  ATH_MSG_DEBUG("Created module "<<silicon->name()<<" idHash: "<<silicon->identifyHash()<<" identifier: "<<silicon->identify());
320 
321  // for L0 alignment the alignment frame is equal to the global frame
322  // and since the PIXEL and SCT detector element positions are also stored
323  // in the global frame in DB, transform is identity
324  const Amg::Transform3D transform = Amg::Transform3D::Identity();
325 
326  // PIXEL
327  // get maximum number of elements from the helper
328  unsigned int pixelmaxHash = m_pixHelper->wafer_hash_max();
329  ATH_MSG_DEBUG("maxHash for the Pixel: "<<pixelmaxHash);
330 
332  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::Pixel) = new Trk::AlignModuleList((size_t)(pixelmaxHash),nullptr);
334 
335  // ==================================================================
336  // loop over Pixel elements and add them to respective alignModules
337  // ==================================================================
338  for (unsigned int index = 0; index < pixelmaxHash; index++) {
339  IdentifierHash idHash = index;
340  Identifier id = m_pixHelper->wafer_id(idHash);
341 
342  ATH_MSG_DEBUG(" Pixel DetectorElement idhash: "<<index);
343  ATH_MSG_DEBUG(" DetectorElement id: "<<id);
344 
345  // get the element via hash
347  if (element2) {
348  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
349 
350  // get element location for debugging
351  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
352  // ATH_MSG_DEBUG(" DetectorElement idhash: " << index);
353  // ATH_MSG_DEBUG(" DetectorElement id: " << id << " with center = " << center);
354  // ATH_MSG_DEBUG(" Is Barrel: "<< m_pixHelper->is_barrel(id));
355 
356  // add element to respective AlignModule
357 
358  // add to the pixel structure
359  if(msgLvl(MSG::DEBUG)) {
360  if (m_pixHelper->is_barrel(id))
361  msg(MSG::DEBUG)<<"... Pixel barrel element"<<endmsg;
362  else
363  msg(MSG::DEBUG)<<"... Pixel endcap element"<<endmsg;
364  }
366 
367  // and fill the corresponding map
368  (*pixelIdHashMap)[idHash] = silicon;
369  }
370  else
371  ATH_MSG_DEBUG("No Pixel detector with id: "<<id);
372  }
373 
374  // SCT
375  // get maximum number of elements from the helper
376  unsigned int sctmaxHash = m_sctHelper->wafer_hash_max();
377  ATH_MSG_DEBUG("maxHash for the SCT: "<<sctmaxHash);
378 
380  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(sctmaxHash),nullptr);
382 
383  // ================================================================
384  // loop over SCT elements and add them to respective alignModules
385  // ================================================================
386  for (unsigned int index = 0; index < sctmaxHash; index++) {
387  IdentifierHash idHash = index;
388  Identifier id = m_sctHelper->wafer_id(idHash);
389 
390  ATH_MSG_DEBUG(" SCT DetectorElement idhash: "<<index);
391  ATH_MSG_DEBUG(" DetectorElement id: "<<id);
392 
393  // get the element via hash
395  if (element2) {
396  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
397 
398  // add element to respective AlignModule
399 
400  // add to the sct barrel structure
401  if(msgLvl(MSG::DEBUG)) {
402  if (m_sctHelper->is_barrel(id))
403  msg(MSG::DEBUG)<<"... SCT barrel element"<<endmsg;
404  else
405  msg(MSG::DEBUG)<<"... SCT endcap element"<<endmsg;
406  }
408 
409  // and fill the corresponding map
410  (*sctIdHashMap)[idHash] = silicon;
411  }
412  else
413  ATH_MSG_DEBUG("No SCT detector with id: "<<id);
414  }
415 
416  // add created module to the geometry
417  m_alignModuleListPtr->push_back(silicon);
418 
419  ATH_MSG_DEBUG("Silicon L0 module successfully added to the list");
420  }

◆ checkAlignLevel()

bool InDet::SiGeometryManagerTool::checkAlignLevel ( )
virtual

check whether the alignment level is correct

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 160 of file SiGeometryManagerTool.cxx.

161  {
162  switch(m_alignLevel) {
163 
164  case 0:
165  // for L0 we don't need the other two managers so everything is ok
166  ATH_MSG_INFO("Setting up level 0 alignment of the Silicon");
167  break;
168 
169  case 1: case 2: case 3:
170  // for levels 1,2,3 we need the managers and we have to
171  // set the levels in them
172  if( (m_pixelGeoManager.empty() && m_alignPixel) || (m_sctGeoManager.empty() && m_alignSCT) ) {
173  ATH_MSG_ERROR("PixelGeometryManagerTool and/or SCTGeometryManagerTool not available");
174  ATH_MSG_ERROR("Can't set alignment geometry.");
175  return false;
176  }
177 
178  ATH_MSG_INFO("Setting up level "<<m_alignLevel<<" alignment of the Silicon");
179  m_pixelGeoManager->setAlignLevel(m_alignLevel);
180  m_sctGeoManager->setAlignLevel(m_alignLevel);
181 
182  // we also check that the managers support the levels
183  if( (m_alignPixel && !m_pixelGeoManager->checkAlignLevel()) || (m_alignSCT && !m_sctGeoManager->checkAlignLevel()) )
184  return false;
185  break;
186 
187  case -1:
188  // if level is not set here (i.e. it is equal to -1) we need the Pixel and SCT
189  // managers but we trust their setup, we don't need to check it
190  if( (m_pixelGeoManager.empty() && m_alignPixel) || (m_sctGeoManager.empty() && m_alignSCT) ) {
191  ATH_MSG_ERROR("PixelGeometryManagerTool and/or SCTGeometryManagerTool not available");
192  ATH_MSG_ERROR("Can't set alignment geometry.");
193  return false;
194  }
195  break;
196 
197  default:
198  ATH_MSG_ERROR("Unknown alignment level "<<m_alignLevel<<". Can't set alignment geometry.");
199  return false;
200 
201  }
202 
203  return true;
204  }

◆ checkAlignLevelBarrel()

virtual bool Trk::IGeometryManagerTool::checkAlignLevelBarrel ( )
inlinevirtualinherited

check whether the alignment level is allowed

Reimplemented in InDet::PixelGeometryManagerTool, InDet::SCTGeometryManagerTool, and InDet::TRTGeometryManagerTool.

Definition at line 92 of file IGeometryManagerTool.h.

92 { return true; }

◆ checkAlignLevelEndcaps()

virtual bool Trk::IGeometryManagerTool::checkAlignLevelEndcaps ( )
inlinevirtualinherited

check whether the alignment level is allowed

Reimplemented in InDet::PixelGeometryManagerTool, InDet::SCTGeometryManagerTool, and InDet::TRTGeometryManagerTool.

Definition at line 101 of file IGeometryManagerTool.h.

101 { return true; }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ dumpGeometry()

void InDet::SiGeometryManagerTool::dumpGeometry ( )
private

print basic geometry info to screen

Definition at line 524 of file SiGeometryManagerTool.cxx.

525  {
526 
527  ATH_MSG_INFO("---------------------------------------------------");
528  ATH_MSG_INFO("Try to write an Si geom root file:");
529  TGeoManager* gm=new TGeoManager("Silicon","Silicon");
530  TGeoMaterial* mat=new TGeoMaterial("Vacuum",0,0,0);
531  TGeoMedium* med=new TGeoMedium("Vacuum",1,mat);
532  TGeoVolume* top = gm->MakeBox("Silicon",med,2000.,2000.,10000.);
533  gm->SetTopVolume(top);
534  TGeoVolume* Si_cog[22000];
535  TGeoVolume* Si[22000];
536  int Si_count=0;
537  TGeoTranslation* tr[22000];
538  TGeoRotation* ro[22000];
539  TGeoCombiTrans* mx[22000];
540 
541  TGeoTranslation* nulltrans=new TGeoTranslation(0.0,0.0,0.0);
542  TGeoRotation* nullrota=new TGeoRotation();
543  nullrota->SetAngles(0.0,0.0,0.0); // Euler angles
544  TGeoRotation* fliprota=new TGeoRotation();
545  fliprota->SetAngles(0.0,-90.0,0.0); // Euler angles (rotation around X)
546  TGeoCombiTrans* donothing=new TGeoCombiTrans(*nulltrans,*nullrota);
547  TGeoCombiTrans* swapaxes=new TGeoCombiTrans(*nulltrans,*fliprota);
548 
549  Amg::Vector3D ea;
551 
552  // First prepare the higher level (L1, L2) structures:
553  TGeoVolume* L0_A = gm->MakeTube("L0_A",med,0.0,1100.0,5000.0);
554  L0_A->SetVisibility(kFALSE);
555  top->AddNodeOverlap(L0_A,Si_count,donothing);
556  Si_count++;
557  TGeoVolume* L1_IBL_A = gm->MakeTube("L1_IBL_A",med,20.0,40.0,700.0);
558  L1_IBL_A->SetVisibility(kFALSE);
559  L0_A->AddNodeOverlap(L1_IBL_A,Si_count,donothing);
560  Si_count++;
561  TGeoVolume* L1_DBM_A = gm->MakeTube("L1_DBM_A",med,20.0,40.0,1000.0);
562  L1_DBM_A->SetVisibility(kFALSE);
563  L0_A->AddNodeOverlap(L1_DBM_A,Si_count,donothing);
564  Si_count++;
565  TGeoVolume* L1_PIX_A = gm->MakeTube("L1_PIX_A",med,40.0,150.0,700.0);
566  L1_PIX_A->SetVisibility(kFALSE);
567  L0_A->AddNodeOverlap(L1_PIX_A,Si_count,donothing);
568  Si_count++;
569  TGeoVolume* L1_SCTA_A = gm->MakeTube("L1_SCTA_A",med,250.0,550.0,3000.0);
570  L1_SCTA_A->SetVisibility(kFALSE);
571  L0_A->AddNodeOverlap(L1_SCTA_A,Si_count,donothing);
572  Si_count++;
573  TGeoVolume* L1_SCTB_A = gm->MakeTube("L1_SCTB_A",med,250.0,550.0,3000.0);
574  L1_SCTB_A->SetVisibility(kFALSE);
575  L0_A->AddNodeOverlap(L1_SCTB_A,Si_count,donothing);
576  Si_count++;
577  TGeoVolume* L1_SCTC_A = gm->MakeTube("L1_SCTC_A",med,250.0,550.0,3000.0);
578  L1_SCTC_A->SetVisibility(kFALSE);
579  L0_A->AddNodeOverlap(L1_SCTC_A,Si_count,donothing);
580  Si_count++;
581 
582 
583 
584  ATH_MSG_INFO("---------------------------------------------------");
585  ATH_MSG_INFO("Summary of the alignment geometry");
586  ATH_MSG_INFO("Number of alignable objects: "<< m_alignModuleList.size());
587  for(unsigned int i=0;i<m_alignModuleList.size();i++) {
589  ATH_MSG_INFO(i<<". "<< module->name());
590  ATH_MSG_INFO(" - identifier: "<<module->identify());
591  ATH_MSG_INFO(" - identifierHash: "<<module->identifyHash());
592 
593  unsigned int npix(0);
594  unsigned int nsct(0);
595  unsigned int nSi(0);
596  bool isPix(false);
597  bool isSCT(false);
598  if(module->detElementCollection(Trk::AlignModule::Pixel)) {
599  npix = module->detElementCollection(Trk::AlignModule::Pixel)->size();
600  nSi = npix; isPix = true;
601  ATH_MSG_INFO(" - has "<<npix<<" Pixel modules");
602  }
603  if(module->detElementCollection(Trk::AlignModule::SCT)) {
604  nsct = module->detElementCollection(Trk::AlignModule::SCT)->size();
605  nSi = nsct; isSCT = true;
606  ATH_MSG_INFO(" - has "<<nsct<<" SCT modules");
607  }
608  if(!isPix && !isSCT) ATH_MSG_INFO(" UNKNOWN module found: "<<module->identify());
609 
610  // Loop over all detector elements of this align module:
611  for(unsigned int j=0;j<nSi;j++) {
612  const SiDetectorElement * element=nullptr;
613  if(isPix) element = dynamic_cast<const SiDetectorElement*>(module->detElementCollection(Trk::AlignModule::Pixel)->at(j));
614  if(isSCT) element = dynamic_cast<const SiDetectorElement*>(module->detElementCollection(Trk::AlignModule::SCT)->at(j));
615  if (not element){
616  ATH_MSG_WARNING("Dynamic cast to SiDetectorElement from pixel or SCT module failed");
617  return;
618  }
619  const Identifier element_id = element->identify();
620  int det,bec,layer,ring,sector,side;
621  // in the future, the InDetAlignDBTool::idToDetSet should be directly used !
622  bool resok=false;
623  if (m_pixHelper->is_pixel(element_id)) {
624  det=1;
625  bec=m_pixHelper->barrel_ec(element_id);
626  layer=m_pixHelper->layer_disk(element_id);
627  ring=m_pixHelper->eta_module(element_id);
628  sector=m_pixHelper->phi_module(element_id);
629  side=0;
630  resok=true;
631  } else if (m_sctHelper->is_sct(element_id)) {
632  det=2;
633  bec=m_sctHelper->barrel_ec(element_id);
634  layer=m_sctHelper->layer_disk(element_id);
635  ring=m_sctHelper->eta_module(element_id);
636  sector=m_sctHelper->phi_module(element_id);
637  side=m_sctHelper->side(element_id);
638  resok=true;
639  }
640  if(!resok) ATH_MSG_INFO(" UNRESOLVED module found: "<<element_id);
641 
642  if(resok && !(element->isStereo())) { // take only phi SCT modules and Pixels
643  // extract the transformation parameters from Eigen:
644  if( m_actualGeom ) {
645  xyz = element->transform().translation(); // translation (actual)
646  ea = element->transform().rotation().eulerAngles(2, 0, 2); // Euler angles (actual)
647  } else {
648  xyz = element->defTransform().translation(); // translation (nominal)
649  ea = element->defTransform().rotation().eulerAngles(2, 0, 2); // Euler angles (nominal)
650  }
651 
652  ATH_MSG_INFO(">>> Element ident,det,bec,layer,ring,sector,side: "<<element_id<<", "<<det<<", "<<bec<<", "<<layer<<", "<<ring<<", "<<sector<<", "<<side);
653  ATH_MSG_INFO(">>> Element length/width/thickness: "<<element->length()<<", "<<element->width()<<", "<<element->thickness());
654  if(element->isSCT() && element->isEndcap())
655  ATH_MSG_INFO(">>> SCT Endcap wedge, min/max "<<element->minWidth()<<" / "<<element->maxWidth());
656  ATH_MSG_INFO(">>> Center position: "<<element->center());
657  ATH_MSG_INFO(">>> Default transformation: ");
658  ATH_MSG_INFO(">>> translation: "<<xyz);
659  ATH_MSG_INFO(">>> Euler angles: Phi="<<57.2957*ea[0]<<" Theta="<<57.2957*ea[1]<<" Psi="<<57.2957*ea[2]);
660 
661 
662  ATH_MSG_INFO("Adding a volume to the Silicon geometry:");
663  TString nname = "Si_COG_";
664  TString mname = "Si_MOD_";
665  TString undsc = "_";
666 
667  std::string det_str = std::to_string(det);
668  std::string bec_str = std::to_string( bec);
669  std::string layer_str = std::to_string( layer);
670  std::string ring_str = std::to_string( ring);
671  std::string sector_str = std::to_string( sector);
672  const auto suffix = TString(det_str)+undsc+TString(bec_str)+undsc+TString(layer_str)+undsc+TString(ring_str)+undsc+TString(sector_str);
673  nname += suffix;
674  mname += suffix;
675 
676  Si_cog[Si_count] = gm->MakeSphere(nname,med,0.0,element->length(),0.0,180.0,0.0,360.0); // invisible container
677  Si_cog[Si_count]->SetVisibility(kFALSE);
678  // create a wedge for SCT Endcap, otherwise a box:
679  if(element->isSCT() && element->isEndcap()) {
680  Si[Si_count] = gm->MakeTrd1(mname,med,0.5*element->minWidth(),0.5*element->maxWidth(),0.5*element->thickness(),0.5*element->length()); // this is a wedge!
681  } else {
682  Si[Si_count] = gm->MakeBox(mname,med,0.5*element->width(),0.5*element->thickness(),0.5*element->length()); // creator takes the half-lengths!
683  }
684  tr[Si_count] = new TGeoTranslation();
685  tr[Si_count]->SetTranslation(xyz[0],xyz[1],xyz[2]);
686  ro[Si_count] = new TGeoRotation();
687  ro[Si_count]->SetAngles(57.2957*ea[0],57.2957*ea[1],57.2957*ea[2]);
688  mx[Si_count] = new TGeoCombiTrans(*tr[Si_count],*ro[Si_count]);
689 
690  TGeoVolume* parrent_elem = nullptr;
691  switch(det)
692  {
693  case 1:
694  if(bec==0 && layer==0) parrent_elem = L1_IBL_A;
695  else if(abs(bec)==4) parrent_elem = L1_DBM_A;
696  else parrent_elem = L1_PIX_A;
697  break;
698  case 2:
699  switch(bec)
700  {
701  case -2:
702  parrent_elem = L1_SCTC_A;
703  break;
704  case 0:
705  parrent_elem = L1_SCTB_A;
706  break;
707  case 2:
708  parrent_elem = L1_SCTA_A;
709  break;
710  default:
711  break;
712  }
713  break;
714  default:
715  break;
716  }
717  if(parrent_elem) {
718  // parrent_elem->AddNode(Si_cog[Si_count],Si_count,mx[Si_count]);
719  // top->AddNode(Si_cog[Si_count],Si_count,mx[Si_count]);
720  top->AddNode(Si_cog[Si_count],0,mx[Si_count]);
721  // Si_cog[Si_count]->AddNode(Si[Si_count],Si_count,gGeoIdentity);
722  // Si_cog[Si_count]->AddNode(Si[Si_count],side,swapaxes);
723  Si_cog[Si_count]->AddNode(Si[Si_count],0,swapaxes);
724  Si_count++;
725  }
726  }
727  }
728 
729 
730  if(npix && nsct)
731  ATH_MSG_INFO(" - has "<<npix+nsct<<" Silicon modules in total");
732 
733  Amg::Transform3D localtoglobal = (module->globalFrameToAlignFrame()).inverse();
734  ATH_MSG_DEBUG(" - local to global : "<<std::setprecision(12)<<localtoglobal.translation()<<" "<<localtoglobal.rotation());
735 
737  int npars = pars->size();
738  ATH_MSG_DEBUG(" - number of active transform parameters: "<<npars);
739  for(int j=0;j<npars;j++)
740  ATH_MSG_DEBUG(" * par "<<j<<": sigma = "<<(*pars)[j]->sigma());
741 
742  }
743 
744 
745  // close geometry end write the geometry root file:
746  gm->CloseGeometry();
747  gm->Export("Silicon.root","Silicon","v");
748 
749  }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode InDet::SiGeometryManagerTool::finalize ( )
virtual

Implements Trk::IGeometryManagerTool.

Definition at line 152 of file SiGeometryManagerTool.cxx.

153  {
154  ATH_MSG_DEBUG("finalize() of SiGeometryManagerTool");
155 
156  return StatusCode::SUCCESS;
157  }

◆ getNextIDHash()

virtual int Trk::IGeometryManagerTool::getNextIDHash ( )
inlinevirtualinherited

get next free IDHash usable for new AlignModule

Definition at line 65 of file IGeometryManagerTool.h.

65 { return m_hashCounter++; };

◆ initialize()

StatusCode InDet::SiGeometryManagerTool::initialize ( )
virtual

Implements Trk::IGeometryManagerTool.

Definition at line 97 of file SiGeometryManagerTool.cxx.

98  {
99  ATH_MSG_DEBUG("initialize() of SiGeometryManagerTool");
100 
101  // retrieve AlignModuleTool
102  ATH_CHECK( m_alignModuleTool.retrieve() );
103 
104  // retrieve Pixel helper
106 
107  // retrieve SCT helper
109 
110  // retrieve silicon helper
112 
113  // retrieve SCT detector manager
115 
116  // retrieve PIX detector manager
118 
119  // dump module selection
120  if(m_doModuleSelection && msgLvl(MSG::INFO)) {
121  int idx{};
122  ATH_MSG_INFO("Creating geometry for selected "<<m_moduleSelection.size()<<" modules:");
123  for(const auto & mod:m_moduleSelection)
124  ATH_MSG_INFO(" "<<idx++<<". "<<mod);
125  }
126 
127  // retrieve PixelGeometryManagerTool
128  if ( !m_pixelGeoManager.empty() ) {
129  ATH_CHECK( m_pixelGeoManager.retrieve() );
130  }
131 
132  // retrieve SCTGeometryManagerTool
133  if ( !m_sctGeoManager.empty() ) {
134  ATH_CHECK( m_sctGeoManager.retrieve() );
135  }
136 
137  if(!m_alignPixel && !m_alignSCT) {
138  ATH_MSG_FATAL("Alignment of both Pixel and SCT turned off. Aborting.");
139  return StatusCode::FAILURE;
140  }
141 
142  // check allowed alignment level
143  if(!checkAlignLevel()) {
144  ATH_MSG_FATAL("Wrong alignment level.");
145  return StatusCode::FAILURE;
146  }
147 
148  return StatusCode::SUCCESS;
149  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & IGeometryManagerTool::interfaceID ( )
inlinestaticinherited

Definition at line 121 of file IGeometryManagerTool.h.

121  {
122  return IID_TRKALIGNINTERFACES_IGeometryManagerTool;
123 }

◆ isOneDetOnly()

bool InDet::SiGeometryManagerTool::isOneDetOnly ( const Trk::AlignModule mod,
Trk::AlignModule::DetectorType  dettype 
) const
private

check whether the module is of a single detector type

Definition at line 752 of file SiGeometryManagerTool.cxx.

753  {
754  ATH_MSG_DEBUG("in isOneDetOnly for detector type "<<dettype);
755  const Trk::AlignModule::DetElementCollection * coll = mod->detElementCollection(dettype);
756  if(!coll || coll->size() == 0)
757  return false;
758 
759  int nelem(0);
760  for(int i=1;i<Trk::AlignModule::NDetectorTypes;i++) {
761  if(i==dettype)
762  continue;
763  coll = mod->detElementCollection((Trk::AlignModule::DetectorType)i);
764  if(coll)
765  nelem += coll->size();
766  }
767 
768  if(nelem)
769  return false;
770 
771  ATH_MSG_DEBUG("module IS of type "<<dettype);
772  return true;
773  }

◆ moduleSelected() [1/2]

bool InDet::SiGeometryManagerTool::moduleSelected ( Trk::AlignModule mod)
private

check wheather module is selected for module pointer

Definition at line 518 of file SiGeometryManagerTool.cxx.

519  {
520  return moduleSelected(mod->identify().get_compact());
521  }

◆ moduleSelected() [2/2]

bool InDet::SiGeometryManagerTool::moduleSelected ( unsigned long long  modId)
private

check wheather module is selected for module id

Definition at line 475 of file SiGeometryManagerTool.cxx.

476  {
478  return true;
479 
480  int nsel = m_moduleSelection.size();
481  for(int i=0;i<nsel;++i)
482  if(m_moduleSelection.at(i) == id)
483  return true;
484 
485  return false;
486  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ PrintModPositions()

void InDet::SiGeometryManagerTool::PrintModPositions ( )
inlinevirtual

Implements Trk::IGeometryManagerTool.

Definition at line 65 of file SiGeometryManagerTool.h.

65 {};

◆ ReadGeometry()

int InDet::SiGeometryManagerTool::ReadGeometry ( int  solveLevel)
virtual

read the geometry Method is called from the main AlignAlg to build the geometry based on the requested level of alignment.

It calls the other build() methods based on that.

Implements Trk::IGeometryManagerTool.

Definition at line 217 of file SiGeometryManagerTool.cxx.

218  {
219  ATH_MSG_DEBUG("in ReadGeometry() solveLevel="<<solveLevel);
220 
221  // set pointers
224 
225  // build alignment geometry
226  buildGeometry();
227 
228  // now set the alignment parameters
229  // first prepare the parameter lists
232  // loop over modules
233  ATH_MSG_DEBUG("Adding module parameters to modules");
234  std::vector<Trk::AlignModule *>::const_iterator imod = m_alignModuleList.begin();
235  std::vector<Trk::AlignModule *>::const_iterator imod_end = m_alignModuleList.end();
236  for( ; imod!=imod_end ; ++imod) {
237  ATH_MSG_DEBUG("Module "<<(*imod)->name());
239  }
240 
241  // set alignModuleList and hash table in the alignModuleTool
243  ATH_MSG_DEBUG(" geometry set in m_alignModuleTool");
244 
245  // set alignPar lists in the alignModuleTool
246  ATH_MSG_DEBUG(" alignParList = "<<m_alignParList);
247  ATH_MSG_DEBUG(" fullAlignParList = "<<m_fullAlignParList);
249  ATH_MSG_DEBUG(" AlignParLists set in m_alignModuleTool");
250 
251  // dump summary about the geometry setup
252  if (m_dumpGeometry)
253  dumpGeometry();
254 
255  int nDoF= m_alignModuleTool->nAlignParameters();
256  ATH_MSG_INFO("Total number of degrees of freedom: "<<nDoF);
257 
258  return nDoF;
259  }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setAlignLevel()

virtual void Trk::IGeometryManagerTool::setAlignLevel ( int  level)
inlinevirtualinherited

set alignment level

Reimplemented in InDet::PixelGeometryManagerTool, InDet::SCTGeometryManagerTool, and InDet::TRTGeometryManagerTool.

Definition at line 83 of file IGeometryManagerTool.h.

83 { m_alignLevel = level; }

◆ setAlignLevelBarrel()

virtual void Trk::IGeometryManagerTool::setAlignLevelBarrel ( int  level)
inlinevirtualinherited

set alignment level

Definition at line 89 of file IGeometryManagerTool.h.

◆ setAlignLevelEndcaps()

virtual void Trk::IGeometryManagerTool::setAlignLevelEndcaps ( int  level)
inlinevirtualinherited

set alignment level

Definition at line 98 of file IGeometryManagerTool.h.

◆ setFirstIDHash()

virtual void Trk::IGeometryManagerTool::setFirstIDHash ( unsigned int  idhash)
inlinevirtualinherited

set first free IDHash usable for new AlignModule

Definition at line 68 of file IGeometryManagerTool.h.

68 { m_hashCounter=idhash; };

◆ setHashMaps()

virtual void Trk::IGeometryManagerTool::setHashMaps ( std::vector< Trk::AlignModuleList * > *  maps)
inlinevirtualinherited

set pointer to vector of hashMaps to which the elements should be added to

Definition at line 74 of file IGeometryManagerTool.h.

◆ setLogStream()

void InDet::SiGeometryManagerTool::setLogStream ( std::ostream *  os)
virtual

sets the output stream for the logfile

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 207 of file SiGeometryManagerTool.cxx.

208  {
209  m_logStream = os;
210  if (!m_pixelGeoManager.empty())
211  m_pixelGeoManager->setLogStream(m_logStream);
212  if (!m_sctGeoManager.empty())
213  m_sctGeoManager->setLogStream(m_logStream);
214  }

◆ setModuleList()

virtual void Trk::IGeometryManagerTool::setModuleList ( Trk::AlignModuleList list)
inlinevirtualinherited

set pointer to module list to which the modules should be added to

Definition at line 71 of file IGeometryManagerTool.h.

◆ setNtuple()

virtual void Trk::IGeometryManagerTool::setNtuple ( TFile *  )
inlinevirtualinherited

Sets output ntuple file, to be implemented if needed for detector-specific implementation.

Definition at line 52 of file IGeometryManagerTool.h.

52 {}

◆ setSigmas()

void InDet::SiGeometryManagerTool::setSigmas ( Trk::AlignModule mod,
DataVector< Trk::AlignPar > *  modPars 
)
private

sets sigmas for modules

Definition at line 489 of file SiGeometryManagerTool.cxx.

490  {
491  ATH_MSG_DEBUG("Setting sigmas for module: "<<module->name());
492  for(unsigned int ipar=0;ipar<modPars->size();++ipar)
493  switch(modPars->at(ipar)->paramType()) {
495  modPars->at(ipar)->setSigma(m_sigmaX);
496  break;
498  modPars->at(ipar)->setSigma(m_sigmaY);
499  break;
501  modPars->at(ipar)->setSigma(m_sigmaZ);
502  break;
504  modPars->at(ipar)->setSigma(m_sigmaRotX);
505  break;
507  modPars->at(ipar)->setSigma(m_sigmaRotY);
508  break;
510  modPars->at(ipar)->setSigma(m_sigmaRotZ);
511  break;
512  default:
513  break;
514  }
515  }

◆ StoreModPositions()

void InDet::SiGeometryManagerTool::StoreModPositions ( std::string  )
inlinevirtual

Implements Trk::IGeometryManagerTool.

Definition at line 66 of file SiGeometryManagerTool.h.

66 {};

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_actualGeom

bool InDet::SiGeometryManagerTool::m_actualGeom
private

Definition at line 144 of file SiGeometryManagerTool.h.

◆ m_alignLevel

int Trk::IGeometryManagerTool::m_alignLevel = 0
protectedinherited

alignment level

Definition at line 115 of file IGeometryManagerTool.h.

◆ m_alignLevelBarrel

int Trk::IGeometryManagerTool::m_alignLevelBarrel = 0
protectedinherited

alignment level

Definition at line 116 of file IGeometryManagerTool.h.

◆ m_alignLevelEndcaps

int Trk::IGeometryManagerTool::m_alignLevelEndcaps = 0
protectedinherited

alignment level

Definition at line 117 of file IGeometryManagerTool.h.

◆ m_alignModuleList

Trk::AlignModuleList InDet::SiGeometryManagerTool::m_alignModuleList
private

Definition at line 113 of file SiGeometryManagerTool.h.

◆ m_alignModuleListPtr

Trk::AlignModuleList* Trk::IGeometryManagerTool::m_alignModuleListPtr = nullptr
protectedinherited

pointer to module list to which the modules are added

Definition at line 106 of file IGeometryManagerTool.h.

◆ m_alignModuleTool

ToolHandle<Trk::IAlignModuleTool> InDet::SiGeometryManagerTool::m_alignModuleTool
private

pointer to AlignModuleTool

Definition at line 111 of file SiGeometryManagerTool.h.

◆ m_alignParList

DataVector< DataVector<Trk::AlignPar> >* InDet::SiGeometryManagerTool::m_alignParList
private

Definition at line 118 of file SiGeometryManagerTool.h.

◆ m_alignPixel

bool InDet::SiGeometryManagerTool::m_alignPixel
private

Definition at line 137 of file SiGeometryManagerTool.h.

◆ m_alignRotX

bool InDet::SiGeometryManagerTool::m_alignRotX
private

Definition at line 125 of file SiGeometryManagerTool.h.

◆ m_alignRotY

bool InDet::SiGeometryManagerTool::m_alignRotY
private

Definition at line 126 of file SiGeometryManagerTool.h.

◆ m_alignRotZ

bool InDet::SiGeometryManagerTool::m_alignRotZ
private

Definition at line 127 of file SiGeometryManagerTool.h.

◆ m_alignSCT

bool InDet::SiGeometryManagerTool::m_alignSCT
private

Definition at line 138 of file SiGeometryManagerTool.h.

◆ m_alignX

bool InDet::SiGeometryManagerTool::m_alignX
private

Definition at line 122 of file SiGeometryManagerTool.h.

◆ m_alignY

bool InDet::SiGeometryManagerTool::m_alignY
private

Definition at line 123 of file SiGeometryManagerTool.h.

◆ m_alignZ

bool InDet::SiGeometryManagerTool::m_alignZ
private

Definition at line 124 of file SiGeometryManagerTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doModuleSelection

bool InDet::SiGeometryManagerTool::m_doModuleSelection
private

Definition at line 140 of file SiGeometryManagerTool.h.

◆ m_dumpGeometry

bool InDet::SiGeometryManagerTool::m_dumpGeometry
private

Definition at line 143 of file SiGeometryManagerTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_fullAlignParList

DataVector< DataVector<Trk::AlignPar> >* InDet::SiGeometryManagerTool::m_fullAlignParList
private

Definition at line 119 of file SiGeometryManagerTool.h.

◆ m_hashCounter

int Trk::IGeometryManagerTool::m_hashCounter = 0
protectedinherited

variable for setting the idHash of the AlignModules

Definition at line 111 of file IGeometryManagerTool.h.

◆ m_idHashToAlignModuleMap

Trk::AlignModuleList InDet::SiGeometryManagerTool::m_idHashToAlignModuleMap
private

Definition at line 114 of file SiGeometryManagerTool.h.

◆ m_idHashToAlignModuleMaps

std::vector<Trk::AlignModuleList *> InDet::SiGeometryManagerTool::m_idHashToAlignModuleMaps
private

Definition at line 116 of file SiGeometryManagerTool.h.

◆ m_idHashToAlignModuleMapsPtr

std::vector<Trk::AlignModuleList *>* Trk::IGeometryManagerTool::m_idHashToAlignModuleMapsPtr = nullptr
protectedinherited

pointer to vector of hashMaps to which the elements are added

Definition at line 109 of file IGeometryManagerTool.h.

◆ m_idHelper

const SiliconID* InDet::SiGeometryManagerTool::m_idHelper
private

pointer to Silicon detector manager

Definition at line 106 of file SiGeometryManagerTool.h.

◆ m_logStream

std::ostream* Trk::IGeometryManagerTool::m_logStream = nullptr
protectedinherited

logfile output stream

Definition at line 113 of file IGeometryManagerTool.h.

◆ m_moduleSelection

std::vector<unsigned long long> InDet::SiGeometryManagerTool::m_moduleSelection
private

Definition at line 141 of file SiGeometryManagerTool.h.

◆ m_pixelDetManager

const InDetDD::PixelDetectorManager* InDet::SiGeometryManagerTool::m_pixelDetManager
private

pointer to PIX detector manager

Definition at line 101 of file SiGeometryManagerTool.h.

◆ m_pixelGeoManager

ToolHandle<Trk::IGeometryManagerTool> InDet::SiGeometryManagerTool::m_pixelGeoManager
private

pointer to Pixel geometry manager

Definition at line 108 of file SiGeometryManagerTool.h.

◆ m_pixHelper

const PixelID* InDet::SiGeometryManagerTool::m_pixHelper
private

pointer to PIX detector manager

Definition at line 104 of file SiGeometryManagerTool.h.

◆ m_sctDetManager

const InDetDD::SCT_DetectorManager* InDet::SiGeometryManagerTool::m_sctDetManager
private

pointer to SCT detector manager

Definition at line 102 of file SiGeometryManagerTool.h.

◆ m_sctGeoManager

ToolHandle<Trk::IGeometryManagerTool> InDet::SiGeometryManagerTool::m_sctGeoManager
private

pointer to SCT geometry manager

Definition at line 109 of file SiGeometryManagerTool.h.

◆ m_sctHelper

const SCT_ID* InDet::SiGeometryManagerTool::m_sctHelper
private

pointer to SCT detector manager

Definition at line 105 of file SiGeometryManagerTool.h.

◆ m_sigmaRotX

double InDet::SiGeometryManagerTool::m_sigmaRotX
private

Definition at line 132 of file SiGeometryManagerTool.h.

◆ m_sigmaRotY

double InDet::SiGeometryManagerTool::m_sigmaRotY
private

Definition at line 133 of file SiGeometryManagerTool.h.

◆ m_sigmaRotZ

double InDet::SiGeometryManagerTool::m_sigmaRotZ
private

Definition at line 134 of file SiGeometryManagerTool.h.

◆ m_sigmaX

double InDet::SiGeometryManagerTool::m_sigmaX
private

Definition at line 129 of file SiGeometryManagerTool.h.

◆ m_sigmaY

double InDet::SiGeometryManagerTool::m_sigmaY
private

Definition at line 130 of file SiGeometryManagerTool.h.

◆ m_sigmaZ

double InDet::SiGeometryManagerTool::m_sigmaZ
private

Definition at line 131 of file SiGeometryManagerTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::IGeometryManagerTool::m_alignLevelBarrel
int m_alignLevelBarrel
alignment level
Definition: IGeometryManagerTool.h:116
InDet::SiGeometryManagerTool::isOneDetOnly
bool isOneDetOnly(const Trk::AlignModule *mod, Trk::AlignModule::DetectorType dettype) const
check whether the module is of a single detector type
Definition: SiGeometryManagerTool.cxx:752
InDet::SiGeometryManagerTool::m_alignModuleTool
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
pointer to AlignModuleTool
Definition: SiGeometryManagerTool.h:111
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
hotSpotInTAG.suffix
string suffix
Definition: hotSpotInTAG.py:186
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDet::SiGeometryManagerTool::buildGeometry
void buildGeometry()
builds geometry for Silicon alignment
Definition: SiGeometryManagerTool.cxx:262
Trk::AlignModule::TransZ
@ TransZ
Definition: AlignModule.h:54
InDet::SiGeometryManagerTool::m_actualGeom
bool m_actualGeom
Definition: SiGeometryManagerTool.h:144
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::AlignModuleList
std::vector< AlignModule * > AlignModuleList
Definition: AlignModuleList.h:37
InDet::SiGeometryManagerTool::m_sctGeoManager
ToolHandle< Trk::IGeometryManagerTool > m_sctGeoManager
pointer to SCT geometry manager
Definition: SiGeometryManagerTool.h:109
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
InDet::SiGeometryManagerTool::m_sigmaRotZ
double m_sigmaRotZ
Definition: SiGeometryManagerTool.h:134
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
Trk::IGeometryManagerTool::m_hashCounter
int m_hashCounter
variable for setting the idHash of the AlignModules
Definition: IGeometryManagerTool.h:111
index
Definition: index.py:1
InDet::SiGeometryManagerTool::m_dumpGeometry
bool m_dumpGeometry
Definition: SiGeometryManagerTool.h:143
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
InDet::SiGeometryManagerTool::m_pixelDetManager
const InDetDD::PixelDetectorManager * m_pixelDetManager
pointer to PIX detector manager
Definition: SiGeometryManagerTool.h:101
Trk::AlignModule::addDetElement
void addDetElement(AlignModule::DetectorType detType, const TrkDetElementBase *det, const Amg::Transform3D &transform, Identifier id=Identifier())
used to add a detector element to the align module with a align frame to detector element local frame...
Definition: AlignModule.cxx:126
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::AlignModule
Definition: AlignModule.h:45
InDet::SiGeometryManagerTool::m_sigmaRotX
double m_sigmaRotX
Definition: SiGeometryManagerTool.h:132
xyz
#define xyz
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
fitman.mx
mx
Definition: fitman.py:520
Trk::IGeometryManagerTool::m_alignLevelEndcaps
int m_alignLevelEndcaps
alignment level
Definition: IGeometryManagerTool.h:117
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
Trk::AlignModule::Pixel
@ Pixel
Definition: AlignModule.h:57
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
InDet::SiGeometryManagerTool::m_sigmaZ
double m_sigmaZ
Definition: SiGeometryManagerTool.h:131
InDet::SiGeometryManagerTool::checkAlignLevel
bool checkAlignLevel()
check whether the alignment level is correct
Definition: SiGeometryManagerTool.cxx:160
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: SCT_ID.h:740
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::AlignModule::NDetectorTypes
@ NDetectorTypes
Definition: AlignModule.h:57
InDetDD::SCT_DetectorManager::getDetectorElement
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
Definition: SCT_DetectorManager.cxx:64
Trk::AlignPar::paramType
AlignModule::TransformParameters paramType() const
returns the type of parameter (i.e.
Definition: AlignPar.h:47
PixelID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: PixelID.h:364
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::SiGeometryManagerTool::m_sctDetManager
const InDetDD::SCT_DetectorManager * m_sctDetManager
pointer to SCT detector manager
Definition: SiGeometryManagerTool.h:102
InDet::SiGeometryManagerTool::m_alignPixel
bool m_alignPixel
Definition: SiGeometryManagerTool.h:137
Trk::IGeometryManagerTool::m_alignLevel
int m_alignLevel
alignment level
Definition: IGeometryManagerTool.h:115
TRT::Hit::side
@ side
Definition: HitInfo.h:83
Rec::nDoF
double nDoF(const Trk::Track &track)
Definition: OutwardsCombinedMuonTrackBuilder.cxx:31
InDet::SiGeometryManagerTool::m_sigmaRotY
double m_sigmaRotY
Definition: SiGeometryManagerTool.h:133
python.PyAthena.module
module
Definition: PyAthena.py:134
PixelID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
Definition: PixelID.h:605
Trk::AlignPar::setSigma
void setSigma(double sigma)
sets sigma
Definition: AlignPar.h:87
AthCommonDataStore
Definition: AthCommonDataStore.h:52
Trk::AlignModule::setName
void setName(const std::string &name)
Set and return name of align module (i.e.
Definition: AlignModule.h:88
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::IGeometryManagerTool::m_alignModuleListPtr
Trk::AlignModuleList * m_alignModuleListPtr
pointer to module list to which the modules are added
Definition: IGeometryManagerTool.h:106
maskDeadModules.mod
mod
Definition: maskDeadModules.py:36
Trk::AlignModule::setIdentifier
void setIdentifier(Identifier identifier)
Set and return identifier of module.
Definition: AlignModule.h:96
lumiFormat.i
int i
Definition: lumiFormat.py:92
SG::OWN_ELEMENTS
@ OWN_ELEMENTS
this data object owns its elements
Definition: OwnershipPolicy.h:17
Trk::IGeometryManagerTool::getNextIDHash
virtual int getNextIDHash()
get next free IDHash usable for new AlignModule
Definition: IGeometryManagerTool.h:65
Trk::AlignModule::identifyHash
IdentifierHash identifyHash() const
Set and return index of module, used by alignment classes to keep track of order of align module.
Definition: AlignModule.h:92
InDet::SiGeometryManagerTool::m_fullAlignParList
DataVector< DataVector< Trk::AlignPar > > * m_fullAlignParList
Definition: SiGeometryManagerTool.h:119
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
WritePulseShapeToCool.det
det
Definition: WritePulseShapeToCool.py:204
InDet::SiGeometryManagerTool::m_alignSCT
bool m_alignSCT
Definition: SiGeometryManagerTool.h:138
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
Trk::AlignPar
Definition: AlignPar.h:25
test_pyathena.parent
parent
Definition: test_pyathena.py:15
InDet::SiGeometryManagerTool::m_alignX
bool m_alignX
Definition: SiGeometryManagerTool.h:122
Trk::AlignModule::RotX
@ RotX
Definition: AlignModule.h:54
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::AlignModule::SCT
@ SCT
Definition: AlignModule.h:57
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
InDet::SiGeometryManagerTool::m_alignY
bool m_alignY
Definition: SiGeometryManagerTool.h:123
InDet::SiGeometryManagerTool::m_alignParList
DataVector< DataVector< Trk::AlignPar > > * m_alignParList
Definition: SiGeometryManagerTool.h:118
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
InDet::SiGeometryManagerTool::m_pixelGeoManager
ToolHandle< Trk::IGeometryManagerTool > m_pixelGeoManager
pointer to Pixel geometry manager
Definition: SiGeometryManagerTool.h:108
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
Trk::AlignModule::DetElementCollection
std::vector< const TrkDetElementBase * > DetElementCollection
typedefs to contain detector element pointers and transforms
Definition: AlignModule.h:60
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::AlignModule::name
const std::string & name() const
Definition: AlignModule.h:89
InDet::SiGeometryManagerTool::setSigmas
void setSigmas(Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
sets sigmas for modules
Definition: SiGeometryManagerTool.cxx:489
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
keylayer_zslicemap.isPix
isPix
Definition: keylayer_zslicemap.py:127
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition: PixelID.h:626
InDet::SiGeometryManagerTool::m_idHelper
const SiliconID * m_idHelper
pointer to Silicon detector manager
Definition: SiGeometryManagerTool.h:106
PixelID::eta_module
int eta_module(const Identifier &id) const
Definition: PixelID.h:651
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_ID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: SCT_ID.cxx:639
Trk::AlignModule::DetectorType
DetectorType
Definition: AlignModule.h:57
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
InDet::SiGeometryManagerTool::m_doModuleSelection
bool m_doModuleSelection
Definition: SiGeometryManagerTool.h:140
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
InDet::SiGeometryManagerTool::m_alignZ
bool m_alignZ
Definition: SiGeometryManagerTool.h:124
PixelID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: PixelID.cxx:912
Trk::IGeometryManagerTool::m_logStream
std::ostream * m_logStream
logfile output stream
Definition: IGeometryManagerTool.h:113
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::SiGeometryManagerTool::moduleSelected
bool moduleSelected(Trk::AlignModule *mod)
check wheather module is selected for module pointer
Definition: SiGeometryManagerTool.cxx:518
InDet::SiGeometryManagerTool::buildL0
void buildL0()
creates L0 AlignModules for Silicon
Definition: SiGeometryManagerTool.cxx:298
Trk::AlignModule::setIdHash
void setIdHash(IdentifierHash id)
Definition: AlignModule.h:93
Trk::AlignModule::TransX
@ TransX
Definition: AlignModule.h:54
DeMoScan.index
string index
Definition: DeMoScan.py:362
InDet::SiGeometryManagerTool::m_sigmaX
double m_sigmaX
Definition: SiGeometryManagerTool.h:129
InDet::SiGeometryManagerTool::dumpGeometry
void dumpGeometry()
print basic geometry info to screen
Definition: SiGeometryManagerTool.cxx:524
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::SiGeometryManagerTool::m_sigmaY
double m_sigmaY
Definition: SiGeometryManagerTool.h:130
h
Trk::IGeometryManagerTool::m_idHashToAlignModuleMapsPtr
std::vector< Trk::AlignModuleList * > * m_idHashToAlignModuleMapsPtr
pointer to vector of hashMaps to which the elements are added
Definition: IGeometryManagerTool.h:109
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDet::SiGeometryManagerTool::m_moduleSelection
std::vector< unsigned long long > m_moduleSelection
Definition: SiGeometryManagerTool.h:141
Trk::AlignModule::RotY
@ RotY
Definition: AlignModule.h:54
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
InDet::SiGeometryManagerTool::m_alignRotY
bool m_alignRotY
Definition: SiGeometryManagerTool.h:126
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
InDet::SiGeometryManagerTool::m_idHashToAlignModuleMaps
std::vector< Trk::AlignModuleList * > m_idHashToAlignModuleMaps
Definition: SiGeometryManagerTool.h:116
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
InDet::SiGeometryManagerTool::m_sctHelper
const SCT_ID * m_sctHelper
pointer to SCT detector manager
Definition: SiGeometryManagerTool.h:105
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
InDet::SiGeometryManagerTool::m_alignModuleList
Trk::AlignModuleList m_alignModuleList
Definition: SiGeometryManagerTool.h:113
InDet::SiGeometryManagerTool::addModuleParameters
void addModuleParameters(Trk::AlignModule *module, DataVector< DataVector< Trk::AlignPar > > *allFullModPars, DataVector< DataVector< Trk::AlignPar > > *allActiveModPars)
adds alignment parameters for the module checks for active parameters and calls setSigmas()
Definition: SiGeometryManagerTool.cxx:423
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
Trk::AlignModule::RotZ
@ RotZ
Definition: AlignModule.h:54
PixelID::phi_module
int phi_module(const Identifier &id) const
Definition: PixelID.h:644
InDet::SiGeometryManagerTool::m_alignRotZ
bool m_alignRotZ
Definition: SiGeometryManagerTool.h:127
Trk::AlignModule::TransY
@ TransY
Definition: AlignModule.h:54
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Trk::AlignModule::identify
Identifier identify() const
Definition: AlignModule.h:97
InDet::SiGeometryManagerTool::m_alignRotX
bool m_alignRotX
Definition: SiGeometryManagerTool.h:125
InDet::SiGeometryManagerTool::m_pixHelper
const PixelID * m_pixHelper
pointer to PIX detector manager
Definition: SiGeometryManagerTool.h:104
fitman.k
k
Definition: fitman.py:528
SCT_ID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be sct id, otherwise answer is not accurate. Use SiliconID for gen...
Definition: SCT_ID.h:721
InDetDD::PixelDetectorManager::getDetectorElement
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier
Definition: PixelDetectorManager.cxx:80