ATLAS Offline Software
InDetAlignHitQualSelTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETALIGNTOOLS_HITQUALSELTOOL_H
6 #define INDETALIGNTOOLS_HITQUALSELTOOL_H
7 
9 // #include "GaudiKernel/ToolHandle.h"
11 // #include "AthenaBaseComps/AthMsgStreamMacros.h"
12 
13 
21  // Many thanks to Carlos Escobar and Sebastian Fleischmann!
22 
23 namespace Trk {
24  class TrackStateOnSurface ;
25  class RIO_OnTrack ;
26  class PrepRawData ;
27 }
28 namespace InDetDD {
29  class PixelDetectorManager ;
30 }
31 class AtlasDetectorID ;
32 class Identifier ;
33 
35  public:
36  InDetAlignHitQualSelTool( const std::string&, const std::string&, const IInterface* ) ;
37  virtual ~InDetAlignHitQualSelTool() ;
38 
39  virtual StatusCode initialize() ;
40  virtual StatusCode finalize () ;
41 
44  const Trk::RIO_OnTrack* getGoodHit( const Trk::TrackStateOnSurface* tsos ) const ;
45 
46  bool isGoodSiHit( const Trk::TrackStateOnSurface* tsos ) const ;
47 
50  bool getGoodHole( const Trk::TrackStateOnSurface* tsos ) const ;
51  private:
52  // methods
54  bool isGangedPixel( const Trk::PrepRawData* prd ) const ;
56  bool isGoodClusterSize( const std::vector<Identifier>& idVec ) const ;
58  bool isEdgeChannel( const std::vector<Identifier>& idVec ) const ;
60  double incidAngle( const Trk::TrackParameters* trkPar
61  , const InDetDD::SiDetectorElement* detEle
62  ) const ;
64  bool isGoodAngle( const Trk::TrackParameters* trkPar
65  , const InDetDD::SiDetectorElement* detEle
66  ) const ;
67  // steering parameters
70  /* maximum size of the cluster forming the hit. typically, clusters with more than
71  5 pixels/hits are due to brem and are of less quality for alignment. */
77 
82 
83  // acceptIBLHits -> if true, IBL hits are accepted if they satisfy the quality selection criteria.
84  // if false, IBL hits are always rejected
86 
87  // acceptPixelHits -> if true, pixel hits are accepted if they satisfy the quality selection criteria.
88  // if false, pixel hits are always rejected
90 
91  // acceptSCTHits -> if true, SCT hits are accepted if they satisfy the quality selection criteria.
92  // if false, SCT hits are always rejected
94 
95  // "infrastructure" members
96 
98  const PixelID* m_pixelid ;
99  const SCT_ID* m_sctID ;
100 } ;
101 
102 #endif // INDETALIGNTOOLS_HITQUALSELTOOL_H
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
InDetAlignHitQualSelTool::finalize
virtual StatusCode finalize()
Definition: InDetAlignHitQualSelTool.cxx:66
InDetAlignHitQualSelTool::m_PIXManager
const InDetDD::PixelDetectorManager * m_PIXManager
to get pixel phi and eta identifiers
Definition: InDetAlignHitQualSelTool.h:97
InDetAlignHitQualSelTool::InDetAlignHitQualSelTool
InDetAlignHitQualSelTool(const std::string &, const std::string &, const IInterface *)
Definition: InDetAlignHitQualSelTool.cxx:21
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
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
InDetAlignHitQualSelTool::~InDetAlignHitQualSelTool
virtual ~InDetAlignHitQualSelTool()
Definition: InDetAlignHitQualSelTool.cxx:50
InDetAlignHitQualSelTool::getGoodHole
bool getGoodHole(const Trk::TrackStateOnSurface *tsos) const
from a TrackStateOnSurface select a good hole in track cutting on large incidence angles only
Definition: InDetAlignHitQualSelTool.cxx:233
InDetAlignHitQualSelTool::m_maxClusterSize
int m_maxClusterSize
Definition: InDetAlignHitQualSelTool.h:72
InDetAlignHitQualSelTool::m_rejectEdgeChannels
bool m_rejectEdgeChannels
reject clusters containing edge channels
Definition: InDetAlignHitQualSelTool.h:74
InDetAlignHitQualSelTool::m_rejectOutliers
bool m_rejectOutliers
reject hits labeled as outliers by the track fitter
Definition: InDetAlignHitQualSelTool.h:69
IInDetAlignHitQualSelTool
Definition: IInDetAlignHitQualSelTool.h:26
IInDetAlignHitQualSelTool.h
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDetAlignHitQualSelTool::isGoodSiHit
bool isGoodSiHit(const Trk::TrackStateOnSurface *tsos) const
Definition: InDetAlignHitQualSelTool.cxx:129
AthAlgTool.h
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
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
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
InDetAlignHitQualSelTool::getGoodHit
const Trk::RIO_OnTrack * getGoodHit(const Trk::TrackStateOnSurface *tsos) const
main method: from a TrackStateOnSurface select a good hit cutting on outlier hits,...
Definition: InDetAlignHitQualSelTool.cxx:71
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
Trk::MeasurementBaseType::RIO_OnTrack
@ RIO_OnTrack
Definition: MeasurementBase.h:49
InDetAlignHitQualSelTool
The InDetAlignHitQualSelTool is to select good quality hits for alignment to build residuals with pos...
Definition: InDetAlignHitQualSelTool.h:34
SCT_ID
Definition: SCT_ID.h:68
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetAlignHitQualSelTool::m_acceptSCTHits
bool m_acceptSCTHits
Definition: InDetAlignHitQualSelTool.h:93
AthAlgTool
Definition: AthAlgTool.h:26
InDetAlignHitQualSelTool::initialize
virtual StatusCode initialize()
Definition: InDetAlignHitQualSelTool.cxx:53
InDetAlignHitQualSelTool::m_acceptPixelHits
bool m_acceptPixelHits
Definition: InDetAlignHitQualSelTool.h:89
PixelID
Definition: PixelID.h:67
InDetAlignHitQualSelTool::m_rejectGangedPixels
bool m_rejectGangedPixels
reject clusters containing ganged pixels
Definition: InDetAlignHitQualSelTool.h:76
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57