Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FPGATrackSimKeyLayerBinDesc.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATrackSimKeyLayerBinDesc_H
4 #define FPGATrackSimKeyLayerBinDesc_H
5 
25 
31 
33 
34 #include <cmath>
35 #include <initializer_list>
36 #include <string>
37 #include <vector>
38 
39 // Use IdxSet and ParSet from FPGATrackSimUtil
43 
44 class FPGATrackSimKeyLayerBinDesc : public extends<AthAlgTool, IFPGATrackSimBinDesc> {
45 
46 public:
48  using base_class::base_class;
49 
50  virtual StatusCode initialize() override;
51 
52  virtual const std::string &parNames(unsigned i) const override { return m_parNames[i]; }
53 
54  // convert back and forth from pT, eta, phi, d0, z0 and internal paramater set
55  virtual const ParSet
56  trackParsToParSet(const FPGATrackSimTrackPars &pars) const override {
58  }
59  virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override {
61  }
62 
63  // calculate the distance in phi or eta from a track defined by parset to a
64  // hit these can be implemented as any variable in the r-phi or r-eta plane
65  // (not necessarily eta and phi).
66  virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit) const override {
67  return m_keylyrtool.deltaX(parSetToKeyPars(parset), hit);
68  }
69 
70  virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit) const override {
71  return hit->getZ()- m_keylyrtool.zExpected(parSetToKeyPars(parset),hit->getR());
72  }
73 
74  // figure out if step is r-phi or r-eta plan
75  bool stepIsRPhi(const FPGATrackSimBinStep &step) const;
76  bool stepIsREta(const FPGATrackSimBinStep &step) const;
77 
78  // idx should be with the definition specifed in the step
79  // NOTE: the stored hit may be modified!
80  virtual bool hitInBin(const FPGATrackSimBinStep &step, const IdxSet &idx,
81  StoredHit &storedhit) const override;
82 
83  private:
84  // Configurable Properties
85  Gaudi::Property<double> m_rin{this, "rin", {-1.0}, "Radius of inner layer for keylayer definition"};
86  Gaudi::Property<double> m_rout{this, "rout", {-1.0}, "Radius of outer layer for keylayer definition"};
87  Gaudi::Property<bool> m_approxMath{this, "approxMath", {false}, "Use approximate math to emulate possible firmware"};
88 
89  // convert to/from the KeyLyrPars struct and the ParSet
91  return ParSet({keypars.z1,keypars.z2,keypars.phi1,keypars.phi2,keypars.xm});
92  }
95  }
96 
97  // Internal
99  const std::vector<std::string> m_parNames{"zR1", "zR2", "phiR1", "phiR2", "xm"};
100 
101  const std::vector<unsigned> m_phipars{2, 3, 4};
102  const std::vector<unsigned> m_etapars{1, 2};
103 
104 };
105 
106 
107 #endif // FPGATrackSimKeyLayerBinDesc_H
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
FPGATrackSimKeyLayerBinDesc::parNames
virtual const std::string & parNames(unsigned i) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:52
FPGATrackSimKeyLayerBinDesc::keyparsToParSet
ParSet keyparsToParSet(const FPGATrackSimKeyLayerTool::KeyLyrPars &keypars) const
Definition: FPGATrackSimKeyLayerBinDesc.h:90
FPGATrackSimKeyLayerBinDesc::m_etapars
const std::vector< unsigned > m_etapars
Definition: FPGATrackSimKeyLayerBinDesc.h:102
FPGATrackSimBinStep
Definition: FPGATrackSimBinStep.h:49
AthMsgStreamMacros.h
FPGATrackSimKeyLayerBinDesc::parSetToKeyPars
FPGATrackSimKeyLayerTool::KeyLyrPars parSetToKeyPars(const ParSet &parset) const
Definition: FPGATrackSimKeyLayerBinDesc.h:93
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
FPGATrackSimKeyLayerTool.h
Binning Classes for BinTool.
FPGATrackSimKeyLayerBinDesc::m_rout
Gaudi::Property< double > m_rout
Definition: FPGATrackSimKeyLayerBinDesc.h:86
FPGATrackSimKeyLayerBinDesc::m_parNames
const std::vector< std::string > m_parNames
Definition: FPGATrackSimKeyLayerBinDesc.h:99
FPGATrackSimKeyLayerTool::KeyLyrPars::xm
double xm
Definition: FPGATrackSimKeyLayerTool.h:60
FPGATrackSimKeyLayerTool::KeyLyrPars::phi2
double phi2
Definition: FPGATrackSimKeyLayerTool.h:59
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
FPGATrackSimKeyLayerTool
Definition: FPGATrackSimKeyLayerTool.h:47
FPGATrackSimKeyLayerBinDesc::hitInBin
virtual bool hitInBin(const FPGATrackSimBinStep &step, const IdxSet &idx, StoredHit &storedhit) const override
Definition: FPGATrackSimKeyLayerBinDesc.cxx:31
FPGATrackSimKeyLayerBinDesc::m_phipars
const std::vector< unsigned > m_phipars
Definition: FPGATrackSimKeyLayerBinDesc.h:101
FPGATrackSimKeyLayerTool::deltaX
double deltaX(const KeyLyrPars &keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimKeyLayerTool.cxx:156
FPGATrackSimKeyLayerBinDesc::trackParsToParSet
virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:56
lumiFormat.i
int i
Definition: lumiFormat.py:85
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
FPGATrackSimKeyLayerBinDesc::parSetToTrackPars
virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:59
FPGATrackSimKeyLayerBinDesc::m_rin
Gaudi::Property< double > m_rin
Definition: FPGATrackSimKeyLayerBinDesc.h:85
FPGATrackSimKeyLayerBinDesc::stepIsREta
bool stepIsREta(const FPGATrackSimBinStep &step) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:85
FPGATrackSimBinUtil::ParSet
Definition: FPGATrackSimBinUtil.h:45
FPGATrackSimKeyLayerTool::KeyLyrPars::z2
double z2
Definition: FPGATrackSimKeyLayerTool.h:57
FPGATrackSimKeyLayerBinDesc::phiResidual
virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:66
FPGATrackSimHit::getZ
float getZ() const
Definition: FPGATrackSimHit.h:142
FPGATrackSimKeyLayerTool::KeyLyrPars::phi1
double phi1
Definition: FPGATrackSimKeyLayerTool.h:58
FPGATrackSimKeyLayerTool::trackParsToKeyPars
KeyLyrPars trackParsToKeyPars(const FPGATrackSimTrackPars &pars) const
Definition: FPGATrackSimKeyLayerTool.cxx:53
FPGATrackSimKeyLayerBinDesc::m_approxMath
Gaudi::Property< bool > m_approxMath
Definition: FPGATrackSimKeyLayerBinDesc.h:87
FPGATrackSimBinUtil::StoredHit
Definition: FPGATrackSimBinUtil.h:90
IFPGATrackSimBinDesc.h
Defines Parameters used for binning.
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
FPGATrackSimKeyLayerBinDesc
Definition: FPGATrackSimKeyLayerBinDesc.h:44
FPGATrackSimKeyLayerTool::KeyLyrPars::z1
double z1
Definition: FPGATrackSimKeyLayerTool.h:56
FPGATrackSimHit::getR
float getR() const
Definition: FPGATrackSimHit.h:143
FPGATrackSimKeyLayerBinDesc::m_keylyrtool
FPGATrackSimKeyLayerTool m_keylyrtool
Definition: FPGATrackSimKeyLayerBinDesc.h:98
FPGATrackSimKeyLayerBinDesc::stepIsRPhi
bool stepIsRPhi(const FPGATrackSimBinStep &step) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:74
FPGATrackSimKeyLayerTool::zExpected
double zExpected(const KeyLyrPars &keypars, double r) const
Definition: FPGATrackSimKeyLayerTool.cxx:126
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
LArCellBinning.step
step
Definition: LArCellBinning.py:158
FPGATrackSimKeyLayerBinDesc::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimKeyLayerBinDesc.cxx:15
FPGATrackSimBinUtil::IdxSet
Definition: FPGATrackSimBinUtil.h:50
FPGATrackSimKeyLayerBinDesc::etaResidual
virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:70
FPGATrackSimTrackPars.h
Structs that store the 5 track parameters.
FPGATrackSimKeyLayerTool::keyParsToTrackPars
FPGATrackSimTrackPars keyParsToTrackPars(const KeyLyrPars &keypars) const
Definition: FPGATrackSimKeyLayerTool.cxx:79
FPGATrackSimKeyLayerTool::KeyLyrPars
Definition: FPGATrackSimKeyLayerTool.h:52