5#ifndef ACTSTRK_HITSUMMARYDATAUTILS_H
6#define ACTSTRK_HITSUMMARYDATAUTILS_H
59 constexpr static unsigned short makeKey(
unsigned short region,
unsigned short layer,
int eta_mod) {
70 return static_cast<uint8_t
>(region) | (layer<<
REGION_BITS);
128 else if (detEl->
isSCT()) {
136 unsigned short key =
makeKey(region, layer, eta_module);
137 for (
auto &[stat_key, stat_hits, stat_outlier_hits, stat_shared_hits] :
m_stat) {
138 if (stat_key == key) {
145 m_stat.emplace_back( std::make_tuple(key,
156 for (
const auto &[stat_key, stat_hits, stat_outlier_hits, stat_shared_hits] :
m_stat) {
158 m_hits.at(region) += stat_hits;
163 for (
unsigned int region_i=0; region_i<
unknown+1; ++region_i) {
212 template <
unsigned short HIT_
SELECTION>
215 unsigned short key =
makeKey(region, layer, 0);
216 for (
const auto &[stat_key, stat_hits, stat_outlier_hits, stat_shared_hits] :
m_stat) {
222 total += stat_outlier_hits;
225 total += stat_shared_hits;
233 std::vector< std::tuple<unsigned short, uint8_t, uint8_t, uint8_t> >
m_stat;
238 static constexpr std::array<uint8_t, unknown+1>
s_type
261 double inv_n =
m_n>0 ? 1/
m_n : 0 ;
266 double inv_n =
m_n>0 ? 1./
m_n : 0 ;
281 &measurement_to_summary_type,
282 SumOfValues &chi2_stat_out,
283 HitSummaryData &hit_info_out,
284 std::vector<ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType > ¶m_state_idx_out,
285 std::array<std::array<uint8_t,Acts::toUnderlying(
HitCategory::N)>,
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
Helper class to gather hit summary information for e.g.
void reset()
reset all summary counters to zero.
static constexpr unsigned short REGION_MASK
std::array< uint8_t, Total+1 > m_layers
static constexpr DetectorRegion regionFromKey(unsigned short key)
extract the region index from the given key.
DetectorRegion
Regions for which hit counts are computed.
static constexpr unsigned short LAYER_BITS
static constexpr std::array< uint8_t, unknown+1 > s_type
uint8_t contributingSharedHits(DetectorRegion region) const
return the number of shared hits in a certain detector region.
static constexpr unsigned short SIGNED_ETA_MOD_MASK
std::array< uint8_t, Total+1 > m_hits
void computeSummaries()
Compute the varius summaries.
bool addHit(const InDetDD::SiDetectorElement *detEl, EHitSelection hit_selection)
update summaries to take the given hit into account.
static constexpr unsigned short REGION_BITS
static constexpr unsigned short LAYER_MASK
static constexpr uint8_t layerFromKey(unsigned short key)
extract the layer index from the given key.
static constexpr unsigned short makeKey(unsigned short region, unsigned short layer, int eta_mod)
Compute a counter key for the given region, layer and module eta module index.
uint8_t sum(DetectorRegion region, uint8_t layer) const
return the total number of hits, outliers, and/or shared hits in the givrn detector region and layer.
uint8_t contributingOutlierHits(DetectorRegion region) const
return the number of outliers in a certain detector region.
uint8_t contributingHits(DetectorRegion region) const
return the number of hits in a certain detector region.
std::vector< std::tuple< unsigned short, uint8_t, uint8_t, uint8_t > > m_stat
std::array< uint8_t, Total+1 > m_outlierHits
static constexpr unsigned short LAYER_REGION_MASK
static constexpr unsigned short SIGNED_ETA_MOD_BITS
std::array< uint8_t, Total+1 > m_sharedHits
uint8_t contributingLayers(DetectorRegion region) const
return the number of layers contributing to the hit collection in the given detector region.
Helper class to gather statistics and compute the biased variance.
std::array< double, 2 > meanAndBiasedVariance() const
double biasedVariance() const
virtual DetectorType type() const
Type of element.
Class to hold geometrical description of a silicon detector element.
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
virtual Identifier identify() const override final
identifier of this detector element (inline)
const AtlasDetectorID * getIdHelper() const
Returns the id helper (inline).
This is an Identifier helper class for the Pixel subdetector.
int layer_disk(const Identifier &id) const
int eta_module(const Identifier &id) const
This is an Identifier helper class for the SCT subdetector.
int layer_disk(const Identifier &id) const
int eta_module(const Identifier &id) const
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
Athena definition of the Eigen plugin.
void gatherTrackSummaryData(const typename ActsTrk::TrackContainer::ConstTrackProxy &track, const std::array< unsigned short, Acts::toUnderlying(xAOD::UncalibMeasType::nTypes)> &measurement_to_summary_type, SumOfValues &chi2_stat_out, HitSummaryData &hit_info_out, std::vector< ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType > ¶m_state_idx_out, std::array< std::array< uint8_t, Acts::toUnderlying(HitCategory::N)>, Acts::toUnderlying(xAOD::UncalibMeasType::nTypes)> &special_hit_counts_out)
Helper to gather track summary information from the track states of the specified track.