ATLAS Offline Software
Loading...
Searching...
No Matches
LArCalibrationHitContainerBuilderBase< HitContainerT > Class Template Reference

Event-owned builder for calibration-hit containers. More...

#include <LArCalibrationHitContainerBuilder.h>

Inheritance diagram for LArCalibrationHitContainerBuilderBase< HitContainerT >:
Collaboration diagram for LArCalibrationHitContainerBuilderBase< HitContainerT >:

Classes

class  LessHit
struct  Partition

Public Types

using hit_ptr_t = std::unique_ptr<CaloCalibrationHit>
using hits_t = std::set<hit_ptr_t, LessHit>

Public Member Functions

 ~LArCalibrationHitContainerBuilderBase () override=default
void RegisterSource (const std::string &sourceName)
 Register a regular-SD partition in final output order.
void AddHit (const std::string &sourceName, hit_ptr_t hit)
 Take ownership of a hit and add it to one regular-SD partition.
void Finalize ()
 Move merged hits into the persisted container in final output order.

Private Member Functions

void Finalize (hits_t &hits)
PartitionFindOrCreatePartition (const std::string &sourceName)

Static Private Member Functions

static void AddHit (hits_t &hits, hit_ptr_t hit)

Private Attributes

std::vector< Partitionm_partitions
hits_t m_directHits

Detailed Description

template<class HitContainerT>
class LArCalibrationHitContainerBuilderBase< HitContainerT >

Event-owned builder for calibration-hit containers.

The partitioning model mirrors LArHitContainerBuilder: regular SDs merge within their own named partitions, while direct contributors use the empty source name and are finalized last. The template is shared by the standard and SR calibration output container types. The per-SD partitions are a compatibility layer for the historical partitioned output contract; if hits no longer need to remain distinct and ordered by originating SD, this builder can be reduced to one event-wide merge bucket as well.

Definition at line 29 of file LArCalibrationHitContainerBuilder.h.

Member Typedef Documentation

◆ hit_ptr_t

template<class HitContainerT>
using LArCalibrationHitContainerBuilderBase< HitContainerT >::hit_ptr_t = std::unique_ptr<CaloCalibrationHit>

Definition at line 33 of file LArCalibrationHitContainerBuilder.h.

◆ hits_t

template<class HitContainerT>
using LArCalibrationHitContainerBuilderBase< HitContainerT >::hits_t = std::set<hit_ptr_t, LessHit>

Definition at line 43 of file LArCalibrationHitContainerBuilder.h.

Constructor & Destructor Documentation

◆ ~LArCalibrationHitContainerBuilderBase()

template<class HitContainerT>
LArCalibrationHitContainerBuilderBase< HitContainerT >::~LArCalibrationHitContainerBuilderBase ( )
overridedefault

Member Function Documentation

◆ AddHit() [1/2]

template<class HitContainerT>
void LArCalibrationHitContainerBuilderBase< HitContainerT >::AddHit ( const std::string & sourceName,
hit_ptr_t hit )

Take ownership of a hit and add it to one regular-SD partition.

◆ AddHit() [2/2]

template<class HitContainerT>
void LArCalibrationHitContainerBuilderBase< HitContainerT >::AddHit ( hits_t & hits,
hit_ptr_t hit )
staticprivate

◆ Finalize() [1/2]

template<class HitContainerT>
void LArCalibrationHitContainerBuilderBase< HitContainerT >::Finalize ( )

Move merged hits into the persisted container in final output order.

◆ Finalize() [2/2]

template<class HitContainerT>
void LArCalibrationHitContainerBuilderBase< HitContainerT >::Finalize ( hits_t & hits)
private

◆ FindOrCreatePartition()

template<class HitContainerT>
Partition & LArCalibrationHitContainerBuilderBase< HitContainerT >::FindOrCreatePartition ( const std::string & sourceName)
private

◆ RegisterSource()

template<class HitContainerT>
void LArCalibrationHitContainerBuilderBase< HitContainerT >::RegisterSource ( const std::string & sourceName)

Register a regular-SD partition in final output order.

Member Data Documentation

◆ m_directHits

template<class HitContainerT>
hits_t LArCalibrationHitContainerBuilderBase< HitContainerT >::m_directHits
private

Definition at line 66 of file LArCalibrationHitContainerBuilder.h.

◆ m_partitions

template<class HitContainerT>
std::vector<Partition> LArCalibrationHitContainerBuilderBase< HitContainerT >::m_partitions
private

Definition at line 65 of file LArCalibrationHitContainerBuilder.h.


The documentation for this class was generated from the following file: