 |
ATLAS Offline Software
|
Conditions algorithms for emulating ITK strip defects.
More...
#include <StripDefectsEmulatorCondAlg.h>
|
virtual StatusCode | initialize () override final |
|
virtual StatusCode | execute (const EventContext &ctx) const override |
|
| DefectsEmulatorCondAlgBase (const std::string &name, ISvcLocator *pSvcLocator) |
|
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, V, H > &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 |
|
|
enum | DefectTypes { kModuleDefects,
kCornerDefects,
kMaskDefects
} |
|
enum | EProbabilities { kModuleDefectProb,
kCellDefectProb,
kNProb
} |
|
enum | ECornerDefectParams {
kCornerDefectProb,
kCornerDefectWidthColumnDirectionOffset,
kCornerDefectWidthColumnDirection,
kCornerDefectkWidthRowDirectionOffset,
kCornerDefectkWidthRowDirection,
kCornerDefectkSagittaOffset,
kCornerDefectkSagitta,
kNCornerDefectParams
} |
|
enum | ECounts {
kNElements,
kNDefects,
kNRetries,
kNMaxRtriesExceeded,
kNModulesWithDefects,
kMaxDefectsPerModule,
kNCounts
} |
|
enum | EPosHistType { kDefectModulePos,
kModulesWithDefectsPos,
kNPosHists
} |
|
enum | EPerModuleHistType { kMatrixTypeId,
kDefectModule,
kDefectCell,
kNPerModuleHistTypes
} |
|
|
std::unordered_multimap< unsigned int, unsigned int > | getModuleConnectionMap (const InDetDD::SiDetectorElementCollection &det_ele_coll) const |
| Return the map which defines which modules are connected to the same sensor as a reference module. More...
|
|
bool | isModuleDefect (const EventContext &ctx, unsigned int id_hash) const |
| Alternative method to declare strip modules as defect. More...
|
|
const StripDefectsEmulatorCondAlg & | derived () const |
|
StatusCode | initializeBase (unsigned int n_masks, unsigned int wafer_hash_max) |
|
StatusCode | initializeProbabilities (unsigned int n_masks) |
|
StatusCode | initializeCornerDefects () |
|
StatusCode | checkProbabilities (unsigned int n_probabilities) const |
| Consistency check of module patterns, probabilities. More...
|
|
double | totalProbability (const std::vector< unsigned int > &module_pattern_idx, unsigned int prob_idx) const |
| Compute the total probability using the probabilities associated to the given list of patterns. More...
|
|
void | makeCumulativeProbabilityDist (std::vector< unsigned int > &module_pattern_idx, unsigned int prob_idx, std::vector< double > &cumulative_prob) const |
| Create a cumulative distribution from the referenced set of probabilities. More...
|
|
unsigned int | throwNumberOfDefects (std::span< CLHEP::HepRandomEngine * > rndmEngine, const std::vector< unsigned int > &module_pattern_idx, unsigned int n_masks, unsigned int n_cells, std::vector< unsigned int > &n_mask_defects) const |
|
void | printSummaryOfDefectGeneration (unsigned int n_masks, unsigned int n_error, unsigned int n_defects_total, const std::vector< std::array< unsigned int, kNCounts > > &counts) const |
|
std::pair< unsigned int, unsigned int > | findHist (unsigned int pattern_i, unsigned int n_rows, unsigned int n_cols) const |
|
void | histogramDefectModule (unsigned int module_pattern_i, unsigned int hist_pattern_i, unsigned int id_hash, const Amg::Vector3D ¢er) const |
|
void | fillPerModuleHistograms (unsigned int module_pattern_i, unsigned int pattern_hist_i, unsigned int matrix_histogram_index, unsigned int matrix_index, unsigned int module_i, unsigned int n_masks, const std::vector< unsigned int > &n_mask_defects, const Amg::Vector3D ¢er) const |
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
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) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
|
ToolHandle< ISCT_ConditionsTool > | m_moduleVetoTool {this,"SCTConditionsTool","","Optional SCT conditions tool to mark modules as defect (alternative to ModulePattern)"} |
|
SG::ReadCondHandleKey< T_DetectorElementCollection > | m_detEleCollKey |
|
SG::WriteCondHandleKey< T_EmulatedDefects > | m_writeKey |
|
Gaudi::Property< std::string > | m_idName |
|
const T_ID * | m_idHelper |
|
ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} |
|
Gaudi::Property< std::vector< std::vector< int > > > | m_modulePattern |
|
Gaudi::Property< std::vector< std::vector< double > > > | m_defectProbability |
|
Gaudi::Property< std::vector< std::vector< double > > > | m_nDefectFractionsPerPattern |
|
Gaudi::Property< std::vector< std::vector< double > > > | m_cornerDefectParamsPerPattern |
|
Gaudi::Property< std::vector< std::vector< double > > > | m_cornerDefectNCornerFractionsPerPattern |
|
std::vector< std::vector< std::vector< float > > > | m_perPatternAndMaskFractions |
|
std::vector< std::vector< float > > | m_perPatternCornerDefectNCornerCummulativeProb |
|
Gaudi::Property< bool > | m_rngPerDefectType {this, "RngPerDefectType", false, "One RNG per defect type to decorrelate randomness of defects."} |
|
Gaudi::Property< bool > | m_oddRowToggle {this, "OddRowToggle", false} |
|
Gaudi::Property< bool > | m_oddColToggle {this, "OddColToggle", false} |
|
Gaudi::Property< bool > | m_checkerBoardToggle {this, "CheckerBoardDefects", false} |
|
Gaudi::Property< unsigned int > | m_maxAttempts {this, "MaxRandomPositionAttempts", 10} |
|
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< bool > | m_fillHistogramsPerPattern {this, "FillHistogramsPerPattern", false, "If true, histogram per module defects etc. separately per pattern."} |
|
Gaudi::Property< bool > | m_fillEtaPhiHistogramsPerPattern {this, "FillEtaPhiHistogramsPerPattern", false, "If true, histogram per eta, phi amd z, R are filled separately per pattern."} |
|
Gaudi::Property< std::string > | m_outputFile {this,"DefectsOutputFile","", "Empty or file name to write out conditions data (.json or .root)."} |
|
Gaudi::Property< std::vector< std::string > > | m_inputFiles {this,"DefectsInputFiles",{}, "Empty or file name to write out conditions data (.json or .root)."} |
|
std::vector< std::string > | m_rngName |
|
std::vector< std::string > | m_groupDefectHistNames |
|
std::vector< unsigned int > | m_maxNGroupDefects |
|
std::mutex | m_histMutex |
|
std::vector< unsigned int > m_matrixTypeId | ATLAS_THREAD_SAFE |
|
std::vector< std::vector< unsigned int > > m_dimPerHist | ATLAS_THREAD_SAFE |
|
std::vector< std::vector< TH2 * > > m_hist | ATLAS_THREAD_SAFE |
|
std::vector< std::vector< std::vector< TH1 * > > > m_groupDefectHists | ATLAS_THREAD_SAFE |
|
std::vector< std::vector< TH2 * > > m_moduleHist | ATLAS_THREAD_SAFE |
|
std::array< std::vector< TH2 * >, kNPosHists > m_defectModuleEtaPhiHist | ATLAS_THREAD_SAFE |
|
std::array< std::vector< TH2 * >, kNPosHists > m_defectModuleEtaLayerHist | ATLAS_THREAD_SAFE |
|
std::atomic< unsigned int > | m_modulesWithoutDefectParameters {} |
|
bool | m_histogrammingEnabled = false |
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Conditions algorithms for emulating ITK strip defects.
The algorithm mask random strips and modules as defect. This data can be used to reject hits overlapping with these defects.
Definition at line 38 of file StripDefectsEmulatorCondAlg.h.
◆ StoreGateSvc_t
◆ T_DetectorElementCollection
◆ T_EmulatedDefects
◆ T_ID
◆ T_ModuleDesign
◆ T_ModuleHelper
◆ DefectTypes
◆ ECornerDefectParams
Enumerator |
---|
kCornerDefectProb | |
kCornerDefectWidthColumnDirectionOffset | |
kCornerDefectWidthColumnDirection | |
kCornerDefectkWidthRowDirectionOffset | |
kCornerDefectkWidthRowDirection | |
kCornerDefectkSagittaOffset | |
kCornerDefectkSagitta | |
kNCornerDefectParams | |
Definition at line 112 of file DefectsEmulatorCondAlgBase.h.
◆ ECounts
Enumerator |
---|
kNElements | |
kNDefects | |
kNRetries | |
kNMaxRtriesExceeded | |
kNModulesWithDefects | |
kMaxDefectsPerModule | |
kNCounts | |
Definition at line 159 of file DefectsEmulatorCondAlgBase.h.
◆ EPerModuleHistType
◆ EPosHistType
◆ EProbabilities
◆ 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.
◆ checkProbabilities()
StatusCode InDet::DefectsEmulatorCondAlgBase::checkProbabilities |
( |
unsigned int |
n_probabilities | ) |
const |
|
protectedinherited |
Consistency check of module patterns, probabilities.
Definition at line 188 of file DefectsEmulatorCondAlgBase.cxx.
191 && ModuleIdentifierMatchUtil::verifyElementCount<double>(
m_defectProbability.value(), n_probabilities))) {
197 ATH_MSG_ERROR(
"Order problem in modulePattern : " << ret <<
"?");
199 ret = ModuleIdentifierMatchUtil::verifyElementCount<double>(
m_defectProbability.value(), n_probabilities);
201 ATH_MSG_ERROR(
"Size problem in defectProbability : " << ret <<
" ( n_prob" << n_probabilities <<
")?");
206 && ModuleIdentifierMatchUtil::verifyElementCount<double>(
m_defectProbability.value(), n_probabilities)
207 ? StatusCode::SUCCESS : StatusCode::FAILURE;
◆ 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]
◆ DefectsEmulatorCondAlgBase()
InDet::DefectsEmulatorCondAlgBase::DefectsEmulatorCondAlgBase |
|
inherited |
◆ derived()
◆ 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.
◆ fillPerModuleHistograms()
void InDet::DefectsEmulatorCondAlgBase::fillPerModuleHistograms |
( |
unsigned int |
module_pattern_i, |
|
|
unsigned int |
pattern_hist_i, |
|
|
unsigned int |
matrix_histogram_index, |
|
|
unsigned int |
matrix_index, |
|
|
unsigned int |
module_i, |
|
|
unsigned int |
n_masks, |
|
|
const std::vector< unsigned int > & |
n_mask_defects, |
|
|
const Amg::Vector3D & |
center |
|
) |
| const |
|
protectedinherited |
Definition at line 505 of file DefectsEmulatorCondAlgBase.cxx.
516 assert( pattern_hist_i < m_moduleHist.size());
519 unsigned int ids_per_col =
static_cast<unsigned int>(m_moduleHist[pattern_hist_i][
kDefectModule]->GetNbinsX());
520 unsigned int bin_i=m_moduleHist[pattern_hist_i][
kDefectModule]->GetBin( module_i%ids_per_col+1, module_i/ids_per_col+1);
521 unsigned int mask_i=n_masks;
522 for (; --mask_i>0; ) {
523 assert( mask_i < n_mask_defects.size() && mask_i>0);
524 if (!m_groupDefectHists.empty()) {
525 m_groupDefectHists[pattern_hist_i][matrix_histogram_index][mask_i-1]->Fill(n_mask_defects[mask_i]);
528 m_moduleHist[pattern_hist_i][
kDefectCell+mask_i]->SetBinContent(bin_i, n_mask_defects[mask_i]);
531 m_moduleHist[pattern_hist_i][
kDefectCell+mask_i]->SetBinContent(bin_i, n_mask_defects[mask_i]);
532 m_moduleHist[pattern_hist_i][
kMatrixTypeId]->SetBinContent(bin_i, matrix_index+1 );
533 unsigned int n_defects_total =
std::accumulate(n_mask_defects.begin(),n_mask_defects.end(), 0
u);
534 if (n_defects_total>0) {
539 m_defectModuleEtaLayerHist[
kModulesWithDefectsPos][eta_phi_pattern_i]->Fill(center.x(), center.y(),n_defects_total);
◆ filterPassed()
◆ finalize()
StatusCode InDet::DefectsEmulatorCondAlgBase::finalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ findHist()
std::pair< unsigned int, unsigned int > InDet::DefectsEmulatorCondAlgBase::findHist |
( |
unsigned int |
pattern_i, |
|
|
unsigned int |
n_rows, |
|
|
unsigned int |
n_cols |
|
) |
| const |
|
protectedinherited |
Definition at line 296 of file DefectsEmulatorCondAlgBase.cxx.
297 unsigned int key=(n_rows << 16) | n_cols;
298 assert( pattern_i < m_dimPerHist.size());
299 assert( pattern_i < m_hist.size());
300 unsigned int matrix_type_id;
302 std::vector<unsigned int>::const_iterator global_iter =
std::find(m_matrixTypeId.begin(), m_matrixTypeId.end(),
key );
303 if (global_iter != m_matrixTypeId.end()) {
304 matrix_type_id = global_iter - m_matrixTypeId.begin();
307 matrix_type_id =m_matrixTypeId.size();
308 m_matrixTypeId.push_back(
key);
312 std::vector<unsigned int>::const_iterator
iter =
std::find(m_dimPerHist[pattern_i].
begin(), m_dimPerHist[pattern_i].
end(),
key );
313 if (
iter == m_dimPerHist[pattern_i].
end()) {
315 name <<
"defects_" << pattern_i <<
"_" << (matrix_type_id) <<
"_" << n_rows <<
"_" << n_cols;
317 title <<
"Defects for " << n_rows <<
"(rows) #times " << n_cols <<
" (columns) ID " << (matrix_type_id) <<
", pattern " << pattern_i;
320 m_hist[pattern_i].push_back(
new TH2F(
name.str().c_str(),
title.str().c_str(),
321 n_cols, -0.5, n_cols-0.5,
322 n_rows, -0.5, n_rows-0.5
325 m_hist[pattern_i].back()->GetXaxis()->SetTitle(
"offline column");
326 m_hist[pattern_i].back()->GetYaxis()->SetTitle(
"offline row");
328 throw std::runtime_error(
"Failed to register histogram.");
330 m_dimPerHist[pattern_i].push_back(
key);
332 if (!m_groupDefectHists.empty()) {
333 assert( pattern_i < m_groupDefectHists.size());
335 m_groupDefectHists[pattern_i].emplace_back();
340 hname <<
"n_" <<
group_name <<
"_" << pattern_i <<
"_" << matrix_type_id <<
"_" << n_rows <<
"_" << n_cols;
342 htitle <<
"Number of " <<
group_name <<
" defects for " << n_rows <<
"(rows) #times " << n_cols <<
" (columns) ID "
343 << (matrix_type_id) <<
", pattern " << pattern_i;
347 assert(group_i < m_groupDefectHists[pattern_i].back().
size());
348 m_groupDefectHists[pattern_i].back()[group_i]=
new TH1F(
hname.str().c_str(), htitle.
str().c_str(),
352 m_groupDefectHists[pattern_i].back()[group_i]).isFailure() ) {
353 throw std::runtime_error(
"Failed to register histogram.");
357 return std::make_pair(
static_cast<unsigned int>(m_hist[pattern_i].
size()-1), matrix_type_id);
360 return std::make_pair(
static_cast<unsigned int>(
iter-m_dimPerHist[pattern_i].
begin()), matrix_type_id);
◆ getModuleConnectionMap()
Return the map which defines which modules are connected to the same sensor as a reference module.
Definition at line 57 of file StripDefectsEmulatorCondAlg.h.
◆ histogramDefectModule()
void InDet::DefectsEmulatorCondAlgBase::histogramDefectModule |
( |
unsigned int |
module_pattern_i, |
|
|
unsigned int |
hist_pattern_i, |
|
|
unsigned int |
id_hash, |
|
|
const Amg::Vector3D & |
center |
|
) |
| const |
|
protectedinherited |
Definition at line 490 of file DefectsEmulatorCondAlgBase.cxx.
494 assert( hist_pattern_i < m_moduleHist.size() );
495 unsigned int ids_per_col =
static_cast<unsigned int>(m_moduleHist[hist_pattern_i][
kDefectModule]->GetNbinsX());
496 unsigned int bin_i=m_moduleHist[hist_pattern_i][
kDefectModule]->GetBin( id_hash%ids_per_col+1, id_hash/ids_per_col+1);
497 m_moduleHist[hist_pattern_i][
kDefectModule]->SetBinContent(bin_i,1);
501 m_defectModuleEtaPhiHist[
kDefectModulePos][eta_phi_pattern_i]->Fill(center.z(), center.perp());
502 m_defectModuleEtaLayerHist[
kDefectModulePos][eta_phi_pattern_i]->Fill(center.x(), center.y());
◆ IDName()
static std::string InDet::StripDefectsEmulatorCondAlg::IDName |
( |
| ) |
|
|
inlinestaticprotected |
◆ initialize()
StatusCode InDet::StripDefectsEmulatorCondAlg::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ initializeBase()
StatusCode InDet::DefectsEmulatorCondAlgBase::initializeBase |
( |
unsigned int |
n_masks, |
|
|
unsigned int |
wafer_hash_max |
|
) |
| |
|
protectedinherited |
Definition at line 27 of file DefectsEmulatorCondAlgBase.cxx.
33 for (
unsigned int mask_i=0; mask_i<n_masks; ++mask_i) {
34 std::stringstream rng_name;
35 rng_name <<
name() <<
"RngMaskDefect" << mask_i;
47 return StatusCode::FAILURE;
52 return StatusCode::FAILURE;
62 constexpr
unsigned int n_different_matrices_max=6;
63 m_dimPerHist.resize(n_pattern_for_histogramming);
64 m_hist.resize(n_pattern_for_histogramming);
66 m_groupDefectHists.resize(n_pattern_for_histogramming);
68 for (
unsigned int pattern_i=0; pattern_i < n_pattern_for_histogramming; ++pattern_i) {
69 m_dimPerHist[pattern_i].reserve(n_different_matrices_max);
70 m_hist[pattern_i].reserve(n_different_matrices_max);
72 std::vector<std::string> hist_name {
73 "matrix_type_id_per_module;Matrix type ID per module",
74 "defect_module;Module is defect",
75 "defects_per_module;Defect cells per module"};
79 hist_name.push_back(
hname.str());
81 m_moduleHist.resize(n_pattern_for_histogramming);
82 unsigned int max_y_axis = (((wafer_hash_max+99)/100+9)/10)*10;
84 for (
unsigned int pattern_i=0; pattern_i<m_moduleHist.size(); ++pattern_i) {
85 m_moduleHist.at(pattern_i).resize(hist_name.size(),
nullptr);
86 for (
unsigned int hist_i=0; hist_i<hist_name.size(); ++hist_i) {
88 std::string::size_type
pos = hist_name.at(hist_i).find(
";");
90 a_name << hist_name[hist_i].substr(0, (
pos != std::string::npos ?
pos : hist_name[hist_i].
size())) <<
"_" << pattern_i;
92 a_title << hist_name[hist_i].substr((
pos != std::string::npos ?
pos+1 : 0), hist_name[hist_i].size())
93 <<
" ( module pattern " << pattern_i <<
")";
96 m_moduleHist.at(pattern_i).at(hist_i) =
new TH2F(a_name.
str().c_str(), a_title.
str().c_str(),
98 max_y_axis, -0.5, max_y_axis-0.5);
100 m_moduleHist[pattern_i][hist_i]->GetXaxis()->SetTitle(
"ID hash % 100");
101 m_moduleHist[pattern_i][hist_i]->GetYaxis()->SetTitle(
"ID hash / 100");
102 ATH_MSG_VERBOSE(
"Create histogram pattern " << pattern_i <<
" hist " << hist_i <<
" name " << a_name.
str().c_str()
103 <<
" -> " << m_moduleHist[pattern_i][hist_i]->GetName());
105 m_moduleHist[pattern_i][hist_i]).isFailure() ) {
106 return StatusCode::FAILURE;
112 for (
unsigned int pos_i=0; pos_i<m_defectModuleEtaPhiHist.size(); ++pos_i) {
113 m_defectModuleEtaPhiHist.at(pos_i).resize(n_eta_phi_histograms,
nullptr);
114 m_defectModuleEtaLayerHist.at(pos_i).resize(n_eta_phi_histograms,
nullptr);
116 std::array<std::string_view, kNPosHists> pos_hist_name {
118 "modules_with_defects"
120 std::array<std::string_view, kNPosHists> pos_hist_title {
122 "Modules with defects"
124 for (
unsigned pattern_i=0; pattern_i< n_eta_phi_histograms; ++pattern_i) {
125 for (
unsigned int pos_i=0; pos_i<m_defectModuleEtaPhiHist.size(); ++pos_i) {
128 a_name << pos_hist_name.at(pos_i) <<
"_zr" <<
"_" << pattern_i;
130 a_title << pos_hist_title.at(pos_i) <<
" vs global zr" <<
" ( module pattern " << pattern_i <<
")";
133 m_defectModuleEtaPhiHist.at(pos_i).at(pattern_i) =
new TH2F(a_name.
str().c_str(), a_title.
str().c_str(),
139 m_defectModuleEtaPhiHist.at(pos_i).at(pattern_i)).isFailure() ) {
140 return StatusCode::FAILURE;
145 a_name << pos_hist_name.at(pos_i) <<
"_xy" <<
"_" << pattern_i;
147 a_title << pos_hist_title.at(pos_i) <<
" vs global xy" <<
" ( module pattern " << pattern_i <<
")";
150 m_defectModuleEtaLayerHist.at(pos_i).at(pattern_i) =
new TH2F(a_name.
str().c_str(), a_title.
str().c_str(),
156 m_defectModuleEtaLayerHist.at(pos_i).at(pattern_i)).isFailure() ) {
157 return StatusCode::FAILURE;
166 for (
unsigned int mask_i=0; mask_i<n_masks-1; ++mask_i) {
172 ATH_MSG_FATAL(
"m_groupDefectHistNames does not contain a name per mask starting from the second mask "
173 "(the first mask must be the full matrix)");
174 return StatusCode::FAILURE;
177 ATH_MSG_FATAL(
"m_maxNGroupDefects does not contain a upper bin value for number of expected defects "
178 "per mask starting from the second mask (the first mask must be the full matrix)");
179 return StatusCode::FAILURE;
184 return StatusCode::SUCCESS;
◆ initializeCornerDefects()
StatusCode InDet::DefectsEmulatorCondAlgBase::initializeCornerDefects |
( |
| ) |
|
|
protectedinherited |
Definition at line 443 of file DefectsEmulatorCondAlgBase.cxx.
446 ATH_MSG_ERROR(
"Expected exactly one set of corner defect parameters per module pattern but the numbers disagree "
448 return StatusCode::FAILURE;
451 ATH_MSG_ERROR(
"Expected exactly one set of n corner fractions per module pattern but the numbers disagree "
453 return StatusCode::FAILURE;
461 return StatusCode::FAILURE;
464 ATH_MSG_ERROR(
"Too many Fractions for corner defects for pattern " << pattern_i <<
467 return StatusCode::FAILURE;
472 if (std::abs(
scale-1.)>1
e-3) {
474 <<
" corner(s) for pattern " << pattern_i <<
" do not add up to ~1 but " <<
scale);
475 return StatusCode::FAILURE;
481 total += fraction *
scale;
486 return StatusCode::SUCCESS;
◆ initializeProbabilities()
StatusCode InDet::DefectsEmulatorCondAlgBase::initializeProbabilities |
( |
unsigned int |
n_masks | ) |
|
|
protectedinherited |
Definition at line 373 of file DefectsEmulatorCondAlgBase.cxx.
376 ATH_MSG_ERROR(
"The number of fraction lists per pattern does not match the number of module patterns: "
378 return StatusCode::FAILURE;
381 ATH_MSG_ERROR(
"The number of probability lists per pattern does not match the number of module patterns: "
383 return StatusCode::FAILURE;
390 ATH_MSG_ERROR(
"There should be one probability for the module to be defect, one probability for a pixel/strip etc. "
391 "to be defect and one probability for each group to be defect i.e. "
394 return StatusCode::FAILURE;
403 <<
" for pattern " << pattern_i);
404 return StatusCode::FAILURE;
418 ATH_MSG_ERROR(
"Empty fraction list or fractions do not add up to 1: "
421 <<
" for pattern " << pattern_i <<
", mask " << mask_i
423 return StatusCode::FAILURE;
425 ATH_MSG_DEBUG(
"Fractions for pattern " << pattern_i <<
" mask " << mask_i
433 ATH_MSG_DEBUG(
"Probabilities for pattern " << pattern_i <<
" mask " << mask_i
◆ 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()
◆ isModuleDefect()
bool InDet::StripDefectsEmulatorCondAlg::isModuleDefect |
( |
const EventContext & |
ctx, |
|
|
unsigned int |
id_hash |
|
) |
| const |
|
inlineprotected |
Alternative method to declare strip modules as defect.
If the module veto tool is enabled, the tool can be used alternatively to declare strip modules as defect.
Definition at line 63 of file StripDefectsEmulatorCondAlg.h.
◆ makeCumulativeProbabilityDist()
void InDet::DefectsEmulatorCondAlgBase::makeCumulativeProbabilityDist |
( |
std::vector< unsigned int > & |
module_pattern_idx, |
|
|
unsigned int |
prob_idx, |
|
|
std::vector< double > & |
cumulative_prob |
|
) |
| const |
|
inlineprotectedinherited |
Create a cumulative distribution from the referenced set of probabilities.
- Parameters
-
module_pattern_idx | index of patterns for which the associated probabilities are to be considered |
prob_idx | the index of the probability (e.g. module defect probability, single element defect probability) |
cumulative_prob | output vector to be filled with the cumulative_distribution in ascending order Create a cumulative distributions using the specified probabilities associated to each pattern referenced by module_pattern_idx |
Definition at line 147 of file DefectsEmulatorCondAlgBase.h.
150 cumulative_prob.clear();
151 double total_prob=0.f;
152 for (
unsigned int pattern_i : module_pattern_idx) {
155 cumulative_prob.push_back(total_prob);
◆ 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.
◆ printSummaryOfDefectGeneration()
void InDet::DefectsEmulatorCondAlgBase::printSummaryOfDefectGeneration |
( |
unsigned int |
n_masks, |
|
|
unsigned int |
n_error, |
|
|
unsigned int |
n_defects_total, |
|
|
const std::vector< std::array< unsigned int, kNCounts > > & |
counts |
|
) |
| const |
|
protectedinherited |
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
◆ 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.
◆ throwNumberOfDefects()
unsigned int InDet::DefectsEmulatorCondAlgBase::throwNumberOfDefects |
( |
std::span< CLHEP::HepRandomEngine * > |
rndmEngine, |
|
|
const std::vector< unsigned int > & |
module_pattern_idx, |
|
|
unsigned int |
n_masks, |
|
|
unsigned int |
n_cells, |
|
|
std::vector< unsigned int > & |
n_mask_defects |
|
) |
| const |
|
protectedinherited |
Definition at line 218 of file DefectsEmulatorCondAlgBase.cxx.
224 n_mask_defects.clear();
225 n_mask_defects.resize(n_masks, 0
u);
229 std::vector<bool> has(n_masks,
false);
230 for (
unsigned int mask_i=n_masks; mask_i-->1; ) {
231 for (
unsigned int match_i: module_pattern_idx) {
240 for (
unsigned int mask_i=n_masks; mask_i-->1; ) {
241 assert(mask_i>0 && mask_i<rndmEngine.size());
242 float prob = !has.at(mask_i) ? 1. : CLHEP::RandFlat::shoot(rndmEngine[mask_i],1.);
244 for (
unsigned int match_i: module_pattern_idx) {
248 n_mask_defects[mask_i] = n_mask_defects_idx+1;
253 if (
prob<=0.
f)
break;
257 n_mask_defects[0]=
static_cast<unsigned int>(
std::max(0,
static_cast<int>(
258 CLHEP::RandPoisson::shoot(rndmEngine[0],
259 n_cells * defect_prob))));
◆ totalProbability()
double InDet::DefectsEmulatorCondAlgBase::totalProbability |
( |
const std::vector< unsigned int > & |
module_pattern_idx, |
|
|
unsigned int |
prob_idx |
|
) |
| const |
|
inlineprotectedinherited |
Compute the total probability using the probabilities associated to the given list of patterns.
- Parameters
-
module_pattern_idx | the index of the patterns |
the | index of the probabilities to be used (e.g. module defect probability, single element defect probability) |
- Returns
- sum of the referenced probabilities.
Definition at line 132 of file DefectsEmulatorCondAlgBase.h.
134 for (
unsigned int pattern_i : module_pattern_idx) {
◆ updateVHKA()
◆ DefectsEmulatorCondAlgImpl< StripDefectsEmulatorCondAlg >
◆ ATLAS_THREAD_SAFE [1/7]
std::vector<unsigned int> m_matrixTypeId InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [2/7]
std::vector<std::vector<unsigned int> > m_dimPerHist InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [3/7]
std::vector< std::vector< TH2 *> > m_hist InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [4/7]
std::vector< std::vector<std::vector< TH1 *> > > m_groupDefectHists InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [5/7]
std::vector< std::vector< TH2 *> > m_moduleHist InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [6/7]
std::array<std::vector<TH2 *>,kNPosHists> m_defectModuleEtaPhiHist InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ ATLAS_THREAD_SAFE [7/7]
std::array<std::vector<TH2 *>,kNPosHists> m_defectModuleEtaLayerHist InDet::DefectsEmulatorCondAlgBase::ATLAS_THREAD_SAFE |
|
mutableprotectedinherited |
◆ m_checkerBoardToggle
Gaudi::Property<bool> InDet::DefectsEmulatorCondAlgBase::m_checkerBoardToggle {this, "CheckerBoardDefects", false} |
|
protectedinherited |
◆ m_cornerDefectNCornerFractionsPerPattern
Gaudi::Property<std::vector<std::vector<double> > > InDet::DefectsEmulatorCondAlgBase::m_cornerDefectNCornerFractionsPerPattern |
|
protectedinherited |
Initial value:{this,"NCornerDefectFractionsPerPattern", {},
"List of fractions per pattern for exactly 1 to 4 corner defects under the codition that there is a defect." }
Definition at line 64 of file DefectsEmulatorCondAlgBase.h.
◆ m_cornerDefectParamsPerPattern
Gaudi::Property<std::vector<std::vector<double> > > InDet::DefectsEmulatorCondAlgBase::m_cornerDefectParamsPerPattern |
|
protectedinherited |
Initial value:{this,"CornerDefectParamsPerPattern", {},
"Set of corner defect parameters (probability, x-intersection pos min, max, y-intersection pos min, max, sagitta minm max). "
"per module pattern. " }
Definition at line 60 of file DefectsEmulatorCondAlgBase.h.
◆ m_defectProbability
Gaudi::Property<std::vector<std::vector<double> > > InDet::DefectsEmulatorCondAlgBase::m_defectProbability |
|
protectedinherited |
Initial value:{this,"DefectProbabilities", {},
"Defect probabilities per module pattern: defect module, defect strip." }
Definition at line 53 of file DefectsEmulatorCondAlgBase.h.
◆ m_detEleCollKey
◆ m_detStore
◆ 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_fillEtaPhiHistogramsPerPattern
Gaudi::Property<bool> InDet::DefectsEmulatorCondAlgBase::m_fillEtaPhiHistogramsPerPattern {this, "FillEtaPhiHistogramsPerPattern", false, "If true, histogram per eta, phi amd z, R are filled separately per pattern."} |
|
protectedinherited |
◆ m_fillHistogramsPerPattern
Gaudi::Property<bool> InDet::DefectsEmulatorCondAlgBase::m_fillHistogramsPerPattern {this, "FillHistogramsPerPattern", false, "If true, histogram per module defects etc. separately per pattern."} |
|
protectedinherited |
◆ m_groupDefectHistNames
std::vector<std::string> InDet::DefectsEmulatorCondAlgBase::m_groupDefectHistNames |
|
protectedinherited |
◆ m_histMutex
std::mutex InDet::DefectsEmulatorCondAlgBase::m_histMutex |
|
mutableprotectedinherited |
◆ m_histogramGroupName
Gaudi::Property<std::string> InDet::DefectsEmulatorCondAlgBase::m_histogramGroupName {this,"HistogramGroupName","", "Histogram group name or empty to disable histogramming"} |
|
protectedinherited |
◆ m_histogrammingEnabled
bool InDet::DefectsEmulatorCondAlgBase::m_histogrammingEnabled = false |
|
protectedinherited |
◆ m_histSvc
ServiceHandle<ITHistSvc> InDet::DefectsEmulatorCondAlgBase::m_histSvc {this,"HistSvc","THistSvc"} |
|
protectedinherited |
◆ m_idHelper
◆ m_idName
◆ m_inputFiles
Gaudi::Property<std::vector<std::string> > InDet::DefectsEmulatorCondAlgBase::m_inputFiles {this,"DefectsInputFiles",{}, "Empty or file name to write out conditions data (.json or .root)."} |
|
protectedinherited |
◆ m_maxAttempts
Gaudi::Property<unsigned int> InDet::DefectsEmulatorCondAlgBase::m_maxAttempts {this, "MaxRandomPositionAttempts", 10} |
|
protectedinherited |
◆ m_maxNGroupDefects
std::vector<unsigned int> InDet::DefectsEmulatorCondAlgBase::m_maxNGroupDefects |
|
protectedinherited |
◆ m_modulePattern
Gaudi::Property<std::vector<std::vector<int> > > InDet::DefectsEmulatorCondAlgBase::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 49 of file DefectsEmulatorCondAlgBase.h.
◆ m_modulesWithoutDefectParameters
std::atomic<unsigned int> InDet::DefectsEmulatorCondAlgBase::m_modulesWithoutDefectParameters {} |
|
mutableprotectedinherited |
◆ m_moduleVetoTool
ToolHandle<ISCT_ConditionsTool> InDet::StripDefectsEmulatorCondAlg::m_moduleVetoTool {this,"SCTConditionsTool","","Optional SCT conditions tool to mark modules as defect (alternative to ModulePattern)"} |
|
protected |
◆ m_nDefectFractionsPerPattern
Gaudi::Property<std::vector<std::vector<double> > > InDet::DefectsEmulatorCondAlgBase::m_nDefectFractionsPerPattern |
|
protectedinherited |
Initial value:{this,"NDefectFractionsPerPattern", {},
"List of fractions per pattern for exactly 1 to n defects under the codition that there is a defect, where -1. marks the"
"end of this lists, before the fractions for the next mask start." }
Definition at line 56 of file DefectsEmulatorCondAlgBase.h.
◆ m_oddColToggle
Gaudi::Property<bool> InDet::DefectsEmulatorCondAlgBase::m_oddColToggle {this, "OddColToggle", false} |
|
protectedinherited |
◆ m_oddRowToggle
Gaudi::Property<bool> InDet::DefectsEmulatorCondAlgBase::m_oddRowToggle {this, "OddRowToggle", false} |
|
protectedinherited |
◆ m_outputFile
Gaudi::Property<std::string> InDet::DefectsEmulatorCondAlgBase::m_outputFile {this,"DefectsOutputFile","", "Empty or file name to write out conditions data (.json or .root)."} |
|
protectedinherited |
◆ m_perPatternAndMaskFractions
std::vector<std::vector<std::vector<float> > > InDet::DefectsEmulatorCondAlgBase::m_perPatternAndMaskFractions |
|
protectedinherited |
◆ m_perPatternCornerDefectNCornerCummulativeProb
std::vector<std::vector<float> > InDet::DefectsEmulatorCondAlgBase::m_perPatternCornerDefectNCornerCummulativeProb |
|
protectedinherited |
◆ m_rndmSvc
◆ m_rngName
std::vector<std::string> InDet::DefectsEmulatorCondAlgBase::m_rngName |
|
protectedinherited |
◆ m_rngPerDefectType
Gaudi::Property<bool> InDet::DefectsEmulatorCondAlgBase::m_rngPerDefectType {this, "RngPerDefectType", false, "One RNG per defect type to decorrelate randomness of defects."} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_writeKey
The documentation for this class was generated from the following files:
virtual StatusCode initialize() override
ToolHandle< ISCT_ConditionsTool > m_moduleVetoTool
ServiceHandle< IAthRNGSvc > m_rndmSvc
Gaudi::Property< std::vector< std::vector< double > > > m_nDefectFractionsPerPattern
std::string find(const std::string &s)
return a remapped string
StatusCode initializeCornerDefects()
double totalProbability(const std::vector< unsigned int > &module_pattern_idx, unsigned int prob_idx) const
Compute the total probability using the probabilities associated to the given list of patterns.
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)
Gaudi::Property< std::string > m_histogramGroupName
Gaudi::Property< std::string > m_outputFile
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::vector< std::vector< std::vector< float > > > m_perPatternAndMaskFractions
ServiceHandle< ITHistSvc > m_histSvc
Gaudi::Property< bool > m_fillEtaPhiHistogramsPerPattern
#define ATH_MSG_VERBOSE(x)
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 void setOwner(IDataHandleHolder *o)=0
An algorithm that can be simultaneously executed in multiple threads.
std::vector< std::vector< float > > m_perPatternCornerDefectNCornerCummulativeProb
Gaudi::Property< bool > m_rngPerDefectType
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Gaudi::Property< std::vector< std::vector< double > > > m_defectProbability
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
StatusCode initializeProbabilities(unsigned int n_masks)
bool verifyModulePatternList(const std::vector< std::vector< int > > &arr)
Verify whether a list of module identifier patterns is consistent.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
@ kCornerDefectkWidthRowDirectionOffset
Gaudi::Property< std::vector< std::vector< int > > > m_modulePattern
@ kCornerDefectWidthColumnDirection
Gaudi::Property< std::vector< std::vector< double > > > m_cornerDefectNCornerFractionsPerPattern
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< std::vector< std::string > > m_inputFiles
Gaudi::Property< bool > m_fillHistogramsPerPattern
std::unordered_multimap< unsigned int, unsigned int > createModuleConnectionMap(const T_ID &id_helper, const InDetDD::SiDetectorElementCollection &det_ele_coll)
create a map between detector elements and all such elements connected the same sensor
accumulate
Update flags based on parser line args.
StatusCode checkProbabilities(unsigned int n_probabilities) const
Consistency check of module patterns, probabilities.
bool empty() const noexcept
#define ATH_MSG_WARNING(x)
@ kCornerDefectkWidthRowDirection
@ kCornerDefectWidthColumnDirectionOffset
bool m_histogrammingEnabled
std::vector< std::string > m_rngName
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ kCornerDefectkSagittaOffset
std::vector< unsigned int > m_maxNGroupDefects
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::atomic< unsigned int > m_modulesWithoutDefectParameters
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Gaudi::Property< std::vector< std::vector< double > > > m_cornerDefectParamsPerPattern
std::vector< std::string > m_groupDefectHistNames
const std::string & str() const