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;.