ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::InDetEventCnvTool Class Reference

Helper tool uses to convert InDet objects in generic tracking custom convertor TrkEventAthenaPool. More...

#include <InDetEventCnvTool.h>

Inheritance diagram for InDet::InDetEventCnvTool:

Public Types

enum  InDetConcreteType { SCT , Pixel , TRT , Unknown }

Public Member Functions

 InDetEventCnvTool (const std::string &, const std::string &, const IInterface *)
virtual ~InDetEventCnvTool ()=default
virtual StatusCode initialize () override
virtual void checkRoT (const Trk::RIO_OnTrack &rioOnTrack) const override
virtual std::pair< const Trk::TrkDetElementBase *, const Trk::PrepRawData * > getLinks (Trk::RIO_OnTrack &rioOnTrack) const override
 use the passed identifier to recreate the detector element and PRD links on the passed RIO_OnTrack
virtual void prepareRIO_OnTrack (Trk::RIO_OnTrack *rot) const override
virtual void prepareRIO_OnTrackLink (const Trk::RIO_OnTrack *rot, ELKey_t &key, ELIndex_t &index) const override
 Similar, but just return the EL components rather then changing ROT.
virtual void recreateRIO_OnTrack (Trk::RIO_OnTrack *RoT) const override
virtual const Trk::TrkDetElementBasegetDetectorElement (const Identifier &id, const IdentifierHash &idHash) const override
 Return the detectorElement associated with this Identifier.
virtual const Trk::TrkDetElementBasegetDetectorElement (const Identifier &id) const override
 Return the detectorElement associated with this Identifier.

Private Member Functions

virtual const Trk::PrepRawDatapixelClusterLink (const Identifier &id, const IdentifierHash &idHash) const
 use the passed identifier to recreate the pixel cluster link on the passed RIO_OnTrack
virtual const Trk::PrepRawDatasctClusterLink (const Identifier &id, const IdentifierHash &idHash) const
 use the passed identifier to recreate the SCT cluster link on the passed RIO_OnTrack
virtual const Trk::PrepRawDatatrtDriftCircleLink (const Identifier &id, const IdentifierHash &idHash) const
 use the passed identifier to recreate the TRT Drift circle link on the passed RIO_OnTrack
const InDetDD::SiDetectorElementgetPixelDetectorElement (const IdentifierHash &waferHash) const
 use the passed IdentifierHash to get SiDetectorElement for Pixel
const InDetDD::SiDetectorElementgetSCTDetectorElement (const IdentifierHash &waferHash) const
 use the passed IdentifierHash to get SiDetectorElement for SCT
const InDetDD::TRT_BaseElementgetTRTDetectorElement (const IdentifierHash &HashId) const
 use the passed IdentifierHash to get TRTDetectorElement for TRT

Private Attributes

bool m_setPrepRawDataLink
 if true, attempt to recreate link to PRD
const AtlasDetectorIDm_IDHelper
const PixelIDm_pixelHelper
const SCT_IDm_SCTHelper
const TRT_IDm_TRTHelper
const IdDictManagerm_idDictMgr
SG::ReadHandleKey< PixelClusterContainer > m_pixClusContName {this, "PixelClusterContainer", "PixelClusters", "Pixel Cluster container name"}
 location of container of pixel clusters
SG::ReadHandleKey< SCT_ClusterContainer > m_sctClusContName {this, "SCT_ClusterContainer", "SCT_Clusters", "SCT Cluster container name"}
 location of container of sct clusters
SG::ReadHandleKey< TRT_DriftCircleContainer > m_trtDriftCircleContName {this, "TRT_DriftCircleContainer", "TRT_DriftCircleContainer", "TRT DriftCircle Container"}
 location of container of TRT drift circles
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainerm_trtDetEleContKey {this, "TRTDetEleContKey", "TRT_DetElementContainer", "Key of TRT_DetElementContainer for TRT"}

Detailed Description

Helper tool uses to convert InDet objects in generic tracking custom convertor TrkEventAthenaPool.

See "mainpage" for discussion of jobOpts.

