diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinStep.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinStep.h index b92b0a8339621f37c9786bc40db4ae1baee60d5e..996bfa1723b221e025a074c41b5cc7a60a5dc74c 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinStep.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinStep.h @@ -52,14 +52,14 @@ public: const IInterface * ifc) : AthAlgTool(algname, name, ifc) {} virtual StatusCode initialize() override; - StatusCode setRanges(const FPGATrackSimBinStep* prev,const ParSet& parMin, const ParSet& parMax); + StatusCode setRanges(FPGATrackSimBinStep* prev,const ParSet& parMin, const ParSet& parMax); // property of step const std::vector<unsigned> stepIdx(IdxSet idx) const; // index for only the pars used in this step const std::vector<unsigned> stepBins() const; // bin sizes for only the pars used in this step const std::vector<unsigned>& stepPars() const {return m_pars;} // parameters used for this step const std::vector<unsigned> nBins() const {return m_parBins;} // bin sizes for only the pars used in this step - const std::string& stepName() const {return m_name;} + const std::string stepName() const {return this->name().substr(this->name().find_last_of(".")+1);} unsigned stepNum() const {return m_stepNum;} // Calculation of bin boundaries @@ -78,8 +78,8 @@ public: IdxSet binIdx(const ParSet &pars) const; // Convert to previous steps idx - IdxSet convertToPrev(const IdxSet& cur) const; - + IdxSet convertToPrev(const IdxSet& cur) const; + //-------------------------------------------------------------------------------------------------- // // Set which bins are valid @@ -95,7 +95,6 @@ public: const FPGATrackSimBinArray<int>& validBinsLocal() const { return m_validBinLocal;} private: - Gaudi::Property<std::string> m_name{this, "name", {}, "String name assigned to Binning Step"}; Gaudi::Property<std::vector<unsigned>> m_parBinsConfig{this,"parBins",{},"Vector of number of bins for each parameter (expect 5)"}; // pars used in this step @@ -108,7 +107,7 @@ private: FPGATrackSimBinArray<int> m_validBinLocal; // this is for the pars used at this step // pointer to FPGATrackSimBinStep of previous step - const FPGATrackSimBinStep *m_prev{0}; + FPGATrackSimBinStep *m_prev{0}; unsigned m_stepNum{}; // number of step // the bins for this step diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinTool.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinTool.h index b344b03d76cacc9bb813beff1ec9e391b8efeca8..801e0e0390c55425223eca2d549f27a5079ddc9d 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinTool.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinTool.h @@ -45,9 +45,7 @@ class FPGATrackSimBinTool : virtual public AthAlgTool { public: friend FPGATrackSimBinStep; - FPGATrackSimBinTool(const std::string &algname, const std::string &name, - const IInterface *ifc) - : AthAlgTool(algname, name, ifc) {} + FPGATrackSimBinTool(const std::string &algname, const std::string &name, const IInterface *ifc); virtual StatusCode initialize() override; @@ -101,19 +99,19 @@ private: Gaudi::Property<double> m_etaFractionalPadding{this, "etaFractionalPadding", {}, "Fractional padding used when calculating the valid range of bins"}; Gaudi::Property<double> m_phiFractionalPadding{this, "phiFractionalPadding", {}, "Fractional padding used when calculating the valid range of bins"}; Gaudi::Property<double> m_qOverPtFractionalPadding{this, "qOverPtFractionalPadding", {}, "Fractional padding used when calculating the valid range of bins"}; - Gaudi::Property<std::vector<float>> m_parMinConfig{this, "parMin", {}, "Vector of minimum bounds of parameters (expect 5"}; - Gaudi::Property<std::vector<float>> m_parMaxConfig{this, "parMax", {}, "Vector of maximum bounds of parameters (expect 5"}; - - ToolHandleArray<FPGATrackSimBinStep> m_steps; - ToolHandle<IFPGATrackSimBinDesc> m_binDesc; + Gaudi::Property<std::vector<double>> m_parMinConfig{this, "parMin", {}, "Vector of minimum bounds of parameters (expect 5"}; + Gaudi::Property<std::vector<double>> m_parMaxConfig{this, "parMax", {}, "Vector of maximum bounds of parameters (expect 5"}; + ToolHandleArray<FPGATrackSimBinStep> m_steps{this, "Steps", {}, "Array of FPGATrackSimBinStep: describes which parameters are binned at each step"}; + ToolHandle<IFPGATrackSimBinDesc> m_binDesc{this, "BinDesc", "FPGATrackSimBinDescBase", "FPGATrackSimBinDescBase: describes binning track parameters"}; + // // Internal data // // These indicate the range of the full binning - ParSet m_parMin; - ParSet m_parMax; + ParSet m_parMin{}; + ParSet m_parMax{}; // A list of the step names for convienience std::vector<std::string> m_stepNames; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinUtil.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinUtil.h index 266f182e3987e1348c9dcd21ca28ec83ae1622d1..6d19e048d3e2abd71c284ac04a3c829aadc5ede7 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinUtil.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinUtil.h @@ -94,6 +94,7 @@ struct StoredHit { double etaShift; // shift in r-z plane as quantified by BinDesc unsigned layer; double rzrad() const; + static const unsigned invalidLayer = std::numeric_limits<unsigned>::max(); }; std::ostream &operator<<(std::ostream &os, const StoredHit &hit); diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinnedHits.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinnedHits.h index 2a12b906d44789e14617374fa961c01bb3f0dbd4..218dc640565d84423b74eedb8c1240a25d6e0b0f 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinnedHits.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/FPGATrackSimBinning/FPGATrackSimBinnedHits.h @@ -54,7 +54,7 @@ public: const IInterface *ifc) : AthAlgTool(algname, name, ifc) {} - StatusCode initialize() override; + virtual StatusCode initialize() override; void initBinnedDataArrays(); StatusCode fill(const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits); @@ -105,8 +105,10 @@ private: std::vector<FPGATrackSimBinArray<BinEntry>> m_binnedHitsStep; // The tool where the steps are defined - ToolHandle<FPGATrackSimBinTool> m_bintool; - + ToolHandle<FPGATrackSimBinTool> m_bintool { + this, "BinTool", "FPGATrackSimBinTool", + "FPGATrackSimBinTool: contains tools describe which parameters are used and each step of binning"}; + // The number of layers, either set externally from pmap or set by the layerMap unsigned m_nLayers{0}; }; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinStep.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinStep.cxx index 5e7cc40a109d8eec1e5b554c4473c24d9fb5e032..ae8564b3cb29fd604f528773ab1e66aca8d1a652 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinStep.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinStep.cxx @@ -9,7 +9,7 @@ */ #include "AthenaBaseComps/AthMsgStreamMacros.h" -#include "FPGATrackSimBinning/FPGATrackSimBinTool.h" +#include "FPGATrackSimBinning/IFPGATrackSimBinDesc.h" #include <GaudiKernel/StatusCode.h> #include "FPGATrackSimBinning/FPGATrackSimBinStep.h" @@ -26,16 +26,15 @@ StatusCode FPGATrackSimBinStep::initialize() return StatusCode::SUCCESS; } -StatusCode FPGATrackSimBinStep::setRanges(const FPGATrackSimBinStep *prev, +StatusCode FPGATrackSimBinStep::setRanges(FPGATrackSimBinStep *prev, const ParSet &parMin, const ParSet &parMax) { + m_prev = prev; if (prev) { m_stepNum = prev->m_stepNum+1; } else { - m_stepNum = 0; - //prev is dereferenced in several places after this; better to exit than crash - return StatusCode::FAILURE; + m_stepNum = 0; } m_parMin = parMin; m_parMax = parMax; @@ -46,22 +45,28 @@ StatusCode FPGATrackSimBinStep::setRanges(const FPGATrackSimBinStep *prev, return StatusCode::FAILURE; } m_parStep[par] = (m_parMax[par] - m_parMin[par]) / m_parBins[par]; - if (m_parBins[par] <= 0) { ATH_MSG_FATAL("Every dimension must be at least one bin (set #bins=1 for not binning in that parameter)"); } - if (m_parBins[par] < prev->m_parBins[par]) { - ATH_MSG_FATAL("Number of bins can only increase with each step"); - return StatusCode::FAILURE; - } - if (m_parBins[par] % prev->m_parBins[par] !=0) { - ATH_MSG_FATAL("Number of bins must be integer multiple of bins in previous step"); - return StatusCode::FAILURE; - } - if (m_parBins[par] != prev->m_parBins[par]) { - // This step involves this parameter - m_pars.push_back(par); + if (prev) { + if (m_parBins[par] < prev->m_parBins[par]) { + ATH_MSG_FATAL("Number of bins can only increase with each step"); + return StatusCode::FAILURE; + } + if (m_parBins[par] % prev->m_parBins[par] !=0) { + ATH_MSG_FATAL("Number of bins must be integer multiple of bins in previous step"); + return StatusCode::FAILURE; + } + if (m_parBins[par] != prev->m_parBins[par]) { + // This step involves this parameter + m_pars.push_back(par); + } + } else { + if (m_parBins[par] != 1) { + // This step involves this parameter + m_pars.push_back(par); + } } } @@ -105,7 +110,7 @@ IdxSet FPGATrackSimBinStep::convertToPrev(const IdxSet &cur) const { IdxSet retv{}; if (m_prev) { for (unsigned par =0; par < FPGATrackSimTrackPars::NPARS; par++) { - retv[par] = (cur[par]*m_prev->m_parBins[par]/m_parBins[par]); + retv[par] = int(cur[par]*((const FPGATrackSimBinStep*)m_prev)->m_parBins[par]/m_parBins[par]); } } else { ATH_MSG_FATAL("convertToPrev called, but no previous"); @@ -123,12 +128,12 @@ const std::vector<unsigned> FPGATrackSimBinStep::stepBins() const { void FPGATrackSimBinStep::setValidBin(const std::vector<unsigned>& idx) { m_validBinFull[idx] = true; m_validBinLocal[stepIdx(idx)] = true; - if (m_prev) setValidBin(convertToPrev(idx)); + if (m_prev) m_prev->setValidBin(convertToPrev(idx)); } void FPGATrackSimBinStep::initValidBins() { m_validBinFull.setsize(m_parBins, false); - m_validBinLocal[stepBins()] = true; + m_validBinLocal.setsize(stepBins(), false); } void FPGATrackSimBinStep::printValidBin() const { @@ -139,7 +144,7 @@ void FPGATrackSimBinStep::printValidBin() const { if (bin.data()) validBinsFull++; } - ATH_MSG_INFO("Step" << m_name<< "Valid Bins Full: " << validBinsFull); + ATH_MSG_INFO("Step" << name() << "Valid Bins Full: " << validBinsFull); // count valid bins int validBinsLocal = 0; @@ -147,7 +152,7 @@ void FPGATrackSimBinStep::printValidBin() const { if (bin.data()) validBinsLocal++; } - ATH_MSG_INFO("Step" << m_name<< "Valid Bins Local: " << validBinsLocal); + ATH_MSG_INFO("Step" << name() << "Valid Bins Local: " << validBinsLocal); } diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinTool.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinTool.cxx index 21af3113dbb62d5e301325ba86ec93900b93f155..49340db1bdd94645c5759b590f5d2107547f8cb9 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinTool.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinTool.cxx @@ -9,12 +9,25 @@ #include "FPGATrackSimBinning/FPGATrackSimBinTool.h" +FPGATrackSimBinTool::FPGATrackSimBinTool(const std::string &algname, const std::string &name, + const IInterface *ifc) +: AthAlgTool(algname, name, ifc) { +} + // ---------------------------------------------------------------------------------------- // AthTool Methods // ---------------------------------------------------------------------------------------- StatusCode FPGATrackSimBinTool::initialize() { + // Dump the configuration to make sure it propagated through right + const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties(); + for( Gaudi::Details::PropertyBase* prop : props ) { + if (prop->ownerTypeName()==this->type()) { + ATH_MSG_DEBUG("Property:\t" << prop->name() << "\t : \t" << prop->toString()); + } + } + // Retrieve ATH_MSG_INFO("Using " << m_steps.size() << " steps"); ATH_CHECK(m_steps.retrieve()); @@ -24,11 +37,14 @@ StatusCode FPGATrackSimBinTool::initialize() { return StatusCode::FAILURE; } + m_parMin = std::vector<double>(m_parMinConfig); + m_parMax = std::vector<double>(m_parMaxConfig); + FPGATrackSimBinStep* prev = 0; for (auto &step : m_steps) { ATH_MSG_INFO("Got Binning Step " << step->stepName()); m_stepNames.push_back(step->stepName()); - if (step->setRanges(prev, m_parMin, m_parMax)) { + if (!step->setRanges(prev, m_parMin, m_parMax)) { ATH_MSG_FATAL("Failed to setRange on step"); return StatusCode::FAILURE; } diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinUtil.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinUtil.cxx index eaa97e4ff628eb2ae6de743bee8193ed7f82cd15..a42f440dffe6a476464b72f7e5591290a3663bec 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinUtil.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinUtil.cxx @@ -164,10 +164,8 @@ double GeomHelpers::zFromPars(double r, const FPGATrackSimTrackPars &pars) return zhit; } -double GeomHelpers::phiFromPars(double r, const FPGATrackSimTrackPars &pars) -{ +double GeomHelpers::phiFromPars(double r, const FPGATrackSimTrackPars &pars) { double phi_hit = xAOD::P4Helpers::deltaPhi(pars.phi,asin(r * CurvatureConstant * pars.qOverPt - pars.d0 / r)); - return phi_hit; } diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinnedHits.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinnedHits.cxx index 59a7c0d67d35abfefa74856d7632c5dbde8a4760..be6a9bfe8d60bc971e7d1f09e4fcb3d68718c107 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinnedHits.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimBinnedHits.cxx @@ -9,6 +9,8 @@ #include "FPGATrackSimBinning/FPGATrackSimBinnedHits.h" #include "FPGATrackSimBinning/IFPGATrackSimBinDesc.h" +#include "AthenaBaseComps/AthMsgStreamMacros.h" +#include "FPGATrackSimBinning/IFPGATrackSimBinDesc.h" #include "FPGATrackSimBinning/FPGATrackSimBinStep.h" #include "FPGATrackSimBinning/FPGATrackSimBinUtil.h" #include <GaudiKernel/StatusCode.h> @@ -16,9 +18,19 @@ StatusCode FPGATrackSimBinnedHits::initialize() { + // Dump the configuration to make sure it propagated through right + const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties(); + for( Gaudi::Details::PropertyBase* prop : props ) { + if (prop->ownerTypeName()==this->type()) { + ATH_MSG_DEBUG("Property:\t" << prop->name() << "\t : \t" << prop->toString()); + } + } + + + ATH_MSG_DEBUG("Retrieving BinTool"); ATH_CHECK(m_bintool.retrieve()); + ATH_MSG_DEBUG("Retrieving EvtSel"); ATH_CHECK(m_EvtSel.retrieve()); - // Compute which bins correspond to track parameters that are in the region // i.e. the pT, eta, phi, z0 and d0 bounds // list of valid bins is extracted from the layer map if its loaded @@ -30,9 +42,8 @@ StatusCode FPGATrackSimBinnedHits::initialize() { readLayerMap(m_lyrmapFile); } m_bintool->printValidBin(); // also dumps firmware constants - initBinnedDataArrays(); - + return StatusCode::SUCCESS; } @@ -60,54 +71,57 @@ void FPGATrackSimBinnedHits::resetBins() { // by m_binning object) StatusCode FPGATrackSimBinnedHits::fill( const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits) { - ATH_MSG_DEBUG("In fillImage"); + ATH_MSG_DEBUG("In fill"); for (const auto &step : m_bintool->steps()) { int stepnum = 0; + ATH_MSG_DEBUG("fill binning: step num " << stepnum << " " << step->stepName()); for (auto &bin : step->validBinsFull()) { // skip bin if it is invalid if (!bin.data()) continue; + //ATH_MSG_DEBUG("valid bin"); if (stepnum == 0) { // first step, hits from input stream for (const std::shared_ptr<const FPGATrackSimHit> &hit : hits) { StoredHit storedhit(hit); if (m_bintool->binDesc()->hitInBin(*step.get(), bin.idx(), - storedhit)) { + storedhit)) { m_binnedHitsStep[stepnum][bin.idx()].addHit(storedhit); } } - } else { - + } else { // subsequent steps, use hits from previous step for (const auto &hit : m_binnedHitsStep[stepnum - 1][step->convertToPrev(bin.idx())].hits) { StoredHit storedhit(hit); if (m_bintool->binDesc()->hitInBin(*step.get(), bin.idx(), - storedhit)) { + storedhit)) { + // One last step, set layer based on layerMap or use default from pmap if (step.get() == m_bintool->lastStep()) { if (m_mod_to_lyr_map.size() != 0) { if (m_mod_to_lyr_map[bin.idx()].contains(hit.hitptr->getIdentifierHash())) { storedhit.layer = m_mod_to_lyr_map[bin.idx()][hit.hitptr->getIdentifierHash()]; - } + m_binnedHitsStep[stepnum][bin.idx()].addHit(storedhit); + } } else { storedhit.layer = hit.hitptr->getLayer(); + m_binnedHitsStep[stepnum][bin.idx()].addHit(storedhit); } - } - - m_binnedHitsStep[stepnum][bin.idx()].addHit(storedhit); - + } } } } } // end loop over bins + + stepnum++; } // end loop over stepsd return StatusCode::SUCCESS; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.cxx index 6c89f8d7e2b8fabc68c348c6de65a42df00c6d26..3d6eb749888f38021648779f1cb66583f6109247 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.cxx @@ -9,9 +9,24 @@ */ #include "FPGATrackSimKeyLayerBinDesc.h" +#include "AthenaBaseComps/AthMsgStreamMacros.h" #include "FPGATrackSimBinning/FPGATrackSimBinStep.h" +StatusCode FPGATrackSimKeyLayerBinDesc::initialize() +{ + // Dump the configuration to make sure it propagated through right + const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties(); + for( Gaudi::Details::PropertyBase* prop : props ) { + if (prop->ownerTypeName()==this->type()) { + ATH_MSG_DEBUG("Property:\t" << prop->name() << "\t : \t" << prop->toString()); + } + } + m_keylyrtool.setR1(m_rin); + m_keylyrtool.setR2(m_rout); + + return StatusCode::SUCCESS; +} bool FPGATrackSimKeyLayerBinDesc::hitInBin(const FPGATrackSimBinStep &step, const IdxSet &idx, @@ -26,8 +41,9 @@ bool FPGATrackSimKeyLayerBinDesc::hitInBin(const FPGATrackSimBinStep &step, if (stepIsRPhi(step)) { // distance of hit from bin center - storedhit.phiShift = phiResidual(step.binCenter(idx),storedhit.hitptr.get()); - + storedhit.phiShift = + phiResidual(step.binCenter(idx), storedhit.hitptr.get()); + // Get expected curvature shift from bin center auto half_xm_bin_pars = parSetToKeyPars(step.binCenter(idx)); half_xm_bin_pars.xm = step.binWidth(4)/2.0; // 4 = xm par @@ -43,8 +59,8 @@ bool FPGATrackSimKeyLayerBinDesc::hitInBin(const FPGATrackSimBinStep &step, // distance of hit from bin center storedhit.etaShift = etaResidual(step.binCenter(idx),storedhit.hitptr.get()); - double width_z_in = step.binWidth(0); - double width_z_out = step.binWidth(1); + double width_z_in = step.binWidth(0)/2.0; + double width_z_out = step.binWidth(1)/2.0; double zrange = width_z_in + (width_z_out-width_z_in) * (hitr-r1)/(r2-r1); passesEta = std::abs(storedhit.etaShift) < zrange; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.h index 9293feb85b4b24f5cf5d2715a930ccaa42c11af6..cea3fcddf6bb00e75abb87f12163634ad01b62b7 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimBinning/src/FPGATrackSimKeyLayerBinDesc.h @@ -23,6 +23,8 @@ */ #include "AthenaBaseComps/AthAlgTool.h" +#include "FPGATrackSimBinning/IFPGATrackSimBinDesc.h" +#include "AthenaBaseComps/AthMsgStreamMacros.h" #include "FPGATrackSimBinning/IFPGATrackSimBinDesc.h" #include "FPGATrackSimObjects/FPGATrackSimTrackPars.h" #include "FPGATrackSimObjects/FPGATrackSimHit.h" @@ -48,10 +50,13 @@ public: declareInterface<IFPGATrackSimBinDesc>(this); } + virtual StatusCode initialize() override; + virtual const std::string &parNames(unsigned i) const override { return m_parNames[i]; } // convert back and forth from pT, eta, phi, d0, z0 and internal paramater set - virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override { + virtual const ParSet + trackParsToParSet(const FPGATrackSimTrackPars &pars) const override { return keyparsToParSet(m_keylyrtool.trackParsToKeyPars(pars)); } virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override {