k4SimGeant4
Loading...
Searching...
No Matches
RewriteBitfield Class Reference

Rewrite the readout bitfield. More...

#include <RewriteBitfield.h>

Inheritance diagram for RewriteBitfield:
Collaboration diagram for RewriteBitfield:

Public Member Functions

 RewriteBitfield (const std::string &, ISvcLocator *)
 
virtual ~RewriteBitfield ()
 
virtual StatusCode initialize () final
 Initialize.
 
virtual StatusCode execute (const EventContext &) const final
 Execute.
 
virtual StatusCode finalize () final
 Finalize.
 

Private Attributes

ServiceHandle< IGeoSvc > m_geoSvc
 Pointer to the geometry service.
 
DataHandle< edm4hep::CalorimeterHitCollection > m_inHits {"hits/caloInHits", Gaudi::DataHandle::Reader, this}
 Handle for the EDM hits to be read.
 
DataHandle< edm4hep::CalorimeterHitCollection > m_outHits {"hits/caloOutHits", Gaudi::DataHandle::Writer, this}
 Handle for the EDM hits to be written.
 
Gaudi::Property< std::string > m_oldReadoutName
 Name of the detector readout used in simulation.
 
Gaudi::Property< std::string > m_newReadoutName {this, "newReadoutName", "", "Name of the new detector readout"}
 Name of the new detector readout.
 
dd4hep::DDSegmentation::BitFieldCoder * m_oldDecoder
 Old bitfield decoder.
 
dd4hep::DDSegmentation::BitFieldCoder * m_newDecoder
 New bitfield decoder.
 
Gaudi::Property< std::vector< std::string > > m_oldIdentifiers
 Segmentation fields that are going to be removed from the readout.
 
std::vector< std::string > m_detectorIdentifiers
 Detector fields that are going to be rewritten ( = old field - to be removed)
 
Gaudi::Property< uint > m_debugPrint {this, "debugPrint", 10, "Limit of debug printing"}
 Limit of debug printing.
 

Detailed Description

Rewrite the readout bitfield.

This can be used if the order of fields in the bitfield changed, or if some field should be removed. Removal may be needed for some types of reconstruction. New readout bitfield has to be added to <readouts> tag in the detector description xml. Cell IDs are rewritten from the old readout (\b oldReadoutName) to the new readout (\b newReadoutName). Names of the fields to be removed (for verification) are passed as a vector 'removeIds'.

For an example see Detector/DetComponents/tests/options/rewriteBitfield.py

Author
Anna Zaborowska

Constructor & Destructor Documentation

◆ RewriteBitfield()

RewriteBitfield::RewriteBitfield ( const std::string & aName,
ISvcLocator * aSvcLoc )
explicit

◆ ~RewriteBitfield()

RewriteBitfield::~RewriteBitfield ( )
virtual

Member Function Documentation

◆ execute()

StatusCode RewriteBitfield::execute ( const EventContext & ) const
finalvirtual

Execute.

Returns
status code

◆ finalize()

StatusCode RewriteBitfield::finalize ( )
finalvirtual

Finalize.

Returns
status code

◆ initialize()

StatusCode RewriteBitfield::initialize ( )
finalvirtual

Initialize.

Returns
status code

Member Data Documentation

◆ m_debugPrint

Gaudi::Property<uint> RewriteBitfield::m_debugPrint {this, "debugPrint", 10, "Limit of debug printing"}
private

Limit of debug printing.

◆ m_detectorIdentifiers

std::vector<std::string> RewriteBitfield::m_detectorIdentifiers
private

Detector fields that are going to be rewritten ( = old field - to be removed)

◆ m_geoSvc

ServiceHandle<IGeoSvc> RewriteBitfield::m_geoSvc
private

Pointer to the geometry service.

◆ m_inHits

DataHandle<edm4hep::CalorimeterHitCollection> RewriteBitfield::m_inHits {"hits/caloInHits", Gaudi::DataHandle::Reader, this}
mutableprivate

Handle for the EDM hits to be read.

◆ m_newDecoder

dd4hep::DDSegmentation::BitFieldCoder* RewriteBitfield::m_newDecoder
private

New bitfield decoder.

◆ m_newReadoutName

Gaudi::Property<std::string> RewriteBitfield::m_newReadoutName {this, "newReadoutName", "", "Name of the new detector readout"}
private

Name of the new detector readout.

◆ m_oldDecoder

dd4hep::DDSegmentation::BitFieldCoder* RewriteBitfield::m_oldDecoder
private

Old bitfield decoder.

◆ m_oldIdentifiers

Gaudi::Property<std::vector<std::string> > RewriteBitfield::m_oldIdentifiers
private
Initial value:
{
this, "removeIds", {}, "Segmentation fields that are going to be removed"}

Segmentation fields that are going to be removed from the readout.

◆ m_oldReadoutName

Gaudi::Property<std::string> RewriteBitfield::m_oldReadoutName
private
Initial value:
{this, "oldReadoutName", "",
"Name of the detector readout used in simulation"}

Name of the detector readout used in simulation.

◆ m_outHits

DataHandle<edm4hep::CalorimeterHitCollection> RewriteBitfield::m_outHits {"hits/caloOutHits", Gaudi::DataHandle::Writer, this}
mutableprivate

Handle for the EDM hits to be written.


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