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

The InDetAlignHitQualSelTool is to select good quality hits for alignment to build residuals with possible cuts on outlier hits, hits which are too large clusters, hits with large incidence angles, etc. More...

#include <InDetAlignHitQualSelTool.h>

Inheritance diagram for InDetAlignHitQualSelTool:
Collaboration diagram for InDetAlignHitQualSelTool:

Public Member Functions

 InDetAlignHitQualSelTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~InDetAlignHitQualSelTool ()
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
const Trk::RIO_OnTrackgetGoodHit (const Trk::TrackStateOnSurface *tsos) const
 main method: from a TrackStateOnSurface select a good hit cutting on outlier hits, hits with too many pixels/strips, hits with large incidence angles More...
 
bool isGoodSiHit (const Trk::TrackStateOnSurface *tsos) const
 
bool getGoodHole (const Trk::TrackStateOnSurface *tsos) const
 from a TrackStateOnSurface select a good hole in track cutting on large incidence angles only More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 for ToolHandle functionality More...
 

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...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

bool isGangedPixel (const Trk::PrepRawData *prd) const
 check, whether cluster contains a ganged pixel More...
 
bool isGoodClusterSize (const std::vector< Identifier > &idVec) const
 check, whether cluster size within limits of m_maxClusterSize More...
 
bool isEdgeChannel (const std::vector< Identifier > &idVec) const
 check, whether the strip/pixel is an edge channel More...
 
double incidAngle (const Trk::TrackParameters *trkPar, const InDetDD::SiDetectorElement *detEle) const
 calculate track incidence angle in local x-z frame More...
 
bool isGoodAngle (const Trk::TrackParameters *trkPar, const InDetDD::SiDetectorElement *detEle) const
 check whether track incidence angle within limits of m_maxIncidAngle More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

bool m_rejectOutliers
 reject hits labeled as outliers by the track fitter More...
 
int m_maxClusterSize
 
bool m_rejectEdgeChannels
 reject clusters containing edge channels More...
 
bool m_rejectGangedPixels
 reject clusters containing ganged pixels More...
 
float m_maxIncidAngle
 maximum incidence angle of a track (to which the hit belongs) on the Si-module. More...
 
bool m_acceptIBLHits
 
bool m_acceptPixelHits
 
bool m_acceptSCTHits
 
const InDetDD::PixelDetectorManagerm_PIXManager
 to get pixel phi and eta identifiers More...
 
const PixelIDm_pixelid
 Pixel id helper. More...
 
const SCT_IDm_sctID
 Pixel id helper. More...
 
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

The InDetAlignHitQualSelTool is to select good quality hits for alignment to build residuals with possible cuts on outlier hits, hits which are too large clusters, hits with large incidence angles, etc.

The InDetAlignHitQualSelTool is to select good quality hits to build residuals for alignment. The following cuts are possible: outlier hits, hits which have too large clusters, hits with large incidence angles, ganged pixels, edge channels.

Author
Oleg Brandt http://consult.cern.ch/xwho

Definition at line 34 of file InDetAlignHitQualSelTool.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

◆ InDetAlignHitQualSelTool()

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

Definition at line 21 of file InDetAlignHitQualSelTool.cxx.

25  : AthAlgTool(t,n,p)
26  , m_rejectOutliers( true )
27  , m_maxClusterSize( 5 )
28  , m_rejectEdgeChannels( true )
29  , m_rejectGangedPixels( false )
30  , m_maxIncidAngle( 0.8 )
31  , m_acceptIBLHits( true )
32  , m_acceptPixelHits( true )
33  , m_acceptSCTHits( true )
34  , m_PIXManager{}
35  , m_pixelid{}
36  , m_sctID{}
37 {
38  declareInterface<IInDetAlignHitQualSelTool>(this) ;
39  declareProperty( "RejectOutliers", m_rejectOutliers ) ;
40  declareProperty( "MaxClusterSize", m_maxClusterSize ) ;
41  declareProperty( "RejectEdgeChannels", m_rejectEdgeChannels ) ;
42  declareProperty( "RejectGangedPixels", m_rejectGangedPixels ) ;
43  declareProperty( "MaxIncidAngle", m_maxIncidAngle ) ;
44  declareProperty( "AcceptIBLHits", m_acceptIBLHits ) ;
45  declareProperty( "AcceptPixelHits", m_acceptPixelHits ) ;
46  declareProperty( "AcceptSCTHits", m_acceptSCTHits ) ;
47 }

◆ ~InDetAlignHitQualSelTool()

InDetAlignHitQualSelTool::~InDetAlignHitQualSelTool ( )
virtual

Definition at line 50 of file InDetAlignHitQualSelTool.cxx.

50 {}

Member Function Documentation

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [4/4]

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

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

Definition at line 199 of file AthCommonDataStore.h.

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

◆ declareProperty() [1/6]

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

Declare a new Gaudi property.

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

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

Definition at line 245 of file AthCommonDataStore.h.

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

◆ declareProperty() [2/6]

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

Declare a new Gaudi property.

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

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

Definition at line 221 of file AthCommonDataStore.h.

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

◆ declareProperty() [3/6]

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

Definition at line 259 of file AthCommonDataStore.h.

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

◆ declareProperty() [4/6]

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

Declare a new Gaudi property.

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

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

Definition at line 333 of file AthCommonDataStore.h.

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

◆ declareProperty() [5/6]

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

Declare a new Gaudi property.

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

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

Definition at line 352 of file AthCommonDataStore.h.

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

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

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

Definition at line 66 of file InDetAlignHitQualSelTool.cxx.

66  {
67  ATH_MSG_DEBUG( "finalize() successful in " << name() ) ;
68  return AlgTool::finalize() ;
69 }

◆ getGoodHit()

const Trk::RIO_OnTrack * InDetAlignHitQualSelTool::getGoodHit ( const Trk::TrackStateOnSurface tsos) const
virtual

main method: from a TrackStateOnSurface select a good hit cutting on outlier hits, hits with too many pixels/strips, hits with large incidence angles

Implements IInDetAlignHitQualSelTool.

Definition at line 71 of file InDetAlignHitQualSelTool.cxx.

71  {
72  ATH_MSG_DEBUG( "** getGoodHit ** Dealing with a new tsos ** START ** " ) ;
73 
74  if( tsos == nullptr ) {
75  ATH_MSG_ERROR( "0 pointer passed for TSOS!" ) ;
76  return nullptr ;
77  }
79  ATH_MSG_DEBUG( "not a hit, cast to MeasurementBase will fail, so reject" ) ;
80  return nullptr ;
81  }
83  ATH_MSG_DEBUG( "outlier, reject" ) ;
84  return nullptr ;
85  }
86  const Trk::MeasurementBase* measBase = tsos->measurementOnTrack() ;
87  if( measBase == nullptr) {
88  ATH_MSG_DEBUG( "tsos->measurementOnTrack() returned 0 pointer" ) ;
89  return nullptr ;
90  }
91 
92  const Trk::RIO_OnTrack* hit = dynamic_cast <const Trk::RIO_OnTrack*>( measBase ) ;
93  if( hit == nullptr ) {
94  ATH_MSG_DEBUG( "dynamic_cast <const Trk::RIO_OnTrack*>( measBase ) returned 0 pointer" ) ;
95  return nullptr ;
96  }
97 
98  const Trk::PrepRawData* prd = hit->prepRawData() ;
99  if( prd == nullptr ) {
100  ATH_MSG_WARNING( "hit->prepRawData() method failed" ) ;
101  return nullptr ;
102  }
103 
104 
105  if( m_rejectGangedPixels && isGangedPixel( prd ) ) return nullptr ;
106  const vector<Identifier> &idVec = prd->rdoList() ;
107 
108  // cut on the cluster size
109  if( m_maxClusterSize > 0 && !isGoodClusterSize( idVec ) ) return nullptr ;
110 
111  // cut on edge channels
112  if( m_rejectEdgeChannels && isEdgeChannel( idVec ) ) return nullptr ;
113  // cut on the track incidence angle alpha
114  const Trk::TrackParameters* trkPar = tsos->trackParameters() ;
115  if( trkPar == nullptr ) {
116  ATH_MSG_WARNING( "tsos->trackParameters() returned 0 pointer" ) ;
117  return nullptr ;
118  }
119  const InDetDD::SiDetectorElement *detEle
120  = dynamic_cast<const InDetDD::SiDetectorElement*>( hit->detectorElement() ) ;
121  if( detEle == nullptr ) {
122  ATH_MSG_WARNING( "hit cast to SiDetectorElement returned 0 pointer" ) ;
123  return nullptr ;
124  }
125  if( !isGoodAngle( trkPar, detEle ) ) return nullptr ;
126  return hit ;
127 }

