ATLAS Offline Software
TRTMonitoringRun3ESD_Alg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRTMONITORINGRUN3ESD_ALG_H
6 #define TRTMONITORINGRUN3ESD_ALG_H
7 
10 
11 #include "GaudiKernel/StatusCode.h"
12 
13 // Data handles
14 #include "StoreGate/ReadHandle.h"
24 
25 // Tool interfaces
32 
33 #include "CLHEP/Units/SystemOfUnits.h"
34 
35 // STDLIB
36 #include <string>
37 #include <vector>
38 
39 namespace Trk {
40  class Track;
41  class TrackStateOnSurface;
42 }
43 
44 namespace InDetDD {
45  class TRT_DetectorManager;
46 }
47 
48 namespace InDet {
49  class IInDetTrackSelectionTool;
50 }
51 
52 class AtlasDetectorID;
53 class TRT_ID;
54 class Identifier;
55 class ComTime;
57 class ITRT_CalDbTool;
58 class ITRT_ConditionsSvc;
61 
63 public:
64  TRTMonitoringRun3ESD_Alg( const std::string& name, ISvcLocator* pSvcLocator );
65  virtual ~TRTMonitoringRun3ESD_Alg();
66  virtual StatusCode initialize() override;
67  virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
68 private:
69 
70  StatusCode fillTRTTracks(const EventContext& ctx,
71  const xAOD::TrackParticleContainer& trackCollection,
72  const xAOD::TrigDecision* trigDecision,
73  const ComTime* comTimeObject,
74  const xAOD::EventInfo& eventInfo) const;
76  const xAOD::EventInfo& eventInfo, const EventContext& ctx) const;
77  int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
78 
79 
80  // Returns the straw number (0-1641) given the layerNumber, strawlayerNumber, and strawNumber, all gotten from Athena IDHelper
81  int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const;
82  // Returns Barrel Board Number
83  int chipToBoard(int chip) const;
84  // Returns EndCap Board Number
85  int chipToBoard_EndCap(int chip) const;
86 
87  // Returns Degrees, converted from radians (Athena Standard units)
88  float radToDegrees(float radValue) const;
89  int strawNumber_reverse (int inp_strawnumber, int* strawNumber, int* strawlayerNumber, int* LayerNumber) const;
90  int strawLayerNumber_reverse(int strawLayerNumInp,int* strawLayerNumber, int* LayerNumber) const;
91  int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const;
92  bool checkEventBurst(const TRT_RDO_Container& rdoContainer) const;
93 
94  static const int s_numberOfBarrelStacks;
95  static const int s_numberOfEndCapStacks;
96  static const int s_Straw_max[2];
97  static const int s_iStack_max[2];
98  static const int s_iChip_max[2];
99  static const int s_numberOfStacks[2];
100  static const int s_moduleNum[2];
101 
102  BooleanProperty m_ArgonXenonSplitter{this, "doArgonXenonSeparation", true};
104 
105  // Services
106  ToolHandle<ITRT_StrawStatusSummaryTool> m_sumTool{this, "InDetTRTStrawStatusSummaryTool", "TRT_StrawStatusSummaryTool",""};
107  ServiceHandle<ITRT_StrawNeighbourSvc> m_TRTStrawNeighbourSvc{this, "NeighbourSvc", "TRT_StrawNeighbourSvc", ""};
108  ToolHandle<ITRT_CalDbTool> m_TRTCalDbTool{this, "ITRT_CalDbTool", "TRT_CalDbTool", ""};
109 
110  // Data handles
111  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackCollectionKey{this, "TrackParticleContainerKeys", "InDetTrackParticles", "Keys for TrackParticle Container"};
112  SG::ReadHandleKey<xAOD::EventInfo> m_xAODEventInfoKey{this, "xAODEventInfo", "EventInfo", "Name of EventInfo object"};
113  SG::ReadHandleKey<InDetTimeCollection> m_TRT_BCIDCollectionKey{this, "TRTBCIDCollectionName", "TRT_BCID", "Name of TRT BCID collection"};
114  SG::ReadHandleKey<ComTime> m_comTimeObjectKey{this, "ComTimeObjectName", "TRT_Phase", "Name of ComTime object"};
115  SG::ReadHandleKey<xAOD::TrigDecision> m_trigDecisionKey{this, "TrigDecisionObjectName", "xTrigDecision", "Name of trigger decision object"};
116 
117  // Tools
118  ToolHandle<Trk::ITrackSummaryTool> m_TrackSummaryTool{this, "TrackSummaryTool", "InDetTrackSummaryTool", "Track summary tool name"};
119  ToolHandle<ITRT_DriftFunctionTool> m_drifttool{this, "DriftFunctionTool", "TRT_DriftFunctionTool", ""};
120 
123 
124  Gaudi::Property<bool> m_doTracksMon{this, "DoTracksMon", true, ""};
125  Gaudi::Property<bool> m_doStraws{this, "doStraws", true, ""};
126  Gaudi::Property<bool> m_doChips{this, "doChips", true, ""};
127  Gaudi::Property<bool> m_doShift{this, "doShift", true, ""};
128  Gaudi::Property<bool> m_doExpert{this, "doExpert", false, ""};
129 
130  std::vector<std::vector<unsigned char>> m_mat_chip_B{64, std::vector<unsigned char>(1642)};
131  std::vector<std::vector<unsigned char>> m_mat_chip_E{64, std::vector<unsigned char>(3840)};
132 
133  Gaudi::Property<float> m_DistToStraw{this, "DistanceToStraw", 0.4f, ""};
134  bool m_isCosmics{false};
135 
136  Gaudi::Property<int> m_min_si_hits{this, "min_si_hits", 1, ""};
137  Gaudi::Property<int> m_min_pixel_hits{this, "min_pixel_hits", 0, ""};
138  Gaudi::Property<int> m_min_sct_hits{this, "min_sct_hits", 0, ""};
139  Gaudi::Property<int> m_min_trt_hits{this, "min_trt_hits", 10, ""};
140  Gaudi::Property<int> m_minTRThits{this, "MinTRTHitCut", 10, ""};
141  Gaudi::Property<float> m_minP{this, "MinTrackP", 0.0 * CLHEP::GeV};
142  Gaudi::Property<float> m_min_pT{this, "min_pT", 0.5 * CLHEP::GeV};
143 
144  enum GasType{ Xe = 0, Ar = 1, Kr = 2 };
145  // Deciphers status HT to GasType Enumerator
146  inline GasType Straw_Gastype(int stat) const {
147  // getStatusHT returns enum {Undefined, Dead, Good, Xenon, Argon, Krypton}.
148  // Our representation of 'GasType' is 0:Xenon, 1:Argon, 2:Krypton
149  GasType Gas = Xe; // Xenon is default
150  if (m_ArgonXenonSplitter) {
151  // int stat=m_sumSvc->getStatusHT(TRT_Identifier);
152  if ( stat==2 || stat==3 ) { Gas = Xe; } // Xe
153  else if ( stat==1 || stat==4 ) { Gas = Ar; } // Ar
154  else if ( stat==5 ) { Gas = Kr; } // Kr
155  else if ( stat==6 ) { Gas = Xe; } // Emulate Ar (so treat as Xe here)
156  else if ( stat==7 ) { Gas = Xe; } // Emulate Kr (so treat as Xe here)
157  else { ATH_MSG_FATAL ("getStatusHT = " << stat << ", must be 'Good(2)||Xenon(3)' or 'Dead(1)||Argon(4)' or 'Krypton(5)!' or 6 or 7 for emulated types!");
158  throw std::exception();
159  }
160  }
161  return Gas;
162  }
163 
165  ToolHandle<InDet::IInDetTrackSelectionTool> m_trackSelTool{this, "TrackSelectionTool", "InDet::InDetTrackSelectionTool/TrackSelectionTool", ""};
166 };
167 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TRTMonitoringRun3ESD_Alg::m_minTRThits
Gaudi::Property< int > m_minTRThits
Definition: TRTMonitoringRun3ESD_Alg.h:140
TRTMonitoringRun3ESD_Alg::initialize
virtual StatusCode initialize() override
initialize
Definition: TRTMonitoringRun3ESD_Alg.cxx:47
TRTMonitoringRun3ESD_Alg::m_min_pT
Gaudi::Property< float > m_min_pT
Definition: TRTMonitoringRun3ESD_Alg.h:142
ITrackSummaryTool.h
IInDetConditionsSvc
Definition: IInDetConditionsSvc.h:24
TRTMonitoringRun3ESD_Alg::strawNumberEndCap
int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:260
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TrigDecision.h
ComTime.h
TRTMonitoringRun3ESD_Alg::m_TRT_BCIDCollectionKey
SG::ReadHandleKey< InDetTimeCollection > m_TRT_BCIDCollectionKey
Definition: TRTMonitoringRun3ESD_Alg.h:113
TRTMonitoringRun3ESD_Alg::m_min_pixel_hits
Gaudi::Property< int > m_min_pixel_hits
Definition: TRTMonitoringRun3ESD_Alg.h:137
TRTMonitoringRun3ESD_Alg::s_iStack_max
static const int s_iStack_max[2]
Definition: TRTMonitoringRun3ESD_Alg.h:97
TRTMonitoringRun3ESD_Alg::s_numberOfStacks
static const int s_numberOfStacks[2]
Definition: TRTMonitoringRun3ESD_Alg.h:99
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
TRTMonitoringRun3ESD_Alg
Definition: TRTMonitoringRun3ESD_Alg.py:1
TRTMonitoringRun3ESD_Alg::m_min_sct_hits
Gaudi::Property< int > m_min_sct_hits
Definition: TRTMonitoringRun3ESD_Alg.h:138
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
SG::ReadHandleKey< xAOD::TrackParticleContainer >
ComTime
Definition: ComTime.h:17
TRTMonitoringRun3ESD_Alg::radToDegrees
float radToDegrees(float radValue) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:338
TRTMonitoringRun3ESD_Alg::m_sumTool
ToolHandle< ITRT_StrawStatusSummaryTool > m_sumTool
Definition: TRTMonitoringRun3ESD_Alg.h:106
TRTMonitoringRun3ESD_Alg::m_doExpert
Gaudi::Property< bool > m_doExpert
Definition: TRTMonitoringRun3ESD_Alg.h:128
TRTMonitoringRun3ESD_Alg::m_doTracksMon
Gaudi::Property< bool > m_doTracksMon
Definition: TRTMonitoringRun3ESD_Alg.h:124
TRTMonitoringRun3ESD_Alg::m_pTRTHelper
const TRT_ID * m_pTRTHelper
Definition: TRTMonitoringRun3ESD_Alg.h:121
TRTMonitoringRun3ESD_Alg::s_numberOfBarrelStacks
static const int s_numberOfBarrelStacks
Definition: TRTMonitoringRun3ESD_Alg.h:94
TRT::Hit::side
@ side
Definition: HitInfo.h:83
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
TRTMonitoringRun3ESD_Alg::m_ArgonXenonSplitter
BooleanProperty m_ArgonXenonSplitter
Definition: TRTMonitoringRun3ESD_Alg.h:102
TRTMonitoringRun3ESD_Alg::chipToBoard_EndCap
int chipToBoard_EndCap(int chip) const
TRTMonitoringRun3ESD_Alg::m_mgr
const InDetDD::TRT_DetectorManager * m_mgr
Definition: TRTMonitoringRun3ESD_Alg.h:122
ITRT_StrawStatusSummaryTool.h
abstract interface to TRT straw status constants
TRTMonitoringRun3ESD_Alg::Straw_Gastype
GasType Straw_Gastype(int stat) const
Definition: TRTMonitoringRun3ESD_Alg.h:146
TRTMonitoringRun3ESD_Alg::m_doStraws
Gaudi::Property< bool > m_doStraws
Definition: TRTMonitoringRun3ESD_Alg.h:125
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TRTMonitoringRun3ESD_Alg::m_xAODEventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_xAODEventInfoKey
Definition: TRTMonitoringRun3ESD_Alg.h:112
AthMonitorAlgorithm.h
TRTMonitoringRun3ESD_Alg::m_TRTStrawNeighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_TRTStrawNeighbourSvc
Definition: TRTMonitoringRun3ESD_Alg.h:107
TrackCollection.h
calibdata.exception
exception
Definition: calibdata.py:495
TRTMonitoringRun3ESD_Alg::chipToBoard
int chipToBoard(int chip) const
TRTMonitoringRun3ESD_Alg::GasType
GasType
Definition: TRTMonitoringRun3ESD_Alg.h:144
TRTMonitoringRun3ESD_Alg::s_numberOfEndCapStacks
static const int s_numberOfEndCapStacks
Definition: TRTMonitoringRun3ESD_Alg.h:95
TRTMonitoringRun3ESD_Alg::strawNumber
int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:212
TRTMonitoringRun3ESD_Alg::m_isCosmics
bool m_isCosmics
Definition: TRTMonitoringRun3ESD_Alg.h:134
ITRT_CalDbTool.h
abstract interface to TRT calibration constants
TRTMonitoringRun3ESD_Alg::TRTMonitoringRun3ESD_Alg
TRTMonitoringRun3ESD_Alg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TRTMonitoringRun3ESD_Alg.cxx:40
ITRT_ConditionsSvc
Definition: ITRT_ConditionsSvc.h:34
ITRT_CalDbTool
Definition: ITRT_CalDbTool.h:30
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
IInDetTrackSelectionTool.h
beamspotman.stat
stat
Definition: beamspotman.py:262
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
ReadCondHandleKey.h
ITrackHoleSearchTool.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
TRTMonitoringRun3ESD_Alg::m_idHelper
const AtlasDetectorID * m_idHelper
Definition: TRTMonitoringRun3ESD_Alg.h:103
TRTMonitoringRun3ESD_Alg::s_moduleNum
static const int s_moduleNum[2]
Definition: TRTMonitoringRun3ESD_Alg.h:100
ITRT_DriftFunctionTool.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TRTMonitoringRun3ESD_Alg::m_minP
Gaudi::Property< float > m_minP
Definition: TRTMonitoringRun3ESD_Alg.h:141
TRTMonitoringRun3ESD_Alg::fillTRTHighThreshold
StatusCode fillTRTHighThreshold(const xAOD::TrackParticleContainer &trackCollection, const xAOD::EventInfo &eventInfo, const EventContext &ctx) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:1206
TRTMonitoringRun3ESD_Alg::m_doChips
Gaudi::Property< bool > m_doChips
Definition: TRTMonitoringRun3ESD_Alg.h:126
TRTMonitoringRun3ESD_Alg::m_trigDecisionKey
SG::ReadHandleKey< xAOD::TrigDecision > m_trigDecisionKey
Definition: TRTMonitoringRun3ESD_Alg.h:115
TRTMonitoringRun3ESD_Alg::m_min_trt_hits
Gaudi::Property< int > m_min_trt_hits
Definition: TRTMonitoringRun3ESD_Alg.h:139
EventInfo.h
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
TRTMonitoringRun3ESD_Alg::m_DistToStraw
Gaudi::Property< float > m_DistToStraw
Definition: TRTMonitoringRun3ESD_Alg.h:133
TRTMonitoringRun3ESD_Alg::strawNumber_reverse
int strawNumber_reverse(int inp_strawnumber, int *strawNumber, int *strawlayerNumber, int *LayerNumber) const
TRTMonitoringRun3ESD_Alg::m_trackSelTool
ToolHandle< InDet::IInDetTrackSelectionTool > m_trackSelTool
Definition: TRTMonitoringRun3ESD_Alg.h:165
ITRT_DAQ_ConditionsSvc
Definition: ITRT_DAQ_ConditionsSvc.h:19
TRTMonitoringRun3ESD_Alg::Kr
@ Kr
Definition: TRTMonitoringRun3ESD_Alg.h:144
TRTMonitoringRun3ESD_Alg::m_mat_chip_E
std::vector< std::vector< unsigned char > > m_mat_chip_E
Definition: TRTMonitoringRun3ESD_Alg.h:131
TRT_ID
Definition: TRT_ID.h:82
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:63
ITRT_StrawNeighbourSvc
Definition: ITRT_StrawNeighbourSvc.h:23
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
TRTMonitoringRun3ESD_Alg::~TRTMonitoringRun3ESD_Alg
virtual ~TRTMonitoringRun3ESD_Alg()
Definition: TRTMonitoringRun3ESD_Alg.cxx:45
TRTMonitoringRun3ESD_Alg::m_drifttool
ToolHandle< ITRT_DriftFunctionTool > m_drifttool
Definition: TRTMonitoringRun3ESD_Alg.h:119
TRTMonitoringRun3ESD_Alg::m_min_si_hits
Gaudi::Property< int > m_min_si_hits
Definition: TRTMonitoringRun3ESD_Alg.h:136
TRTMonitoringRun3ESD_Alg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: TRTMonitoringRun3ESD_Alg.cxx:1431
TRTMonitoringRun3ESD_Alg::m_mat_chip_B
std::vector< std::vector< unsigned char > > m_mat_chip_B
Definition: TRTMonitoringRun3ESD_Alg.h:130
TRTMonitoringRun3ESD_Alg::m_TRTCalDbTool
ToolHandle< ITRT_CalDbTool > m_TRTCalDbTool
Definition: TRTMonitoringRun3ESD_Alg.h:108
TRTMonitoringRun3ESD_Alg::strawLayerNumber
int strawLayerNumber(int strawLayerNumber, int LayerNumber) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:194
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
InDetTimeCollection.h
ReadHandle.h
Handle class for reading from StoreGate.
InDetRawDataCLASS_DEF.h
TRTMonitoringRun3ESD_Alg::Xe
@ Xe
Definition: TRTMonitoringRun3ESD_Alg.h:144
TRTMonitoringRun3ESD_Alg::m_doShift
Gaudi::Property< bool > m_doShift
Definition: TRTMonitoringRun3ESD_Alg.h:127
TRTMonitoringRun3ESD_Alg::checkEventBurst
bool checkEventBurst(const TRT_RDO_Container &rdoContainer) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:351
TRTMonitoringRun3ESD_Alg::Ar
@ Ar
Definition: TRTMonitoringRun3ESD_Alg.h:144
TRTMonitoringRun3ESD_Alg::s_iChip_max
static const int s_iChip_max[2]
Definition: TRTMonitoringRun3ESD_Alg.h:98
xAOD::TrigDecision_v1
Interface to the raw trigger decision information of the event.
Definition: TrigDecision_v1.h:44
TRTMonitoringRun3ESD_Alg::fillTRTTracks
StatusCode fillTRTTracks(const EventContext &ctx, const xAOD::TrackParticleContainer &trackCollection, const xAOD::TrigDecision *trigDecision, const ComTime *comTimeObject, const xAOD::EventInfo &eventInfo) const
Definition: TRTMonitoringRun3ESD_Alg.cxx:383
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:52
TrackParticleContainer.h
TRTMonitoringRun3ESD_Alg::s_Straw_max
static const int s_Straw_max[2]
Definition: TRTMonitoringRun3ESD_Alg.h:96
TRTMonitoringRun3ESD_Alg::m_TrackSummaryTool
ToolHandle< Trk::ITrackSummaryTool > m_TrackSummaryTool
Definition: TRTMonitoringRun3ESD_Alg.h:118
TRTMonitoringRun3ESD_Alg::m_EventBurstCut
int m_EventBurstCut
Definition: TRTMonitoringRun3ESD_Alg.h:164
TRTMonitoringRun3ESD_Alg::m_comTimeObjectKey
SG::ReadHandleKey< ComTime > m_comTimeObjectKey
Definition: TRTMonitoringRun3ESD_Alg.h:114
ServiceHandle< ITRT_StrawNeighbourSvc >
TRTMonitoringRun3ESD_Alg::strawLayerNumber_reverse
int strawLayerNumber_reverse(int strawLayerNumInp, int *strawLayerNumber, int *LayerNumber) const
Identifier
Definition: IdentifierFieldParser.cxx:14
TRTMonitoringRun3ESD_Alg::m_trackCollectionKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackCollectionKey
Definition: TRTMonitoringRun3ESD_Alg.h:111