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::SCTGeometryManagerTool Class Reference

#include <SCTGeometryManagerTool.h>

Inheritance diagram for InDet::SCTGeometryManagerTool:
Collaboration diagram for InDet::SCTGeometryManagerTool:

Public Member Functions

 SCTGeometryManagerTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~SCTGeometryManagerTool ()
 
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 SCT 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...
 
bool checkAlignLevelBarrel ()
 check whether the Barrel alignment level is correct More...
 
bool checkAlignLevelEndcaps ()
 check whether the Endcap alignment level is correct More...
 
void setAlignLevel (int level)
 set alignment level More...
 
virtual void setNtuple (TFile *)
 Sets output ntuple file, to be implemented if needed for detector-specific implementation. More...
 
virtual void setLogStream (std::ostream *os)
 sets the output stream for the logfile 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 int alignLevelBarrel ()
 get alignment level More...
 
virtual void setAlignLevelBarrel (int level)
 set alignment level More...
 
virtual int alignLevelEndcaps ()
 get alignment level More...
 
virtual void setAlignLevelEndcaps (int level)
 set alignment level 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 SCT More...
 
void buildL1Barrel ()
 creates L1 AlignModules for SCT barrel More...
 
void buildL1Endcaps ()
 creates L1 AlignModules for SCT endcaps More...
 
void buildL2Barrel ()
 creates L2 AlignModules for SCT barrel More...
 
void buildL27Barrel ()
 creates L27 AlignModules for SCT barrel More...
 
void buildL2Endcaps ()
 creates L2 AlignModules for SCT endcaps More...
 
void buildL25Endcaps ()
 creates L25 AlignModules for SCT endcaps More...
 
void buildL2Old ()
 creates L2 AlignModules for the full Pixel in the ordering equal to the old code More...
 
void buildL3Barrel ()
 creates L3 AlignModules for SCT barrel More...
 
void buildL3Endcaps ()
 creates L3 AlignModules for SCT endcaps 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...
 
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::SCT_DetectorManagerm_detManager
 pointer to SCT detector manager More...
 
const SCT_IDm_idHelper
 pointer to SCT detector 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_doModuleSelection
 
std::vector< unsigned long long > m_moduleSelection
 
bool m_alignBarrel
 
bool m_alignEndcaps
 
bool m_alignBarrelX
 
bool m_alignBarrelY
 
bool m_alignBarrelZ
 
bool m_alignBarrelRotX
 
bool m_alignBarrelRotY
 
bool m_alignBarrelRotZ
 
bool m_alignEndcapX
 
bool m_alignEndcapY
 
bool m_alignEndcapZ
 
bool m_alignEndcapRotX
 
bool m_alignEndcapRotY
 
bool m_alignEndcapRotZ
 
double m_sigmaBarrelX
 
double m_sigmaBarrelY
 
double m_sigmaBarrelZ
 
double m_sigmaBarrelRotX
 
double m_sigmaBarrelRotY
 
double m_sigmaBarrelRotZ
 
double m_sigmaEndcapX
 
double m_sigmaEndcapY
 
double m_sigmaEndcapZ
 
double m_sigmaEndcapRotX
 
double m_sigmaEndcapRotY
 
double m_sigmaEndcapRotZ
 
double m_softcutBarrelX
 
double m_softcutBarrelY
 
double m_softcutBarrelZ
 
double m_softcutBarrelRotX
 
double m_softcutBarrelRotY
 
double m_softcutBarrelRotZ
 
double m_softcutEndcapX
 
double m_softcutEndcapY
 
double m_softcutEndcapZ
 
double m_softcutEndcapRotX
 
double m_softcutEndcapRotY
 
double m_softcutEndcapRotZ
 
bool m_useOldL2
 
bool m_dumpGeometry
 
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 43 of file SCTGeometryManagerTool.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

◆ SCTGeometryManagerTool()

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

Definition at line 30 of file SCTGeometryManagerTool.cxx.

34  , m_detManager(nullptr)
35  , m_idHelper()
36  , m_alignModuleTool("Trk::AlignModuleTool/AlignModuleTool")
38  , m_alignParList(nullptr)
39  , m_fullAlignParList(nullptr)
40  {
41  declareInterface<IGeometryManagerTool>(this);
42  declareProperty("AlignModuleTool", m_alignModuleTool);
43 
44  // Pixel joboptions
45  declareProperty("AlignBarrel", m_alignBarrel = true);
46  declareProperty("AlignEndcaps", m_alignEndcaps = true);
47 
48  declareProperty("AlignBarrelX", m_alignBarrelX = true);
49  declareProperty("AlignBarrelY", m_alignBarrelY = true);
50  declareProperty("AlignBarrelZ", m_alignBarrelZ = true);
51  declareProperty("AlignBarrelRotX", m_alignBarrelRotX = true);
52  declareProperty("AlignBarrelRotY", m_alignBarrelRotY = true);
53  declareProperty("AlignBarrelRotZ", m_alignBarrelRotZ = true);
54 
55  declareProperty("AlignEndcapX", m_alignEndcapX = true);
56  declareProperty("AlignEndcapY", m_alignEndcapY = true);
57  declareProperty("AlignEndcapZ", m_alignEndcapZ = true);
58  declareProperty("AlignEndcapRotX", m_alignEndcapRotX = true);
59  declareProperty("AlignEndcapRotY", m_alignEndcapRotY = true);
60  declareProperty("AlignEndcapRotZ", m_alignEndcapRotZ = true);
61 
62  declareProperty("SetSigmaBarrelX", m_sigmaBarrelX = 1.);
63  declareProperty("SetSigmaBarrelY", m_sigmaBarrelY = 1.);
64  declareProperty("SetSigmaBarrelZ", m_sigmaBarrelZ = 1.);
65  declareProperty("SetSigmaBarrelRotX", m_sigmaBarrelRotX = 0.001);
66  declareProperty("SetSigmaBarrelRotY", m_sigmaBarrelRotY = 0.001);
67  declareProperty("SetSigmaBarrelRotZ", m_sigmaBarrelRotZ = 0.001);
68 
69  declareProperty("SetSigmaEndcapX", m_sigmaEndcapX = 1.);
70  declareProperty("SetSigmaEndcapY", m_sigmaEndcapY = 1.);
71  declareProperty("SetSigmaEndcapZ", m_sigmaEndcapZ = 1.);
72  declareProperty("SetSigmaEndcapRotX", m_sigmaEndcapRotX = 0.001);
73  declareProperty("SetSigmaEndcapRotY", m_sigmaEndcapRotY = 0.001);
74  declareProperty("SetSigmaEndcapRotZ", m_sigmaEndcapRotZ = 0.001);
75 
76  declareProperty("SetSoftCutBarrelX", m_softcutBarrelX = 1.);
77  declareProperty("SetSoftCutBarrelY", m_softcutBarrelY = 1.);
78  declareProperty("SetSoftCutBarrelZ", m_softcutBarrelZ = 1.);
79  declareProperty("SetSoftCutBarrelRotX", m_softcutBarrelRotX = 1.);
80  declareProperty("SetSoftCutBarrelRotY", m_softcutBarrelRotY = 1.);
81  declareProperty("SetSoftCutBarrelRotZ", m_softcutBarrelRotZ = 1.);
82 
83  declareProperty("SetSoftCutEndcapX", m_softcutEndcapX = 1.);
84  declareProperty("SetSoftCutEndcapY", m_softcutEndcapY = 1.);
85  declareProperty("SetSoftCutEndcapZ", m_softcutEndcapZ = 1.);
86  declareProperty("SetSoftCutEndcapRotX", m_softcutEndcapRotX = 1.);
87  declareProperty("SetSoftCutEndcapRotY", m_softcutEndcapRotY = 1.);
88  declareProperty("SetSoftCutEndcapRotZ", m_softcutEndcapRotZ = 1.);
89 
90  // defines alignment level
91  declareProperty("AlignmentLevel", m_alignLevel = 1);
92  declareProperty("AlignmentLevelBarrel", m_alignLevelBarrel = -1);
93  declareProperty("AlignmentLevelEndcaps", m_alignLevelEndcaps = -1);
94 
95  declareProperty("doModuleSelection", m_doModuleSelection = false);
96  declareProperty("ModuleSelection", m_moduleSelection);
97 
98  declareProperty("UseOldL2", m_useOldL2 = false);
99  declareProperty("DumpGeometry", m_dumpGeometry = true);
100 
101  m_hashCounter = 0;
102  m_logStream = nullptr;
103  }

◆ ~SCTGeometryManagerTool()

InDet::SCTGeometryManagerTool::~SCTGeometryManagerTool ( )
virtual

Definition at line 106 of file SCTGeometryManagerTool.cxx.

107  {
108  ATH_MSG_DEBUG("deleting alignModuleList");
109  for (int i=0;i<(int)m_alignModuleList.size();i++)
110  delete m_alignModuleList[i];
111  m_alignModuleList.clear();
112 
113  ATH_MSG_DEBUG("deleting fullAlignParList");
114  delete m_fullAlignParList;
115  ATH_MSG_DEBUG("deleting alignParList");
116  delete m_alignParList;
117  }

Member Function Documentation

◆ addModuleParameters()

void InDet::SCTGeometryManagerTool::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 1253 of file SCTGeometryManagerTool.cxx.

1254  {
1255  // prepare all parameters
1263 
1264  // set sigmas
1265  setSigmas(module,fullModPars);
1266 
1267  // select active parameters based on jobOption properties
1269  for(unsigned int ipar=0;ipar<fullModPars->size();++ipar) {
1270 
1271  Identifier AlimodID = module->identify();
1272  Identifier modID = ((module->detElementCollection(Trk::AlignModule::SCT))->at(0))->identify();
1273 
1274  if(m_idHelper->is_barrel(modID)) {
1275  ATH_MSG_DEBUG("SCT barrel module with id "<<AlimodID);
1276  if( (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransX && m_alignBarrelX)
1277  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransY && m_alignBarrelY)
1278  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransZ && m_alignBarrelZ)
1279  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotX && m_alignBarrelRotX)
1280  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotY && m_alignBarrelRotY)
1281  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotZ && m_alignBarrelRotZ) ) {
1282  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is now active");
1283  activeModPars->push_back(fullModPars->at(ipar));
1284  }
1285  else
1286  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is NOT active");
1287  }
1288  else {
1289  ATH_MSG_DEBUG("SCT endcap module with id "<<AlimodID);
1290  if( (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransX && m_alignEndcapX)
1291  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransY && m_alignEndcapY)
1292  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransZ && m_alignEndcapZ)
1293  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotX && m_alignEndcapRotX)
1294  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotY && m_alignEndcapRotY)
1295  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotZ && m_alignEndcapRotZ) ) {
1296  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is now active");
1297  activeModPars->push_back(fullModPars->at(ipar));
1298  }
1299  else
1300  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is NOT active");
1301  }
1302  }
1303 
1304  // now add parameters to the list
1305  allFullModPars->push_back(fullModPars);
1306  allActiveModPars->push_back(activeModPars);
1307  }

