ATLAS Offline Software
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 
11 public:
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
22 protected:
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 
26 private:
28  static void updateParameters(MuonHoughPattern*);
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
MuonHoughTransformer_rzcosmics::m_theta_in_grad
std::unique_ptr< double[]> m_theta_in_grad
Definition: MuonHoughTransformer_rzcosmics.h:37
MuonHoughTransformer_rzcosmics::m_sintheta
std::unique_ptr< double[]> m_sintheta
Definition: MuonHoughTransformer_rzcosmics.h:38
MuonHoughTransformer.h
MuonHoughTransformer_rzcosmics::updateParameters
static void updateParameters(MuonHoughPattern *)
recalculate trackparameters of pattern
Definition: MuonHoughTransformer_rzcosmics.cxx:191
MuonHoughTransformer_rzcosmics::m_costheta
std::unique_ptr< double[]> m_costheta
Definition: MuonHoughTransformer_rzcosmics.h:39
MuonHoughTransformer_rzcosmics::m_cosphisec
std::unique_ptr< double[]> m_cosphisec
Definition: MuonHoughTransformer_rzcosmics.h:36
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
MuonHoughTransformer_rzcosmics::MuonHoughTransformer_rzcosmics
MuonHoughTransformer_rzcosmics(int nbins, int nbins_angle, double detectorsize, double detectorsize_angle, double threshold_histo, int number_of_sectors=1)
Definition: MuonHoughTransformer_rzcosmics.cxx:9
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
MuonHoughTransformer_rzcosmics::~MuonHoughTransformer_rzcosmics
~MuonHoughTransformer_rzcosmics()=default
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
TRT_PAI_physicsConstants::r0
const double r0
electron radius{cm}
Definition: TRT_PAI_physicsConstants.h:20
MuonHoughHitContainer
Definition: MuonHoughHitContainer.h:15
MuonHoughTransformer_rzcosmics::m_phisec
std::unique_ptr< double[]> m_phisec
arrays that store values of transform
Definition: MuonHoughTransformer_rzcosmics.h:34
MuonHoughTransformer_rzcosmics::m_sinphisec
std::unique_ptr< double[]> m_sinphisec
Definition: MuonHoughTransformer_rzcosmics.h:35
MuonHoughTransformer_rzcosmics::sector
int sector(const std::shared_ptr< MuonHoughHit > &hit) const override final
returns sector for coords
Definition: MuonHoughTransformer_rzcosmics.cxx:186
MuonHoughTransformer_rzcosmics::weightHoughTransform
float weightHoughTransform(double r0) const override final
weight houghtransform, give more importance to houghtransforms close to origin
Definition: MuonHoughTransformer_rzcosmics.cxx:163
MuonHoughTransformer_rzcosmics
Definition: MuonHoughTransformer_rzcosmics.h:10
MuonHoughPattern
Definition: MuonHoughPattern.h:17
MuonHoughTransformer_rzcosmics::fillHit
void fillHit(const std::shared_ptr< MuonHoughHit > &hit, double weight) override final
fill histograms with hit
Definition: MuonHoughTransformer_rzcosmics.cxx:41
MuonHoughTransformer
Abstract base class, Strategy pattern.
Definition: MuonHoughTransformer.h:21
MuonHoughTransformer_rzcosmics::fillHisto
int fillHisto(double rz0, double theta, double weight, int sector) override final
fill histogram with certain coordinate
Definition: MuonHoughTransformer_rzcosmics.cxx:61
MuonHoughTransformer_rzcosmics::hookAssociateHitsToMaximum
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
Definition: MuonHoughTransformer_rzcosmics.cxx:88