Definition at line 40 of file InDetEventCnvTool.h.

Member Enumeration Documentation

◆ InDetConcreteType

Constructor & Destructor Documentation

◆ InDetEventCnvTool()

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

Definition at line 33 of file InDetEventCnvTool.cxx.

36 :
37 base_class(t,n,p),
39 m_IDHelper(nullptr),
40 m_pixelHelper(nullptr),
41 m_SCTHelper(nullptr),
42 m_TRTHelper(nullptr),
43 m_idDictMgr(nullptr)
44{
45 declareProperty("RecreatePRDLinks", m_setPrepRawDataLink);
46
47}
const IdDictManager * m_idDictMgr
bool m_setPrepRawDataLink
if true, attempt to recreate link to PRD
const AtlasDetectorID * m_IDHelper

◆ ~InDetEventCnvTool()

virtual InDet::InDetEventCnvTool::~InDetEventCnvTool ( )
virtualdefault

Member Function Documentation

◆ checkRoT()

void InDet::InDetEventCnvTool::checkRoT ( const Trk::RIO_OnTrack & rioOnTrack) const
overridevirtual

Definition at line 83 of file InDetEventCnvTool.cxx.

83 {
85 if (nullptr!=dynamic_cast<const SCT_ClusterOnTrack*>(&rioOnTrack) ) type = SCT;
86 if (nullptr!=dynamic_cast<const PixelClusterOnTrack*>(&rioOnTrack) ) type = Pixel;
87 if (nullptr!=dynamic_cast<const TRT_DriftCircleOnTrack*>(&rioOnTrack) ) type = TRT;
88 if (type==Unknown) {
89 ATH_MSG_ERROR("Type does not match known concrete type of InDet! Dumping RoT:"<<rioOnTrack);
90 } else {
91 ATH_MSG_VERBOSE("Type = "<<type);
92 }
93
94 return;
95}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_VERBOSE(x)

◆ getDetectorElement() [1/2]

const Trk::TrkDetElementBase * InDet::InDetEventCnvTool::getDetectorElement ( const Identifier & id) const
overridevirtual

Return the detectorElement associated with this Identifier.

Definition at line 208 of file InDetEventCnvTool.cxx.

208 {
209
210 const Trk::TrkDetElementBase* detEl=nullptr;
211
212 if (m_IDHelper->is_pixel(id) ) {
213
214 ATH_MSG_DEBUG("Set Pixel detector element.");
215 // use IdentifierHash for speed
216 const IdentifierHash wafer_hash = m_pixelHelper->wafer_hash(id);
217 detEl = getPixelDetectorElement( wafer_hash ) ;
218 } else if (m_IDHelper->is_sct(id)) {
219
220 ATH_MSG_DEBUG("Set SCT detector element" );
221 const Identifier wafer_id = m_SCTHelper->wafer_id(id);
222 const IdentifierHash wafer_hash = m_SCTHelper->wafer_hash(wafer_id);
223 detEl = getSCTDetectorElement( wafer_hash ) ;
224 } else if (m_IDHelper->is_trt(id)) {
225 ATH_MSG_DEBUG("Set TRT detector element");
226 // use IdentifierHash for speed
227 const Identifier strawLayerId = m_TRTHelper->layer_id(id);
228 const IdentifierHash hashId = m_TRTHelper->straw_layer_hash(strawLayerId);
229 detEl = getTRTDetectorElement( hashId ) ;
230 } else {
231 ATH_MSG_WARNING("Unknown type of ID detector from identifier :"<< id<<", in string form:"
232 << m_IDHelper->show_to_string(id) );
233 }
234 return detEl;
235}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
const InDetDD::TRT_BaseElement * getTRTDetectorElement(const IdentifierHash &HashId) const
use the passed IdentifierHash to get TRTDetectorElement for TRT
const InDetDD::SiDetectorElement * getPixelDetectorElement(const IdentifierHash &waferHash) const
use the passed IdentifierHash to get SiDetectorElement for Pixel
const InDetDD::SiDetectorElement * getSCTDetectorElement(const IdentifierHash &waferHash) const
use the passed IdentifierHash to get SiDetectorElement for SCT