◆ 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::SCTGeometryManagerTool::buildGeometry ( )
virtual

builds geometry for SCT alignment

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 286 of file SCTGeometryManagerTool.cxx.

287  {
288  ATH_MSG_INFO("Preparing the SCT geometry");
289 
290  if(m_alignLevel == 0)
291  buildL0();
292  else if (m_alignLevel == 2 && m_useOldL2)
293  buildL2Old();
294  else {
295 
296  if(m_alignBarrel)
297  switch(m_alignLevelBarrel) {
298  case 1:
299  buildL1Barrel();
300  break;
301  case 2:
302  buildL2Barrel();
303  break;
304  case 27:
305  buildL27Barrel();
306  break;
307  case 3:
308  buildL3Barrel();
309  break;
310  default:
311  break;
312  }
313 
314  if(m_alignEndcaps)
315  switch(m_alignLevelEndcaps) {
316  case 1:
317  buildL1Endcaps();
318  break;
319  case 2:
320  buildL2Endcaps();
321  break;
322  case 25:
323  buildL25Endcaps();
324  break;
325  case 3:
326  buildL3Endcaps();
327  break;
328  default:
329  break;
330  }
331 
332  }
333  }

◆ buildL0()

void InDet::SCTGeometryManagerTool::buildL0 ( )
private

creates L0 AlignModules for SCT

Definition at line 336 of file SCTGeometryManagerTool.cxx.

337  {
338  ATH_MSG_INFO("Preparing the SCT geometry for L0: the whole SCT");
339  // ===================================================
340  // Level 0 is just one module containing the whole SCT
341 
342  Trk::AlignModule * sct = new Trk::AlignModule(this);
343  sct->setIdHash(getNextIDHash());
344  sct->setName("SCT");
345 
346  // use the identifier of the SCT barrel for the whole SCT at L0
347  sct->setIdentifier(m_idHelper->wafer_id(0,0,0,0,0));
348 
349  ATH_MSG_DEBUG("Created module "<<sct->name()<<" idHash: "<<sct->identifyHash()<<" identifier: "<<sct->identify());
350 
351  // for L0 alignment the alignment frame is equal to the global frame
352  // and since the SCT detector element positions are also stored
353  // in the global frame in DB, transform is identity
354  const Amg::Transform3D transform = Amg::Transform3D::Identity();
355 
356  // get maximum number of elements from the helper
357  unsigned int sctmaxHash = m_idHelper->wafer_hash_max();
358  ATH_MSG_DEBUG("maxHash for the SCT: "<<sctmaxHash);
359 
361  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(sctmaxHash),nullptr);
363 
364  // ================================================================
365  // loop over SCT elements and add them to respective alignModules
366  // ================================================================
367  for (unsigned int index = 0; index < sctmaxHash; index++) {
368  IdentifierHash idHash = index;
369  Identifier id = m_idHelper->wafer_id(idHash);
370 
371  ATH_MSG_DEBUG(" SCT DetectorElement idhash: "<<index);
372  ATH_MSG_DEBUG(" DetectorElement id: "<<id);
373 
374  // get the element via hash
376  if (element2) {
377  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
378 
379  // add element to respective AlignModule
380 
381  // add to the sct barrel structure
382  if(msgLvl(MSG::DEBUG)) {
383  if (m_idHelper->is_barrel(id))
384  msg(MSG::DEBUG)<<"... SCT barrel element"<<endmsg;
385  else
386  msg(MSG::DEBUG)<<"... SCT endcap element"<<endmsg;
387  }
389 
390  // and fill the corresponding map
391  (*sctIdHashMap)[idHash] = sct;
392  }
393  else
394  ATH_MSG_DEBUG("No SCT detector with id: "<<id);
395  }
396 
397  // add created module to the geometry
398  m_alignModuleListPtr->push_back(sct);
399 
400  ATH_MSG_DEBUG("SCT L0 module successfully added to the geometry");
401  }

◆ buildL1Barrel()

void InDet::SCTGeometryManagerTool::buildL1Barrel ( )
private

creates L1 AlignModules for SCT barrel

Definition at line 404 of file SCTGeometryManagerTool.cxx.

405  {
406  // ===========================
407  // BARREL
408  // ===========================
409  ATH_MSG_INFO("Preparing the SCT Barrel geometry for L1: barrel + 2 endcaps");
410 
411  // ========================================
412  // Level 1 is whole SCT barrel
413 
414  // get maximum number of elements from the helper
415  unsigned int maxHash = m_idHelper->wafer_hash_max();
416  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
417 
419  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
421 
422  // use the 'real' identifier of the Pixel
423  // build barrel module
424  Trk::AlignModule * mod = new Trk::AlignModule(this);
425  mod->setIdHash(getNextIDHash());
426  mod->setName("SCT Barrel");
427  mod->setIdentifier(m_idHelper->wafer_id(0,0,0,0,0));
428 
429  // check if selected
430  if(!m_alignBarrel || !moduleSelected(mod)) {
431  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
432  delete mod;
433  return;
434  }
435 
436  // fill module with detector elements
437  ATH_MSG_DEBUG("Building module "<<mod->name());
438 
439  const Amg::Transform3D transform = Amg::Transform3D::Identity();
440 
441  for (int iLayer = 0; iLayer < m_detManager->numerology().numLayers(); iLayer++) {
442  if (!m_detManager->numerology().useLayer(iLayer))
443  ATH_MSG_INFO(" Layer "<<iLayer<<" not present");
444 
445  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForLayer(iLayer); iPhi++) {
446  ATH_MSG_DEBUG("iPhi "<<iPhi);
447  for (int iEta = m_detManager->numerology().beginEtaModuleForLayer(iLayer); iEta < m_detManager->numerology().endEtaModuleForLayer(iLayer); iEta++) {
448  ATH_MSG_DEBUG("iEta "<<iEta);
449 
450  if (!iEta && m_detManager->numerology().skipEtaZeroForLayer(iLayer))
451  // iEta=0 is not defined for the SCT
452  continue;
453 
454  for (int is = 0; is < 2; is++) { // module side
455 
456  const SiDetectorElement * element2 = m_detManager->getDetectorElement(0, iLayer, iPhi, iEta, is);
457  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
458 
459  if (element) {
460  // get element location for debugging
461  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
462  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
463  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
464 
465  // add element to the AlignModule
466  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
467  // and fill the corresponding map
468  (*sctIdHashMap)[element->identifyHash()] = mod;
469  }
470  }
471  }
472  }
473  }
474 
475  m_alignModuleListPtr->push_back(mod);
476 
477  ATH_MSG_DEBUG("SCT Barrel successfully added to the geometry");
478  }

◆ buildL1Endcaps()

void InDet::SCTGeometryManagerTool::buildL1Endcaps ( )
private

creates L1 AlignModules for SCT endcaps

Definition at line 481 of file SCTGeometryManagerTool.cxx.

482  {
483  // ===========================
484  // ENDCAPs
485  // ===========================
486  ATH_MSG_INFO("Preparing the SCT Endcap geometry for L1: 2 endcaps");
487 
488  // ========================================
489  // Level 1 is 2 SCT endcaps
490 
491  // get maximum number of elements from the helper
492  unsigned int maxHash = m_idHelper->wafer_hash_max();
493  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
494 
496  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
498 
499  for (int iEndcapIndex = 0; iEndcapIndex < m_detManager->numerology().numEndcaps(); iEndcapIndex++) {
500  int iSide = m_detManager->numerology().endcapId(iEndcapIndex);
501 
502  Trk::AlignModule * mod = new Trk::AlignModule(this);
503  mod->setIdHash(getNextIDHash());
504  mod->setIdentifier(m_idHelper->wafer_id(iSide,0,0,0,0));
505  if(iEndcapIndex == 0)
506  mod->setName("SCT EndCap A");
507  else
508  mod->setName("SCT EndCap C");
509 
510  if(!m_alignEndcaps || !moduleSelected(mod)) {
511  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
512  delete mod;
513  continue;
514  }
515 
516  ATH_MSG_DEBUG("Building module "<<mod->name());
517 
518  const Amg::Transform3D transform = Amg::Transform3D::Identity();
519 
520  for (int iWheel = 0; iWheel < m_detManager->numerology().numDisks(); iWheel++) {
521  if (!m_detManager->numerology().useDisk(iWheel))
522  ATH_MSG_INFO(" Disk "<<iWheel<<" not present");
523 
524  for (int iEta = 0; iEta < m_detManager->numerology().numRingsForDisk(iWheel); iEta++) {
525  ATH_MSG_DEBUG("iEta "<<iEta);
526  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForDiskRing(iWheel,iEta); iPhi++) {
527  ATH_MSG_DEBUG("iPhi "<<iPhi);
528  for(int is=0; is<2; is++) { // module side
529 
530  const SiDetectorElement * element2 = m_detManager->getDetectorElement(iSide, iWheel, iPhi, iEta, is);
531  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
532  if (element) {
533  // get element location for debugging
534  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
535  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
536  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
537 
538  // add element to the AlignModule
539  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
540  // and fill the corresponding map
541  (*sctIdHashMap)[element->identifyHash()] = mod;
542  }
543  }
544  }
545  }
546  }
547 
548  // for endcap we move the CoG
549  Amg::Translation3D translation(mod->centerOfGravity());
550  ATH_MSG_DEBUG("Endcap:" << iSide << " , CoG (" << translation.x() << " , " << translation.y() << " , " << translation.z() << " ) " );
551  Amg::Transform3D localtoglobal = translation * Amg::RotationMatrix3D::Identity();
552 
553  mod->setGlobalFrameToAlignFrameTransform(localtoglobal.inverse());
554 
555  m_alignModuleListPtr->push_back(mod);
556  }
557 
558  ATH_MSG_DEBUG("SCT End-caps successfully added to the geometry");
559  }

◆ buildL25Endcaps()

void InDet::SCTGeometryManagerTool::buildL25Endcaps ( )
private

creates L25 AlignModules for SCT endcaps

Definition at line 816 of file SCTGeometryManagerTool.cxx.