◆ getGoodHole()

bool InDetAlignHitQualSelTool::getGoodHole ( const Trk::TrackStateOnSurface tsos) const
virtual

from a TrackStateOnSurface select a good hole in track cutting on large incidence angles only

Implements IInDetAlignHitQualSelTool.

Definition at line 233 of file InDetAlignHitQualSelTool.cxx.

233  {
234  if( tsos == nullptr ) {
235  ATH_MSG_ERROR( "0 pointer passed for TSOS!" ) ;
236  return false ;
237  }
238  if( !tsos->type(Trk::TrackStateOnSurface::Hole) ) {
239  ATH_MSG_DEBUG( "This is not a hole, reject" ) ;
240  return false ;
241  }
242  // for holes only cut on the track incidence angle alpha
243  const Trk::TrackParameters* trkPar = tsos->trackParameters() ;
244  if( trkPar == nullptr ) {
245  ATH_MSG_WARNING( "tsos->trackParameters() returned 0 pointer" ) ;
246  return false ;
247  }
248  const InDetDD::SiDetectorElement *detEle = dynamic_cast<const InDetDD::SiDetectorElement*>(
250  if( detEle == nullptr ) {
251  ATH_MSG_WARNING( "hole cast to SiDetectorElement returned 0 pointer" ) ;
252  return false ;
253  }
254  if( !isGoodAngle( trkPar, detEle ) ) return false ;
255  return true;
256 }

◆ incidAngle()

double InDetAlignHitQualSelTool::incidAngle ( const Trk::TrackParameters trkPar,
const InDetDD::SiDetectorElement detEle 
) const
private

calculate track incidence angle in local x-z frame

< local x axis in global frame

< local z axis in global frame

< scalar product

Definition at line 323 of file InDetAlignHitQualSelTool.cxx.

325  {
326  Amg::Vector3D trkDir = trkPar->momentum() ;
327  const Amg::Vector3D& detElePhi = detEle->phiAxis() ;
328  const Amg::Vector3D& detEleNormal = detEle->normal() ;
329  double trkDotPhi = trkDir.dot( detElePhi ) ;
330  double trkDotNormal = trkDir.dot( detEleNormal ) ;
331  double trkIncidAngle = atan( trkDotPhi/trkDotNormal ) ;
332  ATH_MSG_DEBUG( "trkIncidAngle = " << trkIncidAngle ) ;
333  return trkIncidAngle ;
334 }

◆ initialize()

StatusCode InDetAlignHitQualSelTool::initialize ( )
virtual

Definition at line 53 of file InDetAlignHitQualSelTool.cxx.

53  {
55  if( sc.isFailure() ) return sc ;
56  // get DetectorStore service
58  ATH_CHECK(detStore()->retrieve(m_sctID, "SCT_ID"));
59  ATH_CHECK(detStore()->retrieve(m_pixelid, "PixelID"));
60  // get pixel manager
61  ATH_CHECK(detStore()->retrieve( m_PIXManager, "Pixel" )) ;
62  return StatusCode::SUCCESS ;
63 }

◆ 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 & IInDetAlignHitQualSelTool::interfaceID ( )
inlinestaticinherited

for ToolHandle functionality

Definition at line 42 of file IInDetAlignHitQualSelTool.h.

42  {
43  return IID_INDETALIGN_IInDetAlignHitQualSelTool ;
44 }

◆ isEdgeChannel()

bool InDetAlignHitQualSelTool::isEdgeChannel ( const std::vector< Identifier > &  idVec) const
private

check, whether the strip/pixel is an edge channel

Definition at line 284 of file InDetAlignHitQualSelTool.cxx.

284  {
285  for( unsigned int i=0, i_max=idVec.size() ; i!=i_max ; ++i ) {
286  if( m_sctID->is_sct(idVec[i]) ) {
287  int stripId = m_sctID->strip(idVec[i]) ;
288  if( stripId == 0 || stripId == 767 ) {
289  ATH_MSG_DEBUG( " SCT strip " << i << " with id " << stripId << " is an edge channel " ) ;
290  return true ;
291  }
292  if( stripId < 0 || stripId > 767 ) {
293  ATH_MSG_FATAL( " WRONG DETECTOR INFORMATION " ) ;
294  }
295  }
296  if( m_PIXManager->identifierBelongs(idVec[i]) ) {
297  int pixelIdPhi = m_pixelid->phi_index(idVec[i]) ;
298  int pixelIdEta = m_pixelid->eta_index(idVec[i]) ;
299  if( pixelIdPhi == 0 || pixelIdPhi == 327 || pixelIdEta == 0 || pixelIdEta == 143 ) {
300  ATH_MSG_DEBUG( " pixel hit " << i << " with idPhi " << pixelIdPhi << " and idEta " << pixelIdEta << " is an edge channel " ) ;
301  return true ;
302  }
303  if( pixelIdPhi < 0 || pixelIdPhi > 327 || pixelIdEta < 0 || pixelIdEta > 143 ) {
304  ATH_MSG_FATAL( " WRONG DETECTOR INFORMATION " ) ;
305  }
306  }
307  }
308  return false ;
309 }

◆ isGangedPixel()

bool InDetAlignHitQualSelTool::isGangedPixel ( const Trk::PrepRawData prd) const
private

check, whether cluster contains a ganged pixel

< cut only if m_maxClusterSize set

Definition at line 259 of file InDetAlignHitQualSelTool.cxx.

259  {
260  const InDet::SiCluster* cluster = dynamic_cast<const InDet::SiCluster*>( prd ) ;
261  if( cluster == nullptr ) {
262  ATH_MSG_WARNING( "dynamic_cast<const InDet::SiCluster*>( prd ) failed!" ) ;
263  return false ;
264  }
265  if( cluster->gangedPixel() ) {
266  ATH_MSG_DEBUG( "cluster contains a ganged pixel, reject" ) ;
267  return true ;
268  }
269  return false ;
270 }

◆ isGoodAngle()

bool InDetAlignHitQualSelTool::isGoodAngle ( const Trk::TrackParameters trkPar,
const InDetDD::SiDetectorElement detEle 
) const
private

check whether track incidence angle within limits of m_maxIncidAngle

Definition at line 311 of file InDetAlignHitQualSelTool.cxx.

313  {
314  const double trkIncidAngle = incidAngle( trkPar, detEle ) ;
315  if( std::abs(trkIncidAngle) > m_maxIncidAngle ) {
316  ATH_MSG_DEBUG( "trkIncidAngle = |" << trkIncidAngle << "| > " << m_maxIncidAngle << ", reject" ) ;
317  return false ;
318  }
319  return true;
320 }

◆ isGoodClusterSize()

bool InDetAlignHitQualSelTool::isGoodClusterSize ( const std::vector< Identifier > &  idVec) const
private

check, whether cluster size within limits of m_maxClusterSize

< cut only if m_maxClusterSize set

Definition at line 273 of file InDetAlignHitQualSelTool.cxx.

273  {
274  int clusterSize = idVec.size() ;
275  ATH_MSG_DEBUG( "clusterSize = " << clusterSize ) ;
276  if( clusterSize > m_maxClusterSize ) {
277  ATH_MSG_DEBUG( "clusterSize = " << clusterSize << " > " << m_maxClusterSize << ", reject" ) ;
278  return false ;
279  }
280  return true ;
281 }

◆ isGoodSiHit()

bool InDetAlignHitQualSelTool::isGoodSiHit ( const Trk::TrackStateOnSurface tsos) const
virtual

Implements IInDetAlignHitQualSelTool.

Definition at line 129 of file InDetAlignHitQualSelTool.cxx.

129  {
130  bool isSiliconHit = false;
131  bool isPixelHit = false;
132  bool isIBLHit = false;
133 
134  if( tsos == nullptr ) {
135  ATH_MSG_ERROR( "0 pointer passed for TSOS!" ) ;
136  return false ;
137  }
139  ATH_MSG_DEBUG( "not a hit, cast to MeasurementBase will fail --> keep it anyway" ) ;
140  return false ;
141  }
142 
144  ATH_MSG_DEBUG( "outlier --> keep it" ) ;
145  return false ;
146  }
147  const Trk::MeasurementBase* measBase = tsos->measurementOnTrack() ;
148  if( measBase == nullptr) {
149  ATH_MSG_DEBUG( "tsos->measurementOnTrack() returned 0 pointer" ) ;
150  return false ;
151  }
152 
153  const Trk::RIO_OnTrack* hit = dynamic_cast <const Trk::RIO_OnTrack*>( measBase ) ;
154  if( hit == nullptr ) {
155  ATH_MSG_DEBUG( "dynamic_cast <const Trk::RIO_OnTrack*>( measBase ) returned 0 pointer" ) ;
156  return false ;
157  }
158 
159  const Trk::PrepRawData* prd = hit->prepRawData() ;
160  if( prd == nullptr ) {
161  ATH_MSG_WARNING( "hit->prepRawData() method failed" ) ;
162  return false ;
163  }
164 
165 
166  const Identifier & hitId = hit->identify();
167  if (m_sctID->is_sct(hitId)) {
168  ATH_MSG_DEBUG( " this is a SCT hit - SCT - SCT - ");
169  isSiliconHit = true;
170  }
171  if (m_pixelid->is_pixel(hitId)) {
172  ATH_MSG_DEBUG( " this is a PIX hit - PIX - PIX - ");
173  isSiliconHit = true;
174  isPixelHit = true; // assume that is pixel hit
175  // but check if it is IBL
176  if (m_pixelid->layer_disk(hitId) == 0 && m_pixelid->barrel_ec(hitId) == 0 ) {isIBLHit = true; isPixelHit = false;}
177  }
178 
179  if (!isSiliconHit) {
180  ATH_MSG_DEBUG( "This is not a silicon hit. Keep it as good" ) ;
181  return true;
182  }
183 
184  // accept IBL hits ?
185  if (!m_acceptIBLHits && isIBLHit) {
186  ATH_MSG_INFO( "this is an IBL hit --> user wants to drop it" ) ;
187  return false;
188  }
189 
190  // accept pixel hits ?
191  if (!m_acceptPixelHits && isPixelHit) {
192  ATH_MSG_INFO( "this is a pixel hit --> user wants to drop it" ) ;
193  return false;
194  }
195 
196  // accept SCT hits ?
197  if (!m_acceptSCTHits) {
198  if (isSiliconHit && m_sctID->is_sct(hitId)) {
199  ATH_MSG_INFO( "this is a SCT hit --> user wants to drop it" ) ;
200  return false;
201  }
202  }
203 
204  if( m_rejectGangedPixels && isGangedPixel( prd ) ) return false ;
205  const vector<Identifier> &idVec = prd->rdoList() ;
206 
207  // cut on the cluster size
208  if( m_maxClusterSize > 0 && !isGoodClusterSize( idVec ) ) return false ;
209 
210  // cut on edge channels
211  if( m_rejectEdgeChannels && isEdgeChannel( idVec ) ) return false ;
212 
213  // cut on the track incidence angle alpha
214  const Trk::TrackParameters* trkPar = tsos->trackParameters() ;
215  if( trkPar == nullptr ) {
216  ATH_MSG_WARNING( "tsos->trackParameters() returned 0 pointer" ) ;
217  return false ;
218  }
219  // incidence angle
220  const InDetDD::SiDetectorElement *detEle
221  = dynamic_cast<const InDetDD::SiDetectorElement*>( hit->detectorElement() ) ;
222  if( detEle == nullptr ) {
223  ATH_MSG_WARNING( "hit cast to SiDetectorElement returned 0 pointer" ) ;
224  return false ;
225  }
226  if( !isGoodAngle( trkPar, detEle ) ) return false ;
227 
228  return true ;
229 }

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

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

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