◆ getDetectorElement() [2/2]

const Trk::TrkDetElementBase * InDet::InDetEventCnvTool::getDetectorElement ( const Identifier & id,
const IdentifierHash & idHash ) const
overridevirtual

Return the detectorElement associated with this Identifier.

Definition at line 179 of file InDetEventCnvTool.cxx.

179 {
180
181 const Trk::TrkDetElementBase* detEl=nullptr;
182
183 if (m_IDHelper->is_pixel(id)) {
184
185 ATH_MSG_DEBUG("Set Pixel detector element.");
186 // use IdentifierHash for speed
187 detEl = getPixelDetectorElement( idHash ) ;
188 } else if (m_IDHelper->is_sct(id)) {
189
190 ATH_MSG_DEBUG("Set SCT detector element" );
191 // use IdentifierHash for speed
192 detEl = getSCTDetectorElement( idHash ) ;
193 } else if (m_IDHelper->is_trt(id)) {
194
195 ATH_MSG_DEBUG("Set TRT detector element" );
196 // use IdentifierHash for speed
197 detEl = getTRTDetectorElement( idHash ) ;
198 } else {
199 ATH_MSG_WARNING("Unknown type of ID detector from identifier :"
200 << id<<", in string form:"
201 << m_IDHelper->show_to_string(id)
202 );
203 }
204 return detEl;
205}

◆ getLinks()

std::pair< const Trk::TrkDetElementBase *, const Trk::PrepRawData * > InDet::InDetEventCnvTool::getLinks ( Trk::RIO_OnTrack & rioOnTrack) const
overridevirtual

use the passed identifier to recreate the detector element and PRD links on the passed RIO_OnTrack

Parameters
[in]rioOnTrackThe RIO_OnTrack we're interested in
Returns
std::pair of the pointers to the two corresponding objects

Definition at line 98 of file InDetEventCnvTool.cxx.

99{
100 using namespace Trk;
101 const TrkDetElementBase* detEl = nullptr;
102 const PrepRawData* prd = nullptr;
103 const Identifier& id = rioOnTrack.identify();
104
105 if (m_IDHelper->is_pixel(id) ) {
106 ATH_MSG_DEBUG ("Set Pixel detector element.");
107 // use IdentifierHash for speed
108 detEl = getPixelDetectorElement( rioOnTrack.idDE() ) ;
109 if (m_setPrepRawDataLink) prd = pixelClusterLink( id, rioOnTrack.idDE() );
110 } else if (m_IDHelper->is_sct(id)) {
111 ATH_MSG_DEBUG("Set SCT detector element" );
112 // use IdentifierHash for speed
113 detEl = getSCTDetectorElement( rioOnTrack.idDE() ) ;
114 if (m_setPrepRawDataLink) prd = sctClusterLink( id, rioOnTrack.idDE() );
115 } else if (m_IDHelper->is_trt(id)) {
116 ATH_MSG_DEBUG("Set TRT detector element" );
117 // use IdentifierHash for speed
118 detEl = getTRTDetectorElement( rioOnTrack.idDE() ) ;
119 if (m_setPrepRawDataLink) prd = trtDriftCircleLink( id, rioOnTrack.idDE() );
120 } else {
121 ATH_MSG_WARNING("Unknown type of ID detector from identifier :"
122 << id<<", in string form:"
123 << m_IDHelper->show_to_string(id)
124 );
125 }
126 return std::pair<const Trk::TrkDetElementBase*, const Trk::PrepRawData*>(detEl,prd);
127}
virtual const Trk::PrepRawData * pixelClusterLink(const Identifier &id, const IdentifierHash &idHash) const
use the passed identifier to recreate the pixel cluster link on the passed RIO_OnTrack
virtual const Trk::PrepRawData * sctClusterLink(const Identifier &id, const IdentifierHash &idHash) const
use the passed identifier to recreate the SCT cluster link on the passed RIO_OnTrack
virtual const Trk::PrepRawData * trtDriftCircleLink(const Identifier &id, const IdentifierHash &idHash) const
use the passed identifier to recreate the TRT Drift circle link on the passed RIO_OnTrack
Identifier identify() const
return the identifier -extends MeasurementBase
virtual IdentifierHash idDE() const =0
returns the DE hashID