817  {
818  // ========================================
819  // END CAPS
820  ATH_MSG_INFO("Preparing the SCT Endcap geometry for L25: 2 x 22 rings");
821 
822  if(!m_alignEndcaps) {
823  ATH_MSG_DEBUG("Not aligning endcaps");
824  return;
825  }
826 
827  // ========================================
828  // get all modules for Level 2 alignment of the Endcaps
829  // 2 x 22 SCT Endcap rings
830 
831  const Amg::Transform3D transform = Amg::Transform3D::Identity();
832 
833  unsigned int maxHash = m_idHelper->wafer_hash_max();
834  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
835 
837  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
839 
840  for (int iEndcapIndex = 0; iEndcapIndex < m_detManager->numerology().numEndcaps(); iEndcapIndex++) {
841  int iSide = m_detManager->numerology().endcapId(iEndcapIndex);
842  for (int iWheel = 0; iWheel < m_detManager->numerology().numDisks(); iWheel++) {
843  if (!m_detManager->numerology().useDisk(iWheel))
844  ATH_MSG_INFO(" Disk "<<iWheel<<" not present");
845  for (int iEta = 0; iEta < m_detManager->numerology().numRingsForDisk(iWheel); iEta++) {
846  ATH_MSG_DEBUG("iEta "<<iEta);
847 
848  Trk::AlignModule * mod = new Trk::AlignModule(this);
849  mod->setIdHash(getNextIDHash());
850  mod->setIdentifier(m_idHelper->wafer_id(iSide,iWheel,iEta,0,0));
851 
852  std::stringstream name;
853  if(iEndcapIndex == 0)
854  name <<"SCT/EndcapA/Disk_"<<iWheel<<"/Ring_"<<iEta;
855  else
856  name <<"SCT/EndcapC/Disk_"<<iWheel<<"/Ring_"<<iEta;
857  mod->setName(name.str());
858 
859  if(!moduleSelected(mod)) {
860  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
861  delete mod;
862  continue;
863  }
864 
865  ATH_MSG_DEBUG("Building module "<<mod->name());
866 
867  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForDiskRing(iWheel,iEta); iPhi++) {
868  ATH_MSG_DEBUG("iPhi "<<iPhi);
869  for(int is=0; is<2; is++) { // module side
870 
871  const SiDetectorElement * element2 = m_detManager->getDetectorElement(iSide, iWheel, iPhi, iEta, is);
872  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
873  if (element) {
874  // get element location for debugging
875  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
876  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
877  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
878 
879  // add element to the AlignModule
880  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
881  // and fill the corresponding map
882  (*sctIdHashMap)[element->identifyHash()] = mod;
883  }
884  }
885  }
886 
887  // for endcap we move the CoG
888 
889 
890 
891  Amg::Translation3D translation(mod->centerOfGravity());
892  ATH_MSG_DEBUG("Endcap:" << iSide << " , disk: " << iWheel << " , CoG (" << translation.x() << " , " << translation.y() << " , " << translation.z() << " ) " );
893  Amg::Transform3D localtoglobal = translation * Amg::RotationMatrix3D::Identity();
894  mod->setGlobalFrameToAlignFrameTransform(localtoglobal.inverse());
895 
896  m_alignModuleListPtr->push_back(mod);
897  }
898  }
899  }
900  }

◆ buildL27Barrel()

void InDet::SCTGeometryManagerTool::buildL27Barrel ( )
private

creates L27 AlignModules for SCT barrel

Definition at line 634 of file SCTGeometryManagerTool.cxx.

635  {
636  // ========================================
637  // BARREL
638  ATH_MSG_INFO("Preparing the SCT Barrel geometry for L27: 176 staves (ladders)");
639 
640  if(!m_alignBarrel) {
641  ATH_MSG_DEBUG("Not aligning barrel");
642  return;
643  }
644 
645  // ========================================
646  // get all modules for Level 27 alignment of the Barrel
647  // 176 staves (ladders)
648 
649  const Amg::Transform3D transform = Amg::Transform3D::Identity();
650 
651  unsigned int maxHash = m_idHelper->wafer_hash_max();
652  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
653 
655  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
657 
658  for (int iLayer = 0; iLayer < m_detManager->numerology().numLayers(); iLayer++) {
659  if (!m_detManager->numerology().useLayer(iLayer))
660  ATH_MSG_INFO(" Layer "<<iLayer<<" not present");
661  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForLayer(iLayer); iPhi++) {
662  ATH_MSG_DEBUG("iPhi "<<iPhi);
663 
664  // create the AlignModule
665  Trk::AlignModule * mod = new Trk::AlignModule(this);
666  mod->setIdHash(getNextIDHash());
667 
668  // even though there is no iEta=0 module for SCT barrel, the
669  // Identifier is still valid so we use it for the stave
670  mod->setIdentifier(m_idHelper->wafer_id(0, iLayer, iPhi, 0, 0));
671 
672  std::stringstream name;
673  name <<"SCT/Barrel/Layer_"<<iLayer<<"/PhiStave_"<<iPhi;
674  mod->setName(name.str());
675 
676  if(!moduleSelected(mod)) {
677  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
678  delete mod;
679  continue;
680  }
681 
682  ATH_MSG_DEBUG("Building module "<<mod->name());
683 
684  // rotation of the stave alignment frame
685  Amg::RotationMatrix3D rotation; rotation.setIdentity();
686 
687  for (int iEta = m_detManager->numerology().beginEtaModuleForLayer(iLayer); iEta < m_detManager->numerology().endEtaModuleForLayer(iLayer); iEta++) {
688  ATH_MSG_DEBUG("iEta "<<iEta);
689  if (!iEta && m_detManager->numerology().skipEtaZeroForLayer(iLayer))
690  // iEta=0 is not defined for the SCT
691  continue;
692  for (int is = 0; is < 2; is++) { // module side
693 
694  const SiDetectorElement * element2 = m_detManager->getDetectorElement(0, iLayer, iPhi, iEta, is);
695  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
696 
697  if (element) {
698  // get element location for debugging
699  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
700  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
701  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
702 
703  // add element to the AlignModule
704  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
705  // and fill the corresponding map
706  (*sctIdHashMap)[element->identifyHash()] = mod;
707  }
708 
709  // for the stave alignment frame rotation we use the one of the iEta=1
710  // non-stereo side (which is the module local frame)
711  if(iEta==1 && !element2->isStereo())
712  rotation = element2->moduleTransform().rotation();
713  }
714  }
715 
716  // we set the alignment frame to be the CoG of the stave
717  // with rotation being the one of the iEta=1 module set above
718  Amg::Translation3D translation(mod->centerOfGravity());
719  Amg::Transform3D localToGlobal = translation * rotation;
720 
721 
722  ATH_MSG_DEBUG("Prepared local to global transform :");
723  ATH_MSG_DEBUG(" - translation: "<<localToGlobal.translation().x()<<" "<<localToGlobal.translation().y()<<" "<<localToGlobal.translation().z());
724  ATH_MSG_DEBUG(" - rotation:");
725  ATH_MSG_DEBUG(" "<<localToGlobal.rotation()(0,0)<<" "<<localToGlobal.rotation()(0,1)<<" "<<localToGlobal.rotation()(0,2));
726  ATH_MSG_DEBUG(" "<<localToGlobal.rotation()(1,0)<<" "<<localToGlobal.rotation()(1,1)<<" "<<localToGlobal.rotation()(1,2));
727  ATH_MSG_DEBUG(" "<<localToGlobal.rotation()(2,0)<<" "<<localToGlobal.rotation()(2,1)<<" "<<localToGlobal.rotation()(2,2));
728 
729  mod->setGlobalFrameToAlignFrameTransform(localToGlobal.inverse());
730 
731  m_alignModuleListPtr->push_back(mod);
732  }
733  }
734  }

◆ buildL2Barrel()

void InDet::SCTGeometryManagerTool::buildL2Barrel ( )
private

creates L2 AlignModules for SCT barrel

Definition at line 562 of file SCTGeometryManagerTool.cxx.

563  {
564  // ========================================
565  // BARREL
566  ATH_MSG_INFO("Preparing the SCT Barrel geometry for L2: 4 layers");
567 
568  // ========================================
569  // get all modules for Level 2 alignment of the Barrel
570  // Level 2 is 4 SCT barrel layers
571 
572  const Amg::Transform3D transform = Amg::Transform3D::Identity();
573 
574  unsigned int maxHash = m_idHelper->wafer_hash_max();
575  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
576 
578  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
580 
581  for (int iLayer = 0; iLayer < m_detManager->numerology().numLayers(); iLayer++) {
582  if (!m_detManager->numerology().useLayer(iLayer))
583  ATH_MSG_INFO(" Layer "<<iLayer<<" not present");
584 
585  // create the AlignModule
586  Trk::AlignModule * mod = new Trk::AlignModule(this);
587  mod->setIdHash(getNextIDHash());
588  mod->setIdentifier(m_idHelper->wafer_id(0, iLayer, 0, 0, 0));
589 
590  std::stringstream name;
591  name <<"SCT/Barrel/Layer_"<<iLayer;
592  mod->setName(name.str());
593 
594  if(!m_alignBarrel || !moduleSelected(mod)) {
595  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
596  delete mod;
597  continue;
598  }
599 
600  ATH_MSG_DEBUG("Building module "<<mod->name());
601 
602  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForLayer(iLayer); iPhi++) {
603  ATH_MSG_DEBUG("iPhi "<<iPhi);
604  for (int iEta = m_detManager->numerology().beginEtaModuleForLayer(iLayer); iEta < m_detManager->numerology().endEtaModuleForLayer(iLayer); iEta++) {
605  ATH_MSG_DEBUG("iEta "<<iEta);
606  if (!iEta && m_detManager->numerology().skipEtaZeroForLayer(iLayer))
607  // iEta=0 is not defined for the SCT
608  continue;
609  for (int is = 0; is < 2; is++) { // module side
610 
611  const SiDetectorElement * element2 = m_detManager->getDetectorElement(0, iLayer, iPhi, iEta, is);
612  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
613 
614  if (element) {
615  // get element location for debugging
616  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
617  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
618  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
619 
620  // add element to the AlignModule
621  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
622  // and fill the corresponding map
623  (*sctIdHashMap)[element->identifyHash()] = mod;
624  }
625  }
626  }
627  }
628 
629  m_alignModuleListPtr->push_back(mod);
630  }
631  }

◆ buildL2Endcaps()

void InDet::SCTGeometryManagerTool::buildL2Endcaps ( )
private

creates L2 AlignModules for SCT endcaps

Definition at line 737 of file SCTGeometryManagerTool.cxx.

