The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
Gaudi::Example::TinyExperiment::DigitizationAlg Class Reference

Digitization algorithm returning a set of hits from MCHits, basically adding noise. More...

Inheritance diagram for Gaudi::Example::TinyExperiment::DigitizationAlg:
Collaboration diagram for Gaudi::Example::TinyExperiment::DigitizationAlg:

Public Member Functions

 DigitizationAlg (const std::string &name, ISvcLocator *pSvcLocator)
Hits operator() (const EventContext &ctx, MCHits const &mcHits) const override

Private Attributes

ServiceHandle< IRandomGenSvc > m_rndSvc
Gaudi::Property< float > m_sigmaNoise
Gaudi::Accumulators::Counter n_hits { this, "Number of Hits" }

Detailed Description

Digitization algorithm returning a set of hits from MCHits, basically adding noise.

Definition at line 26 of file DigitizationAlg.cpp.

Constructor & Destructor Documentation

◆ DigitizationAlg()

Gaudi::Example::TinyExperiment::DigitizationAlg::DigitizationAlg ( const std::string & name,
ISvcLocator * pSvcLocator )
inline

Definition at line 28 of file DigitizationAlg.cpp.

29 : Transformer( name, pSvcLocator, { { "MCHitsLocation", "/Event/MCHits" } },
30 { "HitsLocation", "/Event/Hits" } ) {}
details::Transformer< Signature, Traits_, details::isLegacy< Traits_ > > Transformer

Member Function Documentation

◆ operator()()

Hits Gaudi::Example::TinyExperiment::DigitizationAlg::operator() ( const EventContext & ctx,
MCHits const & mcHits ) const
inlineoverride

Definition at line 32 of file DigitizationAlg.cpp.

32 {
33 Hits hits;
34 hits.reserve( mcHits.size() );
35 std::normal_distribution dist( 0.0f, m_sigmaNoise.value() ); // µ, σ
36 auto engine = m_rndSvc->getEngine( ctx.evt() );
37 for ( auto const& mcHit : mcHits ) {
38 auto nx = mcHit.x + dist( engine );
39 auto ny = mcHit.y + dist( engine );
40 // ignore negative axis.
41 // Simplifies reconstruction and simulate the apperture of the detector
42 if ( nx > 0 ) {
43 hits.emplace_back( nx, ny );
44 ++n_hits;
45 }
46 }
47 return hits;
48 };
std::vector< Hit > Hits
Definition Hit.h:27

Member Data Documentation

◆ m_rndSvc

ServiceHandle<IRandomGenSvc> Gaudi::Example::TinyExperiment::DigitizationAlg::m_rndSvc
private
Initial value:
{ this, "RandomGenSvc", "RandomGenSvc",
"A service providing a thread safe random number generator" }

Definition at line 51 of file DigitizationAlg.cpp.

51 { this, "RandomGenSvc", "RandomGenSvc",
52 "A service providing a thread safe random number generator" };

◆ m_sigmaNoise

Gaudi::Property<float> Gaudi::Example::TinyExperiment::DigitizationAlg::m_sigmaNoise
private
Initial value:
{ this, "SigmaNoise", 1.f,
"Sigma of the noise (a normal distribution centered on 0)" }

Definition at line 53 of file DigitizationAlg.cpp.

53 { this, "SigmaNoise", 1.f,
54 "Sigma of the noise (a normal distribution centered on 0)" };

◆ n_hits

Gaudi::Accumulators::Counter Gaudi::Example::TinyExperiment::DigitizationAlg::n_hits { this, "Number of Hits" }
mutableprivate

Definition at line 55 of file DigitizationAlg.cpp.

55{ this, "Number of Hits" };

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