ATLAS Offline Software
Loading...
Searching...
No Matches
AFP_ProtonRecoAnalytical.h
Go to the documentation of this file.
1/*
2Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef AFP_GLOBRECO_AFP_PROTONRECOANALYTICAL_H
6#define AFP_GLOBRECO_AFP_PROTONRECOANALYTICAL_H
7
10
11// FrameWork includes
12#include "Gaudi/Property.h"
14
15// xAOD includes
23
24#include <string>
25#include <vector>
26#include <memory>
27#include <algorithm>
28
29
32
33 public:
35 AFP_ProtonRecoAnalytical(const std::string& type, const std::string& name, const IInterface* parent);
36
38
40 StatusCode initialize() override;
41
42 private:
43
45 StatusCode configInfo() const;
46
55 virtual
56 xAOD::AFPProton * reco(const xAOD::AFPTrack* trkNear, const xAOD::AFPTrack* trkFar, std::unique_ptr<xAOD::AFPProtonContainer>& outputContainer) const override;
57
59 virtual
60 xAOD::AFPProton * reco (const xAOD::AFPTrack* trkFar, std::unique_ptr<xAOD::AFPProtonContainer>& outputContainer) const override;
61
63 virtual
64 double chi2(double energy, double sx, double sy, const Measurement& my_measAFP) const override;
65
67 double bisection(double (AFP_ProtonRecoAnalytical::*fun)(double,const Measurement&,std::vector<double>&, std::vector<double>&) const, const Measurement& my_measAFP, std::vector<double>& my_slopeCalculated, std::vector<double>& my_positionCalculated) const;
68
71 double bothStations(double energy,const Measurement& my_measAFP, std::vector<double>& my_slopeCalculated, std::vector<double>& my_positionCalculated) const;
72
75 double singleStation(double energy, const Measurement& my_measAFP, std::vector<double>& my_slopeCalculated, std::vector<double>& my_positionCalculated) const;
76
78 double calculateSlope(double energy, int XorY, std::vector<double>& my_slopeCalculated) const;
79
82 double calculateXslope(double energy, std::vector<double>& my_slopeCalculated) const;
83
86 double calculateYslope(double energy, std::vector<double>& my_slopeCalculated) const;
87
89 std::unique_ptr<AFP::Parameterization> m_parametrization;
90
92 double m_distanceBetweenStations = 0.0; // [m]
93
95 Gaudi::Property<std::string> m_parametrizationFileName{this, "parametrizationFileName", {}, "Name of the file containing parameterization"};
96
98 double m_parametrizationPosition = 0.0; // [m]
99
101 double m_parametrizationEnergy = 0.0; // [GeV]
102};
103
104
105#endif
Definitions of identification numbers of AFP proton reconstruction algorithms.
double m_parametrizationEnergy
Parameterization energy.
virtual double chi2(double energy, double sx, double sy, const Measurement &my_measAFP) const override
Calculates chi2 for reconstructed proton.
Gaudi::Property< std::string > m_parametrizationFileName
Name of the file containing parameterization.
double bothStations(double energy, const Measurement &my_measAFP, std::vector< double > &my_slopeCalculated, std::vector< double > &my_positionCalculated) const
Function obtained from parameterization equation.
double m_parametrizationPosition
Position for which parameterization was performed.
double calculateXslope(double energy, std::vector< double > &my_slopeCalculated) const
Calculates initial horizontal slope Calls calculateSlope(energy, 0)
double m_distanceBetweenStations
Distance between near and far station.
std::unique_ptr< AFP::Parameterization > m_parametrization
Pointer to parameterization.
double calculateSlope(double energy, int XorY, std::vector< double > &my_slopeCalculated) const
Calculates ininial slope based on measurements and reconstructed energy.
~AFP_ProtonRecoAnalytical()=default
virtual xAOD::AFPProton * reco(const xAOD::AFPTrack *trkNear, const xAOD::AFPTrack *trkFar, std::unique_ptr< xAOD::AFPProtonContainer > &outputContainer) const override
Reconstructs single proton from pair of tracks.
double singleStation(double energy, const Measurement &my_measAFP, std::vector< double > &my_slopeCalculated, std::vector< double > &my_positionCalculated) const
Function obtained from parameterization equation.
AFP_ProtonRecoAnalytical(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
double bisection(double(AFP_ProtonRecoAnalytical::*fun)(double, const Measurement &, std::vector< double > &, std::vector< double > &) const, const Measurement &my_measAFP, std::vector< double > &my_slopeCalculated, std::vector< double > &my_positionCalculated) const
Calculates root of given function.
double calculateYslope(double energy, std::vector< double > &my_slopeCalculated) const
Calculates initial vertical slope Calls calculateSlope(energy, 1)
StatusCode initialize() override
Loads parameterization.
AFP_ProtonRecoBase(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
AFPTrack_v2 AFPTrack
Definition AFPTrack.h:12
AFPProton_v1 AFPProton
Definition AFPProton.h:11
Local class for storing tracks positions.