bool InDetAlignHitQualSelTool::m_acceptIBLHits
private

Definition at line 85 of file InDetAlignHitQualSelTool.h.

◆ m_acceptPixelHits

bool InDetAlignHitQualSelTool::m_acceptPixelHits
private

Definition at line 89 of file InDetAlignHitQualSelTool.h.

◆ m_acceptSCTHits

bool InDetAlignHitQualSelTool::m_acceptSCTHits
private

Definition at line 93 of file InDetAlignHitQualSelTool.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_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_maxClusterSize

int InDetAlignHitQualSelTool::m_maxClusterSize
private

Definition at line 72 of file InDetAlignHitQualSelTool.h.

◆ m_maxIncidAngle

float InDetAlignHitQualSelTool::m_maxIncidAngle
private

maximum incidence angle of a track (to which the hit belongs) on the Si-module.

It is caculated in the local xz frame to ensure that the only the angle component perpendicular to the strips is considered. It is defined w/r/t the local z-axis.

Definition at line 81 of file InDetAlignHitQualSelTool.h.

◆ m_pixelid

const PixelID* InDetAlignHitQualSelTool::m_pixelid
private

Pixel id helper.

Definition at line 98 of file InDetAlignHitQualSelTool.h.

◆ m_PIXManager

const InDetDD::PixelDetectorManager* InDetAlignHitQualSelTool::m_PIXManager
private

