ATLAS Offline Software
SCTHitEffMonAlg.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef SCTHITEFFMONALG_H
8 #define SCTHITEFFMONALG_H
9 
11 
13 
25 
26 //Gaudi
27 #include "GaudiKernel/ToolHandle.h"
28 
29 //STL
30 #include <string>
31 
32 class Identifier;
34 class PixelID;
35 class SCT_ID;
36 class TRT_ID;
37 
39  public:
40  SCTHitEffMonAlg(const std::string& name, ISvcLocator* pSvcLocator);
41  virtual ~SCTHitEffMonAlg() = default;
42  virtual StatusCode initialize() override final;
43  virtual StatusCode fillHistograms(const EventContext& ctx) const override final;
44 
45  private:
46  // Method to cut on track or hit variables and automatize DEBUG statements
47  StatusCode failCut(bool value, const std::string & name) const;
48 
49  // Method to compute incident angle of track to wafer
51  const InDetDD::SiDetectorElementCollection* elements,
52  double& theta, double& phi) const;
53 
54  // Method to find the chip just before a given hit
55  int previousChip(double xl, int side, bool swap) const;
56 
57  // Computes residual of a hit to a track
58  double getResidual(const Identifier& surfaceID,
59  const Trk::TrackParameters* trkParam,
60  const InDet::SCT_ClusterContainer* p_sctclcontainer) const;
61 
62  //Convert a layer/disk number (0-21) to a bec index (0,1,2) according to position of that layer
63  // Numbering is counter-intuitive, would expect C then B then A; in fact the original ordering was A, C, B
64  // I have re-ordered this!!!! so now its C,B,A
65 
69  int becIdxLayer2Index(const int becIdx, const int layer) const;
70  int getWaferIndex(const int barrel_bc, const int layer_disk, const int side) const;
71 
72  std::string m_path;
73 
74  SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_sctContainerName{this, "SCT_ClusterContainer", "SCT_Clusters"};
75  SG::ReadHandleKey<TrackCollection> m_TrackName{this, "TrackName", "CombinedInDetTracks"};
76  SG::ReadHandleKey<ComTime> m_comTimeName{this, "ComTimeKey", "TRT_Phase"};
77  SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
78  SG::ReadCondHandleKey<BunchCrossingCondData> m_bunchCrossingKey{this, "BunchCrossingKey", "BunchCrossingData", "Key BunchCrossing CDO" };
79  SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey{this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
80 
81  ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator{this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"};
82  ToolHandle<Trk::IRIO_OnTrackCreator> m_rotcreator{this, "ROTCreator", "InDet::SCT_ClusterOnTrackTool/SCT_ClusterOnTrackTool"};
83  ToolHandle<Trk::ITrackHoleSearchTool> m_holeSearchTool{this, "HoleSearch", "InDet::InDetTrackHoleSearchTool"}; //HERE
84  ToolHandle<ISCT_ConfigurationConditionsTool> m_configConditions{this, "ConfigConditions",
85  "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool", "Tool to retrieve SCT Configuration Tool"};
86 
87  const PixelID* m_pixelId{nullptr};
88  const SCT_ID* m_sctId{nullptr};
89  const TRT_ID* m_trtId{nullptr};
90 
91  // If all 3 of these -1, defaults depend on cosmic/not
92  IntegerProperty m_minSCTHits{this, "MinSCTHits", -1};
93  IntegerProperty m_minTRTHits{this, "MinTRTHits", -1};
94  IntegerProperty m_minOtherHits{this, "MinOtherHits", 6};
95 
96  IntegerProperty m_minPixelHits{this, "MinPixelHits", -1};
97 
98  FloatProperty m_maxPhiAngle{this, "MaxPhiAngle", 40., "Degrees, 100 implies no cut."};
99  FloatProperty m_maxChi2{this, "MaxChi2", 3.};
100  FloatProperty m_maxD0{this, "Maxd0", 10., "mm of D0"};
101  FloatProperty m_minPt{this, "MinPt", 1000., "minimu pt in MeV/c"};
102  FloatProperty m_effdistcut{this, "effDistanceCut", 0.2, "mm"};
103  FloatProperty m_maxZ0sinTheta{this, "MaxZ0sinTheta", 0.};
104  UnsignedIntegerProperty m_maxTracks{this, "MaxTracks", 500};
105  UnsignedIntegerProperty m_minSiHits{this, "MinimumNumberOfSiHits", 8, "Threshold for number of Si hits. Count Si hits excluding hits in the wafer under investigation to reduce track selection bias"};
106  UnsignedIntegerProperty m_maxSiHoles{this, "MaximumNumberOfSiHoles", 1, "Threshold for number of Si holes. Count Si holes excluding holes in the wafer under investigation to reduce track selection bias"};
107 
108  BooleanProperty m_insideOutOnly{this, "InsideOutOnly", false};
109  BooleanProperty m_isCosmic{this, "IsCosmic", false};
110  BooleanProperty m_useTRTPhase{this, "UseTRTPhase", false};
111  BooleanProperty m_useSCTorTRT{this, "UseSCTorTRT", false};
112  BooleanProperty m_requireEnclosingHits{this, "RequireEnclosingHits", false};
113  BooleanProperty m_requireOtherFace{this, "RequireOtherFace", false};
114  BooleanProperty m_requireGuardRing{this, "RequireGuardRing", false, "should be returned to true"};
115  BooleanProperty m_vetoBadChips{this, "VetoBadChips", true};
116  BooleanProperty m_useIDGlobal{this, "useIDGlobal", false};
117 
118 };
119 
120 #endif // SCTHITEFFMONALG_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
SCTHitEffMonAlg::m_maxPhiAngle
FloatProperty m_maxPhiAngle
Definition: SCTHitEffMonAlg.h:98
SCT_Monitoring::BecIndex
BecIndex
what array indices mean when looping over subsystems
Definition: SCT_MonitoringNumbers.h:19
SCTHitEffMonAlg::becIdxLayer2Index
int becIdxLayer2Index(const int becIdx, const int layer) const
Definition: SCTHitEffMonAlg.cxx:124
SCTHitEffMonAlg::m_path
std::string m_path
Definition: SCTHitEffMonAlg.h:72
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
ComTime.h
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
SCTHitEffMonAlg::m_maxTracks
UnsignedIntegerProperty m_maxTracks
Definition: SCTHitEffMonAlg.h:104
SCTHitEffMonAlg::m_rotcreator
ToolHandle< Trk::IRIO_OnTrackCreator > m_rotcreator
Definition: SCTHitEffMonAlg.h:82
SCTHitEffMonAlg::m_useIDGlobal
BooleanProperty m_useIDGlobal
Definition: SCTHitEffMonAlg.h:116
SCTHitEffMonAlg::m_requireEnclosingHits
BooleanProperty m_requireEnclosingHits
Definition: SCTHitEffMonAlg.h:112
AtlasFieldCacheCondObj.h
index
Definition: index.py:1
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
IRIO_OnTrackCreator.h
SCTHitEffMonAlg::m_maxD0
FloatProperty m_maxD0
Definition: SCTHitEffMonAlg.h:100
SCTHitEffMonAlg::getResidual
double getResidual(const Identifier &surfaceID, const Trk::TrackParameters *trkParam, const InDet::SCT_ClusterContainer *p_sctclcontainer) const
Definition: SCTHitEffMonAlg.cxx:155
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
SCTHitEffMonAlg::m_maxZ0sinTheta
FloatProperty m_maxZ0sinTheta
Definition: SCTHitEffMonAlg.h:103
SCTHitEffMonAlg::m_insideOutOnly
BooleanProperty m_insideOutOnly
Definition: SCTHitEffMonAlg.h:108
SCTHitEffMonAlg::failCut
StatusCode failCut(bool value, const std::string &name) const
Definition: SCTHitEffMonAlg.cxx:233
SCTHitEffMonAlg::m_requireGuardRing
BooleanProperty m_requireGuardRing
Definition: SCTHitEffMonAlg.h:114
athena.value
value
Definition: athena.py:122
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
SCTHitEffMonAlg::m_trtId
const TRT_ID * m_trtId
Definition: SCTHitEffMonAlg.h:89
SCTHitEffMonAlg::m_requireOtherFace
BooleanProperty m_requireOtherFace
Definition: SCTHitEffMonAlg.h:113
SCTHitEffMonAlg::m_residualPullCalculator
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
Definition: SCTHitEffMonAlg.h:81
SCT_Monitoring
Definition: SCT_MonitoringNumbers.h:17
xAOD::TrackParameters
TrackParameters_v1 TrackParameters
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParameters.h:11
SCTHitEffMonAlg::m_effdistcut
FloatProperty m_effdistcut
Definition: SCTHitEffMonAlg.h:102
TRT::Hit::side
@ side
Definition: HitInfo.h:83
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
SCTHitEffMonAlg::m_isCosmic
BooleanProperty m_isCosmic
Definition: SCTHitEffMonAlg.h:109
SCTHitEffMonAlg::m_minSCTHits
IntegerProperty m_minSCTHits
Definition: SCTHitEffMonAlg.h:92
SCTHitEffMonAlg::m_pixelId
const PixelID * m_pixelId
Definition: SCTHitEffMonAlg.h:87
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
SCTHitEffMonAlg::initialize
virtual StatusCode initialize() override final
initialize
Definition: SCTHitEffMonAlg.cxx:79
SCTHitEffMonAlg::m_SCTDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Definition: SCTHitEffMonAlg.h:77
SCTHitEffMonAlg
Definition: SCTHitEffMonAlg.py:1
SCTHitEffMonAlg::~SCTHitEffMonAlg
virtual ~SCTHitEffMonAlg()=default
SCTHitEffMonAlg::layerIndex2becIndex
SCT_Monitoring::BecIndex layerIndex2becIndex(const int index) const
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
AthMonitorAlgorithm.h
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
TrackCollection.h
SCTHitEffMonAlg::m_sctId
const SCT_ID * m_sctId
Definition: SCTHitEffMonAlg.h:88
SCTHitEffMonAlg::m_holeSearchTool
ToolHandle< Trk::ITrackHoleSearchTool > m_holeSearchTool
Definition: SCTHitEffMonAlg.h:83
ISCT_ConfigurationConditionsTool
Definition: ISCT_ConfigurationConditionsTool.h:28
SCTHitEffMonAlg::findAnglesToWaferSurface
StatusCode findAnglesToWaferSurface(const Amg::Vector3D &mom, const Identifier id, const InDetDD::SiDetectorElementCollection *elements, double &theta, double &phi) const
Definition: SCTHitEffMonAlg.cxx:190
SCTHitEffMonAlg::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: SCTHitEffMonAlg.h:79
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
SCTHitEffMonAlg::m_useSCTorTRT
BooleanProperty m_useSCTorTRT
Definition: SCTHitEffMonAlg.h:111
SCTHitEffMonAlg::m_minTRTHits
IntegerProperty m_minTRTHits
Definition: SCTHitEffMonAlg.h:93
ReadCondHandleKey.h
ITrackHoleSearchTool.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
SCTHitEffMonAlg::m_comTimeName
SG::ReadHandleKey< ComTime > m_comTimeName
Definition: SCTHitEffMonAlg.h:76
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
SCTHitEffMonAlg::m_minPixelHits
IntegerProperty m_minPixelHits
Definition: SCTHitEffMonAlg.h:96
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SCTHitEffMonAlg::m_vetoBadChips
BooleanProperty m_vetoBadChips
Definition: SCTHitEffMonAlg.h:115
SCTHitEffMonAlg::m_sctContainerName
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_sctContainerName
Definition: SCTHitEffMonAlg.h:74
SCTHitEffMonAlg::previousChip
int previousChip(double xl, int side, bool swap) const
Definition: SCTHitEffMonAlg.cxx:221
SCTHitEffMonAlg::layerIndex2layer
int layerIndex2layer(const int index) const
Convert a layer/disk number (0-21) to a layer number (0-8 for endcaps, 0-3 for barrel)
SCTHitEffMonAlg::m_minOtherHits
IntegerProperty m_minOtherHits
Definition: SCTHitEffMonAlg.h:94
SiDetectorElementCollection.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
SCTHitEffMonAlg::getWaferIndex
int getWaferIndex(const int barrel_bc, const int layer_disk, const int side) const
Definition: SCTHitEffMonAlg.cxx:137
SCT_MonitoringNumbers.h
IResidualPullCalculator.h
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection >
TRT_ID
Definition: TRT_ID.h:84
SCTHitEffMonAlg::m_bunchCrossingKey
SG::ReadCondHandleKey< BunchCrossingCondData > m_bunchCrossingKey
Definition: SCTHitEffMonAlg.h:78
SCT_ID
Definition: SCT_ID.h:68
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
SCTHitEffMonAlg::SCTHitEffMonAlg
SCTHitEffMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: SCTHitEffMonAlg.cxx:75
SCTHitEffMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override final
adds event to the monitoring histograms
Definition: SCTHitEffMonAlg.cxx:242
SCT_ClusterContainer.h
SCTHitEffMonAlg::m_useTRTPhase
BooleanProperty m_useTRTPhase
Definition: SCTHitEffMonAlg.h:110
SCTHitEffMonAlg::m_minPt
FloatProperty m_minPt
Definition: SCTHitEffMonAlg.h:101
SCTHitEffMonAlg::m_maxSiHoles
UnsignedIntegerProperty m_maxSiHoles
Definition: SCTHitEffMonAlg.h:106
BunchCrossingCondData.h
Replaces the BunchCrossing AlgTool used in run1/2.
SCTHitEffMonAlg::m_TrackName
SG::ReadHandleKey< TrackCollection > m_TrackName
Definition: SCTHitEffMonAlg.h:75
PixelID
Definition: PixelID.h:67
SCTHitEffMonAlg::m_maxChi2
FloatProperty m_maxChi2
Definition: SCTHitEffMonAlg.h:99
SCTHitEffMonAlg::m_minSiHits
UnsignedIntegerProperty m_minSiHits
Definition: SCTHitEffMonAlg.h:105
SCTHitEffMonAlg::m_configConditions
ToolHandle< ISCT_ConfigurationConditionsTool > m_configConditions
Definition: SCTHitEffMonAlg.h:84