ATLAS Offline Software
Loading...
Searching...
No Matches
MuonHoughTransformer_rzcosmics.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONHOUGHPATTERNEVENT_MUONHOUGHTRANSFORMER_RZCOSMICS_H
6#define MUONHOUGHPATTERNEVENT_MUONHOUGHTRANSFORMER_RZCOSMICS_H
7
9
11public:
12 MuonHoughTransformer_rzcosmics(int nbins, int nbins_angle, double detectorsize, double detectorsize_angle, double threshold_histo,
13 int number_of_sectors = 1);
15
16 void fillHit(const std::shared_ptr<MuonHoughHit>& hit, double weight) override final;
17 int fillHisto(double rz0, double theta, double weight, int sector) override final;
18
19 float weightHoughTransform(double r0) const override final;
20
21 int sector(const std::shared_ptr<MuonHoughHit>& hit) const override final; // 0..15 same as atlas sector 1..16 // returns 0 if number_of_sectors == 0
22protected:
23 std::unique_ptr<MuonHoughPattern> hookAssociateHitsToMaximum(const MuonHoughHitContainer& event, std::pair<double, double> coordsmaximum,
24 double residu_mm, double residu_grad, int sector) const override final;
25
26private:
29
31 float weightHoughTransform(double r0, double sintheta, double sinphi, double dotprod) const;
32
34 std::unique_ptr<double[]> m_phisec{};
35 std::unique_ptr<double[]> m_sinphisec{};
36 std::unique_ptr<double[]> m_cosphisec{};
37 std::unique_ptr<double[]> m_theta_in_grad{};
38 std::unique_ptr<double[]> m_sintheta{};
39 std::unique_ptr<double[]> m_costheta{};
40};
41
42#endif // MUONHOUGHPATTERNEVENT_MUONHOUGHTRANSFORMER_RZCOSMICS_H
Scalar theta() const
theta method
MuonHoughTransformer_rzcosmics(int nbins, int nbins_angle, double detectorsize, double detectorsize_angle, double threshold_histo, int number_of_sectors=1)
std::unique_ptr< MuonHoughPattern > hookAssociateHitsToMaximum(const MuonHoughHitContainer &event, std::pair< double, double > coordsmaximum, double residu_mm, double residu_grad, int sector) const override final
pure virtual method for derived class implementation of associateHitsToMaximum method
float weightHoughTransform(double r0) const override final
weight houghtransform, give more importance to houghtransforms close to origin
void fillHit(const std::shared_ptr< MuonHoughHit > &hit, double weight) override final
fill histograms with hit
int fillHisto(double rz0, double theta, double weight, int sector) override final
fill histogram with certain coordinate
std::unique_ptr< double[]> m_phisec
arrays that store values of transform
int sector(const std::shared_ptr< MuonHoughHit > &hit) const override final
returns sector for coords
static void updateParameters(MuonHoughPattern *)
recalculate trackparameters of pattern
MuonHoughTransformer(const std::string &tr_name, int nbins, int nbins_angle, double detectorsize, double detectorsize_angle, double threshold_histo, int number_of_sectors=1)
constructor, input values are those of histograms