◆ getPixelDetectorElement()

const InDetDD::SiDetectorElement * InDet::InDetEventCnvTool::getPixelDetectorElement ( const IdentifierHash & waferHash) const
private

use the passed IdentifierHash to get SiDetectorElement for Pixel

Definition at line 324 of file InDetEventCnvTool.cxx.

324 {
325 SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> pixelDetEle{m_pixelDetEleCollKey};
326 if (not pixelDetEle.isValid()) return nullptr;
327 return pixelDetEle->getDetectorElement(waferHash);
328}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey

◆ getSCTDetectorElement()

const InDetDD::SiDetectorElement * InDet::InDetEventCnvTool::getSCTDetectorElement ( const IdentifierHash & waferHash) const
private

use the passed IdentifierHash to get SiDetectorElement for SCT

Definition at line 330 of file InDetEventCnvTool.cxx.

330 {
331 SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> sctDetEle{m_SCTDetEleCollKey};
332 if (not sctDetEle.isValid()) return nullptr;
333 return sctDetEle->getDetectorElement(waferHash);
334}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey

◆ getTRTDetectorElement()

const InDetDD::TRT_BaseElement * InDet::InDetEventCnvTool::getTRTDetectorElement ( const IdentifierHash & HashId) const
private

use the passed IdentifierHash to get TRTDetectorElement for TRT

Definition at line 336 of file InDetEventCnvTool.cxx.

336 {
337 SG::ReadCondHandle<InDetDD::TRT_DetElementContainer> trtDetEleHandle(m_trtDetEleContKey);
338 const InDetDD::TRT_DetElementCollection* elements(trtDetEleHandle->getElements());
339 if (not trtDetEleHandle.isValid() or elements==nullptr) {
340 ATH_MSG_FATAL(m_trtDetEleContKey.fullKey() << " is not available.");
341 return nullptr;
342 }
343 return elements->getDetectorElement(HashId);
344}
#define ATH_MSG_FATAL(x)
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > m_trtDetEleContKey

◆ initialize()

StatusCode InDet::InDetEventCnvTool::initialize ( )
overridevirtual

Definition at line 49 of file InDetEventCnvTool.cxx.

49 {
50
51 StatusCode sc = AthAlgTool::initialize();
52 if (sc.isFailure()) return sc;
53
54 ATH_CHECK(detStore()->retrieve(m_idDictMgr, "IdDict")) ;
55
56 const IdDictDictionary* dict = m_idDictMgr->manager()->find_dictionary("InnerDetector");
57 if (!dict) {
58 ATH_MSG_ERROR( " Cannot access InnerDetector dictionary ");
59 return StatusCode::FAILURE;
60 }
61
62 //retrieving the various ID helpers
63 ATH_CHECK (detStore()->retrieve(m_IDHelper, "AtlasID"));
64
65 ATH_CHECK( detStore()->retrieve(m_pixelHelper, "PixelID") );
66 ATH_CHECK( detStore()->retrieve(m_SCTHelper, "SCT_ID") );
67 if(!m_trtDetEleContKey.empty())
68 ATH_CHECK( detStore()->retrieve(m_TRTHelper, "TRT_ID") );
69
70 ATH_CHECK( m_pixClusContName.initialize() );
71 ATH_CHECK( m_sctClusContName.initialize() );
73
74 ATH_CHECK( m_pixelDetEleCollKey.initialize() );
75 ATH_CHECK( m_SCTDetEleCollKey.initialize() );
76 ATH_CHECK( m_trtDetEleContKey.initialize(!m_trtDetEleContKey.empty()));
77
78 return sc;
79
80}
#define ATH_CHECK
Evaluate an expression and check for errors.
static Double_t sc
SG::ReadHandleKey< TRT_DriftCircleContainer > m_trtDriftCircleContName
location of container of TRT drift circles
SG::ReadHandleKey< SCT_ClusterContainer > m_sctClusContName
location of container of sct clusters
SG::ReadHandleKey< PixelClusterContainer > m_pixClusContName
location of container of pixel clusters
::StatusCode StatusCode
StatusCode definition for legacy code.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ pixelClusterLink()

