ATLAS Offline Software
Loading...
Searching...
No Matches
AlphaBetaEstimate.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGL2MUONSA_ALPHABETAESTIMATE_H
6#define TRIGL2MUONSA_ALPHABETAESTIMATE_H
7
9
10#include "GaudiKernel/ServiceHandle.h"
11
13
14#include "TgcFitResult.h"
15#include "MuonRoad.h"
16#include "TrackData.h"
17
18#include "PtEndcapLUTSvc.h"
19
20namespace TrigL2MuonSA {
21
23{
24 public:
25
26 AlphaBetaEstimate(const std::string& type,
27 const std::string& name,
28 const IInterface* parent);
29
30 void setMCFlag(bool use_mcLUT,
31 const TrigL2MuonSA::PtEndcapLUTSvc* ptEndcapLUTSvc);
32
33 public:
34
35 StatusCode setAlphaBeta(const TrigRoiDescriptor* p_roids,
36 TrigL2MuonSA::TgcFitResult& tgcFitResult,
37 TrigL2MuonSA::TrackPattern& trackPattern,
38 const TrigL2MuonSA::MuonRoad& muonRoad) const;
39
40 private:
41
42 double computeRadius(double InnerSlope, double InnerR, double InnerZ,
43 double MiddleSlope, double MiddleR, double MiddleZ,
44 double sign) const;
45
46 double computeRadius3Points(double InnerZ, double InnerR, double EEZ, double EER,double MiddleZ, double MiddleR ) const ;
47 double calcDistance(double x1,double y1,double x2,double y2,double x3,double y3) const;
48
49 inline bool isZero( float value, float tolerance = 1e-5 ) const {
50 return std::abs( value ) < tolerance;
51 }
52
53 bool m_use_mcLUT{false};
54
55 const ToolHandle<PtEndcapLUT>* m_ptEndcapLUT {nullptr}; // point to LUT when calling setMCFlag()
56
57};
58
59} // namespace TrigL2MuonSA
60
61#endif // ALPHABETAESTIMATE_H
int sign(int a)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
double computeRadius3Points(double InnerZ, double InnerR, double EEZ, double EER, double MiddleZ, double MiddleR) const
const ToolHandle< PtEndcapLUT > * m_ptEndcapLUT
StatusCode setAlphaBeta(const TrigRoiDescriptor *p_roids, TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::TrackPattern &trackPattern, const TrigL2MuonSA::MuonRoad &muonRoad) const
double computeRadius(double InnerSlope, double InnerR, double InnerZ, double MiddleSlope, double MiddleR, double MiddleZ, double sign) const
bool isZero(float value, float tolerance=1e-5) const
double calcDistance(double x1, double y1, double x2, double y2, double x3, double y3) const
AlphaBetaEstimate(const std::string &type, const std::string &name, const IInterface *parent)
void setMCFlag(bool use_mcLUT, const TrigL2MuonSA::PtEndcapLUTSvc *ptEndcapLUTSvc)
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...