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, V, H > &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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &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
 
Gaudi::Property< std::string > m_stripDetManagerName {this,"StripDetectorManager","SCT","Name of the Strip Detector Manager to attempt to retrieve"}
 
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 1234 of file SCTGeometryManagerTool.cxx.

1235  {
1236  // prepare all parameters
1244 
1245  // set sigmas
1246  setSigmas(module,fullModPars);
1247 
1248  // select active parameters based on jobOption properties
1250  for(unsigned int ipar=0;ipar<fullModPars->size();++ipar) {
1251 
1252  Identifier AlimodID = module->identify();
1253  Identifier modID = ((module->detElementCollection(Trk::AlignModule::SCT))->at(0))->identify();
1254 
1255  if(m_idHelper->is_barrel(modID)) {
1256  ATH_MSG_DEBUG("SCT barrel module with id "<<AlimodID);
1257  if( (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransX && m_alignBarrelX)
1258  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransY && m_alignBarrelY)
1259  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransZ && m_alignBarrelZ)
1260  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotX && m_alignBarrelRotX)
1261  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotY && m_alignBarrelRotY)
1262  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotZ && m_alignBarrelRotZ) ) {
1263  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is now active");
1264  activeModPars->push_back(fullModPars->at(ipar));
1265  }
1266  else
1267  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is NOT active");
1268  }
1269  else {
1270  ATH_MSG_DEBUG("SCT endcap module with id "<<AlimodID);
1271  if( (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransX && m_alignEndcapX)
1272  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransY && m_alignEndcapY)
1273  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::TransZ && m_alignEndcapZ)
1274  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotX && m_alignEndcapRotX)
1275  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotY && m_alignEndcapRotY)
1276  || (fullModPars->at(ipar)->paramType() == Trk::AlignModule::RotZ && m_alignEndcapRotZ) ) {
1277  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is now active");
1278  activeModPars->push_back(fullModPars->at(ipar));
1279  }
1280  else
1281  ATH_MSG_DEBUG("parameter type "<<fullModPars->at(ipar)->paramType()<<" is NOT active");
1282  }
1283  }
1284 
1285  // now add parameters to the list
1286  allFullModPars->push_back(fullModPars);
1287  allActiveModPars->push_back(activeModPars);
1288  }

◆ 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
375  const SiDetectorElement * element = m_detManager->getDetectorElement(id);
376  if (element) {
377  // add element to respective AlignModule
378  // add to the sct barrel structure
379  if(msgLvl(MSG::DEBUG)) {
380  if (m_idHelper->is_barrel(id))
381  msg(MSG::DEBUG)<<"... SCT barrel element"<<endmsg;
382  else
383  msg(MSG::DEBUG)<<"... SCT endcap element"<<endmsg;
384  }
386 
387  // and fill the corresponding map
388  (*sctIdHashMap)[idHash] = sct;
389  }
390  else
391  ATH_MSG_DEBUG("No SCT detector with id: "<<id);
392  }
393 
394  // add created module to the geometry
395  m_alignModuleListPtr->push_back(sct);
396 
397  ATH_MSG_DEBUG("SCT L0 module successfully added to the geometry");
398  }

◆ buildL1Barrel()

void InDet::SCTGeometryManagerTool::buildL1Barrel ( )
private

creates L1 AlignModules for SCT barrel

Definition at line 401 of file SCTGeometryManagerTool.cxx.

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

◆ buildL1Endcaps()

void InDet::SCTGeometryManagerTool::buildL1Endcaps ( )
private

creates L1 AlignModules for SCT endcaps

Definition at line 476 of file SCTGeometryManagerTool.cxx.

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

◆ buildL25Endcaps()

void InDet::SCTGeometryManagerTool::buildL25Endcaps ( )
private

creates L25 AlignModules for SCT endcaps

Definition at line 805 of file SCTGeometryManagerTool.cxx.

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

◆ buildL27Barrel()

void InDet::SCTGeometryManagerTool::buildL27Barrel ( )
private

creates L27 AlignModules for SCT barrel

Definition at line 626 of file SCTGeometryManagerTool.cxx.

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

◆ buildL2Barrel()

void InDet::SCTGeometryManagerTool::buildL2Barrel ( )
private

creates L2 AlignModules for SCT barrel