to get pixel phi and eta identifiers

Definition at line 97 of file InDetAlignHitQualSelTool.h.

◆ m_rejectEdgeChannels

bool InDetAlignHitQualSelTool::m_rejectEdgeChannels
private

reject clusters containing edge channels

Definition at line 74 of file InDetAlignHitQualSelTool.h.

◆ m_rejectGangedPixels

bool InDetAlignHitQualSelTool::m_rejectGangedPixels
private

reject clusters containing ganged pixels

Definition at line 76 of file InDetAlignHitQualSelTool.h.

◆ m_rejectOutliers

bool InDetAlignHitQualSelTool::m_rejectOutliers
private

reject hits labeled as outliers by the track fitter

Definition at line 69 of file InDetAlignHitQualSelTool.h.

◆ m_sctID

const SCT_ID* InDetAlignHitQualSelTool::m_sctID
private

Pixel id helper.

Definition at line 99 of file InDetAlignHitQualSelTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
InDetAlignHitQualSelTool::m_acceptIBLHits
bool m_acceptIBLHits
Definition: InDetAlignHitQualSelTool.h:85
InDetAlignHitQualSelTool::incidAngle
double incidAngle(const Trk::TrackParameters *trkPar, const InDetDD::SiDetectorElement *detEle) const
calculate track incidence angle in local x-z frame
Definition: InDetAlignHitQualSelTool.cxx:323
InDetAlignHitQualSelTool::isGangedPixel
bool isGangedPixel(const Trk::PrepRawData *prd) const
check, whether cluster contains a ganged pixel
Definition: InDetAlignHitQualSelTool.cxx:259
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
PixelID::phi_index
int phi_index(const Identifier &id) const
Definition: PixelID.h:658
Trk::Surface::associatedDetectorElement
const TrkDetElementBase * associatedDetectorElement() const
return associated Detector Element
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDetAlignHitQualSelTool::m_PIXManager
const InDetDD::PixelDetectorManager * m_PIXManager
to get pixel phi and eta identifiers
Definition: InDetAlignHitQualSelTool.h:97
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
Trk::ParametersBase::associatedSurface
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
initialize
void initialize()
Definition: run_EoverP.cxx:894
InDetAlignHitQualSelTool::isEdgeChannel
bool isEdgeChannel(const std::vector< Identifier > &idVec) const
check, whether the strip/pixel is an edge channel
Definition: InDetAlignHitQualSelTool.cxx:284
InDetAlignHitQualSelTool::m_pixelid
const PixelID * m_pixelid
Pixel id helper.
Definition: InDetAlignHitQualSelTool.h:98
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::PrepRawData::rdoList
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
Trk::TrackStateOnSurface::measurementOnTrack
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
InDetAlignHitQualSelTool::isGoodClusterSize
bool isGoodClusterSize(const std::vector< Identifier > &idVec) const
check, whether cluster size within limits of m_maxClusterSize
Definition: InDetAlignHitQualSelTool.cxx:273
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDetAlignHitQualSelTool::m_maxClusterSize
int m_maxClusterSize
Definition: InDetAlignHitQualSelTool.h:72
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
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
InDetAlignHitQualSelTool::m_rejectEdgeChannels
bool m_rejectEdgeChannels
reject clusters containing edge channels
Definition: InDetAlignHitQualSelTool.h:74
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
InDetAlignHitQualSelTool::m_rejectOutliers
bool m_rejectOutliers
reject hits labeled as outliers by the track fitter
Definition: InDetAlignHitQualSelTool.h:69
Trk::TrackStateOnSurface::type
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::TrackStateOnSurface::Hole
@ Hole
A hole on the track - this is defined in the following way.
Definition: TrackStateOnSurface.h:128
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDetDD::PixelDetectorManager::identifierBelongs
virtual bool identifierBelongs(const Identifier &id) const override
Check identifier is for this detector.
Definition: PixelDetectorManager.cxx:283
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetAlignHitQualSelTool::m_sctID
const SCT_ID * m_sctID
Pixel id helper.
Definition: InDetAlignHitQualSelTool.h:99
InDetAlignHitQualSelTool::isGoodAngle
bool isGoodAngle(const Trk::TrackParameters *trkPar, const InDetDD::SiDetectorElement *detEle) const
check whether track incidence angle within limits of m_maxIncidAngle
Definition: InDetAlignHitQualSelTool.cxx:311
PixelID::eta_index
int eta_index(const Identifier &id) const
Definition: PixelID.h:664
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
InDetAlignHitQualSelTool::m_maxIncidAngle
float m_maxIncidAngle
maximum incidence angle of a track (to which the hit belongs) on the Si-module.
Definition: InDetAlignHitQualSelTool.h:81
InDetDD::SolidStateDetectorElementBase::normal
virtual const Amg::Vector3D & normal() const override final
Get reconstruction local normal axes in global frame.
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::MeasurementBase
Definition: MeasurementBase.h:58
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition: PixelID.h:626
InDet::SiCluster::gangedPixel
bool gangedPixel() const
return the flag of this cluster containing a gangedPixel
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SCT_ID::strip
int strip(const Identifier &id) const
Definition: SCT_ID.h:764
InDetDD::SolidStateDetectorElementBase::phiAxis
const Amg::Vector3D & phiAxis() const
Definition: SolidStateDetectorElementBase.cxx:74
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
InDetAlignHitQualSelTool::m_acceptSCTHits
bool m_acceptSCTHits
Definition: InDetAlignHitQualSelTool.h:93
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Trk::RIO_OnTrack::detectorElement
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
InDetAlignHitQualSelTool::m_acceptPixelHits
bool m_acceptPixelHits
Definition: InDetAlignHitQualSelTool.h:89
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDetAlignHitQualSelTool::m_rejectGangedPixels
bool m_rejectGangedPixels
reject clusters containing ganged pixels
Definition: InDetAlignHitQualSelTool.h:76
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
fitman.k
k
Definition: fitman.py:528