const Trk::PrepRawData * InDet::InDetEventCnvTool::pixelClusterLink ( const Identifier & id,
const IdentifierHash & idHash ) const
privatevirtual

use the passed identifier to recreate the pixel cluster link on the passed RIO_OnTrack

Definition at line 238 of file InDetEventCnvTool.cxx.

238 {
239 using namespace Trk;
240 // need to retrieve pointers to collections
241 // retrieve Pixel cluster container
242
243 // obviously this can be optimised! EJWM
244 SG::ReadHandle<PixelClusterContainer> h_pixClusCont (m_pixClusContName);
245 if (!h_pixClusCont.isValid()) {
246 ATH_MSG_ERROR("Pixel Cluster container not found at "<<m_pixClusContName);
247 return nullptr;
248 } else {
249 ATH_MSG_DEBUG("Pixel Cluster Container found" );
250 }
251 const PixelClusterCollection *ptr = h_pixClusCont->indexFindPtr(idHash);
252 // if we find PRD, then recreate link
253 if (ptr!=nullptr) {
254 //loop though collection to find matching PRD.
255 PixelClusterCollection::const_iterator collIt = ptr->begin();
256 PixelClusterCollection::const_iterator collItEnd = ptr->end();
257 // there MUST be a faster way to do this!!
258 for ( ; collIt!=collItEnd; ++collIt){
259 if ( (*collIt)->identify()==id ) return *collIt;
260 }
261 }
262 ATH_MSG_DEBUG("No matching PRD found" );
263 return nullptr;
264}
void * ptr(T *p)
Definition SGImplSvc.cxx:74

◆ prepareRIO_OnTrack()

void InDet::InDetEventCnvTool::prepareRIO_OnTrack ( Trk::RIO_OnTrack * rot) const
overridevirtual

Definition at line 129 of file InDetEventCnvTool.cxx.

129 {
130
131 InDet::PixelClusterOnTrack* pixel = dynamic_cast<InDet::PixelClusterOnTrack*>(RoT);
132 if (pixel!=nullptr) {
133 prepareRIO_OnTrackElementLink<const InDet::PixelClusterContainer, InDet::PixelClusterOnTrack>(pixel);
134 return;
135 }
136 InDet::SCT_ClusterOnTrack* sct = dynamic_cast<InDet::SCT_ClusterOnTrack*>(RoT);
137 if (sct!=nullptr) {
138 prepareRIO_OnTrackElementLink<const InDet::SCT_ClusterContainer, InDet::SCT_ClusterOnTrack>(sct);
139 return;
140 }
141 InDet::TRT_DriftCircleOnTrack* trt = dynamic_cast<InDet::TRT_DriftCircleOnTrack*>(RoT);
142 if (trt!=nullptr) {
143 prepareRIO_OnTrackElementLink<const InDet::TRT_DriftCircleContainer, InDet::TRT_DriftCircleOnTrack>(trt);
144 return;
145 }
146 return;
147}

◆ prepareRIO_OnTrackLink()

void InDet::InDetEventCnvTool::prepareRIO_OnTrackLink ( const Trk::RIO_OnTrack * rot,
ELKey_t & key,
ELIndex_t & index ) const
overridevirtual

Similar, but just return the EL components rather then changing ROT.

Definition at line 150 of file InDetEventCnvTool.cxx.