Definition at line 556 of file SCTGeometryManagerTool.cxx.

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

◆ buildL2Endcaps()

void InDet::SCTGeometryManagerTool::buildL2Endcaps ( )
private

creates L2 AlignModules for SCT endcaps

Definition at line 727 of file SCTGeometryManagerTool.cxx.

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

◆ buildL2Old()

void InDet::SCTGeometryManagerTool::buildL2Old ( )
private

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

Definition at line 891 of file SCTGeometryManagerTool.cxx.

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

◆ buildL3Barrel()

void InDet::SCTGeometryManagerTool::buildL3Barrel ( )
private

creates L3 AlignModules for SCT barrel

Definition at line 1064 of file SCTGeometryManagerTool.cxx.

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

◆ buildL3Endcaps()

void InDet::SCTGeometryManagerTool::buildL3Endcaps ( )
private

creates L3 AlignModules for SCT endcaps

Definition at line 1148 of file SCTGeometryManagerTool.cxx.

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

◆ 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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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 1378 of file SCTGeometryManagerTool.cxx.

1379  {
1380  ATH_MSG_INFO("---------------------------------------------------");
1381  ATH_MSG_INFO("Summary of the alignment geometry");
1382  ATH_MSG_INFO("Number of alignable objects: "<< m_alignModuleList.size());
1383  for(unsigned int i=0;i<m_alignModuleList.size();i++) {
1385  ATH_MSG_INFO(i<<". "<< module->name());
1386  ATH_MSG_INFO(" - identifier: "<<module->identify());
1387  ATH_MSG_INFO(" - has "<<module->detElementCollection(Trk::AlignModule::SCT)->size()<<" SCT modules");
1388 
1389  Amg::Transform3D localtoglobal = (module->globalFrameToAlignFrame()).inverse();
1390  ATH_MSG_DEBUG(" - local to global : "<<std::setprecision(12)<<localtoglobal.translation()<<" "<<localtoglobal.rotation());
1391 
1393  int npars = pars->size();
1394  ATH_MSG_DEBUG(" - number of active transform parameters: "<<npars);
1395  for(int j=0;j<npars;j++)
1396  ATH_MSG_DEBUG(" * par "<<j<<" \'"<<(*pars)[j]->dumpType()<<"\' : sigma = "<<(*pars)[j]->sigma()<<" , softCut = "<<(*pars)[j]->softCut());
1397  }
1398  ATH_MSG_INFO("---------------------------------------------------");
1399  }

◆ 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,m_stripDetManagerName).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
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 1372 of file SCTGeometryManagerTool.cxx.

1373  {
1374  return moduleSelected(mod->identify().get_compact());
1375  }

◆ moduleSelected() [2/2]

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

check wheather module is selected for module id

Definition at line 1358 of file SCTGeometryManagerTool.cxx.

1359  {
1360  if(!m_doModuleSelection)
1361  return true;
1362 
1363  int nsel = m_moduleSelection.size();
1364  for(int i=0;i<nsel;++i)
1365  if(m_moduleSelection.at(i) == id)
1366  return true;
1367 
1368  return false;
1369  }

◆ 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 1291 of file SCTGeometryManagerTool.cxx.

