26 class TrackingAlg :
public Functional::Transformer<Tracks( Hits const& )> {
29 : Transformer( name, pSvcLocator, { {
"HitsLocation",
"/Event/Hits" } },
30 {
"TracksLocation",
"/Event/Tracks" } ) {}
34 std::vector<unsigned int> bins(
m_nBins, 0 );
35 for (
auto const& hit : hits ) {
36 auto theta = std::atan( hit.y / hit.x );
37 auto index =
static_cast<unsigned int>( ( theta + M_PI / 2 ) / M_PI *
m_nBins );
42 tracks.reserve( hits.size() / 10 );
43 for (
unsigned int n = 0; n <
m_nBins; n++ ) {
46 tracks.emplace_back( -M_PI / 2 + ( M_PI * ( n + 0.5f ) ) /
m_nBins );
56 "How many hits do we want for considering we have a track ?" };
#define DECLARE_COMPONENT(type)
Gaudi::Property< unsigned int > m_sensibility
Gaudi::Accumulators::Counter n_tracks
TrackingAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< unsigned int > m_nBins
Tracks operator()(Hits const &hits) const override
Implementation of property with value of concrete type.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
std::vector< Track > Tracks
A basic integral counter;.