ATLAS Offline Software
Public Member Functions | Private Member Functions | List of all members
InDet::SiLayerBuilderCond Class Reference

#include <SiLayerBuilderCond.h>

Inheritance diagram for InDet::SiLayerBuilderCond:
Collaboration diagram for InDet::SiLayerBuilderCond:

Public Member Functions

 SiLayerBuilderCond (const std::string &, const std::string &, const IInterface *)
 AlgTool style constructor. More...
 
virtual ~SiLayerBuilderCond ()=default
 Destructor. More...
 
virtual StatusCode initialize () override
 AlgTool initialize method. More...
 
virtual std::unique_ptr< const std::vector< Trk::CylinderLayer * > > cylindricalLayers (const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
 LayerBuilder interface method - returning Barrel-like layers. More...
 
virtual std::unique_ptr< const std::vector< Trk::DiscLayer * > > discLayers (const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
 LayerBuilder interface method - returning Endcap-like layers. More...
 
virtual std::unique_ptr< const std::vector< Trk::PlaneLayer * > > planarLayers (const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
 LayerBuilder interface method - returning Planar-like layers. More...
 
virtual const std::string & identification () const override final
 Name identification. More...
 

Private Member Functions

SG::ReadCondHandle< InDetDD::SiDetectorElementCollectionretrieveSiDetElements (const EventContext &ctx) const
 
std::unique_ptr< std::vector< Trk::DiscLayer * > > createDiscLayers (const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle, std::unique_ptr< std::vector< Trk::DiscLayer * > > discLayers=nullptr) const
 create the disc layers, if no vector is given, then it's the first pass, else it's the DBM for the Pixels More...
 
std::unique_ptr< std::vector< Trk::DiscLayer * > > createRingLayers (const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const
 create the disc layers, it is dedicated to ITk implementation of the endcap rings. More...
 

Detailed Description

The SiLayerBuilderCond parses the senstive detector elments and orders them onto a Layer surface.

It also uses the SiNumerology to construct the BinUtility and then orders the representing detector surfaces on the layers.

It performs an automated detector if an equidistant or non-equidistant binning is to be used for the barrel case.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 40 of file SiLayerBuilderCond.h.

Constructor & Destructor Documentation

◆ SiLayerBuilderCond()

InDet::SiLayerBuilderCond::SiLayerBuilderCond ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

AlgTool style constructor.

Definition at line 21 of file SiLayerBuilderCond.cxx.

21  :
22  base_class(t,n,p)
23 {
24 }

◆ ~SiLayerBuilderCond()

virtual InDet::SiLayerBuilderCond::~SiLayerBuilderCond ( )
virtualdefault

Destructor.

Member Function Documentation

◆ createDiscLayers()

std::unique_ptr< std::vector< Trk::DiscLayer * > > InDet::SiLayerBuilderCond::createDiscLayers ( const EventContext &  ctx,
SG::WriteCondHandle< Trk::TrackingGeometry > &  whandle,
std::unique_ptr< std::vector< Trk::DiscLayer * > >  discLayers = nullptr 
) const
private

create the disc layers, if no vector is given, then it's the first pass, else it's the DBM for the Pixels

LayerBuilder interface method - returning Endcap-like layers.

Definition at line 97 of file SiLayerBuilderCond.cxx.

101 {
102 
103  // get general layout
105  if(*readHandle == nullptr){
106  return nullptr;
107  }
108  whandle.addDependency (readHandle);
109 
110  const InDetDD::SiDetectorElementCollection* readCdo{*readHandle};
111  return createDiscLayersImpl(*readCdo, std::move(discLayers));
112 }

◆ createRingLayers()

std::unique_ptr< std::vector< Trk::DiscLayer * > > InDet::SiLayerBuilderCond::createRingLayers ( const EventContext &  ctx,
SG::WriteCondHandle< Trk::TrackingGeometry > &  whandle 
) const
private

create the disc layers, it is dedicated to ITk implementation of the endcap rings.

LayerBuilder interface method - returning ring-like layers.

Used for ITk specific case.

this is ITk pixel specific and doesn't include DBM modules

Definition at line 118 of file SiLayerBuilderCond.cxx.

119  {
120 
121  // get general layout
123  if(*readHandle == nullptr){
124  return nullptr;
125  }
126  whandle.addDependency (readHandle);
127 
128  const InDetDD::SiDetectorElementCollection* readCdo{*readHandle};
129  return createRingLayersImpl(*readCdo);
130 }

◆ cylindricalLayers()

std::unique_ptr< const std::vector< Trk::CylinderLayer * > > InDet::SiLayerBuilderCond::cylindricalLayers ( const EventContext &  ctx,
SG::WriteCondHandle< Trk::TrackingGeometry > &  whandle 
) const
finaloverridevirtual

LayerBuilder interface method - returning Barrel-like layers.

Definition at line 56 of file SiLayerBuilderCond.cxx.

58 {
60  if(*readHandle == nullptr){
61  return nullptr;
62  }
63  whandle.addDependency (readHandle);
64 
65  const InDetDD::SiDetectorElementCollection* readCdo{*readHandle};
66  return cylindricalLayersImpl(*readCdo);
67 }

◆ discLayers()

std::unique_ptr< const std::vector< Trk::DiscLayer * > > InDet::SiLayerBuilderCond::discLayers ( const EventContext &  ctx,
SG::WriteCondHandle< Trk::TrackingGeometry > &  whandle 
) const
finaloverridevirtual

LayerBuilder interface method - returning Endcap-like layers.

Definition at line 72 of file SiLayerBuilderCond.cxx.

74 {
75  // sanity check for ID Helper
76  if (!m_pixIdHelper && !m_sctIdHelper){
77  ATH_MSG_ERROR("Neither Pixel nor SCT Detector Manager or ID Helper could be retrieved - giving up.");
78  return nullptr;
79  }
80 
81  // check for DBMS
82  int nDBMLayers = m_siMgr->numerology().numEndcapsDBM();
83  if (!nDBMLayers) return ((m_pixelCase and m_useRingLayout) ? createRingLayers(ctx, whandle) : createDiscLayers(ctx, whandle));
84 
85  ATH_MSG_DEBUG( "Found " << m_siMgr->numerology().numEndcapsDBM() << " DBM layers active, building first ECs, then DBMS");
86  std::unique_ptr<std::vector<Trk::DiscLayer*> > ecLayers = createDiscLayers(ctx, whandle);
87  if (ecLayers) {
88  ATH_MSG_VERBOSE( "Created " << ecLayers->size() << " endcap layers w/o DBM.");
89  ecLayers = createDiscLayers(ctx, whandle, std::move(ecLayers));
90  ATH_MSG_VERBOSE( "Created " << ecLayers->size() << " endcap layers with DBM.");
91  }
92  return ecLayers;
93 }

◆ identification()

const std::string & InDet::SiLayerBuilderCond::identification ( ) const
inlinefinaloverridevirtual

Name identification.

Definition at line 100 of file SiLayerBuilderCond.h.

101  {
102  return m_identification;
103  }

◆ initialize()

StatusCode InDet::SiLayerBuilderCond::initialize ( )
overridevirtual

AlgTool initialize method.

Definition at line 28 of file SiLayerBuilderCond.cxx.

29 {
31  ATH_CHECK(m_SCT_ReadKey.initialize(!m_pixelCase));
32  ATH_CHECK(m_PixelReadKey.initialize());
33  return StatusCode::SUCCESS;
34 }

◆ planarLayers()

std::unique_ptr< const std::vector< Trk::PlaneLayer * > > InDet::SiLayerBuilderCond::planarLayers ( const EventContext &  ctx,
SG::WriteCondHandle< Trk::TrackingGeometry > &  whandle 
) const
inlinefinaloverridevirtual

LayerBuilder interface method - returning Planar-like layers.

Definition at line 93 of file SiLayerBuilderCond.h.

95  {
96  return nullptr;
97  }

◆ retrieveSiDetElements()

SG::ReadCondHandle< InDetDD::SiDetectorElementCollection > InDet::SiLayerBuilderCond::retrieveSiDetElements ( const EventContext &  ctx) const
private

Definition at line 37 of file SiLayerBuilderCond.cxx.

38 {
39  if(m_pixelCase){
40  auto readHandle = SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> (m_PixelReadKey, ctx);
41  if (*readHandle==nullptr) {
42  ATH_MSG_ERROR("Null pointer to the read conditions object of " << m_PixelReadKey.key());
43  }
44  return readHandle;
45  }else{
46  auto readHandle = SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> (m_SCT_ReadKey, ctx);
47  if (*readHandle==nullptr) {
48  ATH_MSG_ERROR("Null pointer to the read conditions object of " << m_SCT_ReadKey.key());
49  }
50  return readHandle;
51  }
52 }

The documentation for this class was generated from the following files:
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:30
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::SiLayerBuilderCond::retrieveSiDetElements
SG::ReadCondHandle< InDetDD::SiDetectorElementCollection > retrieveSiDetElements(const EventContext &ctx) const
Definition: SiLayerBuilderCond.cxx:37
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::SiLayerBuilderCond::discLayers
virtual std::unique_ptr< const std::vector< Trk::DiscLayer * > > discLayers(const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
LayerBuilder interface method - returning Endcap-like layers.
Definition: SiLayerBuilderCond.cxx:72
InDet::SiLayerBuilderCond::createRingLayers
std::unique_ptr< std::vector< Trk::DiscLayer * > > createRingLayers(const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const
create the disc layers, it is dedicated to ITk implementation of the endcap rings.
Definition: SiLayerBuilderCond.cxx:118
InDet::SiLayerBuilderImpl::initialize
virtual StatusCode initialize() override
AlgTool initialize method.
Definition: SiLayerBuilderImpl.cxx:34
InDet::SiLayerBuilderCond::createDiscLayers
std::unique_ptr< std::vector< Trk::DiscLayer * > > createDiscLayers(const EventContext &ctx, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle, std::unique_ptr< std::vector< Trk::DiscLayer * > > discLayers=nullptr) const
create the disc layers, if no vector is given, then it's the first pass, else it's the DBM for the Pi...
Definition: SiLayerBuilderCond.cxx:97
SG::WriteCondHandle::addDependency
void addDependency(const EventIDRange &range)
Definition: WriteCondHandle.h:275