Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Algorithm which selectively copies hits from an input PixelRDO_Container.
More...
#include <PixelDefectsEmulatorAlg.h>
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute (const EventContext &ctx) const override |
|
| DefectsEmulatorBase (const std::string &name, ISvcLocator *pSvcLocator) |
|
StatusCode | initializeBase (unsigned int wafer_hash_max) |
|
virtual StatusCode | finalize () override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
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 | 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 |
|
|
ServiceHandle< ITHistSvc > | m_histSvc {this,"HistSvc","THistSvc"} |
|
Gaudi::Property< std::string > | m_histogramGroupName {this,"HistogramGroupName","", "Histogram group name or empty to disable histogramming"} |
|
Gaudi::Property< std::vector< std::vector< int > > > | m_modulePattern |
|
Gaudi::Property< std::vector< float > > | m_noiseProbability {this,"NoiseProbability",0., "Probability for a cell to produce a spurious hit per module pattern"} |
|
Gaudi::Property< std::vector< std::vector< double > > > | m_noiseShape {this,"NoiseShape",{}, "Shape of noise distribution (e.g. used for Pixel tot distribution or strip time bin distribution."} |
|
std::mutex | m_histMutex |
|
std::vector< unsigned int > m_dimPerHist | ATLAS_THREAD_SAFE |
|
std::array< TH2 *, kNHistTypes > m_moduleHist | ATLAS_THREAD_SAFE {} |
|
std::array< std::vector< TH2 * >, 2 > m_hist | ATLAS_THREAD_SAFE |
|
std::vector< TH1 * > m_noiseShapeHist | ATLAS_THREAD_SAFE |
|
std::atomic< std::size_t > | m_rejectedRDOs {} |
|
std::atomic< std::size_t > | m_totalRDOs {} |
|
std::atomic< std::size_t > | m_splitRDOs {} |
|
std::atomic< std::size_t > | m_totalNoise {} |
|
ToolHandle< IActsTrackingGeometryTool > | m_trackingGeometryTool {this, "TrackingGeometryTool", "ActsTrackingGeometryTool"} |
|
ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} |
|
std::string | m_rngName |
|
std::vector< unsigned short > | m_noiseParamIdx |
|
std::vector< std::vector< float > > | m_noiseShapeCummulative |
|
unsigned int | m_maxNShape {} |
|
bool | m_histogrammingEnabled = false |
|
Algorithm which selectively copies hits from an input PixelRDO_Container.
Hits will be copied unless they are marked as defects in the "defects" conditions data. This is a specialization of DefectsEmulatorAlg for PixelRDOs
Definition at line 62 of file PixelDefectsEmulatorAlg.h.
◆ StoreGateSvc_t
◆ T_DefectsData
◆ T_ID_Adapter
Adapter to support different types of RDO collections, and ID helpers.
Must have the following traits:
- The adapter is constructable from the ID_Helper
- provides methods row_index and column_index to compute the row and column index from an Identifier
- provides a method cloneOrRejectHit which returns the number of newly added hits and takes as arguments: a module helper and matching emulated defects conditions data, a module id hash, a row and column index, the input RDO, and the collection to which the "cloned" RDOs are added.
Definition at line 37 of file DefectsEmulatorAlg.h.
◆ T_ID_Helper
◆ T_ModuleDesign
◆ T_ModuleHelper
◆ T_RDORawData
◆ EHistType
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ DefectsEmulatorBase()
InDet::DefectsEmulatorBase::DefectsEmulatorBase |
|
inherited |
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
◆ extraDeps_update_handler()
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
◆ extraOutputDeps()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ finalize()
StatusCode InDet::DefectsEmulatorBase::finalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ findHist()
std::tuple< TH2 *, TH2 *, TH1 * > InDet::DefectsEmulatorBase::findHist |
( |
unsigned int |
n_rows, |
|
|
unsigned int |
n_cols |
|
) |
| const |
|
protectedinherited |
Get rejected hits and noise histograms for a certain module design.
- Parameters
-
n_rows | the number of rows of the module design |
n_cols | the number of columns of the module design |
- Returns
- rejected_hits per cell, noise per cell, noise shape histograms calls during execute must be protected by m_histMutex
Definition at line 165 of file DefectsEmulatorBase.cxx.
166 unsigned int key=(n_rows << 16) | n_cols;
167 std::vector<unsigned int>::const_iterator iter =
std::find(m_dimPerHist.begin(),m_dimPerHist.end(),
key );
168 if (iter == m_dimPerHist.end()) {
169 if (m_dimPerHist.size() == m_dimPerHist.capacity()) {
170 if (m_dimPerHist.capacity()==0) {
171 return std::make_tuple(
nullptr,
nullptr,
nullptr);
176 m_noiseShapeHist.empty() ?
nullptr : m_noiseShapeHist.back());
182 for (
unsigned int hist_type_i=0; hist_type_i<
kNHistTypes; ++hist_type_i) {
184 name <<
s_histNames.at(hist_type_i) <<
"_hits_" << n_rows <<
"_" << n_cols;
186 title <<
s_histTitles.at(hist_type_i) <<
"hits for " << n_rows <<
"(rows) #times " << n_cols <<
" (columns)";
189 m_hist.at(hist_type_i).push_back(
new TH2F(
name.str().c_str(),
title.str().c_str(),
190 n_cols, -0.5, n_cols-0.5,
191 n_rows, -0.5, n_rows-0.5
194 m_hist[hist_type_i].back()->GetXaxis()->SetTitle(
"offline column");
195 m_hist[hist_type_i].back()->GetYaxis()->SetTitle(
"offline row");
197 throw std::runtime_error(
"Failed to register histogram.");
201 std::stringstream
name;
202 name <<
"noise_shape_" << n_rows <<
"_" << n_cols;
203 std::stringstream
title;
204 title <<
"Noise shape for " << n_rows <<
"(rows) #times " << n_cols <<
" (columns)";
206 m_noiseShapeHist.back()->GetXaxis()->SetTitle(
"offline column");
207 m_noiseShapeHist.back()->GetYaxis()->SetTitle(
"offline row");
209 throw std::runtime_error(
"Failed to register histogram.");
212 m_dimPerHist.push_back(
key);
215 m_noiseShapeHist.empty() ?
nullptr : m_noiseShapeHist.back()
220 return std::make_tuple(m_hist[
kRejectedHits].at(iter-m_dimPerHist.begin()),
222 m_noiseShapeHist.empty() ?
nullptr : m_noiseShapeHist.at(iter-m_dimPerHist.begin()));
◆ initialize()
◆ initializeBase()
StatusCode InDet::DefectsEmulatorBase::initializeBase |
( |
unsigned int |
wafer_hash_max | ) |
|
|
inherited |
Definition at line 25 of file DefectsEmulatorBase.cxx.
29 ATH_MSG_FATAL(
"Number of module patterns and noise probabilities differs: "
31 return StatusCode::FAILURE;
35 ATH_MSG_FATAL(
"Number of noise probabilities and number of noise shapes differs: "
37 return StatusCode::FAILURE;
43 ATH_MSG_FATAL(
"Maximjum wafer hash too large (" << wafer_hash_max
44 <<
"). This algorithm only supports wafer hashes up to "
46 return StatusCode::FAILURE;
50 std::shared_ptr<const Acts::TrackingGeometry> tracking_geometry =
m_trackingGeometryTool->trackingGeometry();
53 std::vector<unsigned int> module_pattern_idx;
60 using Counter =
struct {
unsigned int n_detector_elements, n_missing_detector_elements, n_wrong_type,
61 n_no_matching_pattern, n_detector_elements_of_correct_type; };
63 tracking_geometry->visitSurfaces([&
counter, &module_data, &module_pattern_idx,
this](
const Acts::Surface *surface_ptr) {
64 if (!surface_ptr)
return;
65 const Acts::Surface &surface = *surface_ptr;
66 const Acts::DetectorElementBase*detector_element = surface.associatedDetectorElement();
67 if (detector_element) {
69 if (acts_detector_element) {
72 if (module_pattern_idx.empty()) {
73 ++
counter.n_no_matching_pattern;
78 ++
counter.n_detector_elements_of_correct_type;
87 ++
counter.n_missing_detector_elements;
91 << (
counter.n_missing_detector_elements +
counter.n_detector_elements)
92 <<
" (wrong type " <<
counter.n_wrong_type <<
")"
93 <<
" expected detector type " <<
counter.n_detector_elements_of_correct_type
94 <<
" without match " <<
counter.n_no_matching_pattern);
95 if (
counter.n_missing_detector_elements ||
counter.n_wrong_type>0) {
96 ATH_MSG_ERROR(
"Encountered " <<
counter.n_wrong_type <<
" associated detector elements with wrong type and "
97 <<
counter.n_missing_detector_elements <<
" surfaces without detector element.");
102 unsigned int pattern_i=0;
103 for (
const std::vector<double> &shape :
m_noiseShape.value()) {
106 if (std::abs(
scale-1.)>1
e-5) {
107 ATH_MSG_FATAL(
"Noise shape integral for pattern " << pattern_i <<
" not 1. but " <<
scale);
108 return StatusCode::FAILURE;
112 for (
double value : shape) {
125 constexpr
unsigned int n_different_pixel_matrices_max=6;
126 m_dimPerHist.reserve(n_different_pixel_matrices_max);
127 for (
unsigned int hist_type_i=0; hist_type_i<
kNHistTypes; ++hist_type_i) {
128 m_hist[hist_type_i].reserve(n_different_pixel_matrices_max);
132 m_noiseShapeHist.reserve(n_different_pixel_matrices_max);
134 unsigned int max_y_axis = (((wafer_hash_max+99)/100+9)/10)*10;
135 for (
unsigned int hist_type_i=0; hist_type_i<
kNHistTypes; ++hist_type_i) {
138 hist_name <<
s_histNames.at(hist_type_i) <<
"_hits_per_module";
140 hist_title <<
s_histTitles.at(hist_type_i) <<
" hits per module";
143 m_moduleHist.at(hist_type_i) =
new TH2F(hist_name.
str().c_str(), hist_title.
str().c_str(),
145 max_y_axis, -0.5, max_y_axis-0.5
148 m_moduleHist[hist_type_i]->GetXaxis()->SetTitle(
"ID hash % 100");
149 m_moduleHist[hist_type_i]->GetYaxis()->SetTitle(
"ID hash / 100");
151 return StatusCode::FAILURE;
156 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ isClonable()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ setFilterPassed()
◆ setModuleData()
|
overrideprotectedvirtualinherited |
Set the module data for matching for the given detector element.
- Parameters
-
acts_detector_element | the detector element in question |
module_data | destination for the module data for matching |
- Returns
- True if the given module is to be considered for matching. The implementation has to ensure that only modules are considered which have unique identifier hashes i.e. modules of one detector type.
Implements InDet::DefectsEmulatorBase.
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ ATLAS_THREAD_SAFE [1/4]
std::vector<unsigned int> m_dimPerHist InDet::DefectsEmulatorBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [2/4]
std::array<TH2 *,kNHistTypes> m_moduleHist InDet::DefectsEmulatorBase::ATLAS_THREAD_SAFE {} |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [3/4]
std::array<std::vector< TH2 *>,2> m_hist InDet::DefectsEmulatorBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [4/4]
std::vector< TH1 *> m_noiseShapeHist InDet::DefectsEmulatorBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ DETECTOR_TYPE
◆ m_detStore
◆ m_emulatedDefects
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_histMutex
std::mutex InDet::DefectsEmulatorBase::m_histMutex |
|
mutableprotectedinherited |
◆ m_histogramGroupName
Gaudi::Property<std::string> InDet::DefectsEmulatorBase::m_histogramGroupName {this,"HistogramGroupName","", "Histogram group name or empty to disable histogramming"} |
|
protectedinherited |
◆ m_histogrammingEnabled
bool InDet::DefectsEmulatorBase::m_histogrammingEnabled = false |
|
protectedinherited |
◆ m_histSvc
ServiceHandle<ITHistSvc> InDet::DefectsEmulatorBase::m_histSvc {this,"HistSvc","THistSvc"} |
|
protectedinherited |
◆ m_idHelper
◆ m_idHelperName
◆ m_maxNShape
unsigned int InDet::DefectsEmulatorBase::m_maxNShape {} |
|
protectedinherited |
◆ m_modulePattern
Gaudi::Property<std::vector<std::vector<int> > > InDet::DefectsEmulatorBase::m_modulePattern |
|
protectedinherited |
Initial value:{this,"ModulePatterns", {},
"Integer ranges to select: (0-1) barrel/end-cap range, (2-3) layer, (4-5) eta index range, (6-7) phi index range, "
"(8-9) module number of columns or strips, (10) both sides (0,1), (11) all rows (0,1)" }
Definition at line 61 of file DefectsEmulatorBase.h.
◆ m_noiseParamIdx
std::vector<unsigned short> InDet::DefectsEmulatorBase::m_noiseParamIdx |
|
protectedinherited |
◆ m_noiseProbability
Gaudi::Property<std::vector<float> > InDet::DefectsEmulatorBase::m_noiseProbability {this,"NoiseProbability",0., "Probability for a cell to produce a spurious hit per module pattern"} |
|
protectedinherited |
◆ m_noiseShape
Gaudi::Property<std::vector<std::vector<double> > > InDet::DefectsEmulatorBase::m_noiseShape {this,"NoiseShape",{}, "Shape of noise distribution (e.g. used for Pixel tot distribution or strip time bin distribution."} |
|
protectedinherited |
◆ m_noiseShapeCummulative
std::vector<std::vector<float> > InDet::DefectsEmulatorBase::m_noiseShapeCummulative |
|
protectedinherited |
◆ m_origRdoContainerKey
◆ m_rdoOutContainerKey
◆ m_rejectedRDOs
std::atomic<std::size_t> InDet::DefectsEmulatorBase::m_rejectedRDOs {} |
|
mutableprotectedinherited |
◆ m_rndmSvc
◆ m_rngName
std::string InDet::DefectsEmulatorBase::m_rngName |
|
protectedinherited |
◆ m_splitRDOs
std::atomic<std::size_t> InDet::DefectsEmulatorBase::m_splitRDOs {} |
|
mutableprotectedinherited |
◆ m_totalNoise
std::atomic<std::size_t> InDet::DefectsEmulatorBase::m_totalNoise {} |
|
mutableprotectedinherited |
◆ m_totalRDOs
std::atomic<std::size_t> InDet::DefectsEmulatorBase::m_totalRDOs {} |
|
mutableprotectedinherited |
◆ m_trackingGeometryTool
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ s_histNames
◆ s_histTitles
The documentation for this class was generated from the following file:
ServiceHandle< ITHistSvc > m_histSvc
std::string find(const std::string &s)
return a remapped string
std::atomic< std::size_t > m_totalRDOs
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
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)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
@ u
Enums for curvilinear frames.
virtual bool setModuleData(const ActsDetectorElement &acts_detector_element, ModuleIdentifierMatchUtil::ModuleData_t &module_data) const =0
Set the module data for matching for the given detector element.
Gaudi::Property< std::vector< std::vector< double > > > m_noiseShape
virtual void setOwner(IDataHandleHolder *o)=0
An algorithm that can be simultaneously executed in multiple threads.
static const std::array< std::string_view, kNHistTypes > s_histNames
std::array< int, ModuleIdentifierMatchUtil::kAllRows/2 > ModuleData_t
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Gaudi::Property< std::vector< float > > m_noiseProbability
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
std::vector< std::vector< float > > m_noiseShapeCummulative
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
bool m_histogrammingEnabled
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
static const std::array< std::string_view, kNHistTypes > s_histTitles
std::atomic< std::size_t > m_splitRDOs
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::atomic< std::size_t > m_totalNoise
std::string to_string(const DetectorType &type)
IdentifierHash identifyHash() const
Identifier hash.
Gaudi::Property< std::vector< std::vector< int > > > m_modulePattern
void moduleMatches(const std::vector< std::vector< int > > &module_pattern, const ModuleData_t &module_data, std::vector< unsigned int > &module_pattern_idx)
Test whether an identifier, which is split into various parts, matches some of the given patterns.
ServiceHandle< IAthRNGSvc > m_rndmSvc
bool empty() const noexcept
Gaudi::Property< std::string > m_histogramGroupName
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode sysInitialize() override
Override sysInitialize.
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
std::atomic< std::size_t > m_rejectedRDOs
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::vector< unsigned short > m_noiseParamIdx
const std::string & str() const