738  {
739  // ========================================
740  // END CAPS
741  ATH_MSG_INFO("Preparing the SCT Endcap geometry for L2: 2 x 9 disks");
742 
743  // ========================================
744  // get all modules for Level 2 alignment of the Endcaps
745  // Level 2 is 2 x 9 SCT Endcap disks
746 
747  const Amg::Transform3D transform = Amg::Transform3D::Identity();
748 
749  unsigned int maxHash = m_idHelper->wafer_hash_max();
750  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
751 
753  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
755 
756  for (int iEndcapIndex = 0; iEndcapIndex < m_detManager->numerology().numEndcaps(); iEndcapIndex++) {
757  int iSide = m_detManager->numerology().endcapId(iEndcapIndex);
758  for (int iWheel = 0; iWheel < m_detManager->numerology().numDisks(); iWheel++) {
759  if (!m_detManager->numerology().useDisk(iWheel))
760  ATH_MSG_INFO(" Disk "<<iWheel<<" not present");
761 
762  Trk::AlignModule * mod = new Trk::AlignModule(this);
763  mod->setIdHash(getNextIDHash());
764  mod->setIdentifier(m_idHelper->wafer_id(iSide,iWheel,0,0,0));
765 
766  std::stringstream name;
767  if(iEndcapIndex == 0)
768  name <<"SCT/EndcapA/Disk_" << iWheel;
769  else
770  name <<"SCT/EndcapC/Disk_" << iWheel;
771  mod->setName(name.str());
772 
773  if(!m_alignEndcaps || !moduleSelected(mod)) {
774  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
775  delete mod;
776  continue;
777  }
778 
779  ATH_MSG_DEBUG("Building module "<<mod->name());
780 
781  for (int iEta = 0; iEta < m_detManager->numerology().numRingsForDisk(iWheel); iEta++) {
782  ATH_MSG_DEBUG("iEta "<<iEta);
783  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForDiskRing(iWheel,iEta); iPhi++) {
784  ATH_MSG_DEBUG("iPhi "<<iPhi);
785  for(int is=0; is<2; is++) { // module side
786 
787  const SiDetectorElement * element2 = m_detManager->getDetectorElement(iSide, iWheel, iPhi, iEta, is);
788  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
789  if (element) {
790  // get element location for debugging
791  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
792  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
793  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
794 
795  // add element to the AlignModule
796  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
797  // and fill the corresponding map
798  (*sctIdHashMap)[element->identifyHash()] = mod;
799  }
800  }
801  }
802  }
803 
804  // for endcap we move the CoG
805  Amg::Translation3D translation(mod->centerOfGravity());
806  ATH_MSG_DEBUG("Endcap:" << iSide << " , disk: " << iWheel << " , CoG (" << translation.x() << " , " << translation.y() << " , " << translation.z() << " ) " );
807  Amg::Transform3D localtoglobal = translation * Amg::RotationMatrix3D::Identity();
808  mod->setGlobalFrameToAlignFrameTransform(localtoglobal.inverse());
809 
810  m_alignModuleListPtr->push_back(mod);
811  }
812  }
813  }

◆ buildL2Old()

void InDet::SCTGeometryManagerTool::buildL2Old ( )
private

creates L2 AlignModules for the full Pixel in the ordering equal to the old code

Definition at line 903 of file SCTGeometryManagerTool.cxx.

904  {
905  ATH_MSG_INFO("Preparing the old SCT Barrel geometry for L2: 4 barrel layers + 2 x 9 endcap disks");
906 
907  const Amg::Transform3D transform = Amg::Transform3D::Identity();
908 
909  unsigned int maxHash = m_idHelper->wafer_hash_max();
910  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
911 
913  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
915 
916  // first endcaap C
917  int iEndcapIndex = 1;
918  int iSide = m_detManager->numerology().endcapId(iEndcapIndex);
919  for (int iWheel = 0; iWheel < m_detManager->numerology().numDisks(); iWheel++) {
920  if (!m_detManager->numerology().useDisk(iWheel))
921  ATH_MSG_INFO(" Disk "<<iWheel<<" not present");
922 
923  Trk::AlignModule * mod = new Trk::AlignModule(this);
924  mod->setIdHash(getNextIDHash());
925  mod->setIdentifier(m_idHelper->wafer_id(iSide,iWheel,0,0,0));
926 
927  std::stringstream name;
928  name <<"SCT/EndcapC/Disk_" << iWheel;
929  mod->setName(name.str());
930 
931  if(!m_alignEndcaps || !moduleSelected(mod)) {
932  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
933  delete mod;
934  continue;
935  }
936 
937  ATH_MSG_DEBUG("Building module "<<mod->name());
938 
939  for (int iEta = 0; iEta < m_detManager->numerology().numRingsForDisk(iWheel); iEta++) {
940  ATH_MSG_DEBUG("iEta "<<iEta);
941  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForDiskRing(iWheel,iEta); iPhi++) {
942  ATH_MSG_DEBUG("iPhi "<<iPhi);
943  for(int is=0; is<2; is++) { // module side
944  const SiDetectorElement * element2 = m_detManager->getDetectorElement(iSide, iWheel, iPhi, iEta, is);
945  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
946  if (element) {
947  // get element location for debugging
948  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
949  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
950  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
951 
952  // add element to the AlignModule
953  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
954  // and fill the corresponding map
955  (*sctIdHashMap)[element->identifyHash()] = mod;
956  }
957  }
958  }
959  }
960 
961  // for endcap we move the CoG
962  Amg::Translation3D translation(mod->centerOfGravity());
963  ATH_MSG_DEBUG("Endcap:" << iSide << " , disk: " << iWheel << " , CoG (" << translation.x() << " , " << translation.y() << " , " << translation.z() << " ) " );
964  Amg::Transform3D localtoglobal = translation * Amg::RotationMatrix3D::Identity();
965  mod->setGlobalFrameToAlignFrameTransform(localtoglobal.inverse());
966 
967  m_alignModuleListPtr->push_back(mod);
968  }
969 
970  // now barrel
971  for (int iLayer = 0; iLayer < m_detManager->numerology().numLayers(); iLayer++) {
972  if (!m_detManager->numerology().useLayer(iLayer))
973  ATH_MSG_INFO(" Layer "<<iLayer<<" not present");
974 
975  // create the AlignModule
976  Trk::AlignModule * mod = new Trk::AlignModule(this);
977  mod->setIdHash(getNextIDHash());
978  mod->setIdentifier(m_idHelper->wafer_id(0, iLayer, 0, 0, 0));
979 
980  std::stringstream name;
981  name <<"SCT/Barrel/Layer_"<<iLayer;
982  mod->setName(name.str());
983 
984  if(!m_alignBarrel || !moduleSelected(mod)) {
985  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
986  delete mod;
987  continue;
988  }
989 
990  ATH_MSG_DEBUG("Building module "<<mod->name());
991 
992  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForLayer(iLayer); iPhi++) {
993  ATH_MSG_DEBUG("iPhi "<<iPhi);
994  for (int iEta = m_detManager->numerology().beginEtaModuleForLayer(iLayer); iEta < m_detManager->numerology().endEtaModuleForLayer(iLayer); iEta++) {
995  ATH_MSG_DEBUG("iEta "<<iEta);
996  if (!iEta && m_detManager->numerology().skipEtaZeroForLayer(iLayer))
997  // iEta=0 is not defined for the SCT
998  continue;
999  for (int is = 0; is < 2; is++) { // module side
1000 
1001  const SiDetectorElement * element2 = m_detManager->getDetectorElement(0, iLayer, iPhi, iEta, is);
1002  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
1003 
1004  if (element) {
1005  // get element location for debugging
1006  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
1007  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
1008  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
1009 
1010  // add element to the AlignModule
1011  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
1012  // and fill the corresponding map
1013  (*sctIdHashMap)[element->identifyHash()] = mod;
1014  }
1015  }
1016  }
1017  }
1018 
1019  m_alignModuleListPtr->push_back(mod);
1020  }
1021 
1022  // and endcaap A
1023  iEndcapIndex = 0;
1024  iSide = m_detManager->numerology().endcapId(iEndcapIndex);
1025  for (int iWheel = 0; iWheel < m_detManager->numerology().numDisks(); iWheel++) {
1026  if (!m_detManager->numerology().useDisk(iWheel))
1027  ATH_MSG_INFO(" Disk "<<iWheel<<" not present");
1028 
1029  Trk::AlignModule * mod = new Trk::AlignModule(this);
1030  mod->setIdHash(getNextIDHash());
1031  mod->setIdentifier(m_idHelper->wafer_id(iSide,iWheel,0,0,0));
1032 
1033  std::stringstream name;
1034  name <<"SCT/EndcapA/Disk_" << iWheel;
1035  mod->setName(name.str());
1036 
1037  if(!m_alignEndcaps || !moduleSelected(mod)) {
1038  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
1039  delete mod;
1040  continue;
1041  }
1042 
1043  ATH_MSG_DEBUG("Building module "<<mod->name());
1044 
1045  for (int iEta = 0; iEta < m_detManager->numerology().numRingsForDisk(iWheel); iEta++) {
1046  ATH_MSG_DEBUG("iEta "<<iEta);
1047  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForDiskRing(iWheel,iEta); iPhi++) {
1048  ATH_MSG_DEBUG("iPhi "<<iPhi);
1049  for(int is=0; is<2; is++) { // module side
1050  const SiDetectorElement * element2 = m_detManager->getDetectorElement(iSide, iWheel, iPhi, iEta, is);
1051  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
1052  if (element) {
1053  // get element location for debugging
1054  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
1055  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
1056  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
1057 
1058  // add element to the AlignModule
1059  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
1060  // and fill the corresponding map
1061  (*sctIdHashMap)[element->identifyHash()] = mod;
1062  }
1063  }
1064  }
1065  }
1066 
1067  // for endcap we move the CoG
1068  Amg::Translation3D translation(mod->centerOfGravity());
1069  ATH_MSG_DEBUG("Endcap:" << iSide << " , disk: " << iWheel << " , CoG (" << translation.x() << " , " << translation.y() << " , " << translation.z() << " ) " );
1070 
1071  Amg::Transform3D localtoglobal = translation * Amg::RotationMatrix3D::Identity();
1072 
1073  mod->setGlobalFrameToAlignFrameTransform(localtoglobal.inverse());
1074 
1075  m_alignModuleListPtr->push_back(mod);
1076  }
1077  }

◆ buildL3Barrel()

void InDet::SCTGeometryManagerTool::buildL3Barrel ( )
private

creates L3 AlignModules for SCT barrel

Definition at line 1080 of file SCTGeometryManagerTool.cxx.