153{
154 const InDet::PixelClusterOnTrack* pixel = dynamic_cast<const InDet::PixelClusterOnTrack*>(RoT);
155 if (pixel!=nullptr) {
156 prepareRIO_OnTrackElementLink<const InDet::PixelClusterContainer, InDet::PixelClusterOnTrack>(pixel, key, index);
157 return;
158 }
159 const InDet::SCT_ClusterOnTrack* sct = dynamic_cast<const InDet::SCT_ClusterOnTrack*>(RoT);
160 if (sct!=nullptr) {
161 prepareRIO_OnTrackElementLink<const InDet::SCT_ClusterContainer, InDet::SCT_ClusterOnTrack>(sct, key, index);
162 return;
163 }
164 const InDet::TRT_DriftCircleOnTrack* trt = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(RoT);
165 if (trt!=nullptr) {
166 prepareRIO_OnTrackElementLink<const InDet::TRT_DriftCircleContainer, InDet::TRT_DriftCircleOnTrack>(trt, key, index);
167 return;
168 }
169 return;
170}

◆ recreateRIO_OnTrack()

void InDet::InDetEventCnvTool::recreateRIO_OnTrack ( Trk::RIO_OnTrack * RoT) const
overridevirtual

Definition at line 172 of file InDetEventCnvTool.cxx.

172 {
173 std::pair<const Trk::TrkDetElementBase *, const Trk::PrepRawData *> pair = getLinks( *RoT );
175 return;
176}
virtual std::pair< const Trk::TrkDetElementBase *, const Trk::PrepRawData * > getLinks(Trk::RIO_OnTrack &rioOnTrack) const override
use the passed identifier to recreate the detector element and PRD links on the passed RIO_OnTrack
virtual void setRoT_Values(std::pair< const Trk::TrkDetElementBase *, const Trk::PrepRawData * > &pair, Trk::RIO_OnTrack *RoT) const

◆ sctClusterLink()

const Trk::PrepRawData * InDet::InDetEventCnvTool::sctClusterLink ( const Identifier & id,
const IdentifierHash & idHash ) const
privatevirtual

use the passed identifier to recreate the SCT cluster link on the passed RIO_OnTrack

Definition at line 267 of file InDetEventCnvTool.cxx.

267 {
268 using namespace Trk;
269 // need to retrieve pointers to collections
270 // retrieve Pixel cluster container
271
272 // obviously this can be optimised! EJWM
273 SG::ReadHandle<SCT_ClusterContainer> h_sctClusCont(m_sctClusContName);
274 if (!h_sctClusCont.isValid()) {
275 ATH_MSG_ERROR("SCT Cluster container not found at "<<m_sctClusContName);
276 return nullptr;
277 } else {
278 ATH_MSG_DEBUG("SCT Cluster Container found" );
279 }
280 const SCT_ClusterCollection *ptr = h_sctClusCont->indexFindPtr(idHash);
281 // if we find PRD, then recreate link
282 if (ptr!=nullptr) {
283 //loop though collection to find matching PRD.
284 SCT_ClusterCollection::const_iterator collIt = ptr->begin();
285 SCT_ClusterCollection::const_iterator collItEnd = ptr->end();
286 // there MUST be a faster way to do this!!
287 for ( ; collIt!=collItEnd; ++collIt) {
288 if ( (*collIt)->identify()==id ) return *collIt;
289 }
290 }
291 ATH_MSG_DEBUG("No matching PRD found" );
292 return nullptr;
293}

◆ trtDriftCircleLink()

const Trk::PrepRawData * InDet::InDetEventCnvTool::trtDriftCircleLink ( const Identifier & id,
const IdentifierHash & idHash ) const
privatevirtual

use the passed identifier to recreate the TRT Drift circle link on the passed RIO_OnTrack

Definition at line 296 of file InDetEventCnvTool.cxx.

