ATLAS Offline Software
TRT_DriftCircleTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class TRT_DriftCircleTool
8 // (c) ATLAS Detector software
10 // Interface for TRT RDI collection production
12 // Version 1.0 18/02/2003 I.Gavrilenko
14 
15 #ifndef TRT_DriftCircleTool_H
16 #define TRT_DriftCircleTool_H
17 
19 
23 #include "GaudiKernel/ToolHandle.h"
24 #include "GaudiKernel/ServiceHandle.h"
28 
31 
33 class TRT_ID;
34 class TRT_RDORawData;
35 class TRT_DriftCircleCollection;
36 class TRT_DriftCircle;
37 
38 
39 namespace InDet {
40 
45 class TRT_DriftCircleTool final: public AthAlgTool, virtual public ITRT_DriftCircleTool
46 
47 {
49  // Public methods:
51 
52 public:
54  TRT_DriftCircleTool(const std::string&,const std::string&,const IInterface*);
58  virtual StatusCode initialize() override;
60  virtual StatusCode finalize () override;
63  convert(int,
65  const EventContext& ctx,
66  DataPool<TRT_DriftCircle>* dataItemsPool,
67  const bool CTBBadChannels) const override;
69  virtual bool passValidityGate(unsigned int word, float lowGate, float highGate, float t0) const override;
70 
72  // Private methods:
74 
75  private:
76 
78  // Private data:
80  SG::ReadCondHandleKey<InDetDD::TRT_DetElementContainer> m_trtDetEleContKey{this, "TRTDetEleContKey", "TRT_DetElementContainer", "Key of TRT_DetElementContainer for TRT"};
82  {this, "LumiDataKey", "", "SG key for luminosity data"};
83 
84  ToolHandle< ITRT_DriftFunctionTool > m_driftFunctionTool{
85  this, "TRTDriftFunctionTool", "TRT_DriftFunctionTool"};
86  ToolHandle<ITRT_StrawStatusSummaryTool> m_ConditionsSummary{
87  this, "ConditionsSummaryTool", "TRT_StrawStatusSummaryTool"};
88 
89  BooleanProperty m_useConditionsStatus{this, "UseConditionsStatus", false,
90  "Shall the ConditionsSummaryTool be used?"};
91  BooleanProperty m_useConditionsHTStatus{this, "UseConditionsHTStatus", false,
92  "Shall the ConditionsSummaryTool be used for HT to find argon straws?"};
93  BooleanProperty m_useToTCorrection{this, "useDriftTimeToTCorrection", false,
94  "Shall the Time over Threshold correction be used?"};
95  BooleanProperty m_useHTCorrection{this, "useDriftTimeHTCorrection", false,
96  "Shall the High Threshold correction be used?"};
97  const TRT_ID* m_trtid = nullptr;
98  BooleanProperty m_reject_if_first_bit{this, "RejectIfFirstBit", false,
99  "If true, reject this DC if first bit high"};
100  BooleanProperty m_reject_if_first_bit_argon{this, "RejectIfFirstBitArgon", true,
101  "If true, reject this DC if first bit high"};
102  FloatProperty m_min_trailing_edge{this, "MinTrailingEdge", 11.0*CLHEP::ns,
103  "Min raw trailing edge position to not reject this DC"};
104  FloatProperty m_min_trailing_edge_argon{this, "MinTrailingEdgeArgon", 11.0*CLHEP::ns,
105  "Min raw trailing edge position to not reject this DC"};
106  FloatProperty m_max_drift_time{this, "MaxDriftTime", 60.0*CLHEP::ns,
107  "Max allowed raw drift time to not reject this DC"};
108  FloatProperty m_max_drift_time_argon{this, "MaxDriftTimeArgon", 60.0*CLHEP::ns,
109  "Max allowed raw drift time to not reject this DC"};
110  BooleanProperty m_out_of_time_supression{this, "SimpleOutOfTimePileupSupression", false,
111  "Turn this on to turn on the OOT options!"};
113  {this, "SimpleOutOfTimePileupSupressionArgon", false,
114  "Turn this on to turn on the OOT options!"};
115  BooleanProperty m_validity_gate_suppression{this, "ValidityGateSuppression", false,
116  "Turn on suppression using validity gates"};
118  {this, "ValidityGateSuppressionArgon", false, "Turn on suppression using validity gates"};
119  FloatProperty m_low_gate{this, "LowGate", 18.0*CLHEP::ns, "Low value for gate"};
120  FloatProperty m_low_gate_argon{this, "LowGateArgon", 18.0*CLHEP::ns, "Low value for gate"};
121  FloatProperty m_high_gate{this, "HighGate", 38.0*CLHEP::ns, "High value for gate"};
122  FloatProperty m_high_gate_argon{this, "HighGateArgon", 38.0*CLHEP::ns, "High value for gate"};
123 };
124 
125 } // end of namespace
126 
127 #endif // TRT_DriftCircleTool_H
InDet::TRT_DriftCircleTool::passValidityGate
virtual bool passValidityGate(unsigned int word, float lowGate, float highGate, float t0) const override
test validity gate for corrected drift times
Definition: TRT_DriftCircleTool.cxx:103
InDet::TRT_DriftCircleTool::convert
virtual InDet::TRT_DriftCircleCollection * convert(int, const InDetRawDataCollection< TRT_RDORawData > *, const EventContext &ctx, DataPool< TRT_DriftCircle > *dataItemsPool, const bool CTBBadChannels) const override
make the conversion from RDOs to DriftCircles
Definition: TRT_DriftCircleTool.cxx:127
InDet::TRT_DriftCircleTool::m_high_gate_argon
FloatProperty m_high_gate_argon
Definition: TRT_DriftCircleTool.h:122
IInDetConditionsSvc
Definition: IInDetConditionsSvc.h:24
PrepRawDataCLASS_DEF.h
InDet::TRT_DriftCircleTool::m_trtDetEleContKey
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > m_trtDetEleContKey
Definition: TRT_DriftCircleTool.h:80
InDet::TRT_DriftCircleTool::m_max_drift_time_argon
FloatProperty m_max_drift_time_argon
Definition: TRT_DriftCircleTool.h:108
TRT_DetElementContainer.h
InDet::TRT_DriftCircleTool::m_trtid
const TRT_ID * m_trtid
ID helper.
Definition: TRT_DriftCircleTool.h:97
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::TRT_DriftCircleTool::m_ConditionsSummary
ToolHandle< ITRT_StrawStatusSummaryTool > m_ConditionsSummary
Definition: TRT_DriftCircleTool.h:86
InDet::TRT_DriftCircleTool::finalize
virtual StatusCode finalize() override
finalize
Definition: TRT_DriftCircleTool.cxx:95
InDet::TRT_DriftCircleTool::m_low_gate_argon
FloatProperty m_low_gate_argon
Definition: TRT_DriftCircleTool.h:120
ITRT_DriftCircleTool.h
InDet::ITRT_DriftCircleTool
Definition: ITRT_DriftCircleTool.h:37
InDet::TRT_DriftCircleTool::m_validity_gate_suppression
BooleanProperty m_validity_gate_suppression
Definition: TRT_DriftCircleTool.h:115
InDet::TRT_DriftCircleTool::m_useConditionsHTStatus
BooleanProperty m_useConditionsHTStatus
Definition: TRT_DriftCircleTool.h:91
TRT_RDORawData
Definition: TRT_RDORawData.h:24
InDet::TRT_DriftCircleTool::initialize
virtual StatusCode initialize() override
initialize needed services
Definition: TRT_DriftCircleTool.cxx:52
InDet::TRT_DriftCircleTool::~TRT_DriftCircleTool
virtual ~TRT_DriftCircleTool()
destructor
ITRT_StrawStatusSummaryTool.h
abstract interface to TRT straw status constants
InDet::TRT_DriftCircleTool::m_min_trailing_edge_argon
FloatProperty m_min_trailing_edge_argon
Definition: TRT_DriftCircleTool.h:104
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::TRT_DriftCircleTool::m_max_drift_time
FloatProperty m_max_drift_time
Definition: TRT_DriftCircleTool.h:106
AthAlgTool.h
InDet::TRT_DriftCircleTool::m_low_gate
FloatProperty m_low_gate
Definition: TRT_DriftCircleTool.h:119
InDet::TRT_DriftCircleTool::m_useToTCorrection
BooleanProperty m_useToTCorrection
Definition: TRT_DriftCircleTool.h:93
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
InDet::TRT_DriftCircleTool::m_useHTCorrection
BooleanProperty m_useHTCorrection
Definition: TRT_DriftCircleTool.h:95
LuminosityCondData.h
Hold luminosity data produced by LuminosityCondAlg.
InDet::TRT_DriftCircleTool::m_min_trailing_edge
FloatProperty m_min_trailing_edge
Definition: TRT_DriftCircleTool.h:102
InDet::TRT_DriftCircleTool::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: TRT_DriftCircleTool.h:82
ReadCondHandleKey.h
InDet::TRT_DriftCircleTool::m_reject_if_first_bit_argon
BooleanProperty m_reject_if_first_bit_argon
Definition: TRT_DriftCircleTool.h:100
Trk::RIO_OnTrackType::TRT_DriftCircle
@ TRT_DriftCircle
Definition: RIO_OnTrack.h:59
InDet::TRT_DriftCircleTool::m_out_of_time_supression_argon
BooleanProperty m_out_of_time_supression_argon
Definition: TRT_DriftCircleTool.h:113
ITRT_DriftFunctionTool.h
InDet::TRT_DriftCircleCollection
Trk::PrepRawDataCollection< TRT_DriftCircle > TRT_DriftCircleCollection
Definition: TRT_DriftCircleCollection.h:26
InDet::TRT_DriftCircleTool::m_validity_gate_suppression_argon
BooleanProperty m_validity_gate_suppression_argon
Definition: TRT_DriftCircleTool.h:118
InDet::TRT_DriftCircleTool::m_driftFunctionTool
ToolHandle< ITRT_DriftFunctionTool > m_driftFunctionTool
Definition: TRT_DriftCircleTool.h:84
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer >
InDet::TRT_DriftCircleTool::m_high_gate
FloatProperty m_high_gate
Definition: TRT_DriftCircleTool.h:121
TRT_ID
Definition: TRT_ID.h:84
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
InDet::TRT_DriftCircleTool
Definition: TRT_DriftCircleTool.h:47
InDet::TRT_DriftCircleTool::TRT_DriftCircleTool
TRT_DriftCircleTool(const std::string &, const std::string &, const IInterface *)
constructor
Definition: TRT_DriftCircleTool.cxx:34
InDet::TRT_DriftCircleTool::m_reject_if_first_bit
BooleanProperty m_reject_if_first_bit
Definition: TRT_DriftCircleTool.h:98
AthAlgTool
Definition: AthAlgTool.h:26
InDetRawDataCLASS_DEF.h
InDet::TRT_DriftCircleTool::m_useConditionsStatus
BooleanProperty m_useConditionsStatus
Definition: TRT_DriftCircleTool.h:89
InDet::TRT_DriftCircleTool::m_out_of_time_supression
BooleanProperty m_out_of_time_supression
Definition: TRT_DriftCircleTool.h:110