1081  {
1082  // ========================================
1083  // BARREL
1084  ATH_MSG_INFO("Preparing the SCT Barrel geometry for L3: module (bi-wafer) level");
1085 
1086  // =========================================
1087  // get all modules for SCT Barrel Level 3 alignment
1088  // 2112 modules
1089 
1090  unsigned int maxHash = m_idHelper->wafer_hash_max();
1091  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
1092 
1094  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
1096 
1097  for (int iLayer = 0; iLayer < m_detManager->numerology().numLayers(); iLayer++) {
1098  if (!m_detManager->numerology().useLayer(iLayer))
1099  ATH_MSG_INFO(" Layer "<<iLayer<<" not present");
1100  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForLayer(iLayer); iPhi++) {
1101  ATH_MSG_DEBUG("iPhi "<<iPhi);
1102  for (int iEta = m_detManager->numerology().beginEtaModuleForLayer(iLayer); iEta < m_detManager->numerology().endEtaModuleForLayer(iLayer); iEta++) {
1103  ATH_MSG_DEBUG("iEta "<<iEta);
1104  if (!iEta && m_detManager->numerology().skipEtaZeroForLayer(iLayer))
1105  // iEta=0 is not defined for the SCT
1106  continue;
1107 
1108  // create the AlignModule
1109  Trk::AlignModule * mod = new Trk::AlignModule(this);
1110  mod->setIdHash(getNextIDHash());
1111  mod->setIdentifier(m_idHelper->wafer_id(0, iLayer, iPhi, iEta, 0));
1112 
1113  std::stringstream name;
1114  name <<"SCT/Barrel/Layer_"<<iLayer<<"/Phi_"<<iPhi<<"/Eta_"<<iEta;
1115  mod->setName(name.str());
1116 
1117  if(!m_alignBarrel || !moduleSelected(mod)) {
1118  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
1119  delete mod;
1120  continue;
1121  }
1122 
1123  ATH_MSG_DEBUG("Building module "<<mod->name());
1124 
1125  for(int is=0;is<2;is++) { // module side
1126 
1127  const SiDetectorElement * element2 = m_detManager->getDetectorElement(0, iLayer, iPhi, iEta, is);
1128  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
1129 
1130  if (element) {
1131  // get element location for debugging
1132  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
1133  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
1134  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
1135 
1136  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1137  // should this be identity? if yes, it means that the
1138  // db frame constants are in the global frame. Or not?
1139  const Amg::Transform3D transform = Amg::Transform3D::Identity();
1140  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1141 
1142  // add element to the AlignModule
1143  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
1144  // and fill the corresponding map
1145  (*sctIdHashMap)[element->identifyHash()] = mod;
1146 
1147  // the local frame for the SCT barrel modules is always that
1148  // of the Rphi element, NOT stereo !
1149  // in any case the correct frame can be obtained using moduleTransform() call
1150  // regardless of the side, but we only need it once so we retrieve it
1151  // for the non-stereo side
1152  if(!element2->isStereo())
1153  mod->setGlobalFrameToAlignFrameTransform(element2->moduleTransform().inverse());
1154  }
1155  }
1156 
1157  m_alignModuleListPtr->push_back(mod);
1158  }
1159  }
1160 
1161  }
1162  }

◆ buildL3Endcaps()

void InDet::SCTGeometryManagerTool::buildL3Endcaps ( )
private

creates L3 AlignModules for SCT endcaps

Definition at line 1165 of file SCTGeometryManagerTool.cxx.

1166  {
1167  // ========================================
1168  // ENDCAPs
1169  ATH_MSG_INFO("Preparing the SCT Endcap geometry for L3: module (bi-wafer) level");
1170 
1171  // =========================================
1172  // get all modules for SCT Endcap Level 3 alignment
1173  // 2 * 988
1174 
1175  unsigned int maxHash = m_idHelper->wafer_hash_max();
1176  ATH_MSG_DEBUG("maxHash for the SCT "<<maxHash);
1177 
1179  m_idHashToAlignModuleMapsPtr->at(Trk::AlignModule::SCT) = new Trk::AlignModuleList((size_t)(maxHash),nullptr);
1181 
1182  for (int iEndcapIndex = 0; iEndcapIndex < m_detManager->numerology().numEndcaps(); iEndcapIndex++) {
1183  int iSide = m_detManager->numerology().endcapId(iEndcapIndex);
1184  for (int iWheel = 0; iWheel < m_detManager->numerology().numDisks(); iWheel++) {
1185  if (!m_detManager->numerology().useDisk(iWheel))
1186  ATH_MSG_INFO(" Disk "<<iWheel<<" not present");
1187  for (int iEta = 0; iEta < m_detManager->numerology().numRingsForDisk(iWheel); iEta++) {
1188  ATH_MSG_DEBUG("iEta "<<iEta);
1189  for (int iPhi = 0; iPhi < m_detManager->numerology().numPhiModulesForDiskRing(iWheel,iEta); iPhi++) {
1190  ATH_MSG_DEBUG("iPhi "<<iPhi);
1191 
1192  Trk::AlignModule * mod = new Trk::AlignModule(this);
1193  mod->setIdHash(getNextIDHash());
1194  mod->setIdentifier(m_idHelper->wafer_id(iSide,iWheel,iPhi,iEta,0));
1195 
1196  std::stringstream name;
1197  if(iEndcapIndex == 0)
1198  name<<"SCT/EndcapA";
1199  else
1200  name<<"SCT/EndcapC";
1201  name<<"/Disk_"<<iWheel<<"/Phi_"<<iPhi<<"/Eta_"<<iEta;
1202  mod->setName(name.str());
1203 
1204  if(!m_alignEndcaps || !moduleSelected(mod)) {
1205  ATH_MSG_DEBUG("Module "<<mod->name()<<" NOT selected");
1206  delete mod;
1207  continue;
1208  }
1209 
1210  ATH_MSG_DEBUG("Building module "<<mod->name());
1211 
1212  for(int is=0; is<2; is++) { // module side
1213 
1214  const SiDetectorElement * element2 = m_detManager->getDetectorElement(iSide, iWheel, iPhi, iEta, is);
1215  const Trk::TrkDetElementBase * element = (const Trk::TrkDetElementBase*) element2;
1216  if (element) {
1217  // get element location for debugging
1218  // HepGeom::Point3D<double> center = element->transform() * HepGeom::Point3D<double>();
1219  // ATH_MSG_DEBUG(" SCTDetectorElement id: " << id << " with center = " << center);
1220  // ATH_MSG_DEBUG(" Is Barrel: "<< m_idHelper->is_barrel(id));
1221 
1222  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1223  // should this be identity? if yes, it means that the
1224  // db frame constants are in the global frame. Or not?
1225  const Amg::Transform3D transform = Amg::Transform3D::Identity();
1226  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1227 
1228  // add element to the AlignModule
1229  mod->addDetElement(Trk::AlignModule::SCT,element,transform);
1230  // and fill the corresponding map
1231  (*sctIdHashMap)[element->identifyHash()] = mod;
1232 
1233  // the local frame for the SCT endcap modules is always that
1234  // of the Rphi element, NOT stereo !
1235  // in any case the correct frame can be obtained using moduleTransform() call
1236  // regardless of the side, but we only need it once so we retrieve it
1237  // for the non-stereo side
1238  if(!element2->isStereo())
1239  mod->setGlobalFrameToAlignFrameTransform(element2->moduleTransform().inverse());
1240  }
1241  }
1242 
1243  m_alignModuleListPtr->push_back(mod);
1244  }
1245  }
1246  }
1247  }
1248 
1249  return;
1250  }

◆ checkAlignLevel()

bool InDet::SCTGeometryManagerTool::checkAlignLevel ( )
virtual

check whether the alignment level is correct

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 178 of file SCTGeometryManagerTool.cxx.

179  {
180  if(m_alignLevel == 0) {
181  ATH_MSG_INFO("Alignment level for SCT is "<<m_alignLevel);
182  return true;
183  }
184 
185  if(m_alignLevel == 2 && m_useOldL2) {
186  ATH_MSG_INFO("Setting up OLD L2 alignment level for SCT");
189  return true;
190  }
191 
192  if(m_alignLevelBarrel == -1)
194 
195  if(m_alignLevelEndcaps == -1)
197 
199 
200  // if the alignment level for barrel and EC is set correctly
201  // reset the global alignment level
202  if(ok)
203  m_alignLevel = -1;
204 
205  return ok;
206  }

◆ checkAlignLevelBarrel()

bool InDet::SCTGeometryManagerTool::checkAlignLevelBarrel ( )
virtual

check whether the Barrel alignment level is correct

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 209 of file SCTGeometryManagerTool.cxx.

210  {
211  if(!m_alignBarrel)
212  return true;
213 
214  // check whether geometry level is allowed
215  switch(m_alignLevelBarrel) {
216  case 1: case 2: case 27: case 3:
217  ATH_MSG_INFO("Alignment level for SCT Barrel is "<<m_alignLevelBarrel);
218  return true;
219  default:
220  msg(MSG::FATAL)<<"Alignment level "<<m_alignLevelBarrel<<" does not exist for SCT Barrel"<<endmsg;
221  return false;
222  }
223  }

◆ checkAlignLevelEndcaps()

bool InDet::SCTGeometryManagerTool::checkAlignLevelEndcaps ( )
virtual

check whether the Endcap alignment level is correct

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 226 of file SCTGeometryManagerTool.cxx.

227  {
228  if(!m_alignEndcaps)
229  return true;
230 
231  // check whether geometry level is allowed
232  switch(m_alignLevelEndcaps) {
233  case 1: case 2: case 25: case 3:
234  ATH_MSG_INFO("Alignment level for SCT Endcaps is "<<m_alignLevelBarrel);
235  return true;
236  default:
237  msg(MSG::FATAL)<<"Alignment level "<<m_alignLevelEndcaps<<" does not exist for SCT Endcaps"<<endmsg;
238  return false;
239  }
240  }

◆ 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::SCTGeometryManagerTool::dumpGeometry ( )
private

print basic geometry info to screen

Definition at line 1397 of file SCTGeometryManagerTool.cxx.

1398  {
1399  ATH_MSG_INFO("---------------------------------------------------");
1400  ATH_MSG_INFO("Summary of the alignment geometry");
1401  ATH_MSG_INFO("Number of alignable objects: "<< m_alignModuleList.size());
1402  for(unsigned int i=0;i<m_alignModuleList.size();i++) {
1404  ATH_MSG_INFO(i<<". "<< module->name());
1405  ATH_MSG_INFO(" - identifier: "<<module->identify());
1406  ATH_MSG_INFO(" - has "<<module->detElementCollection(Trk::AlignModule::SCT)->size()<<" SCT modules");
1407 
1408  Amg::Transform3D localtoglobal = (module->globalFrameToAlignFrame()).inverse();
1409  ATH_MSG_DEBUG(" - local to global : "<<std::setprecision(12)<<localtoglobal.translation()<<" "<<localtoglobal.rotation());
1410 
1412  int npars = pars->size();
1413  ATH_MSG_DEBUG(" - number of active transform parameters: "<<npars);
1414  for(int j=0;j<npars;j++)
1415  ATH_MSG_DEBUG(" * par "<<j<<" \'"<<(*pars)[j]->dumpType()<<"\' : sigma = "<<(*pars)[j]->sigma()<<" , softCut = "<<(*pars)[j]->softCut());
1416  }
1417  ATH_MSG_INFO("---------------------------------------------------");
1418  }

◆ 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::SCTGeometryManagerTool::finalize ( )
virtual

Implements Trk::IGeometryManagerTool.

Definition at line 163 of file SCTGeometryManagerTool.cxx.

164  {
165  ATH_MSG_DEBUG("finalize() of SCTGeometryManagerTool");
166 
167  return StatusCode::SUCCESS;
168  }

◆ 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::SCTGeometryManagerTool::initialize ( )
virtual

Implements Trk::IGeometryManagerTool.

Definition at line 120 of file SCTGeometryManagerTool.cxx.

121  {
122  ATH_MSG_DEBUG("initialize() of SCTGeometryManagerTool");
123 
124  // retrieve AlignModuleTool
125  if ( m_alignModuleTool.retrieve().isFailure() ) {
126  msg(MSG::FATAL)<<"Could not get " << m_alignModuleTool << endmsg;
127  return StatusCode::FAILURE;
128  }
129  else
130  ATH_MSG_INFO("Retrieved " << m_alignModuleTool);
131 
132  // retrieve SCT helper
133  if ( detStore()->retrieve(m_idHelper).isFailure() ) {
134  msg(MSG::FATAL) << " Cannot retrieve SCT Helper " << endmsg;
135  return StatusCode::FAILURE;
136  }
137  else
138  ATH_MSG_INFO("retrieved Silicon SCT Helper");
139 
140  // retrieve SCT detector manager
141  if ( detStore()->retrieve(m_detManager, "SCT").isFailure() ) {
142  msg(MSG::FATAL) << " Cannot retrieve SCT Detector Manager " << endmsg;
143  return StatusCode::FAILURE;
144  }
145  else
146  ATH_MSG_INFO("retrieved SCT Detector Manager");
147 
148  // dump module selection
149  if(m_doModuleSelection && msgLvl(MSG::INFO)) {
150  msg(MSG::INFO)<<"Creating geometry for selected "<<m_moduleSelection.size()<<" modules:"<<endmsg;
151  for(unsigned int i=0;i<m_moduleSelection.size();i++)
152  msg(MSG::INFO)<<" "<<i<<". "<<m_moduleSelection.at(i)<<endmsg;
153  }
154 
155  // check the allowed geometry levels
156  if(!checkAlignLevel())
157  return StatusCode::FAILURE;
158 
159  return StatusCode::SUCCESS;
160  }

◆ 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 }

◆ moduleSelected() [1/2]

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

check wheather module is selected for module pointer

Definition at line 1391 of file SCTGeometryManagerTool.cxx.

1392  {
1393  return moduleSelected(mod->identify().get_compact());
1394  }

◆ moduleSelected() [2/2]

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

check wheather module is selected for module id

Definition at line 1377 of file SCTGeometryManagerTool.cxx.

1378  {
1379  if(!m_doModuleSelection)
1380  return true;
1381 
1382  int nsel = m_moduleSelection.size();
1383  for(int i=0;i<nsel;++i)
1384  if(m_moduleSelection.at(i) == id)
1385  return true;
1386 
1387  return false;
1388  }

◆ 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::SCTGeometryManagerTool::PrintModPositions ( )
inlinevirtual

Implements Trk::IGeometryManagerTool.

Definition at line 59 of file SCTGeometryManagerTool.h.

59 {};

◆ ReadGeometry()

int InDet::SCTGeometryManagerTool::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 243 of file SCTGeometryManagerTool.cxx.

244  {
245  ATH_MSG_DEBUG("in ReadGeometry() solveLevel="<<solveLevel);
246 
247  // set pointers
250 
251  // build alignment geometry
252  buildGeometry();
253 
254  // now set the alignment parameters
255  // first prepare the parameter lists
258  // loop over modules
259  ATH_MSG_DEBUG("Adding module parameters to modules");
260  std::vector<Trk::AlignModule *>::const_iterator imod = m_alignModuleList.begin();
261  std::vector<Trk::AlignModule *>::const_iterator imod_end = m_alignModuleList.end();
262  for( ; imod!=imod_end ; ++imod)
264 
265  // set alignModuleList and hash table in the alignModuleTool
267  ATH_MSG_DEBUG(" geometry set in m_alignModuleTool");
268 
269  // set alignPar lists in the alignModuleTool
270  ATH_MSG_DEBUG(" alignParList = "<<m_alignParList);
271  ATH_MSG_DEBUG(" fullAlignParList = "<<m_fullAlignParList);
273  ATH_MSG_DEBUG(" AlignParLists set in m_alignModuleTool");
274 
275  // dump summary about the geometry setup
276  if (m_dumpGeometry)
277  dumpGeometry();
278 
279  int nDoF= m_alignModuleTool->nAlignParameters();
280  ATH_MSG_INFO("Total number of degrees of freedom: "<<nDoF);
281 
282  return nDoF;
283  }

◆ 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()

void InDet::SCTGeometryManagerTool::setAlignLevel ( int  level)
virtual

set alignment level

Reimplemented from Trk::IGeometryManagerTool.

Definition at line 171 of file SCTGeometryManagerTool.cxx.

172  {
175  }

◆ 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()

virtual void Trk::IGeometryManagerTool::setLogStream ( std::ostream *  os)
inlinevirtualinherited

sets the output stream for the logfile

Reimplemented in InDet::SiGeometryManagerTool, and InDet::InDetGeometryManagerTool.

Definition at line 55 of file IGeometryManagerTool.h.

55 { m_logStream = os; }

◆ 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::SCTGeometryManagerTool::setSigmas ( Trk::AlignModule mod,
DataVector< Trk::AlignPar > *  modPars 
)
private

sets sigmas for modules

Definition at line 1310 of file SCTGeometryManagerTool.cxx.

1311  {
1312  for(unsigned int ipar=0;ipar<modPars->size();++ipar) {
1313  // barrel
1314  if(m_idHelper->is_barrel(module->identify()))
1315  switch(modPars->at(ipar)->paramType()) {
1317  modPars->at(ipar)->setSigma(m_sigmaBarrelX);
1318  modPars->at(ipar)->setSoftCut(m_softcutBarrelX);
1319  break;
1321  modPars->at(ipar)->setSigma(m_sigmaBarrelY);
1322  modPars->at(ipar)->setSoftCut(m_softcutBarrelY);
1323  break;
1325  modPars->at(ipar)->setSigma(m_sigmaBarrelZ);
1326  modPars->at(ipar)->setSoftCut(m_softcutBarrelZ);
1327  break;
1329  modPars->at(ipar)->setSigma(m_sigmaBarrelRotX);
1330  modPars->at(ipar)->setSoftCut(m_softcutBarrelRotX);
1331  break;
1333  modPars->at(ipar)->setSigma(m_sigmaBarrelRotY);
1334  modPars->at(ipar)->setSoftCut(m_softcutBarrelRotY);
1335  break;
1337  modPars->at(ipar)->setSigma(m_sigmaBarrelRotZ);
1338  modPars->at(ipar)->setSoftCut(m_softcutBarrelRotZ);
1339  break;
1340  default:
1341  break;
1342  }
1343  // end-caps
1344  else
1345  switch(modPars->at(ipar)->paramType()) {
1347  modPars->at(ipar)->setSigma(m_sigmaEndcapX);
1348  modPars->at(ipar)->setSoftCut(m_softcutEndcapX);
1349  break;
1351  modPars->at(ipar)->setSigma(m_sigmaEndcapY);
1352  modPars->at(ipar)->setSoftCut(m_softcutEndcapY);
1353  break;
1355  modPars->at(ipar)->setSigma(m_sigmaEndcapZ);
1356  modPars->at(ipar)->setSoftCut(m_softcutEndcapZ);
1357  break;
1359  modPars->at(ipar)->setSigma(m_sigmaEndcapRotX);
1360  modPars->at(ipar)->setSoftCut(m_softcutEndcapRotX);
1361  break;
1363  modPars->at(ipar)->setSigma(m_sigmaEndcapRotY);
1364  modPars->at(ipar)->setSoftCut(m_softcutEndcapRotY);
1365  break;
1367  modPars->at(ipar)->setSigma(m_sigmaEndcapRotZ);
1368  modPars->at(ipar)->setSoftCut(m_softcutEndcapRotZ);
1369  break;
1370  default:
1371  break;
1372  }
1373  }
1374  }

◆ StoreModPositions()

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

Implements Trk::IGeometryManagerTool.

Definition at line 60 of file SCTGeometryManagerTool.h.

60 {};

◆ 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_alignBarrel

bool InDet::SCTGeometryManagerTool::m_alignBarrel
private

Definition at line 142 of file SCTGeometryManagerTool.h.

◆ m_alignBarrelRotX

bool InDet::SCTGeometryManagerTool::m_alignBarrelRotX
private

Definition at line 148 of file SCTGeometryManagerTool.h.

◆ m_alignBarrelRotY

bool InDet::SCTGeometryManagerTool::m_alignBarrelRotY
private

Definition at line 149 of file SCTGeometryManagerTool.h.

◆ m_alignBarrelRotZ

bool InDet::SCTGeometryManagerTool::m_alignBarrelRotZ
private

Definition at line 150 of file SCTGeometryManagerTool.h.

◆ m_alignBarrelX

bool InDet::SCTGeometryManagerTool::m_alignBarrelX
private

Definition at line 145 of file SCTGeometryManagerTool.h.

◆ m_alignBarrelY

bool InDet::SCTGeometryManagerTool::m_alignBarrelY
private

Definition at line 146 of file SCTGeometryManagerTool.h.

◆ m_alignBarrelZ

bool InDet::SCTGeometryManagerTool::m_alignBarrelZ
private

Definition at line 147 of file SCTGeometryManagerTool.h.

◆ m_alignEndcapRotX

bool InDet::SCTGeometryManagerTool::m_alignEndcapRotX
private

Definition at line 155 of file SCTGeometryManagerTool.h.

◆ m_alignEndcapRotY

bool InDet::SCTGeometryManagerTool::m_alignEndcapRotY
private

Definition at line 156 of file SCTGeometryManagerTool.h.

◆ m_alignEndcapRotZ

bool InDet::SCTGeometryManagerTool::m_alignEndcapRotZ
private

Definition at line 157 of file SCTGeometryManagerTool.h.

◆ m_alignEndcaps

bool InDet::SCTGeometryManagerTool::m_alignEndcaps
private

Definition at line 143 of file SCTGeometryManagerTool.h.

◆ m_alignEndcapX

bool InDet::SCTGeometryManagerTool::m_alignEndcapX
private

Definition at line 152 of file SCTGeometryManagerTool.h.

◆ m_alignEndcapY

bool InDet::SCTGeometryManagerTool::m_alignEndcapY
private

Definition at line 153 of file SCTGeometryManagerTool.h.

◆ m_alignEndcapZ

bool InDet::SCTGeometryManagerTool::m_alignEndcapZ
private

Definition at line 154 of file SCTGeometryManagerTool.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::SCTGeometryManagerTool::m_alignModuleList
private

Definition at line 131 of file SCTGeometryManagerTool.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::SCTGeometryManagerTool::m_alignModuleTool
private

pointer to AlignModuleTool

Definition at line 129 of file SCTGeometryManagerTool.h.

◆ m_alignParList

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

Definition at line 136 of file SCTGeometryManagerTool.h.

◆ m_detManager

const InDetDD::SCT_DetectorManager* InDet::SCTGeometryManagerTool::m_detManager
private

pointer to SCT detector manager

Definition at line 125 of file SCTGeometryManagerTool.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::SCTGeometryManagerTool::m_doModuleSelection
private

Definition at line 139 of file SCTGeometryManagerTool.h.

◆ m_dumpGeometry

bool InDet::SCTGeometryManagerTool::m_dumpGeometry
private

Definition at line 188 of file SCTGeometryManagerTool.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::SCTGeometryManagerTool::m_fullAlignParList
private

Definition at line 137 of file SCTGeometryManagerTool.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::SCTGeometryManagerTool::m_idHashToAlignModuleMap
private

Definition at line 132 of file SCTGeometryManagerTool.h.

◆ m_idHashToAlignModuleMaps

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

Definition at line 134 of file SCTGeometryManagerTool.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 SCT_ID* InDet::SCTGeometryManagerTool::m_idHelper
private

pointer to SCT detector manager

Definition at line 127 of file SCTGeometryManagerTool.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::SCTGeometryManagerTool::m_moduleSelection
private

Definition at line 140 of file SCTGeometryManagerTool.h.

◆ m_sigmaBarrelRotX

double InDet::SCTGeometryManagerTool::m_sigmaBarrelRotX
private

Definition at line 162 of file SCTGeometryManagerTool.h.

◆ m_sigmaBarrelRotY

double InDet::SCTGeometryManagerTool::m_sigmaBarrelRotY
private

Definition at line 163 of file SCTGeometryManagerTool.h.

◆ m_sigmaBarrelRotZ

double InDet::SCTGeometryManagerTool::m_sigmaBarrelRotZ
private

Definition at line 164 of file SCTGeometryManagerTool.h.

◆ m_sigmaBarrelX

double InDet::SCTGeometryManagerTool::m_sigmaBarrelX
private

Definition at line 159 of file SCTGeometryManagerTool.h.

◆ m_sigmaBarrelY

double InDet::SCTGeometryManagerTool::m_sigmaBarrelY
private

Definition at line 160 of file SCTGeometryManagerTool.h.

◆ m_sigmaBarrelZ

double InDet::SCTGeometryManagerTool::m_sigmaBarrelZ
private

Definition at line 161 of file SCTGeometryManagerTool.h.

◆ m_sigmaEndcapRotX

double InDet::SCTGeometryManagerTool::m_sigmaEndcapRotX
private

Definition at line 169 of file SCTGeometryManagerTool.h.

◆ m_sigmaEndcapRotY

double InDet::SCTGeometryManagerTool::m_sigmaEndcapRotY
private

Definition at line 170 of file SCTGeometryManagerTool.h.

◆ m_sigmaEndcapRotZ

double InDet::SCTGeometryManagerTool::m_sigmaEndcapRotZ
private

Definition at line 171 of file SCTGeometryManagerTool.h.

◆ m_sigmaEndcapX

double InDet::SCTGeometryManagerTool::m_sigmaEndcapX
private

Definition at line 166 of file SCTGeometryManagerTool.h.

◆ m_sigmaEndcapY

double InDet::SCTGeometryManagerTool::m_sigmaEndcapY
private

Definition at line 167 of file SCTGeometryManagerTool.h.

◆ m_sigmaEndcapZ

double InDet::SCTGeometryManagerTool::m_sigmaEndcapZ
private

Definition at line 168 of file SCTGeometryManagerTool.h.

◆ m_softcutBarrelRotX

double InDet::SCTGeometryManagerTool::m_softcutBarrelRotX
private

Definition at line 176 of file SCTGeometryManagerTool.h.

◆ m_softcutBarrelRotY

double InDet::SCTGeometryManagerTool::m_softcutBarrelRotY
private

Definition at line 177 of file SCTGeometryManagerTool.h.

◆ m_softcutBarrelRotZ

double InDet::SCTGeometryManagerTool::m_softcutBarrelRotZ
private

Definition at line 178 of file SCTGeometryManagerTool.h.

◆ m_softcutBarrelX

double InDet::SCTGeometryManagerTool::m_softcutBarrelX
private

Definition at line 173 of file SCTGeometryManagerTool.h.

◆ m_softcutBarrelY

double InDet::SCTGeometryManagerTool::m_softcutBarrelY
private

Definition at line 174 of file SCTGeometryManagerTool.h.

◆ m_softcutBarrelZ

double InDet::SCTGeometryManagerTool::m_softcutBarrelZ
private

Definition at line 175 of file SCTGeometryManagerTool.h.

◆ m_softcutEndcapRotX

double InDet::SCTGeometryManagerTool::m_softcutEndcapRotX
private

Definition at line 183 of file SCTGeometryManagerTool.h.

◆ m_softcutEndcapRotY

double InDet::SCTGeometryManagerTool::m_softcutEndcapRotY
private

Definition at line 184 of file SCTGeometryManagerTool.h.

◆ m_softcutEndcapRotZ

double InDet::SCTGeometryManagerTool::m_softcutEndcapRotZ
private

Definition at line 185 of file SCTGeometryManagerTool.h.

◆ m_softcutEndcapX

double InDet::SCTGeometryManagerTool::m_softcutEndcapX
private

Definition at line 180 of file SCTGeometryManagerTool.h.

◆ m_softcutEndcapY

double InDet::SCTGeometryManagerTool::m_softcutEndcapY
private

Definition at line 181 of file SCTGeometryManagerTool.h.

◆ m_softcutEndcapZ

double InDet::SCTGeometryManagerTool::m_softcutEndcapZ
private

Definition at line 182 of file SCTGeometryManagerTool.h.

◆ m_useOldL2

bool InDet::SCTGeometryManagerTool::m_useOldL2
private

Definition at line 187 of file SCTGeometryManagerTool.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
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
InDet::SCTGeometryManagerTool::buildL2Endcaps
void buildL2Endcaps()
creates L2 AlignModules for SCT endcaps
Definition: SCTGeometryManagerTool.cxx:737
InDet::SCTGeometryManagerTool::m_softcutEndcapY
double m_softcutEndcapY
Definition: SCTGeometryManagerTool.h:181
Trk::IGeometryManagerTool::m_alignLevelBarrel
int m_alignLevelBarrel
alignment level
Definition: IGeometryManagerTool.h:116
InDet::SCTGeometryManagerTool::buildL3Barrel
void buildL3Barrel()
creates L3 AlignModules for SCT barrel
Definition: SCTGeometryManagerTool.cxx:1080
InDet::SCTGeometryManagerTool::m_idHelper
const SCT_ID * m_idHelper
pointer to SCT detector manager
Definition: SCTGeometryManagerTool.h:127
InDet::SCTGeometryManagerTool::moduleSelected
bool moduleSelected(Trk::AlignModule *mod)
check wheather module is selected for module pointer
Definition: SCTGeometryManagerTool.cxx:1391
InDet::SCTGeometryManagerTool::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: SCTGeometryManagerTool.cxx:1253
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
InDetDD::SiDetectorManager::numerology
const SiNumerology & numerology() const
Access Numerology.
Definition: SiDetectorManager.h:126
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDet::SCTGeometryManagerTool::m_alignBarrel
bool m_alignBarrel
Definition: SCTGeometryManagerTool.h:142
Trk::AlignModule::TransZ
@ TransZ
Definition: AlignModule.h:54
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
InDet::SCTGeometryManagerTool::buildL25Endcaps
void buildL25Endcaps()
creates L25 AlignModules for SCT endcaps
Definition: SCTGeometryManagerTool.cxx:816
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
Trk::AlignModuleList
std::vector< AlignModule * > AlignModuleList
Definition: AlignModuleList.h:37
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
Trk::IGeometryManagerTool::m_hashCounter
int m_hashCounter
variable for setting the idHash of the AlignModules
Definition: IGeometryManagerTool.h:111
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDet::SCTGeometryManagerTool::m_moduleSelection
std::vector< unsigned long long > m_moduleSelection
Definition: SCTGeometryManagerTool.h:140
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
InDet::SCTGeometryManagerTool::m_sigmaEndcapZ
double m_sigmaEndcapZ
Definition: SCTGeometryManagerTool.h:168
InDetDD::SiNumerology::useLayer
bool useLayer(int layer) const
Check if layer exists.
InDet::SCTGeometryManagerTool::m_sigmaEndcapY
double m_sigmaEndcapY
Definition: SCTGeometryManagerTool.h:167
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::SCTGeometryManagerTool::buildL27Barrel
void buildL27Barrel()
creates L27 AlignModules for SCT barrel
Definition: SCTGeometryManagerTool.cxx:634
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::IGeometryManagerTool::m_alignLevelEndcaps
int m_alignLevelEndcaps
alignment level
Definition: IGeometryManagerTool.h:117
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::SCTGeometryManagerTool::m_alignBarrelRotY
bool m_alignBarrelRotY
Definition: SCTGeometryManagerTool.h:149
Trk::AlignModule::NDetectorTypes
@ NDetectorTypes
Definition: AlignModule.h:57
InDet::SCTGeometryManagerTool::m_sigmaEndcapRotX
double m_sigmaEndcapRotX
Definition: SCTGeometryManagerTool.h:169
InDetDD::SCT_DetectorManager::getDetectorElement
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
Definition: SCT_DetectorManager.cxx:64
InDet::SCTGeometryManagerTool::m_alignEndcaps
bool m_alignEndcaps
Definition: SCTGeometryManagerTool.h:143
Trk::AlignPar::paramType
AlignModule::TransformParameters paramType() const
returns the type of parameter (i.e.
Definition: AlignPar.h:47
InDetDD::SiNumerology::skipEtaZeroForLayer
bool skipEtaZeroForLayer(int layer) const
Check if eta_module=0 exists.
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::SCTGeometryManagerTool::m_sigmaBarrelZ
double m_sigmaBarrelZ
Definition: SCTGeometryManagerTool.h:161
InDet::SCTGeometryManagerTool::m_softcutBarrelRotZ
double m_softcutBarrelRotZ
Definition: SCTGeometryManagerTool.h:178
Trk::IGeometryManagerTool::m_alignLevel
int m_alignLevel
alignment level
Definition: IGeometryManagerTool.h:115
Rec::nDoF
double nDoF(const Trk::Track &track)
Definition: OutwardsCombinedMuonTrackBuilder.cxx:31
InDet::SCTGeometryManagerTool::m_alignBarrelZ
bool m_alignBarrelZ
Definition: SCTGeometryManagerTool.h:147
InDet::SCTGeometryManagerTool::m_alignEndcapRotX
bool m_alignEndcapRotX
Definition: SCTGeometryManagerTool.h:155
InDet::SCTGeometryManagerTool::m_sigmaEndcapRotY
double m_sigmaEndcapRotY
Definition: SCTGeometryManagerTool.h:170
python.PyAthena.module
module
Definition: PyAthena.py:134
InDet::SCTGeometryManagerTool::m_sigmaEndcapRotZ
double m_sigmaEndcapRotZ
Definition: SCTGeometryManagerTool.h:171
InDet::SCTGeometryManagerTool::buildL1Barrel
void buildL1Barrel()
creates L1 AlignModules for SCT barrel
Definition: SCTGeometryManagerTool.cxx:404
InDet::SCTGeometryManagerTool::buildL0
void buildL0()
creates L0 AlignModules for SCT
Definition: SCTGeometryManagerTool.cxx:336
InDet::SCTGeometryManagerTool::m_softcutBarrelX
double m_softcutBarrelX
Definition: SCTGeometryManagerTool.h:173
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
InDet::SCTGeometryManagerTool::buildL2Old
void buildL2Old()
creates L2 AlignModules for the full Pixel in the ordering equal to the old code
Definition: SCTGeometryManagerTool.cxx:903
InDet::SCTGeometryManagerTool::m_sigmaBarrelY
double m_sigmaBarrelY
Definition: SCTGeometryManagerTool.h:160
InDetDD::SiDetectorElement::moduleTransform
const Amg::Transform3D & moduleTransform() const
Module to global frame transform.
Definition: SiDetectorElement.cxx:173
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
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
InDet::SCTGeometryManagerTool::m_softcutEndcapRotX
double m_softcutEndcapRotX
Definition: SCTGeometryManagerTool.h:183
InDet::SCTGeometryManagerTool::m_idHashToAlignModuleMaps
std::vector< Trk::AlignModuleList * > m_idHashToAlignModuleMaps
Definition: SCTGeometryManagerTool.h:134
InDet::SCTGeometryManagerTool::checkAlignLevelBarrel
bool checkAlignLevelBarrel()
check whether the Barrel alignment level is correct
Definition: SCTGeometryManagerTool.cxx:209
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::rotation
rotation
Definition: TrackSurface_v1.cxx:15
InDet::SCTGeometryManagerTool::m_sigmaBarrelRotZ
double m_sigmaBarrelRotZ
Definition: SCTGeometryManagerTool.h:164
InDet::SCTGeometryManagerTool::buildL1Endcaps
void buildL1Endcaps()
creates L1 AlignModules for SCT endcaps
Definition: SCTGeometryManagerTool.cxx:481
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
InDetDD::SiNumerology::endcapId
int endcapId(int index) const
Barrel/endcap identifier for each endcap.
Trk::AlignModule::RotX
@ RotX
Definition: AlignModule.h:54
InDet::SCTGeometryManagerTool::m_alignEndcapRotY
bool m_alignEndcapRotY
Definition: SCTGeometryManagerTool.h:156
InDetDD::SiNumerology::useDisk
bool useDisk(int disk) const
Check if disk exists.
InDetDD::SiNumerology::numDisks
int numDisks() const
Number of disks.
Trk::AlignModule::SCT
@ SCT
Definition: AlignModule.h:57
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
InDet::SCTGeometryManagerTool::m_softcutEndcapRotY
double m_softcutEndcapRotY
Definition: SCTGeometryManagerTool.h:184
InDet::SCTGeometryManagerTool::m_softcutEndcapRotZ
double m_softcutEndcapRotZ
Definition: SCTGeometryManagerTool.h:185
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
InDet::SCTGeometryManagerTool::m_dumpGeometry
bool m_dumpGeometry
Definition: SCTGeometryManagerTool.h:188
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
InDet::SCTGeometryManagerTool::checkAlignLevel
bool checkAlignLevel()
check whether the alignment level is correct
Definition: SCTGeometryManagerTool.cxx:178
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::AlignModule::name
const std::string & name() const
Definition: AlignModule.h:89
InDet::SCTGeometryManagerTool::m_alignEndcapX
bool m_alignEndcapX
Definition: SCTGeometryManagerTool.h:152
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
InDet::SCTGeometryManagerTool::m_alignBarrelX
bool m_alignBarrelX
Definition: SCTGeometryManagerTool.h:145
InDet::SCTGeometryManagerTool::m_detManager
const InDetDD::SCT_DetectorManager * m_detManager
pointer to SCT detector manager
Definition: SCTGeometryManagerTool.h:125
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
InDet::SCTGeometryManagerTool::m_alignEndcapZ
bool m_alignEndcapZ
Definition: SCTGeometryManagerTool.h:154
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
InDet::SCTGeometryManagerTool::m_softcutBarrelRotX
double m_softcutBarrelRotX
Definition: SCTGeometryManagerTool.h:176
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
HI::TowerBins::numLayers
constexpr unsigned int numLayers()
Definition: HIEventDefs.h:23
InDet::SCTGeometryManagerTool::m_sigmaBarrelX
double m_sigmaBarrelX
Definition: SCTGeometryManagerTool.h:159
Trk::IGeometryManagerTool::m_logStream
std::ostream * m_logStream
logfile output stream
Definition: IGeometryManagerTool.h:113
InDet::SCTGeometryManagerTool::m_useOldL2
bool m_useOldL2
Definition: SCTGeometryManagerTool.h:187
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:53
InDet::SCTGeometryManagerTool::buildGeometry
void buildGeometry()
builds geometry for SCT alignment
Definition: SCTGeometryManagerTool.cxx:286
Trk::AlignModule::setIdHash
void setIdHash(IdentifierHash id)
Definition: AlignModule.h:93
Trk::AlignModule::TransX
@ TransX
Definition: AlignModule.h:54
InDet::SCTGeometryManagerTool::m_alignEndcapRotZ
bool m_alignEndcapRotZ
Definition: SCTGeometryManagerTool.h:157
DeMoScan.index
string index
Definition: DeMoScan.py:362
InDet::SCTGeometryManagerTool::m_sigmaBarrelRotY
double m_sigmaBarrelRotY
Definition: SCTGeometryManagerTool.h:163
InDet::SCTGeometryManagerTool::m_softcutBarrelRotY
double m_softcutBarrelRotY
Definition: SCTGeometryManagerTool.h:177
InDet::SCTGeometryManagerTool::m_sigmaBarrelRotX
double m_sigmaBarrelRotX
Definition: SCTGeometryManagerTool.h:162
a
TList * a
Definition: liststreamerinfos.cxx:10
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
InDet::SCTGeometryManagerTool::m_alignModuleList
Trk::AlignModuleList m_alignModuleList
Definition: SCTGeometryManagerTool.h:131
InDet::SCTGeometryManagerTool::m_softcutEndcapZ
double m_softcutEndcapZ
Definition: SCTGeometryManagerTool.h:182
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::AlignModule::RotY
@ RotY
Definition: AlignModule.h:54
InDet::SCTGeometryManagerTool::m_alignEndcapY
bool m_alignEndcapY
Definition: SCTGeometryManagerTool.h:153
InDet::SCTGeometryManagerTool::m_fullAlignParList
DataVector< DataVector< Trk::AlignPar > > * m_fullAlignParList
Definition: SCTGeometryManagerTool.h:137
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDetDD::SiNumerology::beginEtaModuleForLayer
int beginEtaModuleForLayer(int layer) const
First eta_module number for a layer.
DEBUG
#define DEBUG
Definition: page_access.h:11
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
InDet::SCTGeometryManagerTool::m_alignBarrelRotX
bool m_alignBarrelRotX
Definition: SCTGeometryManagerTool.h:148
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
InDet::SCTGeometryManagerTool::buildL3Endcaps
void buildL3Endcaps()
creates L3 AlignModules for SCT endcaps
Definition: SCTGeometryManagerTool.cxx:1165
Trk::TrkDetElementBase::identifyHash
virtual IdentifierHash identifyHash() const =0
Identifier hash.
Trk::AlignPar::setSoftCut
void setSoftCut(double softCut)
sets soft-mode-cut
Definition: AlignPar.h:90
InDet::SCTGeometryManagerTool::m_alignBarrelRotZ
bool m_alignBarrelRotZ
Definition: SCTGeometryManagerTool.h:150
InDet::SCTGeometryManagerTool::m_sigmaEndcapX
double m_sigmaEndcapX
Definition: SCTGeometryManagerTool.h:166
InDet::SCTGeometryManagerTool::buildL2Barrel
void buildL2Barrel()
creates L2 AlignModules for SCT barrel
Definition: SCTGeometryManagerTool.cxx:562
InDet::SCTGeometryManagerTool::m_softcutBarrelY
double m_softcutBarrelY
Definition: SCTGeometryManagerTool.h:174
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
InDet::SCTGeometryManagerTool::m_softcutBarrelZ
double m_softcutBarrelZ
Definition: SCTGeometryManagerTool.h:175
InDet::SCTGeometryManagerTool::m_doModuleSelection
bool m_doModuleSelection
Definition: SCTGeometryManagerTool.h:139
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
InDetDD::SiDetectorElement::isStereo
bool isStereo() const
Check if it is the stereo side (useful for SCT)
Definition: SiDetectorElement.cxx:300
Trk::AlignModule::RotZ
@ RotZ
Definition: AlignModule.h:54
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:74
InDet::SCTGeometryManagerTool::setSigmas
void setSigmas(Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
sets sigmas for modules
Definition: SCTGeometryManagerTool.cxx:1310
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
InDet::SCTGeometryManagerTool::m_softcutEndcapX
double m_softcutEndcapX
Definition: SCTGeometryManagerTool.h:180
Trk::AlignModule::identify
Identifier identify() const
Definition: AlignModule.h:97
InDet::SCTGeometryManagerTool::dumpGeometry
void dumpGeometry()
print basic geometry info to screen
Definition: SCTGeometryManagerTool.cxx:1397
InDet::SCTGeometryManagerTool::m_alignParList
DataVector< DataVector< Trk::AlignPar > > * m_alignParList
Definition: SCTGeometryManagerTool.h:136
InDet::SCTGeometryManagerTool::checkAlignLevelEndcaps
bool checkAlignLevelEndcaps()
check whether the Endcap alignment level is correct
Definition: SCTGeometryManagerTool.cxx:226
InDet::SCTGeometryManagerTool::m_alignBarrelY
bool m_alignBarrelY
Definition: SCTGeometryManagerTool.h:146
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
InDet::SCTGeometryManagerTool::m_alignModuleTool
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
pointer to AlignModuleTool
Definition: SCTGeometryManagerTool.h:129