1292  {
1293  for(unsigned int ipar=0;ipar<modPars->size();++ipar) {
1294  // barrel
1295  if(m_idHelper->is_barrel(module->identify()))
1296  switch(modPars->at(ipar)->paramType()) {
1298  modPars->at(ipar)->setSigma(m_sigmaBarrelX);
1299  modPars->at(ipar)->setSoftCut(m_softcutBarrelX);
1300  break;
1302  modPars->at(ipar)->setSigma(m_sigmaBarrelY);
1303  modPars->at(ipar)->setSoftCut(m_softcutBarrelY);
1304  break;
1306  modPars->at(ipar)->setSigma(m_sigmaBarrelZ);
1307  modPars->at(ipar)->setSoftCut(m_softcutBarrelZ);
1308  break;
1310  modPars->at(ipar)->setSigma(m_sigmaBarrelRotX);
1311  modPars->at(ipar)->setSoftCut(m_softcutBarrelRotX);
1312  break;
1314  modPars->at(ipar)->setSigma(m_sigmaBarrelRotY);
1315  modPars->at(ipar)->setSoftCut(m_softcutBarrelRotY);
1316  break;
1318  modPars->at(ipar)->setSigma(m_sigmaBarrelRotZ);
1319  modPars->at(ipar)->setSoftCut(m_softcutBarrelRotZ);
1320  break;
1321  default:
1322  break;
1323  }
1324  // end-caps
1325  else
1326  switch(modPars->at(ipar)->paramType()) {
1328  modPars->at(ipar)->setSigma(m_sigmaEndcapX);
1329  modPars->at(ipar)->setSoftCut(m_softcutEndcapX);
1330  break;
1332  modPars->at(ipar)->setSigma(m_sigmaEndcapY);
1333  modPars->at(ipar)->setSoftCut(m_softcutEndcapY);
1334  break;
1336  modPars->at(ipar)->setSigma(m_sigmaEndcapZ);
1337  modPars->at(ipar)->setSoftCut(m_softcutEndcapZ);
1338  break;
1340  modPars->at(ipar)->setSigma(m_sigmaEndcapRotX);
1341  modPars->at(ipar)->setSoftCut(m_softcutEndcapRotX);
1342  break;
1344  modPars->at(ipar)->setSigma(m_sigmaEndcapRotY);
1345  modPars->at(ipar)->setSoftCut(m_softcutEndcapRotY);
1346  break;
1348  modPars->at(ipar)->setSigma(m_sigmaEndcapRotZ);
1349  modPars->at(ipar)->setSoftCut(m_softcutEndcapRotZ);
1350  break;
1351  default:
1352  break;
1353  }
1354  }
1355  }

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

Gaudi::Property<std::string> InDet::SCTGeometryManagerTool::m_stripDetManagerName {this,"StripDetectorManager","SCT","Name of the Strip Detector Manager to attempt to retrieve"}
private

Definition at line 190 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:727
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:1064
xAOD::identify
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/Root/UtilFunctions.cxx:82
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:1372
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:1234
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
InDetDD::SiDetectorManager::numerology
const SiNumerology & numerology() const
Access Numerology.
Definition: SiDetectorManager.h:128
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:18
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:805
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
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:626
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
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
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::SCT_DetectorManager::getDetectorElement
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
Definition: SCT_DetectorManager.cxx:66
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
InDetDD::SolidStateDetectorElementBase::identifyHash
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
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
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
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:131
InDet::SCTGeometryManagerTool::m_sigmaEndcapRotZ
double m_sigmaEndcapRotZ
Definition: SCTGeometryManagerTool.h:171
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::SCTGeometryManagerTool::buildL1Barrel
void buildL1Barrel()
creates L1 AlignModules for SCT barrel
Definition: SCTGeometryManagerTool.cxx:401
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
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
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
SCT_ID::wafer_hash_max
size_type wafer_hash_max() const
Definition: SCT_ID.cxx:646
InDet::SCTGeometryManagerTool::buildL2Old
void buildL2Old()
creates L2 AlignModules for the full Pixel in the ordering equal to the old code
Definition: SCTGeometryManagerTool.cxx:891
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:85
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
MuonR4::inverse
CalibratedSpacePoint::Covariance_t inverse(const CalibratedSpacePoint::Covariance_t &mat)
Inverts the parsed matrix.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/UtilFunctions.cxx:65
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
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:476
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.
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:794
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
InDet::SCTGeometryManagerTool::m_stripDetManagerName
Gaudi::Property< std::string > m_stripDetManagerName
Definition: SCTGeometryManagerTool.h:190
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:240
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:47
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
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
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
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
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
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:629
InDet::SCTGeometryManagerTool::m_alignBarrelRotX
bool m_alignBarrelRotX
Definition: SCTGeometryManagerTool.h:148
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
InDet::SCTGeometryManagerTool::buildL3Endcaps
void buildL3Endcaps()
creates L3 AlignModules for SCT endcaps
Definition: SCTGeometryManagerTool.cxx:1148
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:556
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:77
InDet::SCTGeometryManagerTool::setSigmas
void setSigmas(Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
sets sigmas for modules
Definition: SCTGeometryManagerTool.cxx:1291
Trk::AlignModule::TransY
@ TransY
Definition: AlignModule.h:54
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
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:1378
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
Identifier
Definition: IdentifierFieldParser.cxx:14