296 {
297 using namespace Trk;
298 // need to retrieve pointers to collections
299 // retrieve Pixel cluster container
300
301 // obviously this can be optimised! EJWM
302 SG::ReadHandle<TRT_DriftCircleContainer> h_trtDriftCircleCont (m_trtDriftCircleContName);
303 if (!h_trtDriftCircleCont.isValid()) {
304 ATH_MSG_ERROR("TRT Drift Circles container not found at "<<m_trtDriftCircleContName);
305 return nullptr;
306 } else {
307 ATH_MSG_DEBUG("TRT Drift Circles Container found" );
308 }
309 const TRT_DriftCircleCollection *ptr = h_trtDriftCircleCont->indexFindPtr(idHash);
310 // if we find PRD, then recreate link
311 if (ptr!=nullptr) {
312 //loop though collection to find matching PRD.
313 TRT_DriftCircleCollection::const_iterator collIt = ptr->begin();
314 TRT_DriftCircleCollection::const_iterator collItEnd = ptr->end();
315 // there MUST be a faster way to do this!!
316 for ( ; collIt!=collItEnd; ++collIt) {
317 if ( (*collIt)->identify()==id ) return *collIt;
318 }
319 }
320 ATH_MSG_DEBUG("No matching PRD found" );
321 return nullptr;
322}

Member Data Documentation

◆ m_idDictMgr

const IdDictManager* InDet::InDetEventCnvTool::m_idDictMgr
private

Definition at line 109 of file InDetEventCnvTool.h.

◆ m_IDHelper

const AtlasDetectorID* InDet::InDetEventCnvTool::m_IDHelper
private

Definition at line 103 of file InDetEventCnvTool.h.

◆ m_pixClusContName

SG::ReadHandleKey<PixelClusterContainer> InDet::InDetEventCnvTool::m_pixClusContName {this, "PixelClusterContainer", "PixelClusters", "Pixel Cluster container name"}
private

location of container of pixel clusters

Definition at line 111 of file InDetEventCnvTool.h.

111{this, "PixelClusterContainer", "PixelClusters", "Pixel Cluster container name"};

◆ m_pixelDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> InDet::InDetEventCnvTool::m_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}
private

Definition at line 115 of file InDetEventCnvTool.h.

115{this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"};

◆ m_pixelHelper

const PixelID* InDet::InDetEventCnvTool::m_pixelHelper
private

Definition at line 104 of file InDetEventCnvTool.h.

◆ m_sctClusContName

SG::ReadHandleKey<SCT_ClusterContainer> InDet::InDetEventCnvTool::m_sctClusContName {this, "SCT_ClusterContainer", "SCT_Clusters", "SCT Cluster container name"}
private

location of container of sct clusters

Definition at line 112 of file InDetEventCnvTool.h.

112{this, "SCT_ClusterContainer", "SCT_Clusters", "SCT Cluster container name"};

◆ m_SCTDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> InDet::InDetEventCnvTool::m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
private

Definition at line 116 of file InDetEventCnvTool.h.

116{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};

◆ m_SCTHelper

const SCT_ID* InDet::InDetEventCnvTool::m_SCTHelper
private

Definition at line 105 of file InDetEventCnvTool.h.

◆ m_setPrepRawDataLink

bool InDet::InDetEventCnvTool::m_setPrepRawDataLink
private

if true, attempt to recreate link to PRD

Definition at line 99 of file InDetEventCnvTool.h.

◆ m_trtDetEleContKey

SG::ReadCondHandleKey<InDetDD::TRT_DetElementContainer> InDet::InDetEventCnvTool::m_trtDetEleContKey {this, "TRTDetEleContKey", "TRT_DetElementContainer", "Key of TRT_DetElementContainer for TRT"}
private

Definition at line 117 of file InDetEventCnvTool.h.

117{this, "TRTDetEleContKey", "TRT_DetElementContainer", "Key of TRT_DetElementContainer for TRT"};

◆ m_trtDriftCircleContName

SG::ReadHandleKey<TRT_DriftCircleContainer> InDet::InDetEventCnvTool::m_trtDriftCircleContName {this, "TRT_DriftCircleContainer", "TRT_DriftCircleContainer", "TRT DriftCircle Container"}
private

location of container of TRT drift circles

Definition at line 113 of file InDetEventCnvTool.h.

113{this, "TRT_DriftCircleContainer", "TRT_DriftCircleContainer", "TRT DriftCircle Container"};

◆ m_TRTHelper

const TRT_ID* InDet::InDetEventCnvTool::m_TRTHelper
private

Definition at line 106 of file InDetEventCnvTool.h.


The documentation for this class